強いAIの実現方法 ~実践的な作り方~

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

人工生命エージェントへの言語能力の付与について(その1)

 前回、本ブログで想定している、人工生命エージェントに付与する言語能力の方針について述べた。端的に言えば、

  • 探知→反射のループの延長線で言語能力を付与する
  • 会話BOT型は採用しない
  • 自分の発言を聞いてまた発言するフィードバックループが形成される

 という3つである。

 今回は、上記を原則としながら、エージェントに言語能力を付与するプログラム構想について検討を進めていく。

※以下、やや軟調な文章が続くかもしれないが、話を分かりやすくするためであり、最後まで読んで頂ければと思う。また、論旨を最後にまとめた。

 

 本ブログで目指す、強い人工知能、あるいは深層人工生命エージェントの最初のゴールを、「プログラミングされていないことを思いつく」ということにする。
(最後のゴールでもいいかもしれませんが…)

 また、人工生命プログラムとして、食べ物を食べないと死んでしまう、食べ物を探しにいって持ち帰る、等を実現するエージェントを例とする。

 この程度のエージェントのプログラミングは簡単でありながら、プログラムされていないことを創発する、という原理実証も出来ると考えられるため、しばらくはこのプログラム構想の中で議論したい。また、そろそろ、プログラミングを始めていかなくてはならない、という事情もある(^^)

 目指すエージェントは、単純な例として、食べ物を探して家に持ち帰って食べるエージェントのプログラムがあった時に、「在庫がこれだけあるから今日は食べ物を探しにいかなくてもいいや」ということを、プログラミングされなくても思いつくエージェントである。

 在庫状況を探知して一定量以上なら今日は行かないという条件式を埋め込まれたり、ある条件の時には食べ物を探しに行かないということが最適解であると強化学習で学んだりするのではなく、創発として思いつかなくてはならない

 上記を実現するために、言語が果たす役割を分解し、理想的には個々のプログラミングを実現できる程度まで分解して、それらを実現して組み合わせる、ということを考えてみる。まず、大きく3つに分ける。

(1)
「食べ物」という単語に対し、これが、エージェントが口にすると食欲が満たされ体力を維持する栄養を吸収できる実体としての食べ物のことを意味していると理解すること

 (2)
「食べ物」を探しに行くと疲れる、明日探しに行っても明日の分は手に入る、今日食べる分は在庫がある、など、こうするとどうなるか、ということを理解すること

 (3)
  (2)で出てくるかもしれない無数の選択肢から、今日これから「食べ物」を探しに行かなくても良い、という結論を出せること。

 もちろん、(1)は記号接地問題に関連しており、(3)はフレーム問題に関連している。(2)は、言語によるシミュレーション能力、あるいはミラーニューロンの作用かもしれない。

(3)を解決する枠組みの見通しがあるわけではないが、(1)(2)については、プログラミング技術上の問題とも言えるので、それぞれの準備を進めていく。本エントリーでは、(1)のみを議論する。


(1)「食べ物」が食べ物であるとエージェントに理解させる。

 これは一見記号接地問題のようだが、既存の人工知能プログラムと比較し、本ブログでは以下の大きな利点がある。
 まず、本ブログで目指すプログラムは、身体モデル-外界モデル-AIモデルの3者の組み合わせであり、身体モデルと外界モデルにより、食べ物がエージェントにもたらす意味は実作用としては定義済みである。
 また、記号に基づいて身体と外界を構築するため、食べ物と「食べ物」はすでに一体である。すなわち、記号接地問題として取り上げられる問題のうち、概念と記号の対応、はすでに取れている。これは、ソシュールの言う「記号が概念を作る」という原則をもとにプログラムの構想をまとめているためである。

 上記から、プログラム上の問題は、「食べ物」という単語が、実体としてすでに外界モデルに存在する食べ物のことであると、エージェントが認識するにはどうすれば良いか、という問題になる。
 

 あらためて、エージェントが「食べ物」を食べ物であると理解するための段階を整理する。「」は記号を意味しており、「」が無い場合は実体としての食べ物を示している。 

