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
140
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
240
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
200
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
200
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
170
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
220
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
380
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
250
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
300
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
460
Other Decks in Technology
See All in Technology
ABWGのRe:Cap!
hm5ug
1
140
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
160
AWS re:Invent 2024 recap in 20min / JAWSUG 千葉 2025.1.14
shimy
1
110
実践!生成AIのビジネス活用 / How to utilize Generative AI in your own business
gakumura
1
120
第27回クラウド女子会 ~re:Invent 振り返りLT会~ 私の周辺で反響のあった re:Invent 2024 アップデートつれづれ/reinvent-2024-update-reverberated-around-me
emiki
1
430
AWSサービスアップデート 2024/12 Part3
nrinetcom
PRO
0
160
Goで実践するBFP
hiroyaterui
1
130
Oracle Base Database Service:サービス概要のご紹介
oracle4engineer
PRO
1
16k
やっちゃえ誤自宅Nutanix
yukiafronia
0
240
ゼロからわかる!!AWSの構成図を書いてみようワークショップ 問題&解答解説 #デッカイギ #羽田デッカイギおつ
_mossann_t
0
1.6k
Building Scalable Backend Services with Firebase
wisdommatt
0
110
20250122_個人向けCopilotどうなん
ponponmikankan
0
160
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
40
2.5k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Building Adaptive Systems
keathley
38
2.4k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
970
Thoughts on Productivity
jonyablonski
68
4.4k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
RailsConf 2023
tenderlove
29
980
Become a Pro
speakerdeck
PRO
26
5.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