フレーム問題は解決済み -フレーム問題に見る、AI史の闇ー

フレーム問題は解決済み -フレーム問題に見る、AI史の闇ー

人工知能、最大の難問「フレーム問題」は存在しない

このエントリーをはてなブックマークに追加

 

AIの歴史について調べていると、必ず出てくるのが人工知能最大の難問と言われる「フレーム問題」です。
AIセミナーなどに行っても、最初に必ず出てくる話が、このフレーム問題です。

フレーム問題の話が出てくるたび、「最大の難問と言われるけど、これって、どこが難問なの?」といつも思っていました。
「普通に考えれば簡単に解ける問題を、無理に難しくしているだけじゃないの?」と。
ところが、時代背景も考慮して、改めてフレーム問題について調べてみると、おぼろげに、その真の意味が見えてきました。
そこで、今回は、フレーム問題について取り上げてみます。

フレーム問題を提唱したのは、計算機科学者のジョン・マッカーシーで、1969年のことです。
フレーム問題の例は、いろいろあるようですが、一番有名なのが、哲学者のダニエル・デネットのロボットの話です。

それでは、さっそく、デネットのロボットの話を、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では簡単に解決できないということのようです。

それでは、なぜ、そんなことを言い出したのか。
当時の時代背景を見てみましょう。

1950~60年代の第1次AIブームは、迷路などの問題をコンピュータで解くことが実証され、やがて、あらゆる問題をAIで解決できると期待され、国や企業から多額の投資を受けていました。
それは、まさにディープラーニングが登場した、現在の第3次AIブームと同じです。
ジョン・マッカーシーは、さしずめ、グーグルに買収され、囲碁の世界チャンピオンに勝ったAlphaGoを開発したディープマインド社のデミス・ハサビスCEOといったところでしょう。
しかし、迷路などの簡単な問題(トイ・プロブレム)は解決できたものの、現実問題では成果が表れず、1970年代に入ると、AI研究への出資が急激に無くなり、第1次AIブームが終了することになりました。

穿った見方をすれば、第1次AIブームのスターだったジョン・マッカーシーは、拡大するAIブームの期待と重圧に耐えきれず、自らAIブームを終了させるために、AIで、現実世界の課題を解決することは根本的に不可能だと証明するためにフレーム問題を提唱したのかもしれません。
他でもない、ジョン・マッカーシーが、AIは理論的に現実問題を解決できないと宣言したのですから、1970年代に入って、急速にAIブームが収束したわけです。
こういう背景を考えると、フレーム問題の不自然さも理解できます。
爆弾を移動させるのに、壁の色が変わるかまで考えるとか、現実問題を解決できないジョン・マッカーシーのいら立ちと必死さが伝わってきます。

 

それでは、第1次AIブームから50年以上経った現代なら、フレーム問題は解決できるでしょうか。
試しに解いてみましょう。

まず、ロボットは外部の状況を把握します。
これは、画像認識でできます。
洞窟の中で、バッテリの上に爆弾が載っていると認識します。
最新のAI技術では、写真に何が写っているかを判定するテストなら、人間より精度が高くなってきましたので、これは十分可能です。

次に、認識した物体から3Dモデルを生成します。洞窟の中で、バッテリの上に爆弾が載っている状況を3Dモデルで再現するわけです。
これも、現在の技術で問題なくできます。
物体を認識するとは、その物体に関する様々な情報も含まれています。
つまり、洞窟には天井や壁があるとか、洞窟の壁は何色かといったことです。
また、3Dモデルなので、物理シミュレーションもできます。
シミュレーションを行うと、バッテリを洞窟の外に移動させると、その上に載っている爆弾も移動することが確認できます。
ここから、そのままバッテリを移動してはダメだとわかります。

目的は、上に載っている爆弾を洞窟に残したまま、バッテリだけを洞窟の外に移動させることです。

ここで、目的達成までを、いくつかのステップに分割します。
まず、現在の状況は、バッテリの上に爆弾が載っています。

次に目的の状況です。
洞窟の外にバッテリがあって、洞窟の中に爆弾があります。

もし、爆弾がバッテリの上に載っていなければ、バッテリを移動させれば、バッテリだけを洞窟の外に持って行くことができます。
この、爆弾がバッテリの上に載ってない状況を中間状況とします。

次に、現在の状況と、中間状況を比較します。
すると、違いは、バッテリの上に爆弾が載っているか、載っていないかです。
つまり、バッテリの上に爆弾が載っている状況から、載っていない状況にすればいいのです。
バッテリの上に爆弾が載っている状況から、載っていない状況にするには、バッテリの上の爆弾をバッテリの外に移動させればいいわけです。
物体を移動させるには、ロボットのアームを使えば可能です。
ロボットのアームで、バッテリの上から外に爆弾を移動させれば中間状況になります。これで、バッテリだけを洞窟の外に持ち出すことができます。
ここまでを、シミュレーションによって確認できれば、あとは、シミュレーション通りに実際に行動するだけです。