①食べ物がエージェントの身体にもたらす作用自体
②食べ物の作用(食べた時に食欲が解消される)をエージェントが理解すること
③「食べ物」が②の食べ物であることをエージェントが理解すること

 ①は、本ブログで当初より主張している、外界モデルと身体モデルを用意することで解決している。
 ②は、強化学習の手法で食べることを学習するということでは実現できない。②はとばして③に進む。

 ③について、まず、言語は習うものであることから、②の食べ物を「食べ物」と呼ぶんだよとエージェントに教えてあげれば良い。言語の創発や自己組織化の機能は、人間には備わっているかもしれないが、まずは不要である。

 しかし、エージェント側に名前を教えてあげるには、エージェント側に名前を学習するシステムが必要である。ここが今回の肝心なところであるが、ようは「これは何?」と問いかける主体が必要なのだと思う。

 強いAIを作るということは、主体的に考えるAIを作ることとも言えるが、そのために、まず主体が必要であるということになり、トートロジーのようにも見えて面白い。実際には、一周してスタートに戻ってしまっているということはなく、プログラム上、主体に相当するものを創造すれば、③のように言語を学ぶことも出来るだろうし、②のような、行動に伴う結果を理解する、というメカニズムも実現できるだろう。

  本ブログにおいては、身体モデルと外界モデルの見通しはあるが、AIモデルについて見通しがなかった。今回考察したように、「これは何?」と問いかけるような、主体をAIモデルに導入することを、次回検討してみようと思う。

 言われるまでもなく、デカルトの「我思う、ゆえに我あり」という結論のようになっており、身体と心の二元論ということであれば、AIには身体が必要であるという本ブログのテーマから相反する内容かもしれないが、AIモデルに導入する主体が、身体と一体になった主体であることを忘れずにいれば、大丈夫ではないかと思う。

 なお、ソシュールの主張である「記号が概念をつくる」という意味を突き詰めると、②と③は実は一体であると考えられる。すなわち、「食べ物」という記号があって始めて、食べ物の作用をもたらす存在の概念が生まれ、その概念こそが、作用の理解なのであると。
 これは直感に反するようにも思える。食べ物を食べたら実際に食欲は解消され、それは「食べ物」という記号があろうがなかろうが変わらない。

 ただ、言語能力が無ければ概念自体が無く、知性も生まれないということであれば、「食べ物」という記号があるからこそ、食べ物を食べた時の作用を理解できるというのは正しいと思う。ソシュールの考え方は本ブログにおいて根幹となっており、ここはブレたくないと考えている。したがって、エージェントに導入すべき主体は、言語を扱うことで概念をあやつる主体である、と言える。

 余談だが、犬は言語をあやつれないので、食べ物の作用を理解していないし主体もないのだろうか。主体はあるように見える。あるいは、ごく単純な言語(音声以外の手段も含め)はあり、極めて限定的な概念は有しているのかもしれない。

 

 長くなったので、本稿の趣旨をまとめる。

  • プログラムされていないことを思いつく人工生命エージェントを実現するために、以下の3つの機能が必要と考えられる
    (1)「食べ物」を食べ物と理解する(記号接地問題)
    (2)こうするとどうなるか、あーするとどうなるかを理解する
    (3)こうすれば良いと、プログラムされていないのに思いつく(フレーム問題)

  • まず(1)を実現させるための議論を進める
  • 食べ物モデルと身体モデルは用意しているので、食べ物が身体にもたらす作用は実現できる
  • 「食べ物」が食べ物であることをエージェントが理解するには、「これは何?」と問いかける主体が必要。すなわち、エージェントはまず主体的であるべき。
  • 「食べ物」という記号により食べ物の概念が生まれるというソシュールの主張を踏まえ、「食べ物」を食べ物と理解する主体をプログラミングしていく
  • 次回、人工生命のエージェントに主体を導入することを検討する。