Slide 1

Slide 1 text

Copyright © GREE, Inc. All Rights Reserved. Confidential OSS強化学習向けゲーム環境の動向 グリー株式会社 開発本部 森田想平

Slide 2

Slide 2 text

● 自社ゲームを強化学習向け環境へ変換する場合 ● 可能ならマルコフ決定過程として定義する ● OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く ● 変換する際のインタフェース ● 環境側のサーベイ結果を見ても、事実上の標準はGym ● それで要件が足りるかはエージェント/フレームワーク次第 ● 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ

Slide 3

Slide 3 text

● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次

Slide 4

Slide 4 text

Copyright © GREE, Inc. All Rights Reserved. Confidential 強化学習における環境とは ゲーム環境 の実装 エージェント の実装

Slide 5

Slide 5 text

Copyright © GREE, Inc. All Rights Reserved. Confidential (部分観測)マルコフ決定過程 強化学習における環境とは ゲーム環境 の実装 エージェント の実装 行動 報酬 状態

Slide 6

Slide 6 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ゲームを強化学習向け環境に変換する場合 ● できればマルコフ決定過程(MDP)として定義したい ○ 状態遷移確率P(s’|s,a)が成り立ってほしい ○ 報酬関数r(s, a, s’)を忘れずに定義する ○ 具体例はこの後、ALEの項目で話します ● 部分観測マルコフ決定過程として取り扱う事もできるが ○ エージェント側の検討事項が(多分)複雑になる

Slide 7

Slide 7 text

● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次

Slide 11

Slide 11 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Arcade Learning Environment

Slide 12

Slide 12 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:概要 ● general, domain-independentなAIの研究開発の推進を目 的としてリリース ● Atari 2600エミュレータのStellaを利用している。数百の ゲームが利用可能 ● deep Q-network(DQN)の開発に利用されたことで、広く 知られるようになった ● 老舗だが今でも研究に使われる、重要な存在

Slide 13

Slide 13 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:行動と状態の定義 ● ALEはエージェントからjoystic motionに類する行動を受 け取り、スクリーンとRAM(1024bit)の情報を返し、エミ ュレーションを実行する ● スクリーン情報(raw pixel)はMDPを満たさない。RAM情 報によってMDPを満たすことができる ○ 厳密にはMDPを満たすためにレジスターやタイマーの情報も必要だが、 些細な影響である ○ 同じ理由で、ランダムシード固定機能がある

Slide 14

Slide 14 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:DQNでの利用 ● DQNはpixel basedな手法なので、状態のMDPについて言 及されている ● スクリーンバッファを状態とみなすとMDPは成り立たな いが、スクリーンバッファと行動のシーケンス{x1, a1, x2, a2 ,,,}はMDPである、という主張 ○ Experience Replayのメリットの1つ ○ 実際には近似関数φでシーケンスを写像してる

Slide 15

Slide 15 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:強化学習問題への形式化 ● ALE内のgame-handling layerが各ゲームを強化学習に適 した形式に変換する ○ 累積スコアの定義 ○ ゲーム終了状態の定義 ● →これらを定義すれば、一般的なゲームは強化学習に適した形式になる

Slide 16

Slide 16 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:フォワードモデルとしての機能 ● game-handling layerはエミュレータの状態をsaveし、 restoreできる ○ RAM、レジスタ、アドレスカウンタなど ● この特徴により、(MCTSなどの)プラニング手法が利用 できる ○ →ある種のアルゴリズムには、1つ先の状態をシミュレートできるフォ ワードモデルが必要

Slide 17

Slide 17 text

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()

Slide 18

Slide 18 text

Copyright © GREE, Inc. All Rights Reserved. Confidential OpenAI Gym

Slide 19

Slide 19 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Gym:概要 ● OpenAIがホストするプロジェクト ● ラッパーとして、「環境」の統一的なインタフェースを 提供する ○ Gymプロジェクトが公式にラップしてる環境も沢山 ● 今回並列してリストしているが立ち位置が少し違う

Slide 20

Slide 20 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Gym:概要 ● 事実上の標準インタフェース ● ラッパーが作りやすい ○ gym.Envクラスを継承すればよい ● ALEも(このあと紹介する)MalmoもML-Agentsも ViZDoomも、gymラッパーがある

Slide 21

Slide 21 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Gym:ラッパーの作り方 ● Envクラスを継承する ○ step : observation, reward, done, infoを返す ○ reset : 最初のobservationを返す ○ render : 画面のレンダリング等を行う ○ close : 環境を終了させる ○ seed : ランダムシードのセット ● といったメソッドを必要に応じて実装する

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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()

Slide 24

Slide 24 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ゲームエンジン系

Slide 25

Slide 25 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Unity ML-Agents Toolkit

Slide 26

Slide 26 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ML-Agents:概要 ● Unityによる公式プロジェクトで、Unityのプラグイン ● 推論モデルの、ビルド後のゲーム内での利用もユースケ ースとなっている ● MLフレームワークが利用するPython APIや、そのgymラ ッパーがある ● Dockerfileが用意されてる

Slide 27

Slide 27 text

Copyright © GREE, Inc. All Rights Reserved. Confidential UnrealCV

Slide 28

Slide 28 text

Copyright © GREE, Inc. All Rights Reserved. Confidential UnrealCV:概要 ● UEのゲームを環境へ拡張する類のOSSは見つけられなか ったので、似ているものをピックアップ ● UNREAL ENGINE 4で作られたコンテンツから、コンピ ュータビジョン研究用画像セットを動的に生成するため のUE4のプラグイン(とそれを利用するクライアントコ ード)

