人間とコンピュータが意思疎通できるとはどういうことか

2016年10月21日に、情報サービス産業協会(JISA)というところが主催するJDMF(JISA Digital Masters Forum)2016というイベントで講演をしました。そこで話したのがこの話…というわけではないのですが、講演の一部を切り取って詳しく解説を書いて協会の会誌に寄稿しました。その文章を掲載しています。

 

コンピュータの力を借りられる人と借りられない人の格差問題

いささか身に余るテーマのような気はするが、人間とコンピュータはどのような関係を持つべきかということを論じてみたい。これを読む方にとって新鮮な話と感じていただければ幸いである。その割にまたその話かと言われる気もするが、将棋や囲碁人工知能が人間に勝ったという話から始める。

 

コンピュータと人間が対峙している場面だけを見れば、確かにコンピュータは人間に勝った。しかしここで視点を変えて、これを人間同士の戦いとして見てみよう。すなわちこの戦いを、人工知能を開発した人間とプロ棋士との戦いだと考えるのである。プロ棋士が持っている将棋の力を100とすると、人工知能の開発者は30も持っていないのではないかと思われるが、勝ったのは人工知能の開発者である。ではその差を埋めたのは何かと考えると、それはコンピュータの力ということになる。つまり人工知能がプロ棋士に勝ったということを人間同士の戦いという視点から見ると、現代では、そこそこの将棋力とコンピュータを自在に操る能力を併せ持った人が、将棋だけを極めたプロ棋士より合計の力が大きくなったのだと解釈することが出来るわけである。

 

将棋や囲碁は閉じたルールの中のゲームであって、またそもそも娯楽であるから、ルールでコンピュータの使用を禁止してしまえば人間同士が競う場が乱されることもない。しかし、その他の場、例えばビジネスの現場ではコンピュータを使ってはいけないというルールはないのだから、このことが意味することはより大きなものとなる。つまり、コンピュータを自在に扱う能力を持つ者は、コンピュータの力を借りることができるので、それが出来ない者に対して圧倒的な優位に立つことが出来るのである。この視点から、近年よく話題になっている「人工知能が人間の職を奪う」という問題を捉え直してみると、人工知能を導入して既存の労働者を追い出す人をコンピュータを使う側だと考えれば、これはコンピュータを使える側とコンピュータを使えない側の格差が広がる問題ということになる。

 

コンピュータを使えると一口に言っても、これには色んなレベルがある。キーボードやマウスなどの入力デバイスを使えるというレベルもあるし、メールやSNSを使えるというレベルもある。そして最終的には、プログラミングが出来るレベルということになるだろう。プログラミングが出来るということがそれまでのレベルと何が違うかと考えると、コンピュータに自分の要望を細かく伝えることが出来るということではないだろうか。既存のソフトでは誰かが用意してくれた機能しか使うことが出来ないが、プログラミングをする人は自分の欲しい機能を表現してコンピュータに伝えているわけである。そもそもプログラミング「言語」というところからしても、これは人間とコンピュータの意思疎通のためのものと言ってもいいのではないか。振り返ってみると、コンピュータで出来ることのそれぞれのレベルも、意思疎通の精緻さのレベルとして捉えられるのではないかと思われる。

 

さて、この話は、コンピュータと意思疎通出来る人と出来ない人の格差が広がるという話としても解釈出来るが、逆に言えば、人間とコンピュータの意思疎通の方法をより簡単なものに出来れば、格差を解消することが出来るかもしれない、という話としても解釈出来るわけである。あるいは、コンピュータに人間の望みを伝える能力を向上させることが、コンピュータを使う人間の、あるいは人類全体の能力を向上させる鍵だという話としても捉えることが出来る。

 

人間とコンピュータの意思疎通という観点から見る人工知能技術の歴史

以上の話を踏まえたうえで、人間とコンピュータの意思疎通という観点から、人工知能技術の歴史を振り返ってみたい。良く言われる通り、現在の人工知能ブームは3回目のもので、それはつまり過去2回のブームは終焉を迎えたということである。では、過去のブームで解決できなかった問題はなんだったのか。それは、人間は自分のしていることを全て記述することは出来ないという問題である。これをコンピュータと人間の意思疎通の問題として見れば、コンピュータに人間がやっていることを説明しようとして失敗したということである。

 

