openai/gymのAtari環境でプランニング可能だって知ってた?俺は知らなかった。
こんにちは。たまにはキャッチーな記事タイトルをつけたくなるwalkingmaskです。
今回はopenai/gymのAtari環境でプランニングを可能にするためのWrapperを書いたので紹介したいと思います。リポジトリは以下。遊び心で木構造を作っていますが、メインとなるのはSavableEnv
です。
• gymutils/plannables.py at master · walkingmask/gymutils · GitHub
(clone|restore)_state
と(clone|restore)_full_state
gymのAtariEnvは(clone|restore)_state
と(clone|restore)_full_state
というプランニング用と言えるメソッドが用意されています。
• Possible ways to replicate a env. · Issue #939 · openai/gym · GitHub
あとはこれを使って、環境の状態を保存し、好きなだけいじくりまわした後にリストアすれば良いだけです。
何ができるかは言うまでもないと思いますが、例えば取りうる全状態の木を生成して、総報酬が最も高いリーフノードに続く行動を取れば学習せずに常に最大報酬を得られます。もちろん、貧弱な計算機力では無理ですが。
これが必要となる背景
しかし、最近流行りの生成モデルを組み合わせることでモデルベースな深層強化学習というのも現れてきています。
• [DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展と…
こういった手法に向けた検証や実験を行えるのではないかと思います。
まとめ
2年以上gymを使っていて、こんな機能があることを初めて知ったのでブログに書いてしまいました。
日本語ドキュメントは見当たらなかったので、誰かの助けになれば幸いです。