Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OSS強化学習向けゲーム環境の動向

661 views

Published on

グリー開発本部 Meetup #2 ゲーム x 強化学習エンジニアリングで発表された資料です。
https://gree.connpass.com/event/112599/
#GDMeetup

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

OSS強化学習向けゲーム環境の動向

  1. 1. Copyright © GREE, Inc. All Rights Reserved.Confidential OSS強化学習向けゲーム環境の動向 グリー株式会社 開発本部 森田想平
  2. 2. ● 自社ゲームを強化学習向け環境へ変換する場合 ● 可能ならマルコフ決定過程として定義する ● OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く ● 変換する際のインタフェース ● 環境側のサーベイ結果を見ても、事実上の標準はGym ● それで要件が足りるかはエージェント/フレームワーク次第 ● 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ
  3. 3. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  4. 4. Copyright © GREE, Inc. All Rights Reserved.Confidential 強化学習における環境とは ゲーム環境 の実装 エージェント の実装
  5. 5. Copyright © GREE, Inc. All Rights Reserved.Confidential (部分観測)マルコフ決定過程 強化学習における環境とは ゲーム環境 の実装 エージェント の実装行動 報酬 状態
  6. 6. Copyright © GREE, Inc. All Rights Reserved.Confidential ゲームを強化学習向け環境に変換する場合 ● できればマルコフ決定過程(MDP)として定義したい ○ 状態遷移確率P(s’|s,a)が成り立ってほしい ○ 報酬関数r(s, a, s’)を忘れずに定義する ○ 具体例はこの後、ALEの項目で話します ● 部分観測マルコフ決定過程として取り扱う事もできるが ○ エージェント側の検討事項が(多分)複雑になる
  7. 7. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  8. 8. Copyright © GREE, Inc. All Rights Reserved.Confidential OSS強化学習向けゲーム環境の歴史 プロジェクト開始年と、当初の開発主体 ● Arcade Learning Environment(2012) ○ The Alberta Machine Intelligence Institute(カナダ) ● Project Malmo(2015) ○ Microsoft ● ViZDoom(2016) ○ Ponzan University of Technology(ポーランド) ● DeepMind Lab(2016) ○ DeepMind
  9. 9. Copyright © GREE, Inc. All Rights Reserved.Confidential OSS強化学習向けゲーム環境の歴史 プロジェクト開始年と、当初の開発主体 ● UnrialCV(2016) ○ Johns Hopkins University(アメリカ) ● OpenAI Gym(2016) ○ OpenAI ● SC2LE(2017) ○ DeepMind / Blizzard ● Unity ML-Agents Toolkit(2018) ○ Unity Technologies
  10. 10. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  11. 11. Copyright © GREE, Inc. All Rights Reserved.Confidential Arcade Learning Environment
  12. 12. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:概要 ● general, domain-independentなAIの研究開発の推進を目 的としてリリース ● Atari 2600エミュレータのStellaを利用している。数百の ゲームが利用可能 ● deep Q-network(DQN)の開発に利用されたことで、広く 知られるようになった ● 老舗だが今でも研究に使われる、重要な存在
  13. 13. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:行動と状態の定義 ● ALEはエージェントからjoystic motionに類する行動を受 け取り、スクリーンとRAM(1024bit)の情報を返し、エミ ュレーションを実行する ● スクリーン情報(raw pixel)はMDPを満たさない。RAM情 報によってMDPを満たすことができる ○ 厳密にはMDPを満たすためにレジスターやタイマーの情報も必要だが、 些細な影響である ○ 同じ理由で、ランダムシード固定機能がある
  14. 14. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:DQNでの利用 ● DQNはpixel basedな手法なので、状態のMDPについて言 及されている ● スクリーンバッファを状態とみなすとMDPは成り立たな いが、スクリーンバッファと行動のシーケンス{x1, a1, x2, a2 ,,,}はMDPである、という主張 ○ Experience Replayのメリットの1つ ○ 実際には近似関数φでシーケンスを写像してる
  15. 15. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:強化学習問題への形式化 ● ALE内のgame-handling layerが各ゲームを強化学習に適 した形式に変換する ○ 累積スコアの定義 ○ ゲーム終了状態の定義 ● →これらを定義すれば、一般的なゲームは強化学習に適した形式になる
  16. 16. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:フォワードモデルとしての機能 ● game-handling layerはエミュレータの状態をsaveし、 restoreできる ○ RAM、レジスタ、アドレスカウンタなど ● この特徴により、(MCTSなどの)プラニング手法が利用 できる ○ →ある種のアルゴリズムには、1つ先の状態をシミュレートできるフォ ワードモデルが必要
  17. 17. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:エージェントから見た使い方 from ale_python_interface import ALEInterface ale = ALEInterface(); ale.loadROM(rom_file) agent = MyAgent() total_reward = 0; sc = np.empty(); ram = np.empty() while not ale.game_over(): total_reward += ale.act(agent.act(sc, ram)) sc = ale.getScreenRGB() ram = ale.getRAM()
  18. 18. Copyright © GREE, Inc. All Rights Reserved.Confidential OpenAI Gym
  19. 19. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:概要 ● OpenAIがホストするプロジェクト ● ラッパーとして、「環境」の統一的なインタフェースを 提供する ○ Gymプロジェクトが公式にラップしてる環境も沢山 ● 今回並列してリストしているが立ち位置が少し違う
  20. 20. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:概要 ● 事実上の標準インタフェース ● ラッパーが作りやすい ○ gym.Envクラスを継承すればよい ● ALEも(このあと紹介する)MalmoもML-Agentsも ViZDoomも、gymラッパーがある
  21. 21. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:ラッパーの作り方 ● Envクラスを継承する ○ step : observation, reward, done, infoを返す ○ reset : 最初のobservationを返す ○ render : 画面のレンダリング等を行う ○ close : 環境を終了させる ○ seed : ランダムシードのセット ● といったメソッドを必要に応じて実装する
  22. 22. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym : 色々なラッパー ● Gym Retro ○ Librerto APIを利用したゲームエミュレータのラッパー ○ https://github.com/openai/retro ● Dolphn emulatorのラッパー ○ ゲームキューブとWiiのエミュレーター ○ https://arxiv.org/abs/1702.06230 で利用 ○ https://github.com/vladfi1/gym-dolphin ● XFLAGさんの社内利用事例 ○ https://speakerdeck.com/hidetakakojo/ji-jie-xue-xi-woshi- tutagemufalseyun-yong-sapototosagemakerrl
  23. 23. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:エージェントからみた使い方 import gym env = gym.make(‘CartPole-v0’) agent = MyAgent() ob = env.reset(); reward = 0; done = False while True: env.render() ob, reward, done, _ = env.step(agent.act(ob, reward, done) if done: break env.close()
  24. 24. Copyright © GREE, Inc. All Rights Reserved.Confidential ゲームエンジン系
  25. 25. Copyright © GREE, Inc. All Rights Reserved.Confidential Unity ML-Agents Toolkit
  26. 26. Copyright © GREE, Inc. All Rights Reserved.Confidential ML-Agents:概要 ● Unityによる公式プロジェクトで、Unityのプラグイン ● 推論モデルの、ビルド後のゲーム内での利用もユースケ ースとなっている ● MLフレームワークが利用するPython APIや、そのgymラ ッパーがある ● Dockerfileが用意されてる
  27. 27. Copyright © GREE, Inc. All Rights Reserved.Confidential UnrealCV
  28. 28. Copyright © GREE, Inc. All Rights Reserved.Confidential UnrealCV:概要 ● UEのゲームを環境へ拡張する類のOSSは見つけられなか ったので、似ているものをピックアップ ● UNREAL ENGINE 4で作られたコンテンツから、コンピ ュータビジョン研究用画像セットを動的に生成するため のUE4のプラグイン(とそれを利用するクライアントコ ード)
  29. 29. Copyright © GREE, Inc. All Rights Reserved.Confidential UnrealCV:CV研究のための機能 ● 画面キャプチャの他に、ground truthとしての深度情報 やオブジェクトセグメンテーション等を出力する
  30. 30. Copyright © GREE, Inc. All Rights Reserved.Confidential First Person Shooter系
  31. 31. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom
  32. 32. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:概要 ● Ponzan University of Technologyの研究者によるプロジ ェクト ● 初代Doom(ZDoom)をラップしている ● 一人称視点で3Dな環境からvisual inputを受け取るための 環境
  33. 33. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:状態と行動 ● 状態 ○ ViZDoom環境はスクリーンバッファといくつかのゲー ムステータス(player’s health等)を出力する ○ スクリーンバッファとして深度情報も出力する ■ 人間のプレイヤーには必要ないが、エージェント には有用 ● 行動 ○ キーボードやマウスに対応する入力を受け取る
  34. 34. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:コントロールモード ● synchronous/asynchronousモード ○ syncモードはエージェント側の入力をwaitする ■ 実験の再現性を担保したり、デバッグするための モード ● player/spectatorモード ○ spectatorモードは人間がプレイし、エージェントが それを観察するためのモード
  35. 35. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:計算負荷削減 ● Off-Screen Rendering ○ リモートサーバでの実行が容易になる ● Frame Skipping ○ フレームを飛ばす ● いずれも負荷軽減のためによく検討される機能
  36. 36. Copyright © GREE, Inc. All Rights Reserved.Confidential DeepMind Lab
  37. 37. Copyright © GREE, Inc. All Rights Reserved.Confidential DeepMind Lab:概要 ● DeepMindがホストするプロジェクトで、DeepMindがよ く使ってる(使っていた?) ● Quake 3 Arena(ioquake3)をラップしている ● ViSDoomと同じく、一人称視点の3Dゲーム環境
  38. 38. Copyright © GREE, Inc. All Rights Reserved.Confidential DeepMind Lab:特徴 ● lock-stepped interaction ○ ViSDoomでいうシンクモード ○ 各ステップにおいて、エージェントからアクションが 送信されてくるまでゲームを停止させる ● 速度情報の観測 ○ ゲームエンジンでレンダリングしたピクセル情報 (RGB or RGBD)の他に、必要であれば速度&各速度情 報を送信する ○ MDPとするため?
  39. 39. Copyright © GREE, Inc. All Rights Reserved.Confidential Real Time Strategy系
  40. 40. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE(すくーる)
  41. 41. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:概要 ● DeepMindとBlizzardが共同でホスティングしているプロ ジェクト ● StarCraft 2をラップしてる
  42. 42. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:システム構成 ● xx
  43. 43. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:状態の出力 ● 状態はRGB pixelではなく、feature layersとなる
  44. 44. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:行動の取り扱い ● atomic compound function ○ 連続操作で成り立つアクションを1つに纏める ○ 300 function と 13の引数タイプ ● エージェントのaction per minuteは人間プレイヤー と同じくらいに設定 ○ 人間のプレイログからの学習がシンプルになる
  45. 45. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:その他の工夫 ミニゲーム ● エージェント性能に対するunit testの位置付け その他 ● シンクロモードの導入 ● ランダムシードの固定 ● 警告音をfeatureとして出力 ● 独自の可視化ツールを用意 ● ユーザのプレイログを提供
  46. 46. Copyright © GREE, Inc. All Rights Reserved.Confidential その他
  47. 47. Copyright © GREE, Inc. All Rights Reserved.Confidential Project Malmo
  48. 48. Copyright © GREE, Inc. All Rights Reserved.Confidential Malmo:概要 ● マイクロソフトによるプロジェクトで、マインクラフト をAI研究のプラットフォームにするためのラッパー ● マインクラフトのMOD(拡張)とクライアントのためのAPI からなる ● 最近はMalmoを更にラップするMarLoというOpenAI Gymのextentionを用いてコンテストを開催したりしてる
  49. 49. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  50. 50. Copyright © GREE, Inc. All Rights Reserved.Confidential 自社ゲームを強化学習向け環境に変換する 必須 ● 報酬とゲーム終了状態の定義 ● できればMDPを満たすために、何を状態とするか決めて、それを出力する 検討 ● ランダムシード固定機能 ● 結合アクションの定義 ● レンダリング(ビデオキャプチャ)機能 ● シンクロモードの実装 ● フレームスキッピング含めた高速化 ● 学習の為のユーザプレイログの取得方法 ● テストとしてのミニゲーム ● フォワードモデルのためのsave/restore機能 ● headless build等の高速化
  51. 51. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  52. 52. ● 自社ゲームを強化学習向け環境へ変換する場合 ● 可能ならマルコフ決定過程として定義する ● OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く ● 変換する際のインタフェース ● 環境側のサーベイ結果を見ても、事実上の標準はGym ● それで要件が足りるかはエージェント/フレームワーク次第 ● 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ
  53. 53. Copyright © GREE, Inc. All Rights Reserved.Confidential refs ● ALE ○ https://jair.org/index.php/jair/article/view/10819 ● Gym ○ https://arxiv.org/abs/1606.01540 ● ML-Agents ○ https://arxiv.org/abs/1809.02627 ● UnrealCV ○ https://arxiv.org/abs/1609.01326 ● ViZDoom ○ https://arxiv.org/abs/1605.02097 ● DeepMind Lab ○ https://deepmind.com/documents/29/DeepMindLab.pdf ● SC2LE ○ https://arxiv.org/abs/1708.04782 ● Malmo ○ https://www.ijcai.org/Proceedings/16/Papers/643.pdf
  54. 54. Copyright © GREE, Inc. All Rights Reserved.Confidential

×