Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

MineRL Competition Tutorial with ChainerRL

1.847 Aufrufe

Veröffentlicht am

2019年7月19日開催 Deep Learning Lab講演資料
NeurIPS 2019: MineRL CompetitionのオーガナイザーであるPFNの仲田圭祐と城下慎也がコンペ概要と、baselineとして採用された ChainerRL を紹介しました。
https://youtu.be/ggo1WAldyq0

Veröffentlicht in: Technologie
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

MineRL Competition Tutorial with ChainerRL

  1. 1. 2019/07/19 (Fri) Deep Learning Lab @ Microsoft Japan Preferred Networks, Inc. 仲田圭佑 (Keisuke Nakata) 城下慎也 (Shinya Shiroshita) MineRL Competition Tutorial with ChainerRL aka.ms/MineRL
  2. 2. MineRL@PFN チームメンバーのご紹介 • Avinash Ummadisingu • Crissman Loomis • Keisuke Nakata (本日発表者) • Mario Ynocente Castro • Prabhat Nagarajan • Shinya Shiroshita (本日発表者) • Shohei Hido • Yasuhiro Fujita 2
  3. 3. 自己紹介:仲田 • エンジニア @ Preferred Networks • 普段のタスク:データ分析 (と ChainerRL メンテ) • 強化学習に興味があります • Minecraft 歴:エアプ 3
  4. 4. 目次 • MineRL • ChainerRL • MineRL についてもっと • MineRL tutorial with ChainerRL – ナイーブな baseline (仲田より) – 軌跡データを活用した baseline (城下より) 4
  5. 5. 目次 • MineRL • ChainerRL • MineRL についてもっと • MineRL tutorial with ChainerRL – ナイーブな baseline (仲田より) – 軌跡データを活用した baseline (城下より) 5
  6. 6. 6 Towards AI in Minecraft
  7. 7. The MineRL Competition • “The MineRL Competition for Sample-Efficient Reinforcement Learning” • NeurIPS 2019 regular competition • ダイヤモンドの入手 • Carnegie Mellon Univ. (開発/コンペ主導) • Microsoft (計算環境提供) • Preferred Networks (ベースライン提供) • AIcrowd (コンペシステム提供) 7 最終タスク オーガナイザ (順不同)
  8. 8. The MineRL Competition • 強化学習の研究は近年大きく進歩している一方で、 要求されるサンプル数が増加 • 一部の巨大AI企業以外による研究が難しい • 実世界応用が難しい • サンプル効率の良い RL システムの開発を競う – ただし、人間のデモデータ (データセット) が 利用可能とする 8 課題 MineRL Competition
  9. 9. The MineRL Competition 9 2019年6月 7月 8月 9月 10月 11月 12月 7/8 ROUND 1 開始 9/22, 9/29 ROUND 1 提出終了/結果発表 9/30 ROUND 2 開始 10/25, 11/12 ROUND 2 提出終了/結果発表 ROUND 1 ROUND 2 12/8 NeurIPS 2019 ● 9/22 時点の提出コードをもとに モデルの再学習が走り、 最終結果となる Top 10 ● 新しい環境/データセットで再学習・再評価
  10. 10. The MineRL Competition • 最終評価対象は、 「提出されたスクリプトを新しい環境/データセットで (スク ラッチから) 学習したエージェント」のスコア (さらに環境との interaction 回数も制限あり) • 既存の環境/データセットへの過適合の防止 • 「サンプル効率の良さ」を測る 10 評価方法について
  11. 11. The MineRL Competition • https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines • PFN 開発の ChainerRL を利用したベースラインを提供 • “starter kit” として、 – 環境 (やデータセット) をどう動かせば良いか – 最初に取るべきナイーブなアプローチ などについての取っ掛かりを提供 11 ベースライン
  12. 12. 目次 • MineRL • ChainerRL • MineRL についてもっと • MineRL tutorial with ChainerRL – ナイーブな baseline (仲田より) – 軌跡データを活用した baseline (城下より) 12
  13. 13. Deep reinforcement learning library built on top of Chainer 13
  14. 14. ChainerRL • Chainer による (深層) 強化学習フレームワーク • 強化学習の有名アルゴリズムの再現実装も含まれる 14
  15. 15. ChainerRL • 再現実装では、手法そのものはもちろん、 – 環境設定の細かな差異 – ハイパーパラメータ – 評価プロトコルとメトリック などを注意深く実装し、再現性を追求 15
  16. 16. 目次 • MineRL • ChainerRL • MineRL についてもっと • MineRL tutorial with ChainerRL – ナイーブな baseline (仲田より) – 軌跡データを活用した baseline (城下より) 16
  17. 17. MineRL についてもっと • Microsoft 開発の Open AI gym 互換 Minecraft 環境 • “mission ファイル” によるタスク定義 • multi-agent プロトコルもサポート • MalmÖ を利用し、同期・安定・高速化 – 特に同期は重要 -- 1step ずつ action したい! • 各タスクに対応するデータセットも提供 17 MalmÖ MineRL
  18. 18. MineRL についてもっと • ダイヤモンドの入手はかなり難易度の高いタスク • いくつかの中間タスクが提供される: – MineRLTreechop – MineRLNavigate – MineRLObtainIronPickaxe – MineRLObtainDiamond -- これが最終タスク Navigate には Extreme 版†、Navigate/Obtain* には Dense 版‡も提供される †: “extreme” な地形で開始 ‡: 報酬がより密に与えられる 18 “補助” タスクたち
  19. 19. MineRL についてもっと • 64個の「原木 (log)」を集める – 原木は Minecraft のキーリソース • 森 (=周りに木が多い) で、 鉄の斧を持った状態からスタート • log を入手するごとに +1 reward 19 MineRLTreechop
  20. 20. MineRL についてもっと • 指定されたゴール地点へ向かう – Minecraft で最も基本となるスキル • “compass” を観測可能;ゴール方向を指示してくれる • ゴール到達で +100 reward – “Dense” 版では更にゴールにとの距離に応じて毎ステッ プ報酬を貰える (遠ざかると負の報酬) 20 MineRLNavigate
  21. 21. MineRL についてもっと • ダイヤモンドを入手する – Minecraft で最も貴重なアイテムのひとつ • 多くの中間アイテムが必要となる • ダイヤモンド入手で +1024 reward – 中間アイテム入手でも (小さめの) 報酬 – デフォルトではアイテムの1回目の入手時のみ報酬が貰える “Dense” 版では何度でも貰える 21 MineObtainDiamond
  22. 22. MineRL についてもっと • ダイヤモンドの入手には多くの中間アイテムが必要となるた め、かなり困難なタスク – 木を入手→丸石を入手→かまどをクラフト→鉄鉱石を入手→鉄インゴットを 精錬→鉄ピッケルをクラフト→ダイヤモンドを入手 22 MineObtainDiamond
  23. 23. MineRL についてもっと • 公式ドキュメントをご覧ください 23 その他環境の詳細
  24. 24. MineRL についてもっと • 各タスクに対応するデモンストレーション (データセット) が提 供される – 人間によるプレイデータ • タスクごとにそれぞれ100~250個程度ずつ与えられる • 環境との interaction 回数は制限されているが、 データセットは (時間の許す限り) 何度でも使って良い 24 データセット
  25. 25. MineRL についてもっと • 単一のキー入力ではなく、意味のある「行動」単位で定義さ れる – attack, camera, forward, craft, place, … – 各行動は同時実行可能 (gym の Dict space として定義) だが、 相反する行動もあることに注意 (forward と back など) • 補助タスクではいくつかの行動が不可能になっていることが ある – 例えば Treechop では craft や place はできない (必要ない) 25 action について
  26. 26. MineRL についてもっと • observation: – pov (一人称視点の画像) • 64x64x3 (uint8) の numpy array – inventory (所持アイテム) • dirt とか log とか iron_ore とか – equipped_items (装備している道具) • wooden_axe とか iron_pickaxe とか – compassAngle (ゴール方向の指示) • Navigate* でのみ利用可能 • action 同様、補助タスクごとに得られる観測は異なる (pov は必ずある) 26 observation について
  27. 27. MineRL についてもっと 27 >>> import gym >>> import minerl # ちょっと時間かかる (Minecraft の起動が後ろで走る ) >>> env = gym.make('MineRLObtainDiamond-v0') 基本的に Gym API 準拠 = 世の中の RL ツールがだいたい動く
  28. 28. MineRL についてもっと 28 >>> obs, info = env.reset() # info も一緒に返ってくる。ちょっと Gym API と違う >>> obs {'equipped_items': {'mainhand': {'damage': 0, 'maxDamage': 0, 'type': 0}}, 'inventory': {'coal': 0, 'cobblestone': 0, ... }, 'pov': array([[[ 0, 0, 0], [ 16, 32, 9], ..., [ 75, 91, 118]], dtype=uint8)} >>> info {}
  29. 29. MineRL についてもっと 29 >>> action = env.action_space.sample() # 適当な action を取得 >>> action OrderedDict([('attack', 0), ('back', 1), ('camera', array([ 39.44639 , -77.577675], dtype=float32)), ('craft', 3), ... ('nearbySmelt', 0), ('place', 3), ('right', 1), ('sneak', 0), ('sprint', 1)])
  30. 30. MineRL についてもっと 30 >>> obs, reward, done, info = env.step(action) >>> obs (略) >>> reward 0.0 >>> done False >>> info {}
  31. 31. 目次 • MineRL • ChainerRL • MineRL についてもっと • MineRL tutorial with ChainerRL – ナイーブな baseline (仲田より) – 軌跡データを活用した baseline (城下より) 31
  32. 32. MineRL tutorial with ChainerRL • • Treechop/Navigate をナイーブに解く – データセットを無視 – action/observation space に強い prior を仮定 32 ナイーブなアプローチ Treechop Navigate NavigateDense trainingreward training episode https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  33. 33. MineRL tutorial with ChainerRL • Treechop と NavigateDense はクリアできる • Navigate はできていない → Obtain* タスクはこれよりも難しい! 33 ナイーブなアプローチ Treechop Navigate NavigateDense https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  34. 34. MineRL tutorial with ChainerRL • action space に強い prior を仮定している → このままでは他のタスクには転用できないことに注意 • Treechop – 5次元の離散行動に変換 i. {'forward': 1, 'jump': 0, 'camera': [0, 0]} ii. {'forward': 0, 'jump': 0, 'camera': [0, 0]} iii. {'forward': 1, 'jump': 1, 'camera': [0, 0]} iv. {'forward': 1, 'jump': 0, 'camera': [0, -10]} v. {'forward': 1, 'jump': 0, 'camera': [0, 10]} attack は常に on、それ以外は常に off 34 action space について https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  35. 35. MineRL tutorial with ChainerRL • Navigate/NavigateDense – 4次元の離散行動に変換 i. {'jump': 0, 'camera': [0, 0]} ii. {'jump': 1, 'camera': [0, 0]} iii. {'jump': 0, 'camera': [0, -10]} iv. {'jump': 0, 'camera': [0, 10]} forward, sprint, attack は常に on、それ以外は常に off 35 action space について https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  36. 36. MineRL tutorial with ChainerRL • Double Dueling DQN (勝手に略して呼んでるだけ) • DQN のいろんな派生を詰め込んだ手法 • Proximal Policy Optimization • 連続空間で定義された行動を自然に扱えるが、 ベースラインでは離散化した行動を利用 36 DDDQN Rainbow PPO https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  37. 37. MineRL tutorial with ChainerRL • 以上の事前知識のもと、ハイパーパラメータを適当にチュー ニングして得られた結果が下図 (再掲) 37 Treechop Navigate NavigateDense trainingreward training episode https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  38. 38. action space の制約 (特に camera を上下に動かせない) のため、 人間から見ると最適とは言えないものの、 その範囲で「タスクをクリア」できている? 38 MineRLTreechop MineRL tutorial with ChainerRL https://github.com/minerllabs/quick_start/tree/master/chainerrl_baselines
  39. 39. 自己紹介:城下 • エンジニア @ Preferred Networks • 学生時代はアルゴリズムの研究をしていました • PFN では強化学習・模倣学習の応用を中心に 研究開発しています • Minecraft 歴:3 - 4 年 39
  40. 40. ここからの流れ • Demonstration の必要性 • Demonstration を使うアルゴリズムの紹介 – Behavioral Cloning – Generative Adversarial Imitation Learning (GAIL) [Ho & Ermon, 2016] 40
  41. 41. Demonstration の必要性 • 探索空間が広く、報酬関数が疎の場合、 高い報酬を得られる挙動を試行錯誤のみで学習する ことは難しいです。 41 例えば ObtainDiamond では、 事前情報がないと、偶然ダイヤモンドを掘り出すまで 掘り出し方を学習できません。 ?
  42. 42. Demonstration の必要性 • 手動でエージェントに答えを入力することはルール上認めら れていません。 → その代わり、MineRL のコンペティションでは、 人間のプレイヤーの軌跡を保存したデータセットが 利用可能です。 • ここでは、強化学習のアルゴリズムのうち、 Demonstration を用いた模倣学習 (Imitation Learning) の 実装について紹介します。 42
  43. 43. MineRL tutorial with ChainerRL • ベースラインとして以下の 2 種類のアルゴリズムを 実装しています。 43 Behavioral Cloning Demonstration を教師データとして、Observation から 対応する Action を学習します。 GAIL 人間のデータを真似ようとするネットワーク (Policy)と、 それを見破るネットワーク (Discriminator) を戦わせます。
  44. 44. MineRL tutorial with ChainerRL • GAIL では次の Action space を用いました: – 離散アクションは各行動ごとに確率を出力 • Attack, forward, back, left, right, jump, ... – 連続アクション(camera)は縦横それぞれについて • -10 度から +10 度の範囲にクリッピング – 大半のフレームではこの範囲でカバーできます • 上記を 7 等分に離散化 ※ GAIL の場合、Demonstration の action space と一致させなければ、 識別機 (Discriminator) が Policy に真似できない差を学習する恐れがあります。 44 action space について
  45. 45. MineRL tutorial with ChainerRL • Treechop と NavigateDense について実験し比較 – Frameskip は 4, 8 を試しています – 今回の手法は環境の報酬を学習に用いないので、 Dense か否かによる性能差はありません。 • 環境をうまく汎化できていません。 • 環境は毎回新しく生成されるので、未知の状況を うまく学習させる必要があります。 45 Behavioral Cloning 未知の状況に陥った場合の 適切な行動を学習できない
  46. 46. MineRL tutorial with ChainerRL • Treechop に関しては、最大 10 個近くの木を獲得 • NavigateDense に関しても、最大 60 付近の平均報酬を獲得 46 GAIL Treechop NavigateDense 縦方向の制御も可能なので、縦に並んだ ブロックも獲得することができます
  47. 47. MineRL tutorial with ChainerRL • ハイパーパラメータのチューニング – Optuna! https://optuna.org/ – action/observation space をもっとちゃんと考える • GAIL/BC は ChainerRL で未サポート – 近い将来に入る予定 • 最新の MineRL (dataset 含む)/公式の評価環境での動作確認 – dataset 含め、MineRL は現在頻繁に更新されている – 公式の評価環境が準備されている様子だが、 まだベースラインの動作確認をできていない 47 やり残したこと
  48. 48. Resources • MineRL – MineRL and Project Malmo – Competition official – Documentation for MineRL – Proposal paper • Chainer family – Chainer – ChainerRL 48
  49. 49. © 2019 Preferred Networks, Inc.
  50. 50. Navigate • GAIL の NavigateDense の報酬を sparse な報酬に 変形した場合 50 NavigateDense Navigate

×