【論文読み】Large-Scale Study of Curiosity-Driven Learning
Summary
この前の論文(Curiosity-Driven Learning)の続きみたいな感じの論文。特に外的報酬を全く利用しない場合に焦点を当て、内的な報酬のみでどれだけタスクをこなせるか・どんな挙動が観察されるかについて広範囲の実験を行なったもの。基本的に提案手法はこの前のものと同じなので数式・新しい概念はあまり出てきません。
結果についての動画が論文のランディングページ(?)に挙がっています。
Experiments
Environments
実験対象の環境(ゲーム)一覧
- 54 Atari games *1
- Super Mario Bros.
- Unityの3Dナビゲーションゲーム *2
- 2人対戦のピンポンゲーム
- Roboschool *3
Feature Learning Methods
前の論文ではstateの特徴を抽出するモジュールとして、状態とからその差分の行動を計算するInverse Model(この論文ではIDF: Inverse Dynamics Featureと呼んでいます)を用いていたが、今回の実験ではそれに加えて
を使って比較検証を行なった。これらはどれもやは使わず、単純にの特徴量を1対1で写像しているだけのもの。
これらの特徴抽出モデルを検討にするにあたり、以下の3要素が重要になると述べられている。
- Compact: 状態の特徴量をどれだけコンパクトに(低次元に)圧縮できているか
- Sufficient: 状態を表す十分な情報が保存されているか
- Stable: 特徴量が学習中にどれだけ安定しているか。探索と並行して学習していくVAEやIDFはこの要因により学習が不安定になる可能性がある
比較対象の4つのモデルについてそれぞれ軽くまとめ。
- Pixels: 全ての情報を含んでいるのでSufficientで変換がないのでStableだが、無圧縮なのでCompactでない
- RF: CompactかつStableだが、ランダムな写像なので十分な特徴を含んでいない可能性がある
- VAE: Compact、元の状態を復元できるように学習するのでSufficientだが、学習が必要なのでStableでない
- IDF: Compactだが、行動を予測するよう訓練するので状態に関してはSufficientでない可能性がある、Stableでない
Practical Considerations
学習にあたって行なったより具体的な調整。特徴量をいかに安定させるか(数値のスケール・分布を一定に保てるか)が、学習全体を安定化する上で非常に重要になるとのこと。
PPO*5
提案手法は内的報酬を計算する部分のみに関するものなので、Policyのアルゴリズムには自由度がある。ハイパーパラメータ*6の少なさや頑健性から実験では一貫してPPOを用いる。
Reward normalization
Advantage normalization
PPOにおけるAdvantage()を平均0, 標準偏差1に正規化
Observation normalization
状態の正規化。あらかじめエージェントを10000ステップほど走らせ、そこで得られた状態を元に正規化を行う
Feature normalization
特徴抽出部分にBatch Normalizationを使って特徴量を正規化
More actors
PPOではエージェントを並列で走らせるが、その数が増えるほどより学習が安定したとのこと (バッチサイズと同じイメージで捉えると良いかと思います)
正規化や細かい前処理がいかに大事かを思い知らされ、とても参考になります。
"Death is not the end"
探索の段階ではゲームオーバーをエピソードの終了など特別なシグナルとは見なさず、「初期状態への遷移」という単純な状態遷移とみなす。特別な処理を行わなくても、初期状態というのは何回も見る「退屈な」状態であり、好奇心がうまく働いて勝手に回避されるようになる。
言われてみれば確かに人間でも同じような心理が働いている気がして興味深いポイントです。
Results
Atari & Mario
まず外的報酬を全く使わない条件でAtari/Marioを学習させた結果。
Pixelsは予想通りどのタスクでも性能が低い。その他の3つはタスクによってブレがあるが、概ね同じくらいの結果になっている。VAEは他に比べても比較的うまくいっているように見えますが、「なんとなく不安定(somewhat unstable)」であり、これ以降の検証からは外されてしまいます。
完全にランダムなエージェントに対しIDFは75%のゲームで、RFは70%のゲームでより多くの報酬を獲得したとのこと。IDFとRFの比較ではIDFが55%で勝利。しかしMontezunaRevengeのように内的報酬だけではうまくいかないゲームもあったそう。
興味深いのがRFの性能で、ランダムに特徴抽出しただけなのにIDFに匹敵する性能を叩き出している。理由としては比較的ゲームが単純でありそもそもの状態の情報量が少ないこと、特徴量の安定性が学習を進める上で非常に重要でありRFはその点においてIDFより有利であることなどが挙げられる。
報酬(つまりゲームの目的)を全く与えず、多くのゲームにおいてエージェントが好奇心だけでクリアすることができた、というのは驚くべき結果です。これに対するやや否定的な見方としては、「洗練されたゲームはユーザーの好奇心がゲームと目的と一致するように作られている」という点が挙げられます。人工知能によってゲームの本質が浮かび上がるというのもなかなか興味深いですね。
またMarioでは前の論文での実験に比べ100倍(!)の時間をかけることで、11ステージものクリアを達成することができたとのこと。より多くのエージェントを並列で学習させたことで学習の安定性が向上したことが一因として考えられます。
Roboschool
ゲームの設定がよくわからなかったので動画のスクリーンショットだけ載せておきます。
Multi-agent curiosity in Two-player Pong
2人ピンポンでどちらもCuriosity-drivenなエージェントにしたら何が起きるか。ラリーの長さを測ったところ順調に伸びていき、ついにはゲームが崩壊して反応しなくなってしまった(笑)とのことです。
Skill Generalization
Marioにおいて、検証するステージを変えることでステージ依存でない一般的なプレイテクニックが獲得されたかを検証する実験。ステージ1-1であらかじめ訓練したエージェントを他のステージ(1-2/1-3)で転移学習させ、1から学習するよりも効率的に学習が進むかを調査した。
RFよりIDFの方が汎用スキルの獲得ではうまくいっているように見える。右側は背景色が変更され、難易度も格段に上がるため1-2に比べて苦戦しているが、1-1で獲得されたスキルが探索において役立っている証拠が(プレイの様子を観察結果から?)確認できた。
Unity Maze
Unity ML-agentsのMazeでも検証。ここでは目的地に着いたら+1、他には報酬を与えない非常にスパースな報酬のみを与えたが、好奇心による探索でうまく迷路をクリアすることができた。
Discussion
今回の実験では少なくとも、「好奇心がプレイヤーを自然と目的に導くような」人間が設計したゲームでは学習がうまく行くことを確認できた。
しかし、ゲームにランダムな要因が含まれている場合、常に予測誤差が発生するため学習がうまくいかない可能性がある。例えばMazeにおいて迷路内にランダムな動画を放映する巨大なスクリーンを設置したところ、そこに気を取られて学習が止まってしまうという現象が見られた。
今後の研究ではこの問題を解決し、現在人手による報酬が確立されていない(unlabeled)環境での探索を、より高次元なタスクの遂行に役立てることができないかを一つの大きな目標としたいと述べられている。
感想
外的報酬を全く使わずにこれだけのパフォーマンスが学習されるというのは驚くべき結果だと思います。 筆者も述べているようにこれまで人手の報酬が確立されず研究が進んでこなかった分野についての発展が期待されます。また最後のTVの例など、人間の子供と同じような挙動が観察されているのも非常に興味深い点だと思います。
最後の確率的要因への対応というと確率的モデルを取り込んだネットワークなどが使われていくのでしょうか。関連する話題としてWeight Uncertainty in Neural Networksも読んだので近いうちに投稿したいと思います。
最後までお読み頂きありがとうございました。
*1:コンソールゲームが色々入ったゲームセット。強化学習界隈の標準的なベンチマークになっています。OpenAI Gymで簡単にPythonからプレイできます。
*2:https://github.com/Unity-Technologies/ml-agents
*3:こちらもOpenAI Gymからプレイできるようです。
*4:通常のオートエンコーダーの中間層を確率モデル化し、標準ガウス分布に近づけるような制約をつけたもの
*5:参考: https://towardsdatascience.com/proximal-policy-optimization-ppo-with-sonic-the-hedgehog-2-and-3-c9c21dbed5e
*6:学習で変化しない、手動で与えるパラメータ
*7:並行して動かしているエージェント全体での報酬という意味だと思われます