![Nao Yanagisawa](https://xs691486.xsrv.jp/wp-content/themes/JITERA/images/director-nao-1.png)
2014年 大学在学中にソフトウェア開発企業を設立
2016年 新卒でリクルートに入社 SUUMOの開発担当
2017年 開発会社Jiteraを設立
開発AIエージェント「JITERA」を開発
2024年 「Forbes 30 Under 30 Asia 2024」に選出
アプリ・システム開発は生成AIを活用することで、従来の開発ではあり得なかった、低コスト・高品質開発・スピード開発が同時に実現できます。
▼従来の開発とAIを使った開発の違い
![](https://xs691486.xsrv.jp/wp-content/uploads/2024/06/ad10-table.png)
![](https://xs691486.xsrv.jp/wp-content/uploads/2024/06/メイン画像-1-1.png)
システムソリューションを得意とし、新規事業からDX推進まで幅広いジャンルの開発実績があります。
AIソフトとは?
AIソフトとは、人工知能(AI)を活用したソフトウェアの総称です。
AIソフトには、コンピュータが人間のように考えたり、行動したりできるように設計されたプログラムが含まれます。簡単に言うとAIソフトは「考えるソフトウェア」と言えます。
代表的なAIソフトには、文字や音声を解析する認識AI、画像や動画を生成する生成AI、文章を自動作成する文章AIなどがあります。
例えば、文字を読み取ってテキストデータに変換するOCR(光学文字認識)ソフトは、認識AIの一種です。OCRソフトはスキャンした文書画像から文字を認識して、テキストデータを出力する仕組みになっています。
ある画像を入力して、似た画像を生成するGAN(敵対的生成ネットワーク)も代表的な生成AIの一つです。GANを使うことで、入力した人物画像からその人物らしい新しい画像を作り出すことができるのです。
すでに、人間と自然な会話ができるよう設計された会話AIが登場しています。会話をするAIとは、人間と自然な会話ができるように設計されたAIソフトです。チャットボットと呼ばれる会話AIは、すでにお問い合わせ対応などの場面で実際に利用されています。
このようにAIソフトは、人間の知能の一部をコンピュータ上で実現するテクノロジーと言えます。最近ではAIソフトが大きく進歩しており、画像認識や言語処理など、狭い領域では人間を超える性能を発揮しています。私たちの生活の隅々でAIが活用されるようになってきているのです。
AI開発ソフトを使って作るAIソフトの種類
AIソフトにはさまざまな種類があります。代表的なAIソフトの種類としては、テキスト生成AI、画像生成AI、音声認識AI、自然言語処理AIなどがあります。以下に詳しく解説していきます。
テキスト生成AI
テキスト生成AIとは、入力されたテキストから新しいテキストを生成するAIソフトのことです。例えばGPT-3は、短いプロンプト(命令文章)を入力すると、それに応じた文章を生成してくれる大規模なテキスト生成AIです。
GPT-3をはじめとする大規模言語モデルは、膨大な量のテキストデータを学習することで、人間らしい自然な文章を生成できます。プロンプトに合わせて適切な文脈の文章を生成してくれるため、独自の文章作成ツールとして活用されています。
テキスト生成AIにはChatGPTなどの日本語版も登場しており、日本語での会話生成や文章作成にも利用できます。入力したキーワードに関連する文章を生成したり、与えられた構成から小説を自動生成したりなど、テキスト生成AIの可能性は無限大です。
マーケティング文書の自動作成や顧客対応の自動応答など、テキスト生成AIはビジネスシーンでも広く活用され始めています。今後は文章生成能力がさらに高度化し、私たちの生活を豊かにすることは間違いないと思います。
画像生成AI
画像生成AI は、テキストの説明やサンプル画像から新しい画像を生成できるAIソフトです。Stable Diffusionは最近話題の画像生成AIで、入力したキーワードからイメージに合った画像を生成してくれます。
画像生成AIは、GAN(敵対的生成ネットワーク)と呼ばれる技術を用いて実現されています。GANは2つのニューラルネットワークで構成され、1つは画像を生成し、もう1つはその画像が本物かどうかを判断します。この2つのネットワークが競い合うことで、どんどんリアルな画像を生成する能力が高まっていきます。
Stable Diffusionは、このGANを発展させたDALL-E2というモデルを採用しています。DALL-E2はインターネット上のテキストと、画像の大規模なデータセットを学習しているため、自然な画像を生成できるのです。
画像生成AIにはさまざまな用途が考えられます。プロダクトデザインの概念図を高速に作成したり、ゲームの背景画像を自動生成したり、ユーザーの姿をアニメ調に変換したりと、クリエイティブな分野での活用が期待されています。
生成画像の質も飛躍的に向上しており、これから画像生成AIは私たちの生活に不可欠なテクノロジーとなっていくでしょう。
音声認識AI
音声認識AIは、人の音声を文字に変換するAIソフトのことです。音声認識AIを使えば、録音した音声ファイルをテキストデータに変換することが可能です。大量の音声データを機械学習させることで、言葉の発音と文字の関係を学習します。
GoogleやAmazonなどのIT大手各社は、独自の音声認識AIを開発しており、製品に組み込んでサービスを提供しています。例えばスマートスピーカーのAlexaは、Amazonの音声認識AIを活用しています。
日本語の音声認識に特化したJuliusなどのオープンソースソフトウェアもあり、自分の目的に合わせて音声認識AIを構築できます。音声認識精度も飛躍的に向上しており、法廷での証言の文字起こしや医療記録の作成、講演の文字起こしなど実務での利用も広がっています。
自然言語処理AI
自然言語処理AIは、人の言葉を解析して意味を理解するAIソフトです。質問に対する回答生成や意見分析など、言葉を処理するタスクに利用されています。「自然言語処理」とは、言語を処理して意味を解釈する技術の総称です。
ですから人間の言語をコンピュータが理解するためには、文字起こしや構文解析、それに意味解析などの処理も必要になります。
代表的な自然言語処理AIに、BERTやGPT-3があります。これらは膨大な文章を学習することで、言葉の意味や文脈を理解する能力を獲得しています。質問応答システムや、要約生成システムなどに利用されています。例えばチャットボットは自然言語処理AIを活用し、ユーザーの質問を認識して適切に回答しています。感情分析AIはテキストから感情を読み取ることもできます。
日本語の自然言語処理に強い、Sudachiなどのオープンソースも存在します。日本語の表現の多様さに対応できる自然言語処理AIが求められています。自然言語処理は私たちとAIのコミュニケーション能力を高め、AIの可能性を広げる重要な技術分野と言えます。
今後も注目の的となることは間違いなさそうです。
AIソフトの用途
AIソフトはビジネスから教育、医療などさまざまな場面で活用されています。AIの能力を生かすことで、私たちの生活や仕事を便利にすることができるのです。以下、その用途を詳しく解説していきます。
マーケティング戦略
マーケティング分野では、消費者の好みを分析するAIが活躍しています。SNSの投稿や検索履歴から個人の好みを推測し、興味のある商品をおすすめして表示させることができます。ネットショップの「おすすめ商品」などに応用されています。
マーケティングAIは、ビッグデータを解析して顧客を性質や嗜好の似通ったグループに分類し、個々のグループに合った商品展開ができます。例えば、SNSの投稿内容からその人の好みのライフスタイルを推定し、それに合った商品カタログを提示できます。
またウェブサイトの閲覧履歴や購買履歴から、ユーザーの嗜好を学習することも可能です。季節に合わせて関心のある商品を変化させるなど、きめ細かいマーケティングが実現できるのです。
その他にも、自動応答のチャットボットを活用したり、マーケティングを自動化させたりと業務効率化にもAIは欠かせません。ターゲティングも精度が向上し、マーケティングのパフォーマンスを最大化できます。
生産性向上
AIソフトを会社の業務に取り入れることで、社員の生産性を向上させることができます。例えばAIに文書を作成させたり、顧客対応の自動応答をさせたりすることで、社員はより創造的な仕事に集中できるのです。AIを会社のルーティン業務に活用することで、社員の生産性は大きく向上します。
機械学習で業務のパターンを学習したAIアシスタントは、ルーティーン業務のドラフトなどを自動作成できます。社員はドラフトを確認・修正するだけで済むので、業務スピードが飛躍的に向上します。
また、顧客の問い合わせに関するひな型対話をAIに学習させることで、それを活用したチャットボットが一定割合のお客様対応を自動で行ってくれます。社員は難易度の高い案件に専念できるため、業務品質も向上できます。
その他にも、indata(入力データ)の自動収集や分析の自動化、プロセスの最適化など、業務のあらゆる場面で生産性向上にAIを活用できます。リピート業務やルーティーン作業などをAIに任せることで、会社全体の生産性が抜本的に改善されるのです。
教育
教育分野では、個々の生徒の習熟度に合わせた学習教材をAIが自動生成します。弱点を解析して必要なドリル学習を提供してくれるなど、個別最適化学習を実現しています。AIを活用した教育では、生徒一人ひとりの学習データを蓄積・分析することで、個別の学習進度と弱点を明らかにします。
その上で、生徒の習熟度に合わせながら学習コンテンツの難易度を自動調整したり、弱点部分を重点的にドリル学習させたりします。
また生徒の興味関心に合わせて、学習教材をカスタマイズすることも可能です。ゲーム感覚で楽しみながら学習に取り組めるので、学習意欲の持続にもつながります。
AI教師は24時間いつでも支援可能で、質問に対する回答も個別に最適化されます。ですから人間の教師を補完する存在として、教育の質の向上が期待できます。学習履歴と教育効果の関係を解析し、教育方法の改善にも貢献することが期待できます。
医療
医療分野では、AIが診断支援システムとして利用されています。傷病の画像診断や、医師の経験知に基づく治療法の提案などを行うことができます。そのため、診療の精度が向上します。
医療AIは、CTやMRIなどの医用画像から病変部位を高精度に検出できます。画像診断の精度が向上するだけでなく、検査時間の短縮にもつながります。また過去のカルテデータを深層学習して、症例に応じた最適な治療法を提案してくれます。
さらに医師の経験値に依存しない診断を可能にし、医療水準の均一化を実現します。症例データと治療結果を継続的に学習することで、診断能力は日々向上していきます。
手術支援ロボットにもAIが活用されています。微細な動作を安定的に実行することができ、さらに患者の体の負担を最小限に留めた治療成績を収めています。
AIは医療分野における判断の精度と安全性を高め、患者の命を救う技術として発展しています。
AIソフト開発の方法を簡単に解説
AIソフトを自分で開発するには、プログラミングの知識が必要です。まずは、簡単なAIモデルから開発していくのがおすすめです。以下、詳しく説明していきます。
ツール
AIソフトを開発する上で、Pythonを使うとAI開発がしやすくなります。代表的なPythonのAI開発ライブラリを紹介します。
ツール名 | 概要 |
TensorFlow | Googleが開発した人気の深層学習フレームワーク。ニューラルネットの構築が簡単。 |
Keras | TensorFlowの上位互換モジュール。ニューラルネットワークの学習が手軽にできる。 |
PyTorch | Facebookが開発。ニューラルネットワークの構築と学習がシンプルで高速。 |
scikit-learn | 機械学習のための基礎的なモデルとアルゴリズムを提供。 |
OpenCV | コンピュータビジョン向けの画像処理と機械学習ライブラリ。 |
TensorFlowとKerasは、ディープラーニングを手軽に実現できます。PyTorchはニューラルネットワークの実装が比較的簡単です。scikit-learnは機械学習の基本的な構築ブロックが揃っているので、比較的簡単に理解できます。OpenCVは画像認識などに強いことで知られています。
このように各ライブラリが得意な領域が異なるため、目的に応じて選択することが大切です。
AIに学習させる方法
AIモデルの中核となるのが、機械学習を用いた学習アルゴリズムです。代表的な手法には、深層学習のニューラルネットワークや、決定木、SVMなどがあります。
深層学習では、複数のニューロンからなるネットワークを作成します。ニューロンは入力データから特徴を抽出する仕組みになっています。このネットワークに学習データを入力し、出力結果と正解を比較して誤差を計算し、誤差を最小化するように重みを調整していくのが学習のプロセスです。
決定木は階層構造のノードからなるモデルのことで、入力データの特徴に基づき結果を分岐させていく手法です。
SVMは、データを分離する最適な境界線を学習するアルゴリズムです。
これらの手法ではハイパーパラメータの設定が重要です。これらのハイパーパラメータを適切に調整することで、モデルの予測精度をできる限り高めつつ、学習に必要な計算時間を抑えることが可能です。
※ハイパーパラメータ・・・モデルの複雑さや学習プロセスを制御する設定値です。
データセットの構築
データセット構築の方法
データセットの構築には、まず解決したいタスクに必要なデータを定義します。データを定義した後は、実際のデータを収集する方法を検討します。Web上のデータをスクレイピングしたり、独自にデータを作成したり、外部のデータセットを利用したりする方法があります。収集したデータを前処理してAIに最適な形に整形した後、訓練データとテストデータに分割してデータセットを完成させます。
※スクレイピングとは・・・WebサイトやSNSなどから必要なデータを自動的に収集する技術のことです。プログラムを作成してWebページにアクセスし、HTMLから必要なテキストや画像などのデータを抽出する手法です。大量のデータ収集を効率的に行うことができます。
データセット構築のポイント
AIに学習させるには、適切なデータセットが必要不可欠です。データセットは、AIが解決すべきタスクに対する「正解」の例を含んでいる必要があります。
データセットの量と質はAIの性能を左右する最も重要な要素です。一般的にデータが多いほど、AIはその分正確に学習できるようになります。質の高い代表的なデータを選定することも大切です。構築したデータセットの偏りにも注意が必要です。
例えばあるカテゴリのデータが異常に少ないと、そのカテゴリの認識率が低くなるなどの問題が発生します。データ分布を確認しバランスを取ることが望ましいです。
大規模なデータセットを自力で構築するのはコストがかかるため、公開データセットを利用することも手です。目的に適した質の高いデータセットを探すことをおすすめします。
デプロイとAPI化
AIソフトを開発したら、次のステップとしてそれを実際に公開する必要があります。開発したAIモデルをサーバに設置し、誰でも利用できるようにWeb APIとして公開することができます。
具体的な手順は以下の通りです。
1.学習済みのAIモデルを、サーバ上で実行できる形式に変換する。
2.クラウドサービスなどを利用して、そのAIモデルが稼働するサーバを準備する。
3.サーバ上でAIモデルに入力を送り、出力結果を返すAPIを作成する。
4.APIの使用を制御するために、アクセスキーやトークンを発行する。
5.作成したAPIのエンドポイントを公開し、ドキュメントを公開する。
このようにデプロイとAPI化を行うことで、Webサービスとして開発したAI機能を簡単に利用できるようになります。複数のアプリからAPIを呼び出すことも可能です。
※エンドポイント・・・アクセスするためのAPIのURLのことです。
AIソフト開発のツール7選
AIソフト開発には、目的に合ったツールを選ぶことが大切です。ここでは、代表的なAI開発ツールを紹介します。
Deep learning(深層学習)向け
深層学習は、画像や音声を生成するのに適しています。MicrosoftのCognitive ToolkitやKerasがおすすめです。
Microsoft Cognitive Toolkit
Microsoft Cognitive Toolkit(旧名CNTK)は、Microsoftが無料で公開しているディープラーニングのフレームワークです。画像認識や音声認識など、様々なディープラーニングタスクをPythonで構築できます。
Microsoft Cognitive Toolkitの主な特徴は以下の通りです。
-
- Pythonで記述できるため扱いやすい
- 画像認識や音声認識などの一般的なディープラーニングタスクを簡単に構築可能
- GPUを活用した高速な学習が可能
- Azure Machine Learningとも連携しやすい
Microsoft Cognitive Toolkitは、TensorFlowやPyTorchなどと並ぶディープラーニングフレームワークの1つです。 Pythonベースで扱いやすいことに加え、MicrosoftのクラウドサービスAzureとの連携が深いのが大きなメリットです。
画像認識や音声認識の分野でディープラーニングを活用したい場合に、Microsoftユーザーにとっては非常に適したツールキットといえます。ドキュメントも豊富に揃っているので、学習しやすい環境が用意されています。
Keras
Kerasは、Pythonで記述できるディープラーニングのためのオープンソースライブラリです。 TensorFlowやMicrosoft Cognitive Toolkitなどの下位ライブラリ上で動作し、ニューラルネットワークの構築を簡単に行うことができます。
Kerasの主な特徴は以下の通りです。
-
- Pythonで記述できるため直感的に扱える
- ニューラルネットワークのレイヤーを簡単に追加できる
- CNN、RNN、MLPなど主要なネットワークが簡単に構築可能
- TensorFlow、Microsoft Cognitive Toolkit、Theanoなど複数のバックエンドに対応
- GPUを利用した高速学習が可能
文法がシンプルで直感的なため、ディープラーニング初心者におすすめのライブラリです。少量のコードで強力なネットワークを構築できるので、プロトタイピングがしやすい特徴があります。例えば、画像認識や自然言語処理などのディープラーニングを初めて行う場合に、Kerasは非常に適したライブラリといえます。ガイドも豊富に公開されており、環境構築もしやすいツールです。
機械学習向け
機械学習は、画像認識などに向いています。PyTorchやTensorFlowが定番のツールです。
PyTorch
PyTorchは、Facebookが開発・公開しているオープンソースの機械学習ライブラリです。Pythonで記述できることが大きな特徴で、機械学習やディープラーニングのモデルを直感的に構築できます。
PyTorchの主な特徴は以下の通りです。
-
- Pythonで記述可能で直感的
- テンソル計算と自動微分機能を搭載
- CUDAによる高速なGPU計算に対応
- モデル構築が容易で柔軟な設計が可能
- Jupyter Notebookによるインタラクティブな開発環境
PyTorchはTensorFlowと並ぶ、Pythonベースの代表的なディープラーニングフレームワークです。 構文がシンプルで柔軟なモデル構築ができることから、研究開発目的での利用に向いています。機械学習プロジェクトを行う際に、Pythonの知識があればPyTorchは手軽に利用できます。豊富なサンプルとともに、学習資源も充実しているためオススメのツールです。
TensorFlow
TensorFlowは、Googleによって開発されたオープンソースの機械学習ライブラリです。PythonとTensorFlowのコードを記述することで、機械学習モデルを構築および学習することができます。
TensorFlowの主な特徴は以下の通りです。
-
- Pythonで記述可能で技術記事などの資料が豊富
- グラフ(データフロー)の概念でモデル構築ができる
- テンソル(多次元配列)による計算が特徴
- GoogleのTensor Processing Unit(TPU)などハードウェアとの連携が強い
- 多数の機械学習/ディープラーニングアルゴリズムが搭載
TensorFlowは、ディープラーニングを行うための最も広く使われている標準のライブラリです。TensorFlowでは、データの流れをグラフの形式で視覚的に表現してモデルを構築していくのが特徴的です。このようなデータの流れを図式化する機能は、他のライブラリにはないTensorFlowならではの機能です。
画像認識や音声認識などの機械学習プロジェクトを行うのであれば、TensorFlowは最も熟成されたライブラリの1つと言えます。導入事例や学習教材も豊富なため、活用しやすい環境が整っています。
Apple Core ML
Core MLは、Appleが提供する機械学習フレームワークです。iPhoneやiPadなどのiOS端末で、オフラインで機械学習モデルを実行できます。
Core MLの主な特徴は以下の通りです。
- iOSアプリ内で機械学習モデルを直接実行することができる
- TensorFlow、Keras、Scikit-Learnなど各フレームワークのモデルを取り込める
- GPUなど、端末に搭載された専用の高速演算チップを利用して、高速に計算処理を行うことができる
- オフラインでの利用を前提とした最適化が施されている
- Vision(画像)、Natural Language(言語)、SoundAnalysis(音声)などの機能を提供できる
Apple Core MLは端末上で機械学習を実現するのに適したフレームワークです。プライバシー保護の観点からも、オフラインでの実行はメリットが大きいと言えます。
iOSアプリに機械学習の機能を組み込むのであれば、Core MLが安定した選択肢となるでしょう。Appleの開発環境に合わせて最適化されているのが大きな強みです。
データ分析やアルゴリズム開発向け
データ分析には、MATLABやOctaveが便利なツールです。プログラミング不要で様々な処理ができます。
MATLAB
MATLABは、数値計算とデータ解析を主な用途とするプログラミング言語と開発環境を提供するソフトウェアです。マトリックスを扱うのに優れており、データの解析や可視化に強みを持っています。
MATLABの主な特徴は以下の通りです。
-
- 数値計算が強力で、マトリックス操作が得意である
- データ解析用の多数の関数が標準搭載されている
- データの可視化(グラフ描画)機能が豊富にある
- 機械学習関連のツールボックスが利用可能である
MATLABはデータサイエンス分野ではスタンダードなツールとして長年利用されています。 プログラミング不要でGUI操作中心にデータ処理が行えるため、研究者や開発者に広く活用されています。機械学習やディープラーニングといった複雑なプログラミングはできませんが、データの前処理や分析、可視化に関しては非常に便利なツールといえます。
※マトリックス操作・・・マトリックスとは2次元の表形式で数値が並べられたデータ構造で、マトリックス操作はマトリックスに対して加算や乗算などの計算処理を行うことを意味します。データ分析ではマトリックス計算が頻繁に出現するため、これらを扱いやすいことが重要です。
Octave
Octaveとは、MATLABと同等の機能を持つデータ分析・数値計算のソフトウェアです。MATLABの無償代替版として位置付けられており、GUIベースの操作性と多くのデータ分析機能を兼ね備えています。
Octaveの主な特徴は以下の通りです。
-
- MATLABと高い互換性を持ち、MATLABのコードの多くを流用できる
- データ分析や可視化の機能が豊富に搭載されている
- 導入が簡単で、Windows、Mac、Linuxなどに対応できる
- 完全に無償で利用できる、オープンソースソフトウェアである
- MATLABほど高度な機能はないが、基本的なデータ分析ニーズを満たせることができる
MATLABの高額なライセンスが課題となる場合に、Octaveは無償で手軽に利用できる代替ソリューションを提供してくれます。
機械学習分野までカバーすることは難しいが、ある程度のデータ前処理や分析、可視化が必要な場合にはOctaveがおすすめのツールといえます。操作方法もMATLABと同様で習得が容易です。
AIソフトのまとめ
この記事では、AIソフトの基本的な仕組みや特徴、開発方法について解説しました。
AIソフトは今後も飛躍的に進化していくでしょう。AIは私たちの生活をより便利で快適なものに変えていく可能性を秘めた技術です。本記事を読んで、AIソフト開発に興味を持った方もいるかもしれません。その場合は、プロフェッショナルなAI開発会社に相談してみましょう。
株式会社Jiteraは、AIソフト開発から導入支援まで一貫してサポートしています。業務にAIを取り入れたいけど、何から始めたらいいのかわからない、という方はぜひ一度お問い合わせください。経験豊富なエンジニアがあなたのお悩みにお答えします。