最近pythonネタが続いてしまったので、原点に立ち戻り、考えを進めたい。
もともとのブログの趣旨は、外界及び身体モデルを作って、あとは脳モデルをいろいろ試していけば良いということだった。しかし、身体モデルを作る場合でも、直結する脳モデルの構想が無いと、脳モデルへの出力の形をどうすれば良いのか分からないので、具体的な実装が進まない。
身体モデルの構成要素は、大まかにはセンサ、アクチュエータ、ステータスに分ける。狩猟時代の人間レベルを目指すものとして、
- センサ
視覚、聴覚、味覚、気温… - アクチュエータ
摂食、移動、発声、攻撃、生殖活動… - ステータス
性別、年齢、体力、疲労、空腹感、睡眠…
等を作るのは、オンラインRPGのエージェントを作るのと似たような形になるが、出来るであろう。
これらの「身体」と「外界」があるとして、問題は、
「未知の状況において、知性に基づいた行動をとるにはどのような脳モデルが必要か」
ということに集約される。いくつかのパターンに分けて考える。
- 強化学習
人間は一見考えて行動できるようにみえるが、全て学習の結果であるとして、DQN以降の高度な強化学習で実現できるのでは、という説。ただし、強化学習が汎用人工知能を実現したという話は出て来ておらず、汎用人工知能実現のためにDeepMind社を立ち上げた天才Demis Hassabisでさえまだ辿り着いていない。
本質的に、プログラムされたことの中から何かをやってみる、やってみて報酬で学習していくという手法であり、未知の状況においてどうすれば良いか考える、ということは、少なくとも強化学習だけではできないであろう。 - 世界モデル系
なにかの行動をとる前に、こうしたらどうなるかを脳内でシミュレーションして、その結果をみて判断するということが行われているのかもしれない。一部で行われている、世界モデルを脳に構築する、ことで、このような手法が取れるであろう。ただし、フレーム問題の最後にひっかかると思う。すなわち、選択可能なあらゆる行動についてシミュレーションをする必要が出てくる、ということだ。
あるいは、そのシミュレーションを強化学習でやっておけば、いつもあらゆる選択肢を試すということは必要ないのかもしれない。ただし、行動の選択肢がプログラミング済みであるという話は残る。
- リアクティブ+言語型
センサ入力に対する反射的行動が生物の基本原理であり、人間も同じ原理にて動いているという原則を元に、言語能力も反射的行動であるとして、あらゆるセンサ入力に対しなにかをしゃべり、及びそれを自分が耳にしてまたしゃべるような形での行動を行わせてみる。会話で人間が喋る内容は実は反射的であり、口から自然と言葉が出てきているはずだ。
誰かがものを投げているのを見ると、自分が投げる動作をする時に反応するニューロンが同じように反応すると言われているが、「Bがボールを投げた」とAに発声させることで、AがBの動作を理解したことになるのかもしれない。ここには、ソシュールが提言した言語の魔力が潜んでいる。すなわち、人は言語で認識する、ということだ。
自分がしゃべり、それを聞いてまた自分がしゃべるのは、2台の対話エージェントが機械的に話を続けるのと似ている。ただし、普通の対話エージェントは、膨大な会話事例を元にこういう入力に対しては統計的にこう喋るのが良いという出力をしているので、身体と外界に対話が結びついておらず、会話に意味が無い。本ブログで提唱しているように、身体と外界モデルを用意した上であれば、意味を伴う会話に近づく。従来とは違った試みにはなるであろう。
ただ、対話エージェントのように機械的にしゃべるのと、意味を分かってしゃべるのと間を埋めるには、まだ何かが足りていないと思われる。
少なくとも、言語能力が無いのに知性があるという状況が想像できないので、言語能力自体は必要だ。言語能力“だけ”で知性が生まれるというものではなさそうであるが。
-
欲求ドライブ型
いわゆる弱いAIは、プログラムされたことしか出来ない。ディープラーニング等の機械学習は、人間には手におえない複雑なプログラムを実現できる、いわば弱いAIの強力なプログラミング手法である。強化学習は、環境に対し、"予め用意された"行動選択肢から行動を選択し、報酬を評価することで自律的にプログラミングが進むが、学習のためにまず行動をしなくてはならず、やってみた結果を使ってプログラミングをしていく手法である。それらの既存スキームから離れ、プログラムされていないことをAIプログラムがやるにはどうすれば良いか(自己矛盾しているさまが面白い)。
人間でも、どうしようかと考えこんだ時に、こうすれば良いんだとひらめくことがある。仕事をしていて良いアイデアが出た時に、なぜ自分はこれをひらめいたのだろうと考えると、必死に考えているからなのだが、解決したい、という欲求が裏にあるのではないかと思う時がある。すなわち、知性とは欲求であると。
脳内には欲求以外にも報酬系があり、報酬系の報酬が高くなるように人間は行動しているだろうが、その報酬を高くするように行動を促すのが欲求であると思われる。欲求自体は動物にもあるので、欲求だけだけでは駄目であろうが、今まで上げてきた項(強化学習、脳内シミュレーション、言語能力)等と比べ、脳が自ら行動を起こす要素となっており、強いAIの実現にあたって、大きな役割を出来るのではないかと期待する。 -
意識型
そもそも、強いAIの提唱者であるサール自身による強いAIの定義が「意識がある」ことなので、「意識」を再現した脳モデルにするべきなのかもしれない。ただ、意識ってなんだ?という話がまず出てくる。入力に対し反応する回路が動いているのか動いていないかの違いなのであれば、プログラムが動いている時点で意識がある、と言えるのかもしれない。別の定義で考えられるのは、自分が喋って自分で聞いてというループがずーっと成立している時かもしれない。
逆に、サールが言いたかったことは、ブログ筆者が上に書いた「プログラムされていないことが出来るプログラム」程度のことかもしれない。私自身は「意識」を意識してプログラミングしなくても良いと思っている。ただ、意識が有るがゆえなのか、人間がシングルタスクである、ということは活用していきたい。 -
全部のせ
今まであげてきたもの全てを何らかの形で導入した脳モデルを持ったエージェントを作るべきなのだろうと思う。特に、欲求、言語能力、ミラーニューロン、強化学習。
欲求は、強化学習にあたり行動の選択を絞る役割があるのではないか、等、創造の幅が広がる。あるいは、強化学習で評価を上げる、ということ自体が欲求なのかもしれないが。
世界モデルを作って脳内でシミュレーションをすることは、「こうすればいいんだ」と喋ることと同じかもしれないので、積極的には取り入れない。 -
感情、クオリア
良く、AIには感情があるのか、という話が出る。感情は、人間にとっては次に取る行動を左右するとともに、現状のステータスを(外からも)分かりやすくしたり、怒りの感情によって行動力を強化する、哀しみによって精神的に楽になる?等、人間の行動のなかで大きなウェイトを占めてはいるだろうが、知性、との結びつきがあるとは思えない。身体モデルを構築していくなかで、究極には辞書に載っている要素は全て実装していきたいので、何らかの形で導入することにはなると思う。
クオリアは、そもそも定義が良く分からない。美しいという質をクオリアと呼んだりするようではあるが…。なにかを見て美しいと思うこと自体は、辞書にも載っており実装していきたい内容ではあるので、実プログラミング段階で実装方法を考えていけば良いと思う。
まとめると、欲求、言語能力、ミラーニューロン等を意識して強化学習型のエージェントを作ってみるということになる。欲求と報酬系がある時点で、強化学習ではなくても良いのかもしれない。
まだ根幹が整理しきれていないが、次回で、プログラム全体の構造が整理できるような気がする。