やわやわ人工知能考察

人工知能に関する話題を技術的側面だけでなく、もうちょっと俯瞰的に主観的に話してみようとするブログです。やわやわやっていきます。

認識フレーム問題とタスク依存性について

一番最初のテーマはフレーム問題を取り上げたい。このフレーム問題は 1969年第1次AIブームの時にジョン・マッカーシーとパトリック・ヘイズが提唱した問題 (McCarthy & Hayes 1969)である。

一番始めにマッカーシーらが提唱した問題は論理ベース(一階述語論理)による問題でだったが、後に様々な研究者が定式化を行った。最終的に有名な「フレーム問題」はダニエル・デネットによる「認識フレーム問題(Dennett 1978)」であろうと思う。ちなみにデネットはAI研究者ではなく哲学者である。

日本語のフレーム問題をWikipediaで調べるとデネットによる定式化しか出てこない。しかしスタンフォード哲学辞典や英語で書かかれたWikipediaでは、ちゃんとマッカーシーの問題も書かれいる。フレーム問題を取り上げるときに、マッカーシーによるフレーム問題と、デネットによる認識フレーム問題を正しく分けて考えないといけない。

ちなみに論理フレーム問題はマッカーシー自身が解決を試みており、様々な解決方法が提案されている。多くの研究者は「論理フレーム問題」を深刻な問題としてみなしていない。しかし、デネットによる「認識フレーム問題」はどうなのだろうか。これを考えてみたいと思う。(以下、フレーム問題を記述するときは「認識フレーム問題」のことを指す)

The Frame Problem (Stanford Encyclopedia of Philosophy)

認識フレーム問題の例

日本語版のWikipediaには認識フレーム問題の概要が示されているのでそちらを引用する。

現実世界で人工知能が、たとえば「マクドナルドハンバーガーを買え」のような問題を解くことを要求されたとする。現実世界では無数の出来事が起きる可能性があるが、そのほとんどは当面の問題と関係ない。人工知能は起こりうる出来事の中から、「マクドナルドのハンバーガーを買う」に関連することだけを振るい分けて抽出し、それ以外の事柄に関して当面無視して思考しなければならない。全てを考慮すると無限の時間がかかってしまうからである。つまり、枠(フレーム)を作って、その枠の中だけで思考する。

だが、一つの可能性が当面の問題と関係するかどうかをどれだけ高速のコンピュータで評価しても、振るい分けをしなければならない可能性が無数にあるため、抽出する段階で無限の時間がかかってしまう。

これがフレーム問題である。

あらかじめフレームを複数定義しておき、状況に応じて適切なフレームを選択して使えば解決できるように思えるが、どのフレームを現在の状況に適用すべきか評価する時点で同じ問題が発生する。

フレーム問題 - Wikipedia

 ハンバーガーを買おうとするときに「新宿に行って、カラオケに行く」という選択肢もある。でも普通の人間はそのような選択肢を取らない。つまり、

マクドナルドを調べる→映画館を調べる→新宿に行く→映画を見る→マクドナルドに行く→店の店員に「スマイルください」という→恥ずかしくなって、帰る→スタバに行く→コーヒーを買う→マクドナルドに再度行く→ハンバーガーを買う

といった上記の選択肢を取ることは多分ないと思う。よほどのあわてんぼうさん出ない限り・・・。「ハンバーガーを食べる」という行為には無限の可能性がある。ところが意図的に人間は遮断している。「ハンバーガーを食べよう」としたときに「映画館を調べる」や「スタバに行く」という行為は、そのタスクの中で重要度が低いからだ。関連性と言ってもいいかもしれない。

ハンバーガーを買おう」という時に、必要で重要な選択肢のみをフレームで囲って、その他の選択肢を思考から除外している。しかし、機械はそういう人間のようにフレームを囲って処理することができない。永遠に可能性を考えてしまう。無限回思考を行わないために、どこかで踏ん切り、つまり「フレーム」を作ることができない。副次的に発生していまう関係ない現象をそもそも「フレーム」の外に追いやることができない。

このような、「思考を無限後退にしてしまう問題」を「認識フレーム問題」という。ここまでの説明は一般的なフレーム問題の解説である。

本当にフレーム問題は解決できないのか?ー強化学習との関係性ー

さて、現在の人工知能はどのようにフレーム問題を解くことが可能だろうか。少し考えてみる。こういう問題を解くときは、すこしフレーム問題から離れて問題を捉えることも大切だと思う。

