世界モデル(World Models)夢とは何か
これはGoogle BrainのDavid Ha氏とLSTMの考案者Jurgen Schmidhuber氏によるものです。
ところで人は何故「夢」をみるのでしょうか。何かに追いかけまわされる夢、取り返しのつかないことをしてしまう夢を見て飛び起きるということは誰でも一度は経験していると思います。このような経験をさせる意味とは一体何なのか気になります。
夢の役割とは何なのかという問いに対する仮説の一つとして「シミュレーションと行動計画を行っている」というものがあります。現実世界に起こり得そうなことをシミュレーションして、より良い振る舞いを獲得する、そうすることで人は生存を有利にしているのかもしれません。そしてこの研究、”World Models“はその仮説の妥当性を補強するものと言えるかもしれません。

本研究でどういうエージェントを考案したのか具体的に見ていきたいと思います。エージェントの内部は三つの部分で構成されます。Vision(V)、Memory(M)、Controller(C )の三つです。まずVによって画像入力が低次元ベクトルzへと変換されます。その変換後のベクトルzはRecurrentNeuralNetworkであるMに渡され、そしてMは時間的情報を持った内部表現hを持ちます。Cはこのhとzをもとにactionを決定し出力します。ここでCは逆誤差伝搬による学習を前提としたニューラルネットではなく、進化的手法、具体的にはCMA-ESと呼ばれるアルゴリズムによってパラメータが更新される単層の線形モデルです。Mの効果に注目するためにCはできるだけシンプルなものになっています。

学習はV・M・Cそれぞれ独立で行います。ランダムなアクションを行うpolicyからのrolloutによって学習データが生成されます。Mモジュールは現在のz(t)と与えられたactionからz(t+1)が予測できるように学習します。Cモジュールは環境から得た報酬をもとにパラメータを学習します。

重要なのは学習済みのMからpolicyであるCを学習することができるという点です。同時に学習するわけではありません。ランダムpolicyから得られたデータをもとに環境モデルがMのなかに作られており、Mは具体的なactionを与えると次の瞬間における世界の状態を出力します。Mを用いて何度もrolloutを行い、Cはエピソードごとに最終的に得られた累積報酬をもとにパラメータを最適化していきます。これが夢の中でシミュレーション・試行錯誤を行いながらより良い振る舞いを学習するということに対応します。
実験結果としてはDoomにおいてはOpenAI Gymのleaderboardの記録を上回るスコアが出せたとのことです。実際のところ人間の「夢」もこのようにシミュレーションによって生存上有利な振る舞いを学習するという役割があるとすれば面白いですね。
またこの研究における鋭い視点としては時間変化から有用な情報を得ているというものがあると思います。別の研究では、人手によるアノテーション無しに動画からロボットの姿勢の潜在表現ベクトルを獲得することに成功しています。時間の流れとともに対象がどう変化するか、そこに重要な情報がたくさん含まれていると言えます。
日本のAIの第一人者、松尾豊は「『世界モデル』が今後の鍵になる」と2020年に言っており、「人工知能のかなりコアな部分で『世界モデル』がこれから重要になる。今後、2〜4年ぐらいの技術的な開発の鍵になるだろうなと思っています」と語っています。
結局、「世界モデル」とは何か? 松尾豊さんの説明を紹介しよう。
人間の場合は、たとえば、一部しか見えてなくても、全体像を想像したり、水が入ったガラスのコップを落とすと、何が起きるかを想像したりできる。人間には頭のなかにシミュレーターが入っていると言える。このような頭のなかのシミュレーターは、赤ちゃんが生まれたときが持っているものではなない。学習で自らが獲得するものだ。
と語っている。