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
110
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
130
『ヘブンバーンズレッド』におけるフィールドギミックの裏側
gree_tech
PRO
2
91
セキュリティインシデント対応の体制・運用の試行錯誤 / greetechcon2024-session-a1
gree_tech
PRO
1
96
『アナザーエデン 時空を超える猫』国内海外同時運営実現への道のり ~別々で開発されたアプリを安定して同時リリースするまでの取り組み~
gree_tech
PRO
1
78
『アサルトリリィ Last Bullet』におけるクラウドストリーミング技術を用いたブラウザゲーム化の紹介
gree_tech
PRO
1
90
UnityによるPCアプリの新しい選択肢。「PC版 Google Play Games」への対応について
gree_tech
PRO
1
110
実機ビルドのエラーによる検証ブロッカーを0に!『ヘブンバーンズレッド』のスモークテスト自動化の取り組み
gree_tech
PRO
1
110
"ゲームQA業界の技術向上を目指す! 会社を超えた研究会の取り組み"
gree_tech
PRO
1
140
Jamstack でリニューアルするグリーグループのメディア
gree_tech
PRO
2
300
Other Decks in Technology
See All in Technology
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
0
410
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
300
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.6k
20241120_JAWS_東京_ランチタイムLT#17_AWS認定全冠の先へ
tsumita
2
250
【Startup CTO of the Year 2024 / Audience Award】アセンド取締役CTO 丹羽健
niwatakeru
0
980
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
Terraform Stacks入門 #HashiTalks
msato
0
350
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
100
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
180
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
150
適材適所の技術選定 〜GraphQL・REST API・tRPC〜 / Optimal Technology Selection
kakehashi
1
170
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
A Philosophy of Restraint
colly
203
16k
Producing Creativity
orderedlist
PRO
341
39k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Navigating Team Friction
lara
183
14k
Automating Front-end Workflow
addyosmani
1366
200k
Facilitating Awesome Meetings
lara
50
6.1k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
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