どうでしょう?
なんの問題もありませんよね。
洞窟を、洞窟として認識しているので、洞窟の壁の色なども認識しています。ですが、バッテリを洞窟の外に出すのに、壁の色が変わるとか、天井が落ちないとか、目的と関係のないことを考える必要などありません。
ポイントは、探索範囲を、目的達成に必要な行動に絞ることです。
目的と関係のない、対象に関わるあらゆる副次的な要素をすべて考慮する必要はありません。
プログラムを作成するとき、普通は、そんな無駄なことはしません。

無理やりフレームを考えるとすれば、目的遂行に関する物がフレーム内の事であり、目的遂行に関係のない物が、フレーム外の事だと言えます。
フレームを考えたとしても、どこがフレーム内で、どこがフレーム外か、見極めるのが難しい問題ではありません。
人間が普通に考えるように、ロボットに考えさせれば、フレーム問題など生じないのです。

フレーム問題は、現実問題を解決できなかった第1次AIブームにおいて、なぜ、AIが現実問題を解決できないか無理やり説明するために作り出された問題なのです。
フレーム問題は、現実逃避のための、言い訳のための理論に過ぎなかったのです。

ところが、未だに、フレーム問題はAI最大の難問などと言われ続けています。
「AI(人工知能)には、絶対に解決できない『フレーム問題』という難問がある」というストーリーは確かに魅力的ですが、AIといえば、まずは「フレーム問題」と語りだすのは、そろそろ、終わりにしませんか?

 

 

このエントリーをはてなブックマークに追加

