「AIって何ができるの?」に答えることがなぜ難しいのか
一応、機械学習エンジニアという肩書で働いているということもあって「AIって何できるの?」と仕事中に質問を受けることがよくあります。
画像認識などの具体的なものを示して、「こういうタスクならできます」と返すことが多いのですが、 具体的過ぎて、AI関連技術の可能性を感じてもらう、面倒臭さを知ってもらうには今ひとつ説明不足だなと感じています。
一方で、何をどう説明するとそれをイメージできるようになるかというのも難しい問題で、AIという言葉が持つややこしさ、機械学習技術の厄介さが絡まって、非常に説明しにくいことになっています。
この記事は、その辺りの説明が難しいと感じている部分を、自分の中でも整理するためにまとめたものです。
同じ悩みを抱えている方、「AIって何ができるの?」と疑問に思われている方のご参考になれば幸いです。
目次
AIとはそもそも何なのか
そもそもAI・人工知能とは何でしょうか?
その疑問について調べるため、人工知能学会が監修した「人工知能とは」を参照してみましょう。
- 作者: 松尾豊,中島秀之,西田豊明,溝口理一郎,長尾真,堀浩一,浅田稔,松原仁,武田英明,池上高志,山口高平,山川宏,栗原聡,人工知能学会
- 出版社/メーカー: 近代科学社
- 発売日: 2016/05/30
- メディア: 単行本
- この商品を含むブログ (5件) を見る
この本では、トップレベルの研究者の人工知能に対する考えがまとめられており、「知能とはなにか?」や「人工知能とはなにか?」といった質問に研究者一人一人が答える形式でまとめられた本になります。
松尾先生執筆の「はじめに」には「人工知能とは、人間のような知能を、コンピューターを使って実現することを目指した技術あるいは研究分野」という定義が紹介されています。
しかしこの本を読み進めていくと(「はじめに」も書かれているように)、研究者間でも人工知能に対する意見の統一がなされていないということがよく分かります。
何を作る事ができたら人工知能と呼べるものになるかだけでなく、そもそも「知能」とは何かというレイヤーでの意見の違いがあることが見て取れます。
そしてこの傾向は、研究者だけでなく一般の人たちの間でも同様ではないかと思います。
そのため、「こういうことができたら人工知能って言えるよね」や、「人工知能というからにはこれくらいできるだろう」など、「AIって何ができるの?」に対する説明の出発点と着地点から意識合わせを始めなければいけません。
このことは、「AIって何ができるの?」に答えることを難しくしている要因の一つになっていると考えられます。
AIに必要な要素
では、「人工知能には統一の見解がないなら、何ができるかわからないのは仕方ないな」となるかというと、残念ながら当然そうはいきません。
説明が求められているのは抽象的な概念の話ではなく、巷で話題になっているAIについてです。実際に説明を求めている人も、そこに焦点を当てて「何ができるのか?」と質問されてきていることでしょう。
こうなると一番簡単なのは、AIと呼称されているものの事例をあげることですが、始めに書いたとおりこの方法ではあまり本質的なことを伝えることはできません。
説明を求めている人もそこまで深い理解は欲していないかもしれませんが、可能であればより深い理解を持って頂き、活用方法などの次のステップの議論をスムーズに行えるようになって欲しいわけです。
そこで、AIを捉えるために共通に使用しやすいフレームを導入したいと思います。それは「認識・判断・行動」という3つのモジュールから知能は構成されるというフレームです。
これは、三宅陽一郎さんの「人工知能の作り方」で、エージェント・アーキテクチャに関する説明で紹介されている、知能とは「認識の形成」「意思の決定」「運動の構成」を行うモジュールで構成されている説明をより単純化したものです。
また、対話システムでは「自然言語理解」「対話管理」「自然言語生成」の各モジュールにシステムの構成を分けることが一般的で、この構成も「認識・判断・行動」のフレームにまとめて捉えることができます。
人工知能の作り方 ――「おもしろい」ゲームAIはいかにして動くのか
- 作者: 三宅陽一郎
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/06
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
先程「人工知能のに関する統一の見解は存在しない」と述べたばかりでなんのことやとなられたかと思いますが、 このフレームは現実に「AI的」と人に判断されるために試行錯誤している分野のシステム(エージェントと呼ばれるようなシステム)を包括的に説明する際に非常に扱いやすいものとして使われており、また、いわゆるAI系のシステムの多くもこの枠組で説明することができます。
例えば、見に付けている洋服の画像をもとにコメントを返す、ファッションチェックシステムを考えてみましょう。
非常に「AI的」なシステムですが、このシステムは以下の3つのモジュールから構成されます。
- 認識:服の認識(種類や色、サイズ感など)
- 判断:服の組み合わせによる得点の決定
- 行動:得点や認識した服に基づいてコメントを生成
このシステムは、非常に良いバランスで今のAIシステムを表していて、認識・行動・判断のそれぞれのモジュールで必ずしも機械学習技術が使用されているわけではありません。
認識は機械学習を利用した画像認識モジュールを使われることも多いでしょうが、 判断の部分は機械学習にするかルールベースにするか五分五分、 行動の部分は人手でテンプレートを用意して、それに変数をはめていくルールベースのプログラムで実装されることがほとんどだと思われます。
AI≒機械学習と捉えることも最近では多いですが、上記のようにシステム全体として見たときに全て機械学習で構成されていることはかなり珍しいと言っても良いでしょう。
むしろ、チャットボットやゲームAIのように、振る舞いをセンシティブにコントロールしたいようなシステムや機械学習がそこまで得意でない領域のシステムは、全てのモジュールが人手で作ったルールやアルゴリズムをプログラムで実装していることの方が多いのではないでしょうか。
また、組合せ最適化のような高度な情報科学の技術が使用されているが、問題にアプローチするためのアルゴリズムは人手で与えているというようなシステムも多くあります。
ここで重要なことは、知的に見えるかどうかということに(つまり人工知能と言えるかどうかに)、必ずしも実装技術は関係ないということです。Deep Learningや機械学習がバズワード化してしまったため、この認識を合わせることが必ずしも容易ではないことが、説明を難しくしている要因の一つだなと感じています。
機械学習技術とはどういうものなのか
さて上記まででは、主に人工知能に焦点を当てていましたが、ここからは機械学習についての話に移りたいと思います。なぜなら、機械学習の代替語としてAIが使用されることも多くなってきたためです。
とはいえ、機械学習についての説明が簡単かというとそうではありません。
私は、機械学習を「データを説明するためのルールの一部をデータをもとに生成する技術」と認識していますが、この説明は観念的で、機械学習が目指すものは説明できていますが、「今の」機械学習技術については説明できていません。
一方で、それを説明しようとすると、事例をもとに長々と説明する必要に迫られます。なぜなら、機械学習研究者も、自身が用いている手法について必ずしも挙動を全て説明することはできず、経験論的な説明しかできないためです。
アプリケーションとしてどのような振る舞いになるのかだけでなく、なぜその手法でデータに最適化できるのかといった手法の根本的な部分ですら、数学的な論理性で説明することができていないものも多く存在しています。
つまり、機械学習とは絶対こうなるという保証が難しい技術分野なのです。
一方で、事例ベースの説明だけでは、機械学習の可能性や困難さをうまく伝えきれません。一例ですが、下記のような点をうまく扱えないと感じています。
- 実現されていないシステムであっても、データさえあれば実現できるかもしれない
- 実現したいことに合わせて、データからルールを生成するためのルールを、新たに作る必要がある
- 類似のシステムであっても、データの内容や種類が変わるだけで、そのまま適用するだけではうまくいかなくなる
まとめると、機械学習は、人間の試行錯誤とコンピューターの試行錯誤(計算処理)の両方が必要になる分野ということです。また、実現したいことに合わせてその試行錯誤が必要で、汎用的に適用できる手法があるわけではないという点も重要です。
これらは、「人工知能」ひいては「知能」という響きのもつ汎用性から大きく乖離してしまっています。
何でもできるわけではないが、何ができるかも断言できない。この点は、AIができることを説明することを難しくしている、最大の要因ではないかと思われます。
最後に
「AIって何ができるの?」に答えることがなぜ難しいのか、というテーマで、本記事では以下の3点を説明を難しくしているポイントとして挙げました。
- 「人工知能というからにはこれくらいできるだろう」という認識が人によって違う
- 知的と感じる振る舞い(人工知能)を実現する方法は、機械学習に限らず、人手で設計したアルゴリズムでも可能
- 機械学習技術は、何でもできるわけではないが、こんな事ができるとも断言できないものである
逆に、この3点をうまく伝えて、「AIって何ができるの?」に答えることは難しいんだ、と知ってもらうことでしか本質的に理解してもらう方法はないかなとも感じています。
いや、もっと難しい点はいっぱいあるだろや、こう説明すれば結構うまく伝わるなどあれば、ご指摘いただければ幸いです。