そこで、フレームを作る作らないを一度よすけにおいて、このような問題を「あるタスクを達成するための最適解はなにか?」という大きな問題で考えてみる。この問題を解くための人工知能研究はあるだろうか。多分ある。それが強化学習(Reinforcement Learning)である。

qiita.com

強化学習にもいろいろな種類というか設計方針があるため一言で説明するのは難しいのだが一言で言うならば、「タスクに対して、適切な方策を学習する方法」である*1。この強化学習は、教師あり学習とは異なり、答えが完全に用意されていない。しかし、環境内で試行錯誤を繰り返していくうちに、タスクにピッタリの方策を学習していく。試行錯誤を評価するのが、環境から与えられる報酬である。報酬によって、方策を更新していく。*2

逆に言えば、タスクがしっかりしており環境からの報酬が定式化されておれば、強化学習は幅広い問題を解くことが可能となっている。

例えば、2018年最新の強化学習アルゴリズムR2D2Atariゲームベンチマークで昨年のアルゴリズムApe-Xをあっという間に置き去りにした。*3

Recurrent Experience Replay in Distributed Reinforcement Learning | OpenReview*4

また、R2D2でも難しいされているAtariゲーム「Montezuma's Revenge」を探索していない場所に対してより多くの報酬を与えるというギミックを導入することで人間を超えるスコアを叩き出した。

Exploration by random network distillation | OpenReview*5

さらに、忘れてはいけないのはDeepMindによる[Alpha]シリーズではないだろうか。(勝手に私が言っているだけだが)。最新のAlphaは同じ設計で囲碁・将棋・チェスの3つのゲームをほぼ同じシステムで現在最強と呼ばれる他のマシンを圧倒することができるようになった。

science.sciencemag.org

deepmind.com

 今回はタスクがわかりやすいゲームをあげたが、近年の強化学習では、歩き方の創発やロボットの制御、環境の近似化などを達成することができるようになってきた。少なくとも様々なタスクを達成可能している。強化学習の種類に関しては次のQiitaが詳しい。

qiita.com

もう一度ここで最初の問題に戻ってみる。「あるタスクを達成するための最適解はなにか?」という問題に、強化学習はどうやら答えられているようだ。まだまだ強化学習には研究しなければならない課題があるが(汎化の問題など)、タスクが決定し、報酬系を正しく与えることができれば、最適解を導くことは可能である。

試行錯誤中(学習中)はとんでもない方策を導くこともあるかもしれないが、少なくとも学習の最終的な到達点においては「思考を無限後退にしてしまう」という問題は発生していない。また、様々な選択肢があるにもかかわらず環境の変化に応じて柔軟に行動の選択肢を変化することもできる。フレームを適切に選んでいると考えられる。

Wikipediaの例で示された問題を考えよう。つまり現段階の強化学習において、「マクドナルドでハンバーガーを買いなさい」というタスクと、ハンバーガーを買うための報酬系が正しく定式化できれば、強化学習を搭載したエージェントは、ハンバーガーを購入することが可能なのだ。風が吹いたら看板が落ちるかもといった今までよく言われていた、フレーム問題はそこに発生することはない。

こう考えると強化学習の研究において(もしくは人工知能研究において)、強化学習の挑戦的課題が残っている今、フレーム問題というものを考えることは無意味なのかもしれないのか。

フレーム問題は解決済み -フレーム問題に見る、AI史の闇ー – AIに意識を・・・ 汎用人工知能に心を・・・ ロボマインド・プロジェクト

上記のサイトでもここでも同様のことを論じていた。*6

タスク依存性からみる強化学習とフレーム問題

認識フレーム問題を「あるタスクを達成するための最適解はなにか?」というふうに捉えると、強化学習によって達成できそうだ。しかし、ここで問題を一歩勧めたい。現実的なタスクは静的なものばかりだろうか?

ある1度マクドナルドを買うことができた強化学習を搭載したエージェントはその獲得した知識利用して再度マクドナルドに行こうとした。

しかし、マクドナルドが臨時休業していたり、ものすごい長蛇の列で購入に1時間程度かかったり、マクドナルド付近がポケモンGoのプレイヤーでたどり着けなかった場合はどうするのか。

「じゃあまたそういうときのためにタスクを変えて強化学習しよう。今まで学習につかった事前知識を利用しよう」

なるほど、そうすると、寒い中空きもしないマクドナルドの店の前で凍えながら(エージェントが凍えることはあるのだろうか?)「ビッグマック・・・ください」とは言わないだろう。エージェントは別の報酬を利用して新しいタスクを解く方策を学習した。

