Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
OSS強化学習向けゲーム環境の動向
Search
gree_tech
PRO
January 23, 2019
Technology
0
130
OSS強化学習向けゲーム環境の動向
グリー開発本部 Meetup #2 ゲーム x 強化学習エンジニアリングで発表された資料です。
https://gree.connpass.com/event/112599/
#GDMeetup
gree_tech
PRO
January 23, 2019
Tweet
Share
More Decks by gree_tech
See All by gree_tech
REALITY株式会社における開発生産性向上の取り組み: 失敗と成功から学んだこと
gree_tech
PRO
2
200
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
150
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
150
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
120
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
160
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
250
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
180
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
230
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
400
Other Decks in Technology
See All in Technology
宇宙ベンチャーにおける最近の情シス取り組みについて
axelmizu
0
110
5分でわかるDuckDB
chanyou0311
10
3.2k
なぜCodeceptJSを選んだか
goataka
0
160
非機能品質を作り込むための実践アーキテクチャ
knih
5
1.5k
DevFest 2024 Incheon / Songdo - Compose UI 조합 심화
wisemuji
0
120
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
110
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
360
ブラックフライデーで購入したPixel9で、Gemini Nanoを動かしてみた
marchin1989
1
540
PHPからGoへのマイグレーション for DMMアフィリエイト
yabakokobayashi
1
170
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
280
LINE Developersプロダクト(LIFF/LINE Login)におけるフロントエンド開発
lycorptech_jp
PRO
0
130
普通のエンジニアがLaravelコアチームメンバーになるまで
avosalmon
0
110
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Facilitating Awesome Meetings
lara
50
6.1k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Designing Experiences People Love
moore
138
23k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
0
99
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
48
2.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
405
66k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
127
18k
Testing 201, or: Great Expectations
jmmastey
40
7.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
The Cult of Friendly URLs
andyhume
78
6.1k
Transcript
Copyright © GREE, Inc. All Rights Reserved. Confidential OSS強化学習向けゲーム環境の動向 グリー株式会社
開発本部 森田想平
• 自社ゲームを強化学習向け環境へ変換する場合 • 可能ならマルコフ決定過程として定義する • OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く • 変換する際のインタフェース •
環境側のサーベイ結果を見ても、事実上の標準はGym • それで要件が足りるかはエージェント/フレームワーク次第 • 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ
• 強化学習における環境とは(2min) • OSS強化学習向けゲーム環境の歴史 (1min) • 各OSSの紹介 (18min) • ALE
/ Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit • 各OSSから得られた知見まとめ(1min) • もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
Copyright © GREE, Inc. All Rights Reserved. Confidential 強化学習における環境とは ゲーム環境
の実装 エージェント の実装
Copyright © GREE, Inc. All Rights Reserved. Confidential (部分観測)マルコフ決定過程 強化学習における環境とは
ゲーム環境 の実装 エージェント の実装 行動 報酬 状態
Copyright © GREE, Inc. All Rights Reserved. Confidential ゲームを強化学習向け環境に変換する場合 •
できればマルコフ決定過程(MDP)として定義したい ◦ 状態遷移確率P(s’|s,a)が成り立ってほしい ◦ 報酬関数r(s, a, s’)を忘れずに定義する ◦ 具体例はこの後、ALEの項目で話します • 部分観測マルコフ決定過程として取り扱う事もできるが ◦ エージェント側の検討事項が(多分)複雑になる
• 強化学習における環境とは(2min) • OSS強化学習向けゲーム環境の歴史 (1min) • 各OSSの紹介 (18min) • ALE
/ Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit • 各OSSから得られた知見まとめ(1min) • もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
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
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
• 強化学習における環境とは(2min) • OSS強化学習向けゲーム環境の歴史 (1min) • 各OSSの紹介 (18min) • ALE
/ Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit • 各OSSから得られた知見まとめ(1min) • もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
Copyright © GREE, Inc. All Rights Reserved. Confidential Arcade Learning
Environment
Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:概要 •
general, domain-independentなAIの研究開発の推進を目 的としてリリース • Atari 2600エミュレータのStellaを利用している。数百の ゲームが利用可能 • deep Q-network(DQN)の開発に利用されたことで、広く 知られるようになった • 老舗だが今でも研究に使われる、重要な存在
Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:行動と状態の定義 •
ALEはエージェントからjoystic motionに類する行動を受 け取り、スクリーンとRAM(1024bit)の情報を返し、エミ ュレーションを実行する • スクリーン情報(raw pixel)はMDPを満たさない。RAM情 報によってMDPを満たすことができる ◦ 厳密にはMDPを満たすためにレジスターやタイマーの情報も必要だが、 些細な影響である ◦ 同じ理由で、ランダムシード固定機能がある
Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:DQNでの利用 •
DQNはpixel basedな手法なので、状態のMDPについて言 及されている • スクリーンバッファを状態とみなすとMDPは成り立たな いが、スクリーンバッファと行動のシーケンス{x1, a1, x2, a2 ,,,}はMDPである、という主張 ◦ Experience Replayのメリットの1つ ◦ 実際には近似関数φでシーケンスを写像してる
Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:強化学習問題への形式化 •
ALE内のgame-handling layerが各ゲームを強化学習に適 した形式に変換する ◦ 累積スコアの定義 ◦ ゲーム終了状態の定義 • →これらを定義すれば、一般的なゲームは強化学習に適した形式になる
Copyright © GREE, Inc. All Rights Reserved. Confidential ALE:フォワードモデルとしての機能 •
game-handling layerはエミュレータの状態をsaveし、 restoreできる ◦ RAM、レジスタ、アドレスカウンタなど • この特徴により、(MCTSなどの)プラニング手法が利用 できる ◦ →ある種のアルゴリズムには、1つ先の状態をシミュレートできるフォ ワードモデルが必要
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()
Copyright © GREE, Inc. All Rights Reserved. Confidential OpenAI Gym
Copyright © GREE, Inc. All Rights Reserved. Confidential Gym:概要 •
OpenAIがホストするプロジェクト • ラッパーとして、「環境」の統一的なインタフェースを 提供する ◦ Gymプロジェクトが公式にラップしてる環境も沢山 • 今回並列してリストしているが立ち位置が少し違う
Copyright © GREE, Inc. All Rights Reserved. Confidential Gym:概要 •
事実上の標準インタフェース • ラッパーが作りやすい ◦ gym.Envクラスを継承すればよい • ALEも(このあと紹介する)MalmoもML-Agentsも ViZDoomも、gymラッパーがある
Copyright © GREE, Inc. All Rights Reserved. Confidential Gym:ラッパーの作り方 •
Envクラスを継承する ◦ step : observation, reward, done, infoを返す ◦ reset : 最初のobservationを返す ◦ render : 画面のレンダリング等を行う ◦ close : 環境を終了させる ◦ seed : ランダムシードのセット • といったメソッドを必要に応じて実装する
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
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()
Copyright © GREE, Inc. All Rights Reserved. Confidential ゲームエンジン系
Copyright © GREE, Inc. All Rights Reserved. Confidential Unity ML-Agents
Toolkit
Copyright © GREE, Inc. All Rights Reserved. Confidential ML-Agents:概要 •
Unityによる公式プロジェクトで、Unityのプラグイン • 推論モデルの、ビルド後のゲーム内での利用もユースケ ースとなっている • MLフレームワークが利用するPython APIや、そのgymラ ッパーがある • Dockerfileが用意されてる
Copyright © GREE, Inc. All Rights Reserved. Confidential UnrealCV
Copyright © GREE, Inc. All Rights Reserved. Confidential UnrealCV:概要 •
UEのゲームを環境へ拡張する類のOSSは見つけられなか ったので、似ているものをピックアップ • UNREAL ENGINE 4で作られたコンテンツから、コンピ ュータビジョン研究用画像セットを動的に生成するため のUE4のプラグイン(とそれを利用するクライアントコ ード)
Copyright © GREE, Inc. All Rights Reserved. Confidential UnrealCV:CV研究のための機能 •
画面キャプチャの他に、ground truthとしての深度情報 やオブジェクトセグメンテーション等を出力する
Copyright © GREE, Inc. All Rights Reserved. Confidential First Person
Shooter系
Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom
Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:概要 •
Ponzan University of Technologyの研究者によるプロジ ェクト • 初代Doom(ZDoom)をラップしている • 一人称視点で3Dな環境からvisual inputを受け取るための 環境
Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:状態と行動 •
状態 ◦ ViZDoom環境はスクリーンバッファといくつかのゲー ムステータス(player’s health等)を出力する ◦ スクリーンバッファとして深度情報も出力する ▪ 人間のプレイヤーには必要ないが、エージェント には有用 • 行動 ◦ キーボードやマウスに対応する入力を受け取る
Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:コントロールモード •
synchronous/asynchronousモード ◦ syncモードはエージェント側の入力をwaitする ▪ 実験の再現性を担保したり、デバッグするための モード • player/spectatorモード ◦ spectatorモードは人間がプレイし、エージェントが それを観察するためのモード
Copyright © GREE, Inc. All Rights Reserved. Confidential ViZDoom:計算負荷削減 •
Off-Screen Rendering ◦ リモートサーバでの実行が容易になる • Frame Skipping ◦ フレームを飛ばす • いずれも負荷軽減のためによく検討される機能
Copyright © GREE, Inc. All Rights Reserved. Confidential DeepMind Lab
Copyright © GREE, Inc. All Rights Reserved. Confidential DeepMind Lab:概要
• DeepMindがホストするプロジェクトで、DeepMindがよ く使ってる(使っていた?) • Quake 3 Arena(ioquake3)をラップしている • ViSDoomと同じく、一人称視点の3Dゲーム環境
Copyright © GREE, Inc. All Rights Reserved. Confidential DeepMind Lab:特徴
• lock-stepped interaction ◦ ViSDoomでいうシンクモード ◦ 各ステップにおいて、エージェントからアクションが 送信されてくるまでゲームを停止させる • 速度情報の観測 ◦ ゲームエンジンでレンダリングしたピクセル情報 (RGB or RGBD)の他に、必要であれば速度&各速度情 報を送信する ◦ MDPとするため?
Copyright © GREE, Inc. All Rights Reserved. Confidential Real Time
Strategy系
Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE(すくーる)
Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:概要 •
DeepMindとBlizzardが共同でホスティングしているプロ ジェクト • StarCraft 2をラップしてる
Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:システム構成 •
xx
Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:状態の出力 •
状態はRGB pixelではなく、feature layersとなる
Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:行動の取り扱い •
atomic compound function ◦ 連続操作で成り立つアクションを1つに纏める ◦ 300 function と 13の引数タイプ • エージェントのaction per minuteは人間プレイヤー と同じくらいに設定 ◦ 人間のプレイログからの学習がシンプルになる
Copyright © GREE, Inc. All Rights Reserved. Confidential SC2LE:その他の工夫 ミニゲーム
• エージェント性能に対するunit testの位置付け その他 • シンクロモードの導入 • ランダムシードの固定 • 警告音をfeatureとして出力 • 独自の可視化ツールを用意 • ユーザのプレイログを提供
Copyright © GREE, Inc. All Rights Reserved. Confidential その他
Copyright © GREE, Inc. All Rights Reserved. Confidential Project Malmo
Copyright © GREE, Inc. All Rights Reserved. Confidential Malmo:概要 •
マイクロソフトによるプロジェクトで、マインクラフト をAI研究のプラットフォームにするためのラッパー • マインクラフトのMOD(拡張)とクライアントのためのAPI からなる • 最近はMalmoを更にラップするMarLoというOpenAI Gymのextentionを用いてコンテストを開催したりしてる
• 強化学習における環境とは(2min) • OSS強化学習向けゲーム環境の歴史 (1min) • 各OSSの紹介 (18min) • ALE
/ Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit • 各OSSから得られた知見まとめ(1min) • もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
Copyright © GREE, Inc. All Rights Reserved. Confidential 自社ゲームを強化学習向け環境に変換する 必須
• 報酬とゲーム終了状態の定義 • できればMDPを満たすために、何を状態とするか決めて、それを出力する 検討 • ランダムシード固定機能 • 結合アクションの定義 • レンダリング(ビデオキャプチャ)機能 • シンクロモードの実装 • フレームスキッピング含めた高速化 • 学習の為のユーザプレイログの取得方法 • テストとしてのミニゲーム • フォワードモデルのためのsave/restore機能 • headless build等の高速化
• 強化学習における環境とは(2min) • OSS強化学習向けゲーム環境の歴史 (1min) • 各OSSの紹介 (18min) • ALE
/ Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit • 各OSSから得られた知見まとめ(1min) • もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
• 自社ゲームを強化学習向け環境へ変換する場合 • 可能ならマルコフ決定過程として定義する • OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く • 変換する際のインタフェース •
環境側のサーベイ結果を見ても、事実上の標準はGym • それで要件が足りるかはエージェント/フレームワーク次第 • 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ
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
Copyright © GREE, Inc. All Rights Reserved. Confidential