表現形式なき知性 - Rodney A. Brooks, 1987
この文章は Rodney A. Brooks の論文 「Intelligence without Representation」および 「A Robust Layered Control System for a Mobile Robot」を 読んで新山が理解したことをまとめたものです。
Related links
この論文では、Subsumtion Architecture の概要について 紹介している。まず Brooks は従来の AI (というか、知的ロボット) の設計手法における欠点を指摘し、あるべき手法は どのようなものであるか、その根幹となる哲学を説明する。 これは自然界における進化のアナロジーを応用したものである。 つぎに、そのような手法を実現するためのアーキテクチャとして Subsumtion Architecture を紹介し、その簡単な概念について述べる。
(ようするに、これは Subsumtion Architecture を正当化するための Brooks の屁理屈)
初期のころの GOFAI (Good Old Fashions of AI) では、 複雑な問題はいくつかの適切な「層 (layer)」に縦に 分割して解決するのがよいとされてきた。 たとえば実世界で動く知的なロボットをつくりたいとする。 かりに、そのロボットは3つの層 (モジュール) 「認識」「プランニング」「動作」に 分けるとしよう。すると研究者はそのロボットの各モジュール (モータ制御とか、画像認識とか) を完璧にしようと努力することになる。
しかし、このアプローチにそもそも間違いがあると Brooks は指摘する。 ロボットが動きだすためには全部のモジュールを作りあげる必要があるが、 そもそも各モジュールを設計している段階では、それが全体として ちゃんと動くかどうかはわからない。状況を把握し、最終的に行動を決定するのは プランニングのモジュールであるので、まず認識モジュールは 世界の状況をある表現でプランニングモジュール用に伝える。 プランニングモジュールは全権を委任されており、つまりシステムは 究極的にはこの表現形式でものを考えているといえる。 プランニングモジュールがシステムのすべてを把握し、すべてを 中央集権的に管理しなければならないのだ。 しかしこのような中心的表現 (central representation) をつくる 試みはうまくいかない。なにしろ、どんな複雑な状況も完璧に表せる 表現形式なんていきなり作れるものではない。そこで研究者はまず 問題を単純化し、「実世界」ではなく非常に単純化された 「トイ世界 (toy-world)」の表現形式を考える。そしてトイ世界で 動くようなシステムをとりあえず設計したあと、そのシステムを徐々に 拡張してスケールアップしていけばいずれ実世界にも対応できるような ものになるだろう、という見通しをたてる。 「AI 成功のカギはよい表現形式にかかっている」と言われていた時代だ。
けれども、このアプローチはちっともうまくいかなかった。たとえある システムがトイ世界でうまく動いても、実世界では状況がぜんぜん違っている ことが多かったのだ。そのため、結局またゼロから作りなおさなければ ならない。単純な拡張ではうまくいかなかったのである。 その結果、研究者はまた反省して、 「もうすこし複雑なトイ世界」で動くシステムを設計し始めたが、 これもまた似た結果になることは目に見えていた。 結局、この方法ではいつまでたっても実世界でまともに 動くロボットは作れないことになる。
Brooks のこの論文は当初非常にバカにされたが、 結局 Brooks が言いたかったことは、このような「中心的表現」を 使った AI はうまくいかない、ということであった (彼は どんな表現形式も使うなといっていたわけではない、これについては 後述する)。この論文の題名である「表現形式なき知性」というのは、 「[中心的な] 表現形式なき知性」という意味である。
Brooks はこの状況を打破するためにひとつの提案をする。 いわく、最初から実世界のみを目標にしろ。問題を縦に分割しては ならない。いきなり最初から「動く」ロボットを作らなければならない、 というのである。
しかしここで Brooks はあやしげな全体主義に転落しているわけでは ないことに注意。また彼は工学的な問題の分割を軽視しているわけでもない。 ここで彼のいう主張とは、問題を縦に分割するのではなく、 横に 分割せよというものだ。「横に」分割するって 何だ? これを説明するために、Brooks は自然界における「進化」の 比喩をもちだす。
そもそも人間のような知能はどのようにして自然の中で 生まれ、進化してきたのか。生物はすべて単純なものから 徐々に複雑なものへと進化してきたわけだが、重要なのは 「最初から自然の中で実際に動いて (生きて) いた」ということだ、 と Brooks はいう。つまり生物というのは、まず進化によって 口だけが設計され、つぎに足が設計されたというような過程ではなく、 最初から「非常に単純な口」と「非常に単純な足」をそなえた 完全な (足りないモジュールがないという意味で) 存在として 出現した。その後、徐々にそれらのモジュールが複雑になってくるのだが、 Brooks の主張は工学でもこのやり方を真似しろというものである。 おおげさに言えば Brooks は「“進化”をシミュレートしよう」 と主張しているといってもいい。といってもこれは別に人工生命とか ニューラルネットとか、そこまで過激な主張をしているわけでは なく、あくまで人間が意識的にシステムを「横に」分割し、 熟考の上で拡張していこうという提案である。
さらにこの進化のアナロジーは続く。 進化の過程では、あるモジュールが完全に再設計されるということはありえない。 古い設計のモジュールは必ずなんらかの形で残され、そこに 新しいモジュールが追加される (その後古いモジュールが 退化するということはありうるが、それでもなんらかの痕跡は残るのが ふつうである)。 たとえば人間の脳には辺縁系 (旧皮質、古皮質) と新皮質が同居している。 辺縁系は反射や低レベルな要求などを受けもち、新皮質は高次の思考を 受けもつとされる。しかし新皮質は辺縁系を完全に置き換えているわけではない。 あいかわらず我々はアチいものに触れば反射するし、腹が減ったら メシ食いたくなる。つまり我々の脳の古いモジュール (自然界をサバイバルするために最低限必要な機能) は あいかわらずちゃんと動いているのだ。 このように、進化のやりかたは、従来の AI 研究者のように 各モジュールを再設計するのではなく、いまあるシステムに新しい モジュールを「付加する」というやりかただ。
こいつを工学でも真似しようではないか、というのが Brooks の主張である。 非常に単純な、けれどもすべてのモジュールが揃ったロボットを まず作れ。そして、そいつを変更せずに新しい モジュールを追加できるようにしろ。模式的に表すとこれは 図 1. のようになると思うけど (図は新山が勝手に想像したもの)、 つまり認識から動作までをおこなう 完全なロボット (Layer 1) を、まず最初から作ってしまえということである。 この段階では、べつにシステムはぜんぜん知的でなくてもよいのだ。 重要なのはこれがきちんと「動き」、実世界の中でサバイバルするのに 最低限必要な機能 (まあこいつはロボットだから電源を監視するとか、 コケて壊れないようにバランスするとか) を備えている、ということである。 そのあとで新しい Layer 2、Layer 3 …をつけ加えていけば、 堅牢さを保持しつつ複雑なふるまいをもつロボットが作れるであろう というわけ。
このアーキテクチャでは、システムには同時並列的に動く いくつものモジュールからなっているが、システム全体を一元的に コントロールするものはいない。Brooks はこれを旅客飛行機の 設計になぞらえて説明している。たとえば旅客機の設計では、 客席のシートの設計担当は、流体力学のことなんか何も考えなくていい。 彼はただひたすら「座り心地のよいシート」を目指すだけである。 いっぽう機体の設計者も、客席のシートがどうなろうが それが機体のフォームに大きく影響してくるとは考えない。つまり 旅客機の設計とは各自が「勝手に進めていく」というたぐいのもので、 すべてを完全に把握している存在はいない。これは Minsky のエージェントによる知能のとらえ方にも似ている。 Brooks によれば 「各 Layer は単純でも、周囲の状況の複雑さに反応していれば 結果として全体的に複雑なふるまいが生まれる」のだそうな (このへんは Affordance の考え方にもちょいと影響されている感じがうかがえるけど…)。 当然システムは一元的な中心的表現も持たない。これが この論文の題目の「表現形式なき知性」である。 知性をもった存在があたかも中心的な表現形式をもっていて、 物事を中央集権的に考えるモジュールが存在するように見えるのは、 あくまで観測する側の「錯覚」にすぎない、と Brooks はいうのである。
Subsumption Architecture は、このような考え方を実現するために 作られたアーキテクチャである。 これはモジュールを後から増設できるように設計されている。 アーキテクチャそのものというよりも、むしろメタ・アーキテクチャと 呼んだほうがいいかもしれない。
図 2 は Brooks らが開発しているロボットを制御する システムのアーキテクチャの概略である。Brooks らの開発している Mobile Robot は実世界の空間 (オフィス内) で行動し、 ソナーを使って障害物を検出、回避する (Brooks は最終的にはこれを 様々な用事をこなす雑用係として使えるものにしたいらしい)。 システムは 3つの層に分かれており、それぞれの層は「ワイヤー (wire)」と 呼ばれる通信路によって接続されている。各層には数個の状態遷移機械 (FSM) が 含まれており、それらが相互に情報をやりとりしながら並列に動作する (実際にワイヤーで接続されているのは層ではなく、 層の中に含まれる FSM である)。
各層の中の FSM は非常に簡単な仕組みで動作する。これは いくつかの内部状態と変数をもち、簡単な計算をおこなう。 FSM は入力ワイヤーと出力ワイヤーをもっており、その状態に応じて 一定時間おきに出力ワイヤー上にパルス状の信号を送出する。 これを別の FSM が捉えることによって通信が成立する。
各層は次のような働きをする:
Subsumption Architecture では、 認識および行動は複数のモジュールが並列して行う。しかし、 実際にはロボットのソナーもモータも一組しかないはずだ。 各モジュールが互いに矛盾する決定をした場合、システムは それらの決定をどのように実際の動作に反映させるのか? Subsumption Architecture では、これを「Suppressor」および 「Inhibitor」という仕組みを使って解決している (図 3)。
上層のモジュールは、Suppressor および Inhibitor を 使って下層モジュールのワイヤーに情報を「割り込ませる」ことができる。 ワイヤーを流れている情報は継続したものではなく、間欠的なパルスであるため、 その合間に情報を流せば複数の情報を混合することができるらしい。 「Suppressor」は、既存のワイヤーを流れている情報を「抑圧 (suppress)」し、 新しい情報を上書きする。しかし同時に前の情報も残すため、 これは or のような働きになる (実際には既存の情報をどれだけ残すかの割合が設定できるのかな?)。 いっぽう「Inhibitor」は 既存のワイヤーを流れている情報を「抑制 (inhibit)」し、 パルスを遮断する働きをもつ。これら 2つの端子をつかって モジュール同士をワイヤーレベルで接続することによりシステムが増築できる。
Brooks は、Subsumption Architecture と よく混同されるものとして以下のようなアプローチをあげ、 それぞれがどう Subsumption Architecture とは異なるかを説明している:
で、結局のところ、問題はこのアーキテクチャでどこまで できるのかということである。Brooks 自身は現在の未解決問題として、 次のようなものを挙げている:
これらのタスクもすべて、彼のいう「中央集権的な処理なしに」 行われなければならない。彼はモジュール間の通信をうまくやれば それは可能だという。
(けれども、この論文ではそれがどのように可能なのかは 何も述べられていない。 たとえば物をどこかへ運ぶといった動作を考えた場合、それには 「持つ → 運ぶ → 置く」という一連の シーケンスが必要であり、そのシーケンス自体は結局のところ何者かによって 一元的に管理・監督される必要があるのではないか? 彼がいっていることは 「すべてのモジュールが完璧な行動計画を立てる必要はない」 ということだけで、ある程度の行動の概略を知っている モジュールは必ず必要になるように思う。 それは Brooks の定義によれば「中央集権的」とは呼ばないのだろうか?)
これと同様に、Subsumption Architecture でも 学習はあらかじめ固定された「学習モジュール」が行うように すればよい。しかし学習を一括させるというこの方法は、 まさに Brooks がこきおろした AI の過去の「中央集権的な方法」そのものである。 Brooks は現在これを修復する方法を模索しているらしい。 (これ以降の論文はまだサーベイしていないので、 これがその後どうなったのか気になるところだ)
Subsumption Architecture は合理主義の放棄ではなく、 いきあたりばったりのアプローチではない。Brooks もいうように、 設計にあたっては、デザインを十分に熟考する必要がある。 しかし実際にそれがどの程度まで賢く動くかどうかは、 実験してみなければわからない。Brooks は論文の最後をこの言葉で 締めくくっている。"Time will tell."
考え方はおもしろいが、万能ではないような。
中央集権的な方法は必要。
Supressor や Inhibitor を埋めこむときは、 その場所をよく考えないといけない。これらは危険なので、 やみくもに拡張できるわけではない。結局、設計者は たくさんの要因を把握する必要あり。