過去の人工知能ブームでは、人間が持つ知識を、「どういう場面ではどういう判断をするか」というルールとして全て書き出そうとした。ここでは、ルールを人間が伝えるという形でコンピュータと意志疎通を図ろうとしたのである。このようにして作られるシステムをエキスパートシステムと言う。しかしこの方法は、医療など限られた分野である程度の成功を収めたものの、ほとんどのケースでは上手くいかなかった。なぜなら、必要なルールがそもそも膨大で、またルール同士が矛盾しないように設計しなければならないが、そのためには無限に例外を考慮しなければならなかったからである。このことを表す身近な例として法律を挙げることが出来る。我々の法律というものは、あれだけ複雑でありながら執行するには人間による解釈を必要とする。これは記述された言葉だけでは全てのケースを網羅することは出来ないと考えられているからである。

 

エキスパートシステムの路線が一度頓挫した後の、つまり今回の人工知能ブームの主役になっている手法は機械学習である。機械学習とは、データを与えて、そのデータの背後に潜んでいる知識を自動的にコンピュータに獲得させる技術の総称である。上記のエキスパートシステムとの比較で言えば、「人間はこういう場面でこう判断した」という結果だけを与えて、ルールに当たる部分をコンピュータに自動的に獲得してもらおうということである。このことをコンピュータと人間の意思疎通という観点から見ると、人間が手取り足取り教えてあげなくてもコンピュータに人間のして欲しいことを伝えることが出来るようになったということであり、これは今までならプログラミングに相当していた部分を代替する技術だと言うことが出来る。現状でプログラミングの全く出来ない人が人工知能技術を使えるとは言い難いが、少なくとも意思疎通の困難さを緩和する方向の流れだと見ることは出来るはずである。

 

ただし、ルールを記述することとデータを用意することで、データを用意することの方が楽だと一概に言うことは出来ない。ルールを記述するにはより専門性が求められるが、データを用意するには収集する手間や正解不正解のラベルを付ける手間がかかるからである。ルールを人間が記述する量と必要なデータ数は一般にトレードオフの関係になるため、機械学習の手法の中にもルール記述に相当する部分は依然として残っている。機械学習の手法として知られているものはたくさんあるが、それらの違いはルール記述とデータ数の比重の置き方の違いだと考えるとすっきり整理出来ると思われる。機械学習の手法の中で現在最も注目されているディープラーニングは、ルール記述とデータ数のバランスで言えば、ルール記述をほとんど行わなくてよい代わりに大量のデータを必要とする手法だと説明することが出来る。振り返って考えてみると、エキスパートシステムを作るのにはデータは必要ないが、しかしこれは一種の錯覚であって、コンピュータがデータを処理する代わりに人間が事前に処理しているからルール記述が可能になっているわけである。

 

ディープラーニングの達成したことは人間とコンピュータの意思疎通という観点からは更に興味深い点がある。これを理解するには、今までルールと呼んでいたものをもう少し細かく分けて論じる必要がある。ルールは実際には特徴とその組み合わせから出来ている。特徴というのはデータの属性のことで、例えばある一人の人間のデータの中の、身長や体重といったような、何らかの意味が見出された、分析の基礎となる変数である。ルールを記述する時は、人手でやるにせよ機械にやらせるにせよ、この特徴同士の組み合わせとして記述するわけである。人手で記述するのであれば、特徴の中で何が重要なのかを自分で記述することになるし、機械学習では、どの特徴が重要なのかを自動的に導き出させることになる。特徴に何を採用するかは基本的に自由であるので、身長や体重のようなプリミティブな(基礎的な)ものと同時に、それを組み合わせたBMIのような複合的な指標を採用してもよい。課題に対して何が重要な変数かということが最初から分かっていれば、それを選んでおけば良い性能が出ることになる。そして、この重要な特徴というものを自動で導き出すことに成功したのがディープラーニングなのである。ディープラーニングが特徴表現学習と呼ばれるゆえんである。ただし、ディープラーニングで導かれる特徴というのは、プリミティブな特徴から作られた新たな複合的な特徴という形になる。ここでエキスパートシステムの話を思い出すと、人間が記述出来ることには限界があるということであった。ディープラーニングが導き出す特徴というのは、まだ人間が意味付け出来ていない特徴であり、それはつまり人間の記述能力を越えるものである。このことによって、人間の記述能力に制限されるボトルネックを突破する手法だと考えられているのである。

 

