「人工知能」と「機械学習」の違い

最近流行の「人工知能」ですが、一時期ほどのブームは去って、すこしずつ落ち着いてきた気がします。ハイプサイクルの峠を越えたのかもしれません(実際にガートナーの発表する2018ハイプサイクルを見てみると、本当に人工知能は峠を越えていました。2017年は絶頂期でしたね)。猫も杓子も人工知能というバズワードとしての時期は過ぎて、だんだんと、何ができて何ができないのか、どう使えば良いのかという知識が浸透してきているように思います。峠を越えたことは悪いことではありません。峠を越えてからが本当の実用期ですので、これから人工知能は様々に分化して、いろんなところで実用化されていきます。

ところで、その人工知能ですが、一時期のバズワードであったこともあり、その言葉の定義が使う人によって様々です。つまり、「人工知能」という言葉から想像している範囲が人それぞれ全然違う。

技術系の人ですと、技術的側面から人工知能を見れば、その計算方法をもって「人工知能」と言いたくなるように思います。つまり、人間の脳を模倣した学習と模倣を計算科学的に構成したソフトウェアであるニューラルネットワークコンピューティングを指す。おそらく、これが最も狭義の人工知能の定義でしょう。一方で、応用的側面、アプリケーション側から見れば、その挙動を持って「人工知能」と呼びたい。つまり、そのオブジェクトがあたかも知能を持っているかのように振る舞えば、もしくは、問いかけに対して知能を持っているかのような応答を返すのならば、それは人工知能であると。それらの中間に、エキスパートシステムや機械学習など、アプリケーション側から見た人工知能を技術面から掘り下げたようなキーワードが沢山あります。

そのような様々な定義のうち、どれを想像しながら「人工知能」と言っているかは、そのフレーズが含まれる文脈に大きく依存します。逆に言うと、誰かが「人工知能」と言う言葉を用いたとき、どういう視座から、何を指して「人工知能」と言っているかを正しく推測しなければ、発信者の意図を読み取ることはできません。だから人工知能は難しい。

ところで、「機械学習」は技術的用語です。ある範囲の計算ロジックの中で、データから挙動を読み取り、その挙動を模倣する方法論、もしくはそれを実装したシステムを指します。こちらは言葉の定義にある程度のコンセンサスがあって、誤読する余白があまりありません。人工知能との関係性で言うと、狭義の人工知能、すなわち、ニューラルネットワークを用いた模倣の方法論は機械学習の一種ですから、その意味での人工知能は機械学習に含まれますが、アプリケーションとしてあたかも知能であるかのように振る舞う仕組みがすべて機械学習であるわけではないし、機械学習の仕組みであっても知能であるかのような振る舞いをしないシステムも数多くあるので、機械学習と広義の人工知能は互いに包含関係にはありません。人工知能の定義にはその他にも沢山(人の数だけ!)あるので、ここで全てを網羅することはできません。ベン図で示すとこんな感じ。外側の人工知能と書いてあるところがここで言うところの広義の人工知能、内側のニューラルネットワークと書いてあるところが狭義の人工知能です。

一つ例を。お正月にウチの子が祖父にピカチュウのおもちゃを買ってもらいまして。これが、何か音を立てると、それに反応して音のする方向を向いて話しかけてくる。ですから、子供が「ピカチュウ!」と声を掛けると、あたかもそれに応じてそちらを向き、「ビカビカ」とか言っているように見える。さてこれは人工知能か。何度か続けると、特定のいくつかの言い回しを繰り返しているだけということがわかるのですが、そこに至るまでは、あたかも知能であるかのように見える。私にとってそれがどう見えたかで人工知能を定義するならば、人工知能の定義は多分に主観的です。数回試した人には人工知能に見えて、もっとたくさん試した人には人工知能に見えない。そもそも、ピカチュウ語に無理解ならば人工知能とは思わないし、ピカチュウの言っていることにも何か意味があるのではないかと感じる人ならばピカチュウを知能と感じ、その言葉を理解しようとする。アプリケーション側からの人工知能の定義はこのように非常に主観的で曖昧です。他方、このピカチュウは機械学習か(つまり、機械学習を用いた刺激反応をするか)と問われれば、否です。外側から機械学習かどうかを判定するためには、何度も繰り返して様々な刺激に対する反応を観察する必要があり、そうするとこのピカチュウは、「音のする方向を向くこと」×「数個の発声をループすること」で構成されていることがわかるので、これは機械学習でないと判定できます。

まとめると、「人工知能」は主観的な用語であり、コンテキスト依存です。一方で「機械学習」は客観的な用語であり、ある特定の技術要素またはそれを用いたシステムを指します。そのように理解しておくと、あまり困らないと思います。

この記事が気に入ったらサポートをしてみませんか?