“フレーム問題は解決済み -フレーム問題に見る、AI史の闇ー” への32件のフィードバック

  1. 通りすがり より:

    >人間が普通に考えるように、ロボットに考えさせれば、フレーム問題など生じないのです。
    なんか極めて短絡的ですね。
    >ポイントは、探索範囲を、目的達成に必要な行動に絞ることです。
    どのように絞るのでしょうか。ヒューリスティックスを用いるのでしょうか。
    絞ることで予想外の結果が生じないのでしょうか(爆弾を運び出す、等)。
    論理が破綻していますよ。

    • 田方 篤志 田方 篤志 より:

      質問、ありがとうございます。

      >人間が普通に考えるように、ロボットに考えさせれば、フレーム問題など生じないのです。
      なんか極めて短絡的ですね。
      >ポイントは、探索範囲を、目的達成に必要な行動に絞ることです。

      これは、目的達成に関係が近い順に順位付けして探索します。
      具体的には、目的であるバッテリに物理的距離が近い方に高いポイントを付与し、距離が遠いものに低いポイントを付与するとか。
      または、バッテリを運び出す経路上にあるものに高いポイントを付与するとか。
      このような方法は、人間が普通に考えることですよね。

      そして、所定のポイント以下の事に関しては、探索範囲から除外します。
      こうすれば、壁の色が変わるとか、バッテリを運び出す目的とはあまり関係がないことまで探索することはありません。

      探索範囲を絞らず、無限に探索し続けるプログラムを作るなど、普通のプログラマーならあり得ないことです。

      なぜ、こんな単純な点を誰も指摘しないのか、これが、僕にっての、フレーム問題の最大の謎なんです^^;

      絞ることで予想外の結果が生じないのでしょうか(爆弾を運び出す、等)。
      論理が破綻していますよ。

      条件に、「爆弾を運び出さない」を付け加えれば、爆弾を運び出すとことはないです。
      条件の追加は、今までの経験から、追加します。
      前回、爆弾を運び出してしまったという痛い経験をしたので、次は、そうしないように条件を付けて探索するわけです。
      これも、人が普通にすることですよね。

      絞ることで、予想外の結果が出たとすれば、学習によって、次回は改善する。
      論理が破綻しているとはいえないと思いますが、いかがでしょう。

  2. ななし より:

    もしシミュレーション中に地震が起きたら…、もしシミュレーション中に爆弾が発光しだしたら…、もしバッテリを移動させることで出入り口が閉まったら…
    これらの人間であれば「普通は起こりえない」と考えることも全て計算しようとしてしまい、結果行動できなくなる。

    これがフレーム問題であるハズなのですが、本文の説明でそのような計算は一切行われていませんよね。
    あらかじめ設定された動作を行っているだけで、これではAIロボットではなくAIで物体を認識して持ってくるロボットのような気がするのですが、、、

    • 田方 篤志 田方 篤志 より:

      質問、ありがとうございます。
      「もしシミュレーション中に地震が起きたら、もし爆弾が発光したら・・・」といった仮定を全て計算していれば、確かに、フレーム問題が起こりますよね。
      僕が提案しているロジックは、可能性のある全ての仮定を先に検討するのでなく、もし、検討していない事象が起こったら、起こったときに考えればいいというものです。

      あらかじめ設定された動作を行っているだけで、これではAIロボットではなくAIで物体を認識して持ってくるロボットのような気がするのですが、、、

      これは、目標とすAIをどこに設定するかにかかわってきますが、ここでは、人間と同じ程度の知能のAIを目指しています。人間を超えるAIは目指していません。
      そう考えれば、人間も、バッテリを持ってくるのに、あらかじめ設定された動作を行っているだけといえます。
      物体を認識して持ってくるだけです。

      どんな状況であっても、必ず、バッテリを持ってくるといった人間を超えたAIを目指すのであれば、たしかに、あらゆる状況を想定しなければならず、フレーム問題から逃れられないと思います。
      そうでなく、人間と同程度の知能を求めるのであれば、まずは、決められた動作をして、それがうまくいかなければ、うまくいかなかった原因を考慮した別の動作を試して・・・と、すればいいのではないでしょうか。
      実際の人間も、このように行動すると思われますので。
      人間に対しても、「考えられるあらゆる状況を考慮してからバッテリを持ってこい」と命令すれば、フレーム問題に近い状況が起こるでしょう。

      「フレーム問題」というのは、AIの根本的な問題をあぶりだすのに、あまり良い問題とは言えないですが、なぜか有名になってしまったようです。
      意識のハードプロブレム」や「シンボルグラウンディング問題」の方が、AIの本質に迫る問題と思います。

  3. 通りすがり より:

    https://en.wikipedia.org/wiki/Frame_problem
    フレーム問題は爆弾などの面倒な状況に限らず、ドアの開閉をするだけの単純なAIにも発生します。
    なので爆弾処理の方法を具体的に考えたとしても、特にフレーム問題全般を解決できたということにはならないのでは。

    • 田方 篤志 田方 篤志 より:

      質問、ありがとうございます。
      確かに、ドアを開閉する場合でも、「ドアを開けようとして、ドアノブがはずれたら」といった、考えられるあらゆる事態を考慮すればフレーム問題が発生しますよね。
      でも、人間の場合、フレーム問題は発生しません。
      なぜかというと、人間の場合、まず、ドアを開けようと行動して、万一、ドアノブが外れたら、その時にどうするか考えるからです。
      なので、人間と同じように、まず、ドアを開けようと行動して、ドアノブが外れたら、どうするか考えるようにプログラムすれば、フレーム問題は発生しません。

      フレーム問題というのは、現実世界でロボットが行動しようとすれば必ず発生する不可避の問題というものではなく、フレーム問題が発生するようにプログラムすればフレーム問題が発生し、フレーム問題が発生しないようにプログラムすれば、フレーム問題が発生しないのです。

      フレーム問題というのは、これだけの話なのです。

  4. 少しだけ読んだ人間 より:

    人間と同じ程度の知能のAIを作成する理由(意義)は、この論説のどこの部分を読めばよいのか、教えてください。

    • 田方 篤志 田方 篤志 より:

      お問い合わせありがとうございます。
      「人間と同じ程度の知能のAIを作成する理由(意義)」は、この記事には、特に明記していないですが、この考えは、おそらく、AIを開発してるほとんどの人に共通の意見だと思います。
      まずは、人間が普通にできることをAIでもできるようにしようということです。
      今のAIには、普通の日常会話もできませんので。
      それが達成できてから、次の段階に進むことになると思います。

  5. 名無し より:

    >>フレーム問題が発生しないようにプログラムすれば
    これが難しいからフレーム問題などと呼ばれているのでは?

    >>洞窟を、洞窟として認識しているので、洞窟の壁の色なども認識しています。ですが、バッテリを洞窟の外に出すのに、壁の色が変わるとか、天井が落ちないとか、目的と関係のないことを考える必要などありません。
    洞窟や色はバッテリを外に持ち出すのに関係がなく,爆弾は関係あるというのはどのようにロボットに判断させるのでしょう.

    • 田方 篤志 田方 篤志 より:

      質問、ありがとうございます。

      洞窟や色はバッテリを外に持ち出すのに関係がなく,爆弾は関係あるというのはどのようにロボットに判断させるのでしょう.

      これは、前もって知識として持っていればいいでしょう。
      物を移動させるには、その物を持って運び出すといったような知識です。

      本文にも書きましたが、当時のAI技術から判断して、フレーム問題が前提としているのは推論/探索問題です。
      ところが、現在のコンピュータ技術だと、3DCGを使ったシミュレーションなど、いくらでも解決する方法は考えられます。

  6. うーん、仰る「フレーム問題を起こさないようにプログラムされたAI」は、たとえ話でいう処の1号機ロボットのことではないでしょうか。不測の事態を考慮しない、不測の事態に対処ができないロボット。
    対象の周囲だけ計算する、っていうのも、周囲以外で何か起きたらバッテリー持ち出しに失敗するわけですよね。

    失敗しない融通の利くロボットにしようとすると2号機3号機になるという、そういう話では?

    • 田方 篤志 田方 篤志 より:

      コメント、ありがとうございます。

      対象の周囲だけ計算する、っていうのも、周囲以外で何か起きたらバッテリー持ち出しに失敗するわけですよね。

      確かに、おっしゃるとおりです。
      ただ、これはロボットだけでなく、人間でも起こり得る話ですよね。
      人間の場合、この問題を解決しようとしてもフレーム問題は起こりません。
      なので、人間と同じ解決策のプログラムを作れば、フレーム問題は起こらないわけです。
      数ある解決策の一つが、フレーム問題を起こす解決策というだけなのです。
      「フレーム問題」の話は、解決策が、その一つしかないとミスリーディングしているとも言えますね。

  7. h.roshi より:

    この記事の技術的なことは良くわかりませんが、主旨には基本的に賛成です。私は「フレーム問題」は単なる勘違いと思っていました。
    与えられた課題が何の失敗もなく一発で解決できるとする幻想が元になっている。生物は30億年かけて多くの失敗を乗り越えて進化してきました。
    人間も失敗の記憶や推察ができる範囲でしか失敗を防げません。想定外には基本的に対応できません。
    機械に想定外でも対応できるよう期待するのは勘違いでしょう。神でない人間の作るものなので基本的には想定外を克服できません。

    • 田方 篤志 田方 篤志 より:

      コメントありがとうございます。
      おっしゃる通り、完璧な回答を目指せば、いつまでたっても動きだすことはありません。
      程よいところで探索を止めて動き出すっていうのが、人間らしくもあり、AIもそれを目指さないといけませんね。

  8. h.roshi より:

    ロボットに完璧な回答を見つけさせるなら、そのまえにAI研究者は完璧とは何かを定義しないといけませんね。これは明らかに不可能でしょう。
    少し専門的な言葉で書かれると、大抵の技術系の人は簡単に勘違いしてしまうものですね。私もエンジニアとして気をつけたいです。

    • 田方 篤志 田方 篤志 より:

      そうですね。完璧とか無限とか、理論だけでは現実問題は解決できないです。
      エンジニアは現実との折り合いを考えないといけませんね。

  9. Mill より:

    What you are making is not artificial intelligence. What about doing artificial intelligence with intelligence equivalent to just human beings? Our researchers have to fight against the frame problem from the top. I do not understand why you are not trying to evolve.

  10. PC06 Allgrow より:

     お邪魔します。

     田方さんのお考えは「人間がそうするように、何か起きたときに考えればよい」、そして「解決策をあらかじめ教えておけばよい」というお考えだと思います。あるいは「解決策を調べる方法を知っていればよい」でもいいのかな。
     その線で思考実験してみます。H・サイモンとA・ニューウェルが「人間の思考をシミュレートする」ことを目指して考案したGPS(1957年)のイメージで。

     たとえばAIロボットに、「庭の木を1本切り倒せ」と命じるとしましょう。この命令を理解するだけで、膨大な下位問題が生じます。「庭ってなに?」、「どの木のこと?」、「切り倒すってどういうこと?」など。「となりの鈴木さんちの庭じゃなくてウチの庭な」と言わなくてもわかっててほしいです。今の水準のAIより高度になってないといけないことは確かでしょう。

     さて命令は理解したとして、実行の段で「太さはどのくらい?」、「切るのに何が必要?」などの下位問題が生じます。太さを測るのは、まあ簡単。手段については、AIはYoutubeで動画を見つけて(5Gで受信、脳内再生)、チェンソーが一番良さそうだと知ったとします。しかし家にはチェンソーがない。次くらいに効率的そうな斧もない。そこで「『チェンソーがない』で検索」→「ふむふむ、『買う』ことができそうだ」→「お金が必要だ」→私に向かって「お金をください」→私「ない」→「『お金がない』で検索……銀行でおろせばいい!」→「キャッシュカードをください。暗証番号を教えてください!」→私「ほい。暗証番号は8801な」→「最寄りの銀行を検索、移動手段を検索」……

     で、移動を開始するわけです。途中、近所の悪ガキにどつかれたり、信号待ちの間に犬に小便かけられたり、いろんな人とすれ違ったり投げキス受けとめたり投げ返したりしますが、その都度何とか対処法を検索して実行し、ようやく銀行に着きます。ATMの前に立ったところで銀行員が見とがめ、AIロボットを制止しようとします。そりゃそうでしょう。しかしAIロボットは、さきほど近所の悪ガキにどつかれたときにYoutubeで合気道の動画を見て学んでいたので、簡単に妨害を排除しました。(銀行員、だいじょうぶか?)キャッシュカードを挿入、暗証番号を打ち込んで、金額を指定。しかし、ATM「残高不足でおろせません」。しかしAIロボット、決して心が折れることはありません。再度「お金がない」で検索。→AI「消費者ローンに行こう!」そして私のスマホを鳴らし、「免許証か健康保険証はありますか。あったら貸してください」と。で、私「ないよ。どっちも」。私、滞納してるので。
     AIロボットはなおもネット検索。過去起きた事件のニュースを参考に、最寄りのビジネスキオスクで私の免許証を偽造し、さらに3Dプリンターで私の顔のお面をつくり、それを自分の顔につけて「むじんくん」に入りました。しかしアコムのAIも優秀です。「私」があまりにも無表情でまばたきもせず、住所や生年月日を答えるときも唇を一切動かさないことから不審に思い、免許証も偽造と見抜いて融資を断ります。「ちがうだろー!」と。
     「むじんくん」を追い出されたAIロボットはなおも検索します。そしてYoutubeで動画を見て、対処法を見つけました。ホームセンターに行き、電動タイプのチェンソーを手に取り、プラグを自分の身体の電源供給ソケットにつないでやり、スイッチを入れてチェンソーを振り回しながら、なるべく早足でホームセンターから出て家に戻る……という行動を選択しました。

     おや? ほんとだ。フレーム問題生じない。
     どんどん悪の道に足を踏み入れてますが、フレーム問題は起きてないですね。

     ただ、たぶん「私のお面」つけたままチェンソー振り回してますよね。そして何台ものパトカーを先導しながら「私」の家に向かってますよね。私、どうなっちゃうんでしょう。「『木を切り倒せ』とは言ったが、『(悪ガキや銀行員に)ケガをさせろ』とは言っていない」と言えば、許してもらえるでしょうか。

    • 田方 篤志 田方 篤志 より:

      コメントありがとうございます。
      楽しく読ませていただきました。
      この話は、洞窟からバッテリーを取り出そうとするとロボットが固まってしまうというフレーム問題をはるかに超えていますが、AIの今後を考えると、避けて通れない問題だと思います。
      つまり、AIが自分で思考し、行動するようになった場合、目的遂行するAIロボットは、人間社会と協調できるかという問題になると思います。
      この点についてロボマインド・プロジェクトの出した答えは、善悪や感情といった認知パターンを最上位とする「心」を持たせるというものです。
      くわしくは、チューリングテスト認知パターンを参考にしていただければと思います。
      簡単に説明すると、人間と同じように善悪の概念を理解させれば、目的遂行のためとはいえ、他人に迷惑をかけるのは悪、するべきでないということを理解できるので、ホームセンターでチェーンソーを振り回すことはないというものです。

  11. 七志 より:

    疑問に思うことが多かったので質問させてもらいます。
    まず最初の質問に対する答えでポイントを付けるとありますが、それはR2-D1の二の舞ではないのでしょうか、考慮するべきポイントは物理的な距離だけではないですし、それをポイント付けするのに無限の時間がかかってしまうのではないですか?
    二つ目は、問題が起きたら起きた時に考えれば良いと答えられていますが、何かが起きてから解決できる問題だと良いですけどそうとは限りませんよね、人間は問題が起きないよ
    うに解決しようとしますが田方さんの考えだとその様にはいかないのではないですか?
    人間でも絶対に解決できるというわけではないですが、最善の策を尽くそうとすることはできます。AIはそれを行おうとするとフレーム問題が起こるのでは?

    • 田方 篤志 田方 篤志 より:

      質問ありがとうございます。

      まず最初の質問に対する答えでポイントを付けるとありますが、それはR2-D1の二の舞ではないのでしょうか、考慮するべきポイントは物理的な距離だけではないですし、それをポイント付けするのに無限の時間がかかってしまうのではないですか?

      ポイント付けする目的は、無限に探索することを回避するためです。
      そのために、距離が1m以内の物に限定してポイント付けしたりします。
      または、物理的な距離以外のポイントの例として、時間を考えたとすれば、直近5分以内の出来事のみにポイント付けするといったことを行います。
      これに対し、たとえば、距離1000m以内の物にポイント付けするとか、過去10年以内のすべての物にポイント付けするとかと拡大すれば、無限に近い時間がかかるかもしれません。
      無限に探索するようにポイント付けの範囲を設定することも可能ですが、そうならないように範囲を設定すれば、無限に探索することはなくなると考えられます。

      人間でも絶対に解決できるというわけではないですが、最善の策を尽くそうとすることはできます。AIはそれを行おうとするとフレーム問題が起こるのでは?

      AIは、最善を尽くそうとすると、無限探索に入ってフレーム問題が起こるのでは?という質問ですね。
      無限探索を回避するのは簡単です。
      たとえば10分以上探索しても答がでない場合は探索を止めるようにするとかにすればいいだけです。
      こうすれば、10分後、「最善を尽くしましたが、解決できませんでした」と答えることができ、フレーム問題は起こりません。
      これだと、人間と同じではないでしょうか?

  12. dominor より:

    一貫してロボットがどうすべきかという点を「田方さんが」判断していますよね。それってフレーム問題から抜け出せていませんよ。無視すればいい、という判断をロボット自身ができないというのがフレーム問題の根幹であり、「心が大事」というのも人間の判断ですよね。無視出来る範囲まで人間視点でフレームを広げてるだけでしかなく、フレーム問題が消えてなくなってるわけじゃないんですよ。ただ単に田方さんがフレームを視界の外に押しやっただけ。「心が大事」というなら、ロボットが己の「怖い」という「心」を優先して爆弾を処理しなかったらそれはロボットとして正しいんでしょうか。ロボットの心を大事にすべきかロボットとしての使命を大事にすべきかはロボットはどうやって判断するんでしょうか。人間なら、保身に走っても己の身を犠牲にしても納得されるでしょう。でも、ロボットには「正しさ」が求められる。無限に湧き出てくる問いをどう無視してどう順位付けするか、そういう根本を問うているのがフレーム問題だということです。たぶん、田方さん以外の閲覧している方はお分かりかと思いますが。

    • 田方 篤志 田方 篤志 より:

      質問、ありがとうございます。

      たぶん、田方さん以外の閲覧している方はお分かりかと思いますが。

      やはり、そうでしたか!
      実は、もしかして、僕だけが、「フレーム問題」を正しく理解できてないのでは?と思っていましたので、どこが間違っていたのか、ぜひ、教えてください。
      今回のコメントを読んだだけでは、まだ、わからないので、ぜひ、議論させてください。

      まずは、この点です。

      「心が大事」というなら、ロボットが己の「怖い」という「心」を優先して爆弾を処理しなかったらそれはロボットとして正しいんでしょうか。ロボットの心を大事にすべきかロボットとしての使命を大事にすべきかはロボットはどうやって判断するんでしょうか。人間なら、保身に走っても己の身を犠牲にしても納得されるでしょう。でも、ロボットには「正しさ」が求められる。

      ここから、人間は、「正しさ」より保身に走っても納得できるが、ロボットの場合、「正しさ」が求められると解釈できます。
      つまり、dominorさんは、人間とロボットでは、求められる行動、目的が異なると解釈しているのでしょうか?

      僕の理解では、「フレーム問題」の大枠は、「人間と同じ知能を持つロボットを作ろうと思っても、フレーム問題があるためできない」ということだと解釈していました。
      つまり、「フレーム問題」の前提とする「人間と同じ知能を持つロボットを作る」の部分が、僕が間違っていたということでしょうか?
      もしかして、「フレーム問題」の解釈が、僕とdominorさんとでは異なるのではないでしょうか?

      この点について教えてください。

    • dominor より:

      うーん、なんだか根本的な部分ですね。田方さんが作りたいのはロボットではなく人工生命なのではないでしょうか。
      おそらく、人工生命を生み出せれば田方さんの仰る通りフレーム問題は解決するでしょうね。
      そんなことができれば、の話ですが。

      難しいようであれば、一から生み出す方向ではなく、
      人をロボットに変えたと仮定してみた方がわかりやすいかもしれません。
      その人――彼には一切の主を認めず、誰かに従う存在として行動してもらいます。
      その前提で、彼を死なせないことを考えてみてください。
      何も命じなければ、彼は呼吸すらしません。
      まず一分に何回呼吸すべきか、食事はいつどのようなタイミングで行なえばいいのか、排せつは――など、
      指示することはそれこそ100、1000とあるでしょう
      それらをいったん「己の生命を維持しろ」という命令にパッケージしたとします。
      人間だから実行してもらうのは簡単ですね。
      しかし、「生命を維持する」だけでは社会では生きていけません。先にコメントがあった通りです。
      「法に順じて」「他者に迷惑をかけない」とあわせて命じましょうか。
      しかし、「他者に迷惑をかけない」と「生命を維持する」が拮抗した場合、彼はどうすべきでしょうか。
      自転車が猛スピードで迫ってきたが、避けた場合に背後いる誰かが轢かれてしまう、といったシーンです。
      どちらをどれぐらい優先すべきか、彼はロボットなので判断できませんね。
      避けたら「生命を維持しろ」という命令を実行する視点では不適切です。
      よけなければ、「他社に迷惑をかけない」という命令を実行する視点では不適切でしょう。
      こういった矛盾を解決するために、「優先リスト」を用意してあげたほうがいいかもしれませんね。
      さらに言えば、「内容は自分で考えろ」と命じることできっと自分で作ってくれます。元は人間ですから。
      「自分で生命を維持する」「法に準じる」「他者に迷惑をかけない」「それらを自分で判断して適切に優先する」
      おおよそ、理想的な行動です。

      …気づかれたかもしれませんが、これはもはやロボットではなくただの善良な人間ですね。
      「自分で考え行動する」となるとロボットではいられなくなるんです。
      田方さんの主張は「ロボットを使うぐらいなら人間を雇った方がいい」と同義なのです。

      こういう哲学的な方向でもフレーム問題は解決していませんし、
      「心」をエミュレートする、「意味」を理解するという量的なアプローチにおいても
      フレーム問題は非常に大きな壁となっています。

      意味が理解できないと言う量の問題に関して言えば、
      「太郎は花子が好き」と「花子は太郎が好き」の違いをロボットは理解できないということです。
      人間が教えてあげないと。
      もし田方さんがiPhoneユーザーなら、Siriに「近くにある中華料理屋を教えて」と聞いた後に
      「近くにある中華料理屋以外の店を教えて」と聞いてみてください。
      きっと同じ答えが返ってくるはずです。「以外」の意味が今のSiriには理解できないからです。

      「心」の演算が何故できないかは様々な人が語っていらっしゃるので
      僕のような浅学な人間からは控えさせていただきますけど、
      「フレーム問題は解決済み」なのではなく
      「フレーム問題があまりに巨大な壁なので田方さんの視界の中に入っていない」ということです。
      理解が難しいかもしれません。
      でも、田方さんが理解できないことをどうしてロボットが理解できましょう、と言えば少しは何かが伝わるでしょうか。
      人間同士が話してさえ、通じないのです。
      まっさらなロボットに「意味」を順位付けさせることの難しさが察せられますね。

      世の中で活躍しているロボットは「何をしないのか」を適切に設定されています。
      例えば、「〇〇以外のものを教えろ」と聞かれても「以外」を無視するように。
      今の僕らにできるのは「フレーム問題は解決済み」と思い込んでロボットに「心」を覚え込ませることではなく
      「フレーム問題とは向き合うべきではない」と割り切って
      ロボットにはロボットに向いた作業をさせることなのかなと思っています。

      いかがでしょうか。

    • 田方 篤志 田方 篤志 より:

      dominorさん、丁寧な回答、ありがとうございます。
      回答を全て読ませていただきましたが、肝心の、前回の僕の質問に対する直接の回答はなかったようです。
      ただ、文章から、おおよその検討はつきますので、こちらで、前回の質問のまとめをしたいと思います。

      dominorさんの言う「フレーム問題」とは、どうやら、AIが直面するであろうあらゆる問題を指しているように思えます。
      自然言語処理の意味解析の問題から、いわゆる「トロッコ問題」のような正解の存在しない問題まで、かなり幅広く含んでいるようです。

      それに対して僕の指す「フレーム問題」とは、AIロボットが現実世界で推論するとき、無限探索の問題に直面してフリーズするというジョン・マッカーシーが提唱した問題のみを指しています。

      僕の記事の「フレーム問題は解決済み」とは、このジョン・マッカーシーが提唱した「フレーム問題」の解決を指しますが、僕の記事を読んだdominorさんは、「トロッコ問題」を含む、AIのあらゆる問題が既に解決したと思ったわけですね。

      以上の理解で間違いないでしょうか?

  13. しお より:

    はじめまして。

    フレーム問題は、AIの情報処理能力が限りなく無限である(無限でなくてはならない)というおかしな前提から生まれたものではないかと思います。田方さんがおっしゃるように、探索問題(どこまで探索して打ち切るか)として考えるとそれほど重大な問題ではないように思えます。人間はコンピューターに比べると処理能力・記憶容量で劣り、ほんのちょっと探索して打ち切るので思い込みの結論を出したり、偏った人格(個性ともいう?)に育ってしまいがちですが、問題解決に不要なものを意識から自然とフィルターアウトすることのできる、素晴らしい能力を持っているのだとも言えそうです。

    AIは、AlphaGo等の影響もあって超越した知性のようなイメージを持たれがちですが、ゲームのようなごく情報量の少ない箱庭から抜け出して活動するには、AIも人間のようなある程度の「愚かさ」を受け入れなくてはならないのではないかと思います。

    • 田方 篤志 田方 篤志 より:

      コメント、ありがとうございます。
      おっしゃるとおり、検出したデータ全てを計算していては、無限の処理能力があってもフレーム問題が起こってしまいますね。
      AIにも、関係なさそうなものを適当に無視する大雑把な心が必要と思われます。
      そうなってくると、AIにも性格が出てきて、より、人間っぽくなってくるでしょうね。

  14. 名無し より:

    かじった程度の知識なのですが、5番さんの意見の返信で

    >>これは、前もって知識として持っていればいいでしょう。
      物を移動させるには、その物を持って運び出すといったような知識です。

    と返信されてますが、その物を見分ける、かつその物の状態を見分けること、そのものがどのような性質を持つかなどを定義するのができないという話なのではないのでしょうか?

    • 田方 篤志 田方 篤志 より:

      質問、ありがとうございます。

      その物を見分ける、かつその物の状態を見分けること、そのものがどのような性質を持つかなどを定義するのができないという話なのではないのでしょうか?

      これは、それほど難しい問題ではないと思いますが。
      実際、工場などで、ベルトコンベヤーで流れる物から異物除去するシステムなのでは、カメラからの映像を画像処理して、異物を検知すれば、ロボットアームで除去します。
      これは、色や形などからその物や状態を見分けていることになります。
      色や形で定義しているわけです。

  15. calsite より:

    フレーム問題は現実にロボットが存在する状況を仮定していますが、例え二人零和有限確定完全情報ゲーム(たとえば囲碁)のようにパターンが膨大過ぎるものは事前にすべての可能性について演算することが現実的ではありません。
    Googleの囲碁AI「アルファ碁」が人間に勝利した事実を踏まえると、少なくとも特化型AIに関してはフレーム問題を回避する方法(解決する方法というと語弊がある)は現時点で実用化されていると言えると思います。

    そもそも現在主流のディープラーニングは過去のデータが多いほど精度の高い(あるいは気の利いた)判断ができるようにするものであるので、学習した過去データにおいて存在しない極めて可能性の低い現象(壁の色が突然変わるとか隕石が降ってくるとか)は考慮できません。

    フレーム問題は解決したわけではなく、「作ろうとしているもの」によってはぶり返す問題であると思います。既にコメントで出ていますが「行動前にあらゆる可能性を考慮して人間をはるかに超越した預言者めいた判断力をもって目的を確実に達成する」AIを作ろうと思った場合はフレーム問題は以前として立ちはだかります。

    いきなり一足飛びにそんなAIを作るのは無理なので、フレーム問題がそもそも起きない手法でもっと低レベルなAIを研究していこうというのが現在の主流ではないでしょうか。この趣旨でも「庭の木を1本切って」をこなすことは、学習が十分行われていれば可能に思われます。

    「庭の」→この命令者が「誰の庭」を日本語で省略した場合、「自分の」と思われる。まだそれを学習していなければ確認コストが安いので「聞き返して確認する」
    「木を1本」→「どの木」か学習したデータから判明しなければ「確認する」。枯れた木などがあればそれだと判断する。
    「切る」→命令者の所有物で木を切れそうな道具が無いか検索。ノコギリを発見したが通常材木を加工する道具であって樹木を切り倒す道具ではないので、ネットから検索して道具の購入を検討。チェーンソーは早く楽に切れるが値段が高い。斧はチェーンソーよりはかなり安いがそれなりに高い。伐採/間伐のサイトでノコギリを使用した樹木の切り方を発見。命令者はお金をあまり持っていないことを学習していればノコギリで切る。お金があるかわからなければ斧を注文するか「確認する」。

    学習させた過去データ次第ですが上手く遂行できることが不自然ではないと思います。もちろんそういった命令をこなすロボットのAIは学習データとして日常的にあり得るものを学習させるでしょうから「CIAのサーバーからすべての情報を抜き出してきて」などと命令すれば上手くいかないか、できませんと答えるでしょう。

    • 田方 篤志 田方 篤志 より:

      コメント、ありがとうございます。
      まさに、おっしゃる通りだと思います。
      フレーム問題が提示された1960年代と異なり、現代では、人間に近い思考のロボットも十分可能になってきています。
      フレーム問題にいつまでもこだわるより、人間と同じような思考は、どこまで可能かといった視点に向かうべきでしょうね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です