しかし、人間に理解できない特徴によってルールを表現するということは、人間とコンピュータの意思疎通という観点からすると後退しているようにも思われる。コンピュータの下した判断に対して、どのような根拠でその判断を下したのかということを確認しようとしても、コンピュータのする説明を人間は理解することが出来ないわけである。そうなると、この仕組みを適用可能な範囲はかなり限定されるのではあるまいか。筆者も少ないながらデータ分析の仕事をしたことがあるが、同様の問題意識を持っている方が多かったように思う。実験段階で上手くいくことが分かっていても、それをリリースした実際の場面で上手くいくのかということを判断するには、なぜその結果になるのかについて納得感のある説明をして欲しいという要望がある。これは、クライアントにも求められることが多いし、それ以前に自社の上司に求められることが多いようである。

 

さて、では根拠が示せるような手法はないのかということになると思うが、JDMF2016で講演されていた日立の矢野氏の研究も、産総研の本村氏の研究も、そして僭越ながら筆者の研究もそのような手法を目指したものである。是非そのような観点で彼らの研究を見直していただきたいと思う。根拠を示すためのポイントは、特徴として人間が理解出来るものをまず選んで、その組み合わせでルールを表現するということである。採用した特徴のうち何が重要かを自動的に判断させるわけだが、事前に特徴を厳選するのには専門性が求められる代わりに、特徴をたくさん採用した場合には組み合わせが膨大になって計算時間が長くなる。したがって、そのバランスの取り方や計算時間の圧縮方法が研究対象となる。こうした知見に普遍性が見い出せれば、課題ごとに特徴と目標さえ選んでやれば様々なケースに対応出来る汎用の仕組みとなる。そうなれば、コンピュータと人間の意思疎通のうちの、今までプログラミングが担当していた部分のほとんどをコンピュータに任せることが出来るだろう。彼らと呼び方が一致しているか分からないのだが、筆者はこの手法を「メタシステムからの動的システム構成」という名前で呼んでいる。なお、この手法では特徴を人間の理解出来る特徴に限定する以上、人間の記述能力の限界に縛られるという点でディープラーニングに敵わない面がある可能性は否定できない。このことは、この手法では特徴を「選択」するが、ディープラーニングでは特徴を「生成」するという違いとして整理出来ると思われる。

 

「人間vsコンピュータ」と「人間+コンピュータ」を分けるもの

さて、この文章は人間とコンピュータはどのような関係を持つべきかを論じようとしていたのであった。しかしその話をまとめる前に、一つ問いかけをしてみたい。それは、「我々人間が欲しいのは結果なのか理由なのか」ということである。

 

エキスパートシステムを作るためにルールを書き出していた頃、研究者達は知能とは何かということを必死で考えていた。その営みは、良い人工知能を作るということ以上に、自分達人間のしている活動を解明したいという欲求に基づいていたのではないだろうか。しかし、その問題は難し過ぎて手に負えなかった。そしてその後機械学習の手法が広まるにつれ、研究者達の興味は仕組みより結果に移っていった。そもそも人間の意思決定の仕組みすら解明されていないのだから、他者の意思決定の理由が分からないのと同様に、機械のことも分からなくて良いというのは割り切りとしては正しいと思われる。ただ、こうして人工知能技術が社会に出て行き、専門家でない人に触れるフェーズになった際の反応を見るに、どうも専門家の方が理由を軽視し過ぎていたのではないかと筆者には感じられる。他者の意思決定の仕組みが本当には分からなくても、言葉を交わせば人間は共感出来るというところまで、自分達の都合で割り切ってしまっていたのではないか。

 

ただし前途が暗いというわけではない。機械学習の手法は、良い結果を出した時の内部構造という形で間接的に理由を説明してくれている。これを読み取ることが出来れば、人間が自分達のことを知るための知識としても、エキスパートシステムの時代以上の成果になるだろう。また、そうやって人間側の表現力を高めて行くということが、コンピュータに伝える要望を精緻化していくことにも繋がり、それはまた、よりコンピュータの助けが得られることに繋がっていくと思われる。

 

まとめると、人工知能およびそれを用いたデータ分析の分野には、理由は分からなくても結果が良ければよいという態度と、理由が分からないものはダメだという二つの態度が考えられる。ここで、人間の記述力の限界という原理から言って、理由は分からなくてもよいという態度の方がその時々で達成出来るものは大きなものになると思われる。ただし、理由を得るということも一つの成果として考えられ、それによって人間の能力が向上する分を勘案すると、長期的には後者の態度の方が大きな成果をもたらすのではないか、ということである。

 

そして、いささか強引な議論のような気もするが、将来的に、コンピュータが人間を単に置き換えるものになるか、人間と手を取り合えるものになるかということは、案外こうした態度の違いが分岐点になるのではないかと、今の筆者には考えられるのである。