人工知能というと、手の届かない先端テクノロジーの仕組みによって作られている印象があるかもしれません。複雑な統計処理や高度な数学の理解が必要な人工知能も存在しますが、スマートフォンのアプリをはじめ、人工知能は生活の中に浸透しつつあります。
ここでは実際にビジネスで使われている仕組みを参考に、人工知能を作るために何が必要か、ハードウェアとソフトウェアの側面から必要項目の整理、「何を作るか」「どうやって学ぶか」について解説します。
人工知能の仕組みを考えたとき何が必要か?
SF映画に登場するような自律的に思考して感情を持つ人工知能は、汎用型人工知能(AGI:Artificial General Intelligence)と呼ばれます。しかし、現状は特化型人工知能(Narrow AI)が中心であり、むしろビジネスではその有効性が高まっています。
人工知能の実態は、計算処理を行うプログラムです。では、プログラムとして人工知能を考えたとき、必要になるものは何でしょうか。
深層学習(ディープラーニング)は、人間の脳のニューロンをモデルとして登場した技術です。人工知能を人間の身体になぞらえた場合、身体=ハードウェア、精神=ソフトウェアから必要なものを整理することができます。
といっても、精神という言葉は語弊があるかもしれません。特化型人工知能に必要なものは「認知(コグニティブ)」と呼ばれる情報の分類と分析に過ぎないからです。
ハードウェアとソフトウェアの側面から、人工知能を作るために必要な部品を箇条書きにすると、以下になります。箇条書きにした項目は全部が必要というわけではありません。
■ハードウェア
- PC、スマートフォン、スマートスピーカーなどの本体
- クラウド上の仮想マシン
- ストレージ、データベース
- センサー
- 外部出力装置
- IoTのデバイス など
■ソフトウェア
- 学習させるデータ
- プログラム言語
- アルゴリズム
- フレームワーク
- ライブラリ
- API
- ミドルウェア、管理ツール など
ハードウェアとソフトウェアに分けて解説します。
人工知能に必要なハードウェア
まず、ハードウェアを取り上げます。
人工知能がプログラムである以上、プログラムを実行するコンピュータが必要です。しかし、スマートフォンに搭載されているSiriや、スマートスピーカーのAlexaのような対話型人工知能もあり、PCが必須ではありません。
さらに、インターネットに接続して自動運転と対話型インターフェースを備えたコネクテッドカーなど、人工知能が自動車に搭載されています。このようなIoTは、エッジAIと呼ばれるようになりました。
Azure、AWS、GCPなどの仮想マシンで機械学習を行ったり、学習済みモデルをAPIで活用したり、クラウド上の人工知能の活用も拡大しています。クラウド上で構築する場合は、ストレージやデータベースの容量を柔軟に変えることができるので便利です。
センサーが加わると、人間でいえば視覚や聴覚などの情報を人工知能に取り込むことができます。取り込む情報は、カメラによる画像・動画・空間情報、マイクからの音声、温度や湿度、光、ジャイロスコープによる位置情報などがあります。
ディスプレイ、スピーカー、ライトなどは、人工知能から人間に対するインターフェースとして機能します。スマートフォンやタブレットなどのタッチディスプレイは、インプットとアウトプットのデバイスを兼ねています。
人工知能に必要なソフトウェア
次に、ソフトウェアにはどのようなものがあるでしょうか。ソフトウェアという表現はハードウェアに合わせて使った便宜上のもので、データを含みます。
前提として、機械学習には学習のためのデータが必要です。しかし、センサーから得られたデータを活用できます。画像や映像など非構造化データを扱う場合はインデックス化などして、数値データに置き換える必要があります。人工知能は、計算処理によってデータから学習するからです。
そこで、データを計算処理するプログラムが必要になります。人気のあるプログラム言語はオブジェクト志向のPythonですが、JavaやC++などの言語を使って既存のシステムにAIの機能を組み込むことも可能です。さらに最先端のJuliaや統計処理に強いR言語もあります。
プログラムの計算処理手順がアルゴリズムで、教師あり学習、教師なし学習、強化学習を中心にCNN、RNN、LSTN、注目を集めているGANなどがあります。
フレームワークは、一部を書き換えて利用可能なプログラムのひな形です。人気のある機械学習のフレームワークにはTensorFlow、PyTorchなどがあります。ライブラリは、プログラムに組み込むパーツ集です。API(Application Programming Interface)は、ソフトウェアやアプリケーションの一部を公開して外部アプリケーションと連携します。これらをうまく利用することによって、効率よく人工知能を構築することが可能です。
分散処理による高速化、分析結果を統合管理するツール、AIによるDevOpsのソリューションなど、その他にも多様なソフトウェアがあります。
仕組みを理解して作る人工知能「何を作るか」
ここから具体的に「何を作るか」の3つの視点から、人工知能の作り方の概要を解説します。
言語処理の人工知能を作る
言語処理の人工知能の事例としては、チャットボット、音声読み上げ/合成、多言語の翻訳、会議支援システム、AIによる検索、ECサイトのレコメンデーション機能などがあります。
言語処理の主な手法は自然言語処理ですが、処理を行うには機械が読むことのできる辞書と、処理対象の文章群であるコーパスが必要です。その後、解析する文書を形態素、構文、意味、文脈のように解析していきます。音声の場合には時間軸の推移が必要になるため、一定の時間に結果を保持できるようなアルゴリズムが求められます。
画像・映像・音声処理の人工知能を作る
画像・映像・音声処理の人工知能の事例としては、顔認証や音声認識、OCRによる手書き文字の認識、ビデオのインデックス作成などがあります。
プログラムは数値化されたデータを扱うため、画像・映像・音声のような非構造化データは、一度、数値化した後に機械学習を行います。現実に存在しない人物をCGで描いたり、歴史的な画家のタッチをまねて新作を描いたりすることが可能です。このように人工知能が創造した作品は、ディープフェイクと呼ばれています。
意思決定・分析の人工知能を作る
意思決定・分析の人工知能は、データサイエンティストにとってはビジネスと密接に関わる重要な分野です。マーケティングデータの分析、売上や販売の需要予測、株価の予測、天気予報、工場の異常検知などの事例があります。
予測手法のひとつに、協調フィルタリングがあります。ユーザーの購買履歴から「AとBを購入したひとは、Cを購入する傾向にある」のように推論します。POSデータやポイントカードの購買履歴など、ビッグデータの情報を利用してデータマイニングを行うため、高速処理を実現するアルゴリズムや実行環境を選択することが重要です。
仕組みを理解して作る人工知能「どうやって学ぶか」
最後に人工知能を搭載したアプリケーションやシステムを作ろうと考えたとき「どうやって学ぶか」について、オンラインセミナー・ウェビナーで学ぶ方法、書籍や電子書籍で学ぶ方法の2つについて解説します。
オンラインセミナー・ウェビナーで学ぶ
プログラミングスクールのほか、システムインテグレーターの実施するAI関連のオンラインセミナーには、無料で受講できるものがあります。Zoomのウェビナーも増加しました。また、Microsoftなどの開発者向けトレーニングを利用するとよいでしょう。
書籍・電子書籍で独学する
書籍や電子書籍で独学する方法もあります。言語が決まっている場合は、『Pythonによる機械学習』のような特化した専門書から学びます。しかし、注意しなければならないことは、IT関連の環境は変化がめざましいということです。最新の書籍以外では、まったく機能などが異なっている場合があるのでチェックが必要になります。
まとめ
人工知能に関するフレームワークやライブラリの拡充、APIによる学習済みモデルの提供によって、人工知能を作るための仕組みが整備され、ビジネスとして稼働するまでの時間を短縮し、開発が効率化されています。
これからはデータサイエンティストやAIエンジニアに限らず、一般的な開発者も人工知能を開発の中に取り込んでいく必要があります。苦手意識がある場合は、人工知能を採用したシステムを利用して、どのような仕組みが使われているのか考察してみることもひとつの方法です。