フレーム問題は解決済み ~フレーム問題に見る、AI史の闇~
フレーム問題に見る、AI史の闇
フレーム問題って何?
AIの歴史について調べていると、必ず出てくるのが人工知能最大の難問と言われる「フレーム問題」です。
フレーム問題の話が出てくるたび、「最大の難問と言われるけど、これって、どこが難問なの?」といつも思っていました。
「普通に考えれば簡単に解ける問題を、無理に難しくしているだけじゃないの?」と。
ところが、時代背景も考慮して、改めてフレーム問題について調べてみると、おぼろげに、その真の意味が見えてきました。
フレーム問題を提唱したのは、計算機科学者のジョン・マッカーシーです。
フレーム問題の例は、いろいろあるようですが、一番有名なのが、哲学者のダニエル・デネットのロボットの話です。
それでは、さっそく、デネットのロボットの話を、wikipediaから以下に引用します。
状況として、洞窟の中にロボットを動かすバッテリーがあり、その上に時限爆弾が仕掛けられている。
このままでは爆弾が爆発してバッテリーが破壊され、ロボットはバッテリー交換ができなくなってしまうので、洞窟の中からバッテリーを取り出してこなくてはならない。
ロボットは、「洞窟からバッテリーを取り出してくること」を指示された。
人工知能ロボット1号機R1は、うまくプログラムされていたため、洞窟に入って無事にバッテリーを取り出すことができた。
しかし、1号機はバッテリーの上に爆弾が載っていることには気づいていたが、バッテリーを運ぶと爆弾も一緒に運び出してしまうことに気づかなかったため、洞窟から出た後に爆弾が爆発してしまった。
これは、1号機が、バッテリーを取り出すという目的については理解していたが、それによって副次的に発生する事項(バッテリーを取り出すと爆弾も同時に運んでしまうこと)について理解していなかったのが原因である。
そこで、目的を遂行するにあたって副次的に発生する事項も考慮する人工知能ロボット2号機R1-D1を開発した。
しかし、このロボットは、洞窟に入ってバッテリーの前に来たところで動作しなくなり、そのまま時限爆弾が作動してロボットは吹っ飛んでしまった。
2号機は、バッテリーの前で「このバッテリーを動かすと上にのった爆弾は爆発しないかどうか」「バッテリーを動かす前に爆弾を移動させないといけないか」「爆弾を動かそうとすると、天井が落ちてきたりしないか」「爆弾に近づくと壁の色が変わったりしないか」などなど、副次的に発生しうるあらゆる事項を考え始めてしまい、無限に思考し続けてしまったのである。これは、副次的に発生しうる事項というのが無限にあり、それら全てを考慮するには無限の計算時間を必要とするからである。
ただ、副次的に発生する事項といっても、「壁の色が変わったりしないか」などというのは、通常、考慮する必要がない。
そこで、目的を遂行するにあたって無関係な事項は考慮しないように改良した人工知能ロボット3号機R2-D1を開発した。
しかし、このロボットは、洞窟に入る前に動作しなくなった。3号機は、洞窟に入る前に、目的と無関係な事項を全て洗い出そうとして、無限に思考し続けてしまったのである。
これは、目的と無関係な事項というのも無限にあるため、それら全てを考慮するには無限の計算時間を必要とするからである。
事程左様に、人間のように判断することができるロボットR2-D2を作るのは難しい。
引用終わり
で・・・? フレーム問題って、どこが難問なの?
言いたいことは、何となくわかります。
解説などを読むと、現実世界の問題を解決するには、無限の可能性があり、すべて検討するわけにはいかないので、枠(フレーム)を当てはめて、関係のない物事を除外する必要がある。
ところが、どこがフレームの内(関係のあること)で、どこがフレームの外(関係のないこと)かを判断することができないので、結局、いつまでたっても問題が解決しないとのことのようです。
解説の意味は理解できますが、それでも、いくらでも解決方法はあるんじゃないかと思っていました。
なんで爆弾をどけるのに、天井が落ちるとか、壁の色がかわるとか考える必要があるのかと。
そもそも、ここで想定しているデータベースは、どんなデータベースだろうかと。
リレーショナル・データベースなら、どんなSQL文を発行すれば、フレーム問題が生じるのか、ちょっと想像できませんでした。
また、爆弾が爆発するまでロボットが停止するなど、いったい、どんな設計をしているのかと。
ロボット制御用のOSなら、組み込み用のリアルタイムOSを使うはずですが、爆発物を扱うようなクリティカルな処理をするなら、最優先の割り込みでタイムアウトを設定するはずなのに、爆発するまで考え事をするとは・・・。
なぜ、これだけの簡単な問題が解けないってなるの?
しかし、フレーム問題が提唱された時代背景を考えてみると、ようやく、ジョン・マッカーシーの言いたいことが見えてきました。
フレーム問題が提唱されたのは、1969年のことです。
これは、第1次AIブームの終わり頃です。
調べてみると、リレーショナル・データベースが最初に出てきたのは、1974年で、最初のリアルタイムOSが生まれたのは1979年で、ジョン・マッカーシーは、そのようなものは全く想定していなかったようです。
それでは、どのようなものを想定していたのでしょう。
第1次AIブームの主流は、簡単な推論/探索です。迷路を解く人工知能などが有名でした。
迷路で分岐が現れると、順に分岐を探索し、行き止まりになると、元の分岐まで戻り、次の分岐を探索する。
このような手順をスタートから繰り返していけば、いずれ、ゴールに辿り着くのです。これが推論/探索です。
この推論/探索を想定して、先のロボットの話を読み解いてみましょう。
上に爆弾が乗ったバッテリを取ってくるという命題に対して、バッテリを動かせばどうなるか、爆弾を動かせばどうなるか、といった様々な分岐が考えられます。
副次的に発生する事項とは、迷路の分岐を想定しているのです。
そして、分岐した次には、さらなる分岐があるでしょう。
バッテリを動かして、爆弾が動いた場合と動かなかった場合、
バッテリを動かして、壁の色が変わった場合と変わらなかった場合、
バッテリを動かして、・・・・・・
現実世界には、いくらでも分岐が考えられるので、すべての分岐を探索するには無限の時間がかかります。
これが、ロボット2号機です。
2号機を改良した3号機も同様で、目的と無関係な分岐を探索しないようにしても、現実世界には、目的と無関係なものも無限に存在するので、探索に無限の時間がかかってしまうのです。
ジョン・マッカーシーが指摘したかったのは、このような推論/探索では、迷路のような単純な問題は解決できるかもしれないが、現実世界は複雑で、AIでは簡単に解決できないということのようです。
第1次AIブーム
それでは、なぜ、そんなことを言い出したのか。
当時の時代背景を見てみましょう。
1950~60年代の第1次AIブームは、迷路などの問題をコンピュータで解くことが実証され、やがて、あらゆる問題をAIで解決できると期待され、国や企業から多額の投資を受けていました。
それは、まさにディープラーニングが登場した、現在の第3次AIブームと同じです。
ジョン・マッカーシーは、さしずめ、グーグルに買収され、囲碁の世界チャンピオンに勝ったディープマインド社のデミス・ハサビスCEOといったところでしょう。
しかし、迷路などの簡単な問題(トイ・プロブレム)は解決できたものの、現実問題では成果が表れず、1970年代に入ると、AI研究への出資が急激に無くなり、第1次AIブームが終了することになりました。
穿った見方をすれば、第1次AIブームのスターだったジョン・マッカーシーは、拡大するAIブームの期待と重圧に耐えきれず、自らAIブームを終了させようとしたのかもしれません。
AIで現実世界の課題を解決することは根本的に不可能だと証明するためにフレーム問題を提唱したのかもしれません。
他でもないジョン・マッカーシーがAIは理論的に現実問題を解決できないと宣言したのですから、1970年代に入って、急速にAIブームが収束したわけです。
こういう背景を考えると、フレーム問題の不自然さも理解できます。
爆弾を移動させるのに壁の色が変わるかまで考えるとか、現実問題を解決できないジョン・マッカーシーのいら立ちと必死さが伝わってきます。
フレーム問題とは、なぜ、AIが現実問題を解決できないかを無理やり説明するために作り出された問題なのです。
ジョン・マッカーシーの言い訳のための理論なのです。
第1次AIブームのもう一人のスター
第1次AIブームといえば、もう一人スターがいます。
ニューラルネットワークで有名なマーヴィン・ミンスキーです。
人間の神経回路を模したニューラルネットワークが学習機能を持つことから、第1次AIブームで大いにもてはやされ、ミンスキーも積極的に研究していました。
ところが、ミンスキーは、ニューラルネットワークの基礎となるパーセプトロンには、限界があることを著書「パーセプトロン」で証明し、ニューラルネットワークの研究は一気に沈静化しました。
この「パーセプトロン」が出版されたのは1969年のことです。
そうです、「フレーム問題」が提案されたのと同じ年なのです。
マッカーシーの「フレーム問題」により、洞窟から爆弾を取り出すような簡単な問題がAIには解けないことが提案され、ミンスキーによりニューラルネットワークの理論的な限界が証明され、第1次AIブームは一気に沈静化したのでした。
さて、ニューラルネットワークは、本当に役に立たないのでしょうか?
そんなことはありませんよね。
ニューラルネットワークは、その後、誤差逆伝播法(バックプロパゲーション)、畳み込みニューラルネットワーク、そしてディープラーニング(深層学習)へと進化を遂げ、今では、画像認識では人間を上回る正答率を誇ります。
これは、科学の歴史でよくある話です。
絶対に不可能と言われたことが、技術の進歩で可能となったというありふれたお話しです。
チェスも将棋も、かつては、絶対にコンピュータが人間に勝つことはないと言われていました。
フレーム問題を解いてみよう
それでは、第1次AIブームから50年以上経った現代なら、フレーム問題は解けるでしょうか。
試しに解いてみましょう。
まず、ロボットは外部の状況を把握します。
これは、画像認識でできます。
洞窟の中で、バッテリの上に爆弾が載っていると認識します。
これは、ディープラーニングで実現できます。
次に、認識した物体から3Dモデルを生成します。洞窟の中で、バッテリの上に爆弾が載っている状況を3Dモデルで再現するわけです。
これも、現在の技術で問題なくできます。
物体を認識するとは、その物体に関する様々な情報も含まれています。
洞窟には天井や壁があるとか、洞窟の壁は何色かといったことです。
また、3Dモデルなので、物理シミュレーションもできます。
シミュレーションを行うと、バッテリを洞窟の外に移動させると、その上に載っている爆弾も移動することが確認できます。
ここから、そのままバッテリを移動してはダメだとわかります。
目的は、上に載っている爆弾を洞窟に残したまま、バッテリだけを洞窟の外に移動させることです。
ここで、目的達成までを、いくつかのステップに分割します。
まず、現在の状況は、バッテリの上に爆弾が載っています。
次に目的の状況です。
洞窟の外にバッテリがあって、洞窟の中に爆弾があります。
もし、爆弾がバッテリの上に載っていなければ、バッテリを移動させればバッテリだけを洞窟の外に持って行くことができます。
この爆弾がバッテリの上に載ってない状況を中間状況とします。
次に、現在の状況と、中間状況を比較します。
すると、違いは、バッテリの上に爆弾が載っているか載っていないかです。
つまり、バッテリの上に爆弾が載っている状況から載っていない状況にすればいいのです。
バッテリの上に爆弾が載っている状況から載っていない状況にするには、バッテリの上の爆弾をバッテリの外に移動させればいいわけです。
物体を移動させるには、ロボットのアームを使えば可能です。
ロボットのアームで、バッテリの上から外に爆弾を移動させれば中間状況になります。これで、バッテリだけを洞窟の外に持ち出すことができます。
ここまでを、シミュレーションによって確認できれば、あとは、シミュレーション通りに実際に行動するだけです。
どうでしょう?
なんの問題もありませんよね。
あれ、フレーム問題はどこに行った?
それでは、どこでフレーム問題を回避したのでしょうか?
フレーム問題で前提としていたのは、迷路探索のような問題です。
通路には複数の分岐があって、正しい分岐を選んだ場合のみゴールに辿り着きます。
迷路だと、一つの通路に分岐はせいぜい2~3個で、全ての分岐を計算することは十分可能です。
ところが、現実世界だと、壁、天井などの要素があり、壁には、壁の色、壁の硬さ・・・など、無数の要素があります。
たしかに、現実世界で全ての要素を調べていては無限の時間がかかります。
しかし、迷路探索と、爆弾が乗ったバッテリを取り出すこととは同じ問題といえるでしょうか?
迷路では、分岐は、どれも全く同じに見えます。
どの道が正しいかは見ただけではわかりません。
実際に分岐に入って、行き止まりかゴールに辿り着くか調べてみないとわかりません。
爆弾が乗ったバッテリを取り出す場合も、全て調べてみないとわからないでしょうか?
見ただけで、どちらが重要かわからないでしょうか?
たとえば「バッテリを動かすと爆弾も動くか?」と、「バッテリを動かすと壁の色が変わるか?」といった場合です。
どちらが重要でしょう?
そんなこと、明らかですよね。
壁の色が変わるかどうかなんか、調べる必要がないほど重要度が低いですよね。
「そんなの、人間だからすぐにわかるけど、ロボットにはどっちが重要でないかわからないよ」
なるほど、それなら、重要度を、単純に、物理的な距離に置き換えてみましょう。
ロボットと距離が近い方が重要で、距離が遠ければ重要度が低いと判断するのです。
そうすれば、爆弾は重要で、洞窟の壁は、爆弾より重要度が低いと判断できますよね。
このようにして、現実世界では、迷路と違って簡単に重要度を設定することができます。
重要度の大きいものをフレーム内、小さいものをフレーム外とみなすことができるわけです。
このように区別すれば、簡単にフレーム問題を回避することができるのです。
ジョン・マッカーシーは、AIロボットを現実世界で動かすと、あらゆる可能性を考えて動かなくなると指摘しました。
しかし、それは、迷路のように、分岐が全く同じで区別がつかないという特殊な状況の場合にのみ生じる問題で、現実世界ではありえない状況です。
そのような非現実的な問題が、未だにAI最大の難問などと言われ続けています。
フレーム問題は未だに解決できないなどと語るのは、そろそろ終わりにしませんか?
追記:
産業技術総合研究所のヒューマノイドロボットHRP-4の開発で有名な梶田秀司博士からツイートで本記事が紹介されました。
「世界に存在する無限の情報を等しく扱おうとすれば、組み合わせ論的爆発に陥るけれど、情報の重要度と優先順位を定めればこれを回避できる。」
このツイートに対して、111件の「いいね」と49件の「リツイート」が行われています。
専門家からも、「フレーム問題」の本質が少しずつ理解されてきたようで、嬉しく思います。
追記2:
数々の批判を乗り越えて、「フレーム問題」の完全解決版をYouTubeで公開しました。
この記事を読んで、何か言いたいと思ったら、まずは、こちらの動画をご覧ください。