強いAIの実現方法 ~実用化に向けた実践的な作り方~

強いAIの実践的な作り方を検討しています。メイン記事に主張をまとめています。人工知能関係の書評もあり。なお、今後、任意団体として活動してみたいと考えており、手伝ってみたいという方は是非ご連絡下さい。詳しくは、メイン記事の7を参照下さい。

AIが「意味が分かる」とはどういうことか。弱いAIに欠けているもの

 今回もポエム色が強いので、ひとりごと扱いにしようかと思ったが、思ったより固い話ができたので、普通のエントリとする。
 完全に余談だが、カタカナで3文字以上の技術用語の最後は延ばさないのがJISで決まっているそうな。エントリーでは無くエントリで良い。リレーは、リレでなくリレー。

 本ブログの基本的な主張である、強いAIを作るには外界、身体、脳モデルが必要である、それはソフトウェアで実現すれば良いというところは揺らがないが、外界、身体モデルの構想はある程度進められるとしても、残る一つの脳モデルを考えようとすると進まない。
 これは当然でもあり、1950年代から延々と天才たちが考えてきて成果が出ていないのだから、欲求をいれれば良いのではないかぐらいの思いつきで解決するはずがないのである。
 自分のオリジナリティは、「構成論的アプローチ」に取り組むのに実世界でロボットを動かす必要は無いというところ、外界を言語の枠組みで構築すれば良い、すなわち脳では無く外界、身体の記号化を進めよ、というところにあるので、次回以降、基本に立ち返り、基本原理を整理するとともに、簡易なモデルにおいて原理の有効性を示す、という形で作業を再開させようと思う。

 今回はその前に、脳モデルの構想を考える最後のあがきとして、意味が分かるとはどういうことか、について、分かりやすく整理を試みた。これは実は、メイン記事の1に相当する内容だが、メイン記事1が出来ていない。

 弱いAIと強いAIの間のギャップの一つに、弱いAIには意味が分からないという指摘があり、シンギュラリティ否定派の根拠の一つとして取り上げられることもある。
 バナナの写真を見せて、これはなんだと聞くと「バナナである」と出力するAIは、機械学習の進展により実現できるようになった。汎用的な画像識別すら出来るようになったのは、一昔前の画像処理技術からすると驚異的である。

 しかし、実際には以下のことが起きている。

  • AIに、バナナが写った画像データを入力する
  • AIは、「バナナ」と出力する
  • 人間が、AIに入力した画像データと、AIの出力結果を見比べ、「AIがバナナを識別した」と解釈する。

 すなわち、バナナの意味を扱っているのは人間であり、AIでは無い。AIは、機械学習によりプログラムされた結果を出力しているのみである。ここを理解せず、AIがバナナを理解した、というような記事も見かけるので注意されたい。AIが意味を扱うには、まずバナナを食べる身体と、外界においてバナナ自体が必要であるというのが、本ブログのスタートになっている。

 また、古い話だが、IBMのワトソンがクイズ番組でクイズ王を破ったという例も同じであり、ワトソンの出力が正解であること、クイズ王より正解率が高いというのは人間の観測結果であり、こちらでもワトソンはプログラムされた通りに入力に対し出力を行い、その出力がクイズの正解だった等の、意味を扱っているのは人間である。ワトソンは、クイズに正解したいとか、クイズ王になりたいとかは全く考えていない。

 このように、弱いAIはプログラムされた通りに動作するプログラムであり、意味を扱っていない。弱いAIプログラムの強化によりチューリングテストに受かるようなAIが出来たとしても、意味を扱うことが出来ない以上、一応意味を扱っているように見える人間の知性には及ばず、強いAIにもならないのである。

 繰り返しになるが、本ブログでの主張は、意味は外界にあるので、意味を扱うには外界、身体、脳の相互作用を扱わなくてはならず、そのためにはAI本体以外に外界、身体が必要である、ということだ。また、外界、身体をロボットや実世界に求めても上手くいかないので、全てソフトウェアでやるべきであり、人間は意味を扱うのに記号を用いているから、外界、身体も記号で表現すれば良い。

 では、外界、身体のモデルがソフトウェアで用意できたとして、脳モデルがどのように動作すれば、人間と同じように意味を扱えたと言えるのか。本エントリの最初に書いたように、簡単にこうすればよいと言える問題では無いのだが、整理を試みる。
 以下は、バナナと人間の関係を、バナナとエージェントで実現するには、どのようなことが出来なくてはならないかのリストである。

  • エージェントがバナナを見たら、「バナナ」と出力する
    →脳モデルでプログラム出来る。ただし、あらゆる見たものを出力するのかというと、いわゆるフレーム問題が頭をもたげてくるであろう。しかしこの問題は、エージェントをプログラミングする際に意識をすれば、解決できるように思う。

  • エージェントには身体があり、バナナなど食べ物を食べないと死んでしまう
    →そのようなモデルを組むことは出来る

 問題は以下である。

  • エージェントは、食べ物を食べたら空腹が改善されることを知っている
  • エージェントは、空腹時に食べ物を食べたいと思う
  • エージェントは、空腹時に食べ物を探しに行こうと思う
  • エージェントは、空腹時に食べ物を見つけたら、食べる

 特に、「食べ物を食べたら空腹が改善されることを知っている」、すなわち食べ物と空腹の因果関係を知る、というところが難しい。ここが分かれば、他も出来るのではないか。
 食べた時の空腹の改善具合を強化学習で学習する、という案はあるが、強化学習は基本的に動作に対する報酬を学習する。すなわち、空腹になった時に食べ物を食べて空腹が改善されたことを学習すれば、空腹になった時にまた食べ物を食べるであろう。しかし、それは「改善されることを知っている」とは違う事象である。

 強化学習による行動最適化と「改善されることを知っている」の隙間にあるのが、自意識というものなのだろうか。思えば、空腹の時に食べ物を食べるのは動物でも出来る行為であるが、人間と動物の間にある違いは何か。言語能力なのか。例えば実際の動作の前にシミュレーションをして、その結果を見て「空腹が改善されることを予測する」のであろうか。あるいは、動物と人間の間にそれほど違いは無いのかもしれない。いずれにせよ、この「隙間」を埋める脳モデルを実現できるかが、肝心な部分であろう。

 「~ということではないだろうか」という終わり方は、特に結論を出しておらず、AIで心を実現するには…というようなタイトルで良く出てくるフレーズであり、ブログ筆者も全く好きではないのだが、今回は仕方がない。もともと、外界と身体モデルを構築し、あとは強いAIを実現するには脳モデルをいろいろ試していけば良いという立場からスタートしており、結論が出るにはシミュレーションによる試行錯誤が必要である。

 脳モデルを作るには入力層を定義しなくてはならず、どのような脳モデルを作りたいかを考えなくてはならないというのを以前述べており、ここで足踏みをしているのだが、冒頭でも書いたように、次回以降、

・強いAIを実現するための基本原理を整理する
・簡易なモデルにおいて原理の有効性を示す


という形で話を進めていく。