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
マールタスの仕組みを解説
Search
kzmssk
August 28, 2019
Technology
0
3.5k
マールタスの仕組みを解説
RPGアツマールのゲームのプレイ方法を学習するシステム「マールタス」の学習アルゴリズムであるDeep Q-Learningの基本的な仕組みを解説しています。
kzmssk
August 28, 2019
Tweet
Share
More Decks by kzmssk
See All by kzmssk
[email protected]
参加レポ
kzmssk
0
1k
強化学習による3Dキャラクターの モーション生成@SIGGRAPH ASIA2018
kzmssk
0
1.3k
Montezuma’s Revenge Solved by Go-Explore, a New Algorithm for Hard-Exploration Problems
kzmssk
0
400
深層学習を用いた3D仮想物理環境における キャラクターの動的な行動生成
kzmssk
0
310
Other Decks in Technology
See All in Technology
AI Agent Dojo #2 watsonx Orchestrateフローの作成
oniak3ibm
PRO
0
130
OAuthからOIDCへ ― 認可の仕組みが認証に拡張されるまで
yamatai1212
0
130
【Kaigi on Rails 事後勉強会LT】MeはどうしてGirlsに? 私とRubyを繋いだRail(s)
joyfrommasara
0
270
リセラー企業のテクサポ担当が考える、生成 AI 時代のトラブルシュート 2025
kazzpapa3
1
360
Introduction to Bill One Development Engineer
sansan33
PRO
0
300
「改善」ってこれでいいんだっけ?
ukigmo_hiro
0
320
React19.2のuseEffectEventを追う
maguroalternative
2
440
新規事業におけるGORM+SQLx併用アーキテクチャ
hacomono
PRO
0
320
能登半島地震で見えた災害対応の課題と組織変革の重要性
ditccsugii
0
1k
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
210
「使い方教えて」「事例教えて」じゃもう遅い! Microsoft 365 Copilot を触り倒そう!
taichinakamura
0
410
AIツールでどこまでデザインを忠実に実装できるのか
oikon48
6
3.5k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
It's Worth the Effort
3n
187
28k
Become a Pro
speakerdeck
PRO
29
5.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
980
Documentation Writing (for coders)
carmenintech
75
5.1k
Context Engineering - Making Every Token Count
addyosmani
7
260
Making Projects Easy
brettharned
120
6.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
22k
4 Signs Your Business is Dying
shpigford
185
22k
Done Done
chrislema
185
16k
Transcript
マールタスの仕組みを解説
マールタスとは? RPGアツマールに投稿されたゲームのプレイ⽅法を ⾃動的に学習するシステム
ゲームのプレイ⽅法を学習する プレイ⽅法を⼈間がデザインするのではなく 学習によって獲得する 何度もプレイして試⾏錯誤してデータ取集 強化学習と呼ばれる⽅法でシステムを更新し成⻑ ハイスコアを⽬指す ܦա࣌ؒ είΞɿ είΞɿ
είΞɿ
この時間で話したいこと マールタスの学習の仕組み Deep Q-Network(DQN)の基本 マールタスのが得意/不得意なゲームの特徴 %2/
ビデオゲームAIを作る? 伝統的な⽅法:ルールベース 「〜のときは〜せよ」 • ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋ ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢ • ࣌ؒͷΧϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ
• ʜ
ビデオゲームAIを作る? 伝統的な⽅法:ルールベース 「〜のときは〜せよ」 • ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋ ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢ • ࣌ؒͷΧϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ
• ʜ ήʔϜ͕ෳࡶʹͳΔͱॻ͘ͷ͕͘͠ͳΔ
攻略法を機械に学ばせる:機械学習 ルールを⼈間が記述するのは諦める 機械に攻略法を探してもらう
機械学習による(ビデオ)ゲームAI 様々な⽅法が提案されてきた 遺伝的アルゴリズム モンテカルロ⽊探索 などなど マールタスの学習⽅法:強化学習
強化学習によるビデオゲームAI 古いゲームから新しいゲームまで ⼈⼯知能研究の題材としてゲームが使われることも ATARI Dota 2 Starcraft-II .OJI 7
FUBM IUUQTPQFOBJDPNGJWF IUUQTEFFQNJOEDPNCMPHBMQIBTUBSNBTUFSJOHSFBM UJNFTUSBUFHZHBNFTUBSDSBGUJJ
強化学習の枠組み 環境とエージェントの相互作⽤ ゲーム:環境 エージェント:ゲームプレイヤー ΤʔδΣϯτ ڥ
環境とエージェントの相互作⽤ マールタスがボタンを選択 ゲーム画⾯が変わる
環境とエージェントの相互作⽤ マールタスがボタンを選択 ゲーム画⾯が変わる 新たな画⾯とスコアが与えられる マールタスは画⾯をみて 次のボタンを選択
環境とエージェントの相互作⽤ マールタスがボタンを選択 ゲーム画⾯が変わる 新たな画⾯とスコアが与えられる マールタスは画⾯をみて 次のボタンを選択 スコア差分: ゲームの画⾯が変わるときの 良さを測る指標
環境とエージェントの相互作⽤ エージェントが⾏動を選択 環境が変わる 新たな状態と報酬が与えられる エージェントは状態をみて次の ⾏動を選択 報酬: 環境の状態が変わるときの良 さを測る指標
エージェントが⾏動選択をするルール ⽅策:状態を⼊⼒として⾏動を出⼒する関数 ํࡦ ೖྗͨͪ ग़ྗ
強化学習で⽬指すこと ⽅策:状態を⼊⼒として⾏動を出⼒する関数 ํࡦ ೖྗͨͪ ग़ྗ ྑ͍ํࡦΛݟ͚͍ͭͨʂ
良い⽅策とは? 良い⽅策:たくさん報酬(=スコア差分)がもらえる⽅策 たくさんとは? ゲームの終わりまでの報酬の合計を考える ελʔτ ήʔϜΦʔόʔ
1ステップのみの場合
⻑いエピソード BͱCͲ͕ͬͪྑ͍ʁ
ܭࢉͯ͠ΈΑ͏
ܭࢉͯ͠ΈΑ͏
ܭࢉͯ͠ΈΑ͏
ܭࢉͯ͠ΈΑ͏
ܭࢉͯ͠ΈΑ͏
ܭࢉͯ͠ΈΑ͏
ܭࢉͯ͠ΈΑ͏
C
⾏動選択の価値を考える 価値:ある状態におけるゲームの終わりまでの報酬の総和 (報酬の総和の期待値) ⾏動価値(Q値) :ある状態において、ある⾏動を選択した場合の報酬の総和
Q値があれば良いルートがわかる ߦಈBͷ2 ʼ ߦಈCͷ2 ߦಈB͕͓ಘ
Q値を計算したい Q値を計算したい 関数を考える ؔ ೖྗ ग़ྗ
Q値を計算したい Q関数:状態を⼊⼒してQ値を出⼒する関数 2ؔ ঢ়ଶ ֤Ϙλϯͷ2
Q関数は簡単に求められない ⾮常に限られた環境では正確 なQ関数を作ることができる が。。。 実際には組み合わせが膨⼤ 計算できない!
Q関数の近似 正確なQ値を計算するのを諦める 実際にエピソードを集める
Q関数の近似 正確なQ値を計算するのを諦める 実際にエピソードを集める 集めた中でのQ値を使ってQ関数を近似する 2ؔ ঢ়ଶ ֤Ϙλϯͷ2 ͷ༧ଌ 0,
どうやってQ関数を近似するの? ニューラルネットワークと呼ばれるものを使う 脳の神経回路を模したモデル ॏΈɺόΠΞε ೖྗ ग़ྗ
どうやってQ関数を近似するの? ニューラルネットワークと呼ばれるものを使う 脳の神経回路を模したモデル ग़ྗ ॏΈʹ όΠΞεʹ = ೖྗ
×[重み]+όΠΞε = . × . +.
ニューラルネットワークの学習 1. 重みとバイアスをランダムに決める 2. 出⼒を計算 3. 欲しい出⼒(正解データ)を使って誤差を計算 4. 誤差を使って重みとバイアスを修正する 5.
2に戻る ೖྗ ग़ྗ ਖ਼ղ ޡࠩ मਖ਼
ニューラルネットワークの拡張 ೖྗ ग़ྗ ͭͷೖྗɺ̍ͭͷग़ྗ
ニューラルネットワークの拡張 複数⼊⼒、複数出⼒に拡張 ⼤規模なニューラルネットワーク=Deep Neural Network
ニューラルネットワークに画像を⼊⼒ ը૾ ϐΫηϧ
ニューラルネットワークに画像を⼊⼒ ը૾ ϐΫηϧ
ニューラルネットワークに画像を⼊⼒ Deep Neural NetworkでQ値を予測する ֤Ϙλϯͷ2 ͷ༧ଌ ʢը૾ʣ %FFQ2/FUXPSL %2/
Deep Q-Network(DQN)の学習 1. Deep Q-Networkの重みとバイアスを初期化(乱数とか) 2. 状態を⼊⼒してQ値を予測 3. ゲームをプレイさせてデータを集める 4.
集めたデータで重みとバイアスを更新 5. 2に戻る ঢ়ଶʢը૾ʣ %FFQ2/FUXPSL ༧ଌͨ͠2
データ収集の効率化 重みとバイアスの修正の時間 < データ収集にかかる時間 並列してデータ収集
データ収集の効率化 重みとバイアスの修正の時間 < データ収集にかかる時間 並列してデータ収集 • ࣮ࡍʹ৭ʑΛՃ͑ͨ"QF9ͱݺ ΕΔख๏Λ͍ͬͯΔ •
࣮3-MJCʢ1ZUIPOͷڧԽֶशͷͨΊ ͷϥΠϒϥϦʣΛར༻ <)PSHBO FUBM >
マールタスが得意なゲーム ⾏動に対して報酬が即座に反映する:アクションゲーム ⾏動に対する報酬の反映が遅いと学習が難しい ⾏動パターンが少ない:クリックよりもキーボード操作 Q学習は離散の値を前提にしている
マールタスが不得意なゲーム 報酬がすぐに与えられない:RPG系 ゲームオーバー時にしかスコアがもらえない スコアがもらえるが限られた複雑な操作をしないと進めない ⾔語の理解を必要とする ⾏動パターンが連続:マウス操作とか
ルールを機械に学ばせる ⾏動に対して報酬が即座に反映する:アクションゲーム ⾏動に対する報酬の反映が遅いと学習が難しい ⾏動パターンが少ない:クリックよりもキーボード操作 Q学習は離散の値を前提にしている
まとめ エージェントと環境、⾏動、状態、報酬 ある状態で⾏動を選択した場合の未来のスコアを考える(Q値) Q値は簡単に求められないので近似する データを集める Deep Q-NetworkでQ値を予測させる 得意なゲーム/不得意なゲームがあるよ