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
240
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
LLM翻訳ツールの開発と海外のお客様対応等への社内導入事例
gree_tech
PRO
0
660
ヘブンバーンズレッドのレンダリングパイプライン刷新
gree_tech
PRO
0
670
ヘブンバーンズレッドにおける、世界観を活かしたミニゲーム企画の作り方
gree_tech
PRO
0
650
「魔法少女まどか☆マギカ Magia Exedra」のグローバル展開を支える、開発チームと翻訳チームの「意識しない協創」を実現するローカライズシステム
gree_tech
PRO
0
660
「魔法少女まどか☆マギカ Magia Exedra」での負荷試験の実践と学び
gree_tech
PRO
0
700
「魔法少女まどか☆マギカ Magia Exedra」の必殺技演出を徹底解剖! -キャラクターの魅力を最大限にファンに届けるためのこだわり-
gree_tech
PRO
0
670
ヒューリスティック評価を用いたゲームQA実践事例
gree_tech
PRO
0
650
ライブサービスゲームQAのパフォーマンス検証による品質改善の取り組み
gree_tech
PRO
0
650
コミュニケーションに鍵を見いだす、エンジニア1年目の経験談
gree_tech
PRO
0
140
Other Decks in Technology
See All in Technology
OCI Oracle Database Services新機能アップデート(2025/06-2025/08)
oracle4engineer
PRO
0
170
TS-S205_昨年対比2倍以上の機能追加を実現するデータ基盤プロジェクトでのAI活用について
kaz3284
1
190
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
260
研究開発と製品開発、両利きのロボティクス
youtalk
1
530
Generative AI Japan 第一回生成AI実践研究会「AI駆動開発の現在地──ブレイクスルーの鍵を握るのはデータ領域」
shisyu_gaku
0
300
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
420
CDK CLIで使ってたあの機能、CDK Toolkit Libraryではどうやるの?
smt7174
4
190
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
440
「Linux」という言葉が指すもの
sat
PRO
4
140
なぜスクラムはこうなったのか?歴史が教えてくれたこと/Shall we explore the roots of Scrum
sanogemaru
5
1.6k
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
250
Featured
See All Featured
Code Review Best Practice
trishagee
70
19k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Producing Creativity
orderedlist
PRO
347
40k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Thoughts on Productivity
jonyablonski
70
4.8k
Imperfection Machines: The Place of Print at Facebook
scottboms
268
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.6k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.1k
KATA
mclloyd
32
14k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Writing Fast Ruby
sferik
628
62k
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