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

More Related Content

PDF
モデルアーキテクチャ観点からのDeep Neural Network高速化
PPTX
モデルアーキテクチャ観点からの高速化2019
PDF
ドメイン適応の原理と応用
PPTX
畳み込みニューラルネットワークの高精度化と高速化
PDF
SSII2020TS: Event-Based Camera の基礎と ニューラルネットワークによる信号処理 〜 生き物のように「変化」を捉えるビジョンセ...
PDF
動画認識サーベイv1(メタサーベイ )
PPTX
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
PDF
【メタサーベイ】Video Transformer
モデルアーキテクチャ観点からのDeep Neural Network高速化
モデルアーキテクチャ観点からの高速化2019
ドメイン適応の原理と応用
畳み込みニューラルネットワークの高精度化と高速化
SSII2020TS: Event-Based Camera の基礎と ニューラルネットワークによる信号処理 〜 生き物のように「変化」を捉えるビジョンセ...
動画認識サーベイv1(メタサーベイ )
【DL輪読会】言語以外でのTransformerのまとめ (ViT, Perceiver, Frozen Pretrained Transformer etc)
【メタサーベイ】Video Transformer

What's hot (20)

PDF
【メタサーベイ】Neural Fields
PPTX
A3C解説
PDF
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
PPTX
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
PPTX
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
PPTX
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
PDF
【DL輪読会】StyleGAN-T: Unlocking the Power of GANs for Fast Large-Scale Text-to-I...
PDF
LiDARとSensor Fusion
PDF
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
PDF
Transformer メタサーベイ
PDF
多様な強化学習の概念と課題認識
PPTX
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
PDF
実践イカパケット解析
PDF
強化学習と逆強化学習を組み合わせた模倣学習
PDF
Generative Models(メタサーベイ )
PDF
深層学習向け計算機クラスター MN-3
PDF
【メタサーベイ】数式ドリブン教師あり学習
PDF
【DL輪読会】Patches Are All You Need? (ConvMixer)
PDF
Action Recognitionの歴史と最新動向
PPTX
Deep Recurrent Q-Learning(DRQN) for Partially Observable MDPs
【メタサーベイ】Neural Fields
A3C解説
文献紹介:TSM: Temporal Shift Module for Efficient Video Understanding
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
【DL輪読会】DiffRF: Rendering-guided 3D Radiance Field Diffusion [N. Muller+ CVPR2...
You Only Look One-level Featureの解説と見せかけた物体検出のよもやま話
【DL輪読会】StyleGAN-T: Unlocking the Power of GANs for Fast Large-Scale Text-to-I...
LiDARとSensor Fusion
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
Transformer メタサーベイ
多様な強化学習の概念と課題認識
勾配ブースティングの基礎と最新の動向 (MIRU2020 Tutorial)
実践イカパケット解析
強化学習と逆強化学習を組み合わせた模倣学習
Generative Models(メタサーベイ )
深層学習向け計算機クラスター MN-3
【メタサーベイ】数式ドリブン教師あり学習
【DL輪読会】Patches Are All You Need? (ConvMixer)
Action Recognitionの歴史と最新動向
Deep Recurrent Q-Learning(DRQN) for Partially Observable MDPs
Ad

Similar to OSS強化学習向けゲーム環境の動向 (20)

PDF
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
PPTX
Sumo Logic活用事例とその運用
PDF
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
PDF
「AROW」お披露目(実用編)
PDF
ドリコムJenkins勉強会資料
PDF
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
PDF
ドリコムのインフラCI
PDF
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
PDF
ドリコムを支える課金ライブラリを支えるJenkins
PDF
「龍が如く」も「スーパーモンキーボール」も自動化!クオリティエンジニアリングチームによるマルチゲームエンジン対応で進化した「龍が如くスタジオ」のテスト自動...
PPTX
第一回☆GREE AI Programming ContestでTensorFlow
PDF
プライベートクラウド作ってみました
PDF
Playbay Play 2.0 plugin イロハのイ
PDF
こんな辛いテストはいやだ
PPTX
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
PPTX
ゲームインフラコンテナ実践導入
PPTX
Gstreamer Basics
PDF
Fpga online seminar by fixstars (1st)
PDF
Cephベンチマーク kvm
PDF
ゲーム開発プロセスカイゼン
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 2 <Texture Streaming, メモリプロ...
Sumo Logic活用事例とその運用
[AWS re:invent 2013 Report] AWS New EC2 Instance Types
「AROW」お披露目(実用編)
ドリコムJenkins勉強会資料
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
ドリコムのインフラCI
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
ドリコムを支える課金ライブラリを支えるJenkins
「龍が如く」も「スーパーモンキーボール」も自動化!クオリティエンジニアリングチームによるマルチゲームエンジン対応で進化した「龍が如くスタジオ」のテスト自動...
第一回☆GREE AI Programming ContestでTensorFlow
プライベートクラウド作ってみました
Playbay Play 2.0 plugin イロハのイ
こんな辛いテストはいやだ
Cocos2d-x 3.0を使ったゲーム “消滅都市” の開発事例
ゲームインフラコンテナ実践導入
Gstreamer Basics
Fpga online seminar by fixstars (1st)
Cephベンチマーク kvm
ゲーム開発プロセスカイゼン
Ad

More from gree_tech (20)

PPTX
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
PDF
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
PPTX
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
PPTX
アプリ起動時間高速化 ~推測するな、計測せよ~
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
PPTX
Cloud Spanner をより便利にする運用支援ツールの紹介
PPTX
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
PPTX
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
PPTX
海外展開と負荷試験
PPTX
翻訳QAでのテスト自動化の取り組み
PPTX
組み込み開発のテストとゲーム開発のテストの違い
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
PPTX
データエンジニアとアナリストチーム兼務になった件について
PPTX
シェアドサービスとしてのデータテクノロジー
PPTX
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
PPTX
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
PPTX
比較サイトの検索改善(SPA から SSR に変換)
PPTX
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
PPTX
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
PPTX
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)
アナザーエデンPC版リリースへの道のり 〜WFSにおけるマルチプラットフォーム対応の取り組み〜
GREE VR Studio Laboratory「XR-UX Devプロジェクト」の成果紹介
REALITYアバターを様々なメタバースで活躍させてみた - GREE VR Studio Laboratory インターン研究成果発表
アプリ起動時間高速化 ~推測するな、計測せよ~
長寿なゲーム事業におけるアプリビルドの効率化
Cloud Spanner をより便利にする運用支援ツールの紹介
WFSにおけるCloud SpannerとGKEを中心としたGCP導入事例の紹介
SINoALICE -シノアリス- Google Cloud Firestoreを用いた観戦機能の実現について
海外展開と負荷試験
翻訳QAでのテスト自動化の取り組み
組み込み開発のテストとゲーム開発のテストの違い
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
データエンジニアとアナリストチーム兼務になった件について
シェアドサービスとしてのデータテクノロジー
「ドキュメント見つからない問題」をなんとかしたい - 横断検索エンジン導入の取り組みについて-
「Atomic Design × Nuxt.js」コンポーネント毎に責務の範囲を明確にしたら幸せになった話
比較サイトの検索改善(SPA から SSR に変換)
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
「やんちゃ、足りてる?」〜ヤンマガWebで挑戦を続ける新入りエンジニア〜
法人向けメタバースプラットフォームの開発の裏側をのぞいてみた(仮)