Slide 29

Slide 29 text

Copyright © GREE, Inc. All Rights Reserved. Confidential UnrealCV:CV研究のための機能 ● 画面キャプチャの他に、ground truthとしての深度情報 やオブジェクトセグメンテーション等を出力する

Slide 30

Slide 30 text

Copyright © GREE, Inc. All Rights Reserved. Confidential First Person Shooter系

Slide 31

Slide 31 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom

Slide 32

Slide 32 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:概要 ● Ponzan University of Technologyの研究者によるプロジ ェクト ● 初代Doom(ZDoom)をラップしている ● 一人称視点で3Dな環境からvisual inputを受け取るための 環境

Slide 33

Slide 33 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:状態と行動 ● 状態 ○ ViZDoom環境はスクリーンバッファといくつかのゲー ムステータス(player’s health等)を出力する ○ スクリーンバッファとして深度情報も出力する ■ 人間のプレイヤーには必要ないが、エージェント には有用 ● 行動 ○ キーボードやマウスに対応する入力を受け取る

Slide 34

Slide 34 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:コントロールモード ● synchronous/asynchronousモード ○ syncモードはエージェント側の入力をwaitする ■ 実験の再現性を担保したり、デバッグするための モード ● player/spectatorモード ○ spectatorモードは人間がプレイし、エージェントが それを観察するためのモード

Slide 35

Slide 35 text

Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:計算負荷削減 ● Off-Screen Rendering ○ リモートサーバでの実行が容易になる ● Frame Skipping ○ フレームを飛ばす ● いずれも負荷軽減のためによく検討される機能

Slide 36

Slide 36 text

Copyright © GREE, Inc. All Rights Reserved. Confidential DeepMind Lab

Slide 37

Slide 37 text

Copyright © GREE, Inc. All Rights Reserved. Confidential DeepMind Lab:概要 ● DeepMindがホストするプロジェクトで、DeepMindがよ く使ってる(使っていた?) ● Quake 3 Arena(ioquake3)をラップしている ● ViSDoomと同じく、一人称視点の3Dゲーム環境

Slide 38

Slide 38 text

Copyright © GREE, Inc. All Rights Reserved. Confidential DeepMind Lab:特徴 ● lock-stepped interaction ○ ViSDoomでいうシンクモード ○ 各ステップにおいて、エージェントからアクションが 送信されてくるまでゲームを停止させる ● 速度情報の観測 ○ ゲームエンジンでレンダリングしたピクセル情報 (RGB or RGBD)の他に、必要であれば速度&各速度情 報を送信する ○ MDPとするため?

Slide 39

Slide 39 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Real Time Strategy系

Slide 40

Slide 40 text

Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE(すくーる)

Slide 41

Slide 41 text

Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:概要 ● DeepMindとBlizzardが共同でホスティングしているプロ ジェクト ● StarCraft 2をラップしてる

Slide 42

Slide 42 text

Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:システム構成 ● xx

Slide 43

Slide 43 text

Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:状態の出力 ● 状態はRGB pixelではなく、feature layersとなる

Slide 44

Slide 44 text

Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:行動の取り扱い ● atomic compound function ○ 連続操作で成り立つアクションを1つに纏める ○ 300 function と 13の引数タイプ ● エージェントのaction per minuteは人間プレイヤー と同じくらいに設定 ○ 人間のプレイログからの学習がシンプルになる

Slide 45

Slide 45 text

Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:その他の工夫 ミニゲーム ● エージェント性能に対するunit testの位置付け その他 ● シンクロモードの導入 ● ランダムシードの固定 ● 警告音をfeatureとして出力 ● 独自の可視化ツールを用意 ● ユーザのプレイログを提供

Slide 46

Slide 46 text

Copyright © GREE, Inc. All Rights Reserved. Confidential その他

Slide 47

Slide 47 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Project Malmo

Slide 48

Slide 48 text

Copyright © GREE, Inc. All Rights Reserved. Confidential Malmo:概要 ● マイクロソフトによるプロジェクトで、マインクラフト をAI研究のプラットフォームにするためのラッパー ● マインクラフトのMOD(拡張)とクライアントのためのAPI からなる ● 最近はMalmoを更にラップするMarLoというOpenAI Gymのextentionを用いてコンテストを開催したりしてる

Slide 49

Slide 49 text

● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次

Slide 50

Slide 50 text

Copyright © GREE, Inc. All Rights Reserved. Confidential 自社ゲームを強化学習向け環境に変換する 必須 ● 報酬とゲーム終了状態の定義 ● できればMDPを満たすために、何を状態とするか決めて、それを出力する 検討 ● ランダムシード固定機能 ● 結合アクションの定義 ● レンダリング(ビデオキャプチャ)機能 ● シンクロモードの実装 ● フレームスキッピング含めた高速化 ● 学習の為のユーザプレイログの取得方法 ● テストとしてのミニゲーム ● フォワードモデルのためのsave/restore機能 ● headless build等の高速化

Slide 51

Slide 51 text

● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次

Slide 52

Slide 52 text

● 自社ゲームを強化学習向け環境へ変換する場合 ● 可能ならマルコフ決定過程として定義する ● OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く ● 変換する際のインタフェース ● 環境側のサーベイ結果を見ても、事実上の標準はGym ● それで要件が足りるかはエージェント/フレームワーク次第 ● 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ

Slide 53

Slide 53 text

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

Slide 54

Slide 54 text

Copyright © GREE, Inc. All Rights Reserved. Confidential