環境とタスクが変わるたびに学習を行えば、あまり問題はなさそうだ。しかし言い換えると、「ハンバーガーを食べる」という目的をたてるたびに、環境外圧によってタスクの微妙な修正が必要かどうか確認を行い、必要に応じて内部の知識を再構築しなくてはいけない。学習が終了した時点で環境が変わってしまったら、タスクを書き換え、再度内部の知識を構築し直さなけばならない。*7

もう一度自分が学習した知識をベースにして再び学習を始めるのだ。タスクを少しいじるだけで、学習した内部知識はある意味使い物にならない。タスクごとにそれを解決する強化学習。またタスクが変わった・・・それに対応する強化学習・・・。

そうすると、このような「タスクに対して依存性がある」強化学習では、最終到達点であるタスクがコロコロ変わってしまうと、環境や報酬系を再定義して、再び学習を行い新しい方策を見つけなければいけない。タスクが定常状態になるまで繰り返さなければいけない。そう考えると、エージェントはマクドナルドにたどり着くことはできなくなってしまうのではないか?

前章まで話していたフレーム問題の回避は、タスクが静的という仮定のもと考えられた話であった。今までのフレーム問題は、風がふいたら看板が落ちるかもしれない、さあどうしようといったミクロレベルを話していた。これは強化学習で対応できる。風が吹いて看板が落ちることは報酬に関係ないからだ。

しかし実環境を考えると、タスクは微妙に修正を繰り返してしまうというタスクに対するマクロレベル問題を考える必要になる。認識フレーム問題から逃れられないのではないか・・・。 

「そうならないようなシステムを作ろう」としたとき、再びタスクに対して依存性が発生する。どのタスクを選択するかというメタタスクは、またタスクの可能性や変化によってメタタスクを書き換えなければいけないからだ。

またこういう問題も考えられるだろう。「ハンバーガーを食べる」という目的を達成するために一番適切なタスクを機械は生成することはできるだろうか。目的は固定されていても、タスクレベルではやはりダイナミックに状況が変化してしまう。その目的に合うタスクを考えることは、やはり環境や報酬によって容易に変化してしまう。これもメタタスクの問題に分類されるだろう。

このように、機械学習についてくるタスク依存性から抜け出さない限り、強化学習を持ってしてもマクロレベルのフレーム問題は回避できなくなってしまうのではないか。

閑話休題して、人間の場合を考えてみよう。

多くの人が「マクドナルドじゃなくてモスバーガーにでもしようか」「せっかくだから相模大野まで足を伸ばしてマックを食べるか」「いや、新百合ヶ丘のほうが駅からマックの距離近いぜ」などと言ってそのマクドナルドではなく別のマクドナルドや別のハンバーガーショップに行こうとする。簡単である。ハンバーガーを食べようとしたときにそのタスクを達成するためのフレームを柔軟に構築することができる。

この人工知能と人間の違いはどこから生じるのか。なんとなく、このフレームに対する柔軟性が何かヒントになるのではないか。そしてフレーム問題を解決できない人工知能は結局人間に及ばないのか。いや多分、決してそういうことにはならない。AlphaZeroがその1つのヒントを与えてくれている。次の話ではテーマを深掘りしていきたいと思う。

 

ご意見やご感想がありましたらコメントをぜひよろしくお願いします。また間違いの訂正もぜひよろしくお願いします。

*1:いろいろな資料を漁ったが、じんべえざめ (@jinbeizame007) | Twitterさんの資料が非常にわかりやすい

*2:注:この説明はすごくアバウトである。本当にアバウト。Web上には様々な強化学習の資料や勉強会スライドがあるから、真面目にそっちを見た方がよい。私もお世話になっております・・・

*3:2006年有馬記念的な何か

*4:現時点で、ICLR2019でAcceptされている。これでPosterなんだからどだけレベルが高い国際会議かわかるでしょうに

*5:ICLR2019:Accept(Poster)

*6:ただこのサイトでは論理フレーム問題と認識フレーム問題を混同しているフシがある。最後で解決済みと言っているのだが、迷路のような特殊空間で起きること言っているが、現実世界ほどタスクが常に変化してしまう迷路空間はないような気がする。このへんはもうちょっと議論が必要かもしれないが

*7:今更ながら、目的とタスクの違いについては別途説明が必要であると思ったのでここで述べる。私は目的というのはかなり大きな範囲でとっている。例えば今回の例だと「ハンバーガーを食べる」である。その目的を達成するために様々なタスクが存在する。例えば「マックで食べる」というものタスクある。強化学習もタスクレベルの方策を与えていると考えている。