OSS強化学習向けゲーム環境の動向

  • 1. Copyright © GREE, Inc. All Rights Reserved.Confidential OSS強化学習向けゲーム環境の動向 グリー株式会社 開発本部 森田想平
  • 2. ● 自社ゲームを強化学習向け環境へ変換する場合 ● 可能ならマルコフ決定過程として定義する ● OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く ● 変換する際のインタフェース ● 環境側のサーベイ結果を見ても、事実上の標準はGym ● それで要件が足りるかはエージェント/フレームワーク次第 ● 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ
  • 3. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  • 4. Copyright © GREE, Inc. All Rights Reserved.Confidential 強化学習における環境とは ゲーム環境 の実装 エージェント の実装
  • 5. Copyright © GREE, Inc. All Rights Reserved.Confidential (部分観測)マルコフ決定過程 強化学習における環境とは ゲーム環境 の実装 エージェント の実装行動 報酬 状態
  • 6. Copyright © GREE, Inc. All Rights Reserved.Confidential ゲームを強化学習向け環境に変換する場合 ● できればマルコフ決定過程(MDP)として定義したい ○ 状態遷移確率P(s’|s,a)が成り立ってほしい ○ 報酬関数r(s, a, s’)を忘れずに定義する ○ 具体例はこの後、ALEの項目で話します ● 部分観測マルコフ決定過程として取り扱う事もできるが ○ エージェント側の検討事項が(多分)複雑になる
  • 7. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  • 8. 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
  • 9. 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
  • 10. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  • 11. Copyright © GREE, Inc. All Rights Reserved.Confidential Arcade Learning Environment
  • 12. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:概要 ● general, domain-independentなAIの研究開発の推進を目 的としてリリース ● Atari 2600エミュレータのStellaを利用している。数百の ゲームが利用可能 ● deep Q-network(DQN)の開発に利用されたことで、広く 知られるようになった ● 老舗だが今でも研究に使われる、重要な存在
  • 13. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:行動と状態の定義 ● ALEはエージェントからjoystic motionに類する行動を受 け取り、スクリーンとRAM(1024bit)の情報を返し、エミ ュレーションを実行する ● スクリーン情報(raw pixel)はMDPを満たさない。RAM情 報によってMDPを満たすことができる ○ 厳密にはMDPを満たすためにレジスターやタイマーの情報も必要だが、 些細な影響である ○ 同じ理由で、ランダムシード固定機能がある
  • 14. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:DQNでの利用 ● DQNはpixel basedな手法なので、状態のMDPについて言 及されている ● スクリーンバッファを状態とみなすとMDPは成り立たな いが、スクリーンバッファと行動のシーケンス{x1, a1, x2, a2 ,,,}はMDPである、という主張 ○ Experience Replayのメリットの1つ ○ 実際には近似関数φでシーケンスを写像してる
  • 15. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:強化学習問題への形式化 ● ALE内のgame-handling layerが各ゲームを強化学習に適 した形式に変換する ○ 累積スコアの定義 ○ ゲーム終了状態の定義 ● →これらを定義すれば、一般的なゲームは強化学習に適した形式になる
  • 16. Copyright © GREE, Inc. All Rights Reserved.Confidential ALE:フォワードモデルとしての機能 ● game-handling layerはエミュレータの状態をsaveし、 restoreできる ○ RAM、レジスタ、アドレスカウンタなど ● この特徴により、(MCTSなどの)プラニング手法が利用 できる ○ →ある種のアルゴリズムには、1つ先の状態をシミュレートできるフォ ワードモデルが必要
  • 17. 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()
  • 18. Copyright © GREE, Inc. All Rights Reserved.Confidential OpenAI Gym
  • 19. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:概要 ● OpenAIがホストするプロジェクト ● ラッパーとして、「環境」の統一的なインタフェースを 提供する ○ Gymプロジェクトが公式にラップしてる環境も沢山 ● 今回並列してリストしているが立ち位置が少し違う
  • 20. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:概要 ● 事実上の標準インタフェース ● ラッパーが作りやすい ○ gym.Envクラスを継承すればよい ● ALEも(このあと紹介する)MalmoもML-Agentsも ViZDoomも、gymラッパーがある
  • 21. Copyright © GREE, Inc. All Rights Reserved.Confidential Gym:ラッパーの作り方 ● Envクラスを継承する ○ step : observation, reward, done, infoを返す ○ reset : 最初のobservationを返す ○ render : 画面のレンダリング等を行う ○ close : 環境を終了させる ○ seed : ランダムシードのセット ● といったメソッドを必要に応じて実装する
  • 22. 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
  • 23. 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()
  • 24. Copyright © GREE, Inc. All Rights Reserved.Confidential ゲームエンジン系
  • 25. Copyright © GREE, Inc. All Rights Reserved.Confidential Unity ML-Agents Toolkit
  • 26. Copyright © GREE, Inc. All Rights Reserved.Confidential ML-Agents:概要 ● Unityによる公式プロジェクトで、Unityのプラグイン ● 推論モデルの、ビルド後のゲーム内での利用もユースケ ースとなっている ● MLフレームワークが利用するPython APIや、そのgymラ ッパーがある ● Dockerfileが用意されてる
  • 27. Copyright © GREE, Inc. All Rights Reserved.Confidential UnrealCV
  • 28. Copyright © GREE, Inc. All Rights Reserved.Confidential UnrealCV:概要 ● UEのゲームを環境へ拡張する類のOSSは見つけられなか ったので、似ているものをピックアップ ● UNREAL ENGINE 4で作られたコンテンツから、コンピ ュータビジョン研究用画像セットを動的に生成するため のUE4のプラグイン(とそれを利用するクライアントコ ード)
  • 29. Copyright © GREE, Inc. All Rights Reserved.Confidential UnrealCV:CV研究のための機能 ● 画面キャプチャの他に、ground truthとしての深度情報 やオブジェクトセグメンテーション等を出力する
  • 30. Copyright © GREE, Inc. All Rights Reserved.Confidential First Person Shooter系
  • 31. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom
  • 32. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:概要 ● Ponzan University of Technologyの研究者によるプロジ ェクト ● 初代Doom(ZDoom)をラップしている ● 一人称視点で3Dな環境からvisual inputを受け取るための 環境
  • 33. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:状態と行動 ● 状態 ○ ViZDoom環境はスクリーンバッファといくつかのゲー ムステータス(player’s health等)を出力する ○ スクリーンバッファとして深度情報も出力する ■ 人間のプレイヤーには必要ないが、エージェント には有用 ● 行動 ○ キーボードやマウスに対応する入力を受け取る
  • 34. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:コントロールモード ● synchronous/asynchronousモード ○ syncモードはエージェント側の入力をwaitする ■ 実験の再現性を担保したり、デバッグするための モード ● player/spectatorモード ○ spectatorモードは人間がプレイし、エージェントが それを観察するためのモード
  • 35. Copyright © GREE, Inc. All Rights Reserved.Confidential ViZDoom:計算負荷削減 ● Off-Screen Rendering ○ リモートサーバでの実行が容易になる ● Frame Skipping ○ フレームを飛ばす ● いずれも負荷軽減のためによく検討される機能
  • 36. Copyright © GREE, Inc. All Rights Reserved.Confidential DeepMind Lab
  • 37. Copyright © GREE, Inc. All Rights Reserved.Confidential DeepMind Lab:概要 ● DeepMindがホストするプロジェクトで、DeepMindがよ く使ってる(使っていた?) ● Quake 3 Arena(ioquake3)をラップしている ● ViSDoomと同じく、一人称視点の3Dゲーム環境
  • 38. Copyright © GREE, Inc. All Rights Reserved.Confidential DeepMind Lab:特徴 ● lock-stepped interaction ○ ViSDoomでいうシンクモード ○ 各ステップにおいて、エージェントからアクションが 送信されてくるまでゲームを停止させる ● 速度情報の観測 ○ ゲームエンジンでレンダリングしたピクセル情報 (RGB or RGBD)の他に、必要であれば速度&各速度情 報を送信する ○ MDPとするため?
  • 39. Copyright © GREE, Inc. All Rights Reserved.Confidential Real Time Strategy系
  • 40. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE(すくーる)
  • 41. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:概要 ● DeepMindとBlizzardが共同でホスティングしているプロ ジェクト ● StarCraft 2をラップしてる
  • 42. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:システム構成 ● xx
  • 43. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:状態の出力 ● 状態はRGB pixelではなく、feature layersとなる
  • 44. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:行動の取り扱い ● atomic compound function ○ 連続操作で成り立つアクションを1つに纏める ○ 300 function と 13の引数タイプ ● エージェントのaction per minuteは人間プレイヤー と同じくらいに設定 ○ 人間のプレイログからの学習がシンプルになる
  • 45. Copyright © GREE, Inc. All Rights Reserved.Confidential SC2LE:その他の工夫 ミニゲーム ● エージェント性能に対するunit testの位置付け その他 ● シンクロモードの導入 ● ランダムシードの固定 ● 警告音をfeatureとして出力 ● 独自の可視化ツールを用意 ● ユーザのプレイログを提供
  • 46. Copyright © GREE, Inc. All Rights Reserved.Confidential その他
  • 47. Copyright © GREE, Inc. All Rights Reserved.Confidential Project Malmo
  • 48. Copyright © GREE, Inc. All Rights Reserved.Confidential Malmo:概要 ● マイクロソフトによるプロジェクトで、マインクラフト をAI研究のプラットフォームにするためのラッパー ● マインクラフトのMOD(拡張)とクライアントのためのAPI からなる ● 最近はMalmoを更にラップするMarLoというOpenAI Gymのextentionを用いてコンテストを開催したりしてる
  • 49. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  • 50. Copyright © GREE, Inc. All Rights Reserved.Confidential 自社ゲームを強化学習向け環境に変換する 必須 ● 報酬とゲーム終了状態の定義 ● できればMDPを満たすために、何を状態とするか決めて、それを出力する 検討 ● ランダムシード固定機能 ● 結合アクションの定義 ● レンダリング(ビデオキャプチャ)機能 ● シンクロモードの実装 ● フレームスキッピング含めた高速化 ● 学習の為のユーザプレイログの取得方法 ● テストとしてのミニゲーム ● フォワードモデルのためのsave/restore機能 ● headless build等の高速化
  • 51. ● 強化学習における環境とは(2min) ● OSS強化学習向けゲーム環境の歴史 (1min) ● 各OSSの紹介 (18min) ● ALE / Project Malmo / ViZDoom / DeepMind Lab / UnrealCV / OpenAI Gym / SC2LE / Unity ML-Agents Toolkit ● 各OSSから得られた知見まとめ(1min) ● もう一度サマリ (1min) OSS強化学習向けゲーム環境の動向 目次
  • 52. ● 自社ゲームを強化学習向け環境へ変換する場合 ● 可能ならマルコフ決定過程として定義する ● OSSサーベイにより、追加を検討した方が良い機能をリスト したので、そちらを参照して頂く ● 変換する際のインタフェース ● 環境側のサーベイ結果を見ても、事実上の標準はGym ● それで要件が足りるかはエージェント/フレームワーク次第 ● 次の発表を参照のこと OSS強化学習向けゲーム環境の動向 本発表のサマリ
  • 53. 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
  • 54. Copyright © GREE, Inc. All Rights Reserved.Confidential

Editor's Notes

  • #6: ゲーム環境が出力する報酬と状態のそれぞれについて、
  • #9: 今日紹介するOSSの歴史です
  • #18: インターフェースを見ながら復習します。