Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
マールタスの仕組みを解説
Search
kzmssk
August 28, 2019
Technology
0
3.2k
マールタスの仕組みを解説
RPGアツマールのゲームのプレイ方法を学習するシステム「マールタス」の学習アルゴリズムであるDeep Q-Learningの基本的な仕組みを解説しています。
kzmssk
August 28, 2019
Tweet
Share
More Decks by kzmssk
See All by kzmssk
[email protected]
参加レポ
kzmssk
0
920
強化学習による3Dキャラクターの モーション生成@SIGGRAPH ASIA2018
kzmssk
0
1k
Montezuma’s Revenge Solved by Go-Explore, a New Algorithm for Hard-Exploration Problems
kzmssk
0
340
深層学習を用いた3D仮想物理環境における キャラクターの動的な行動生成
kzmssk
0
260
Other Decks in Technology
See All in Technology
AWS認定試験の長文問題を早く解くコツ
keke1234ke
0
130
コンパウンド戦略に向けた技術選定とリアーキテクチャ
kworkdev
PRO
1
4.3k
140年の歴史あるエンタープライズ企業の内製化×マイクロサービス化への航海
yussugi
0
3.6k
2024/11/29_失敗談から学ぶ! エンジニア向けre:Invent攻略アンチパターン集
hiashisan
0
240
サービスの拡大に伴うオペレーション課題に立ち向かう / 20241128_cloudsign_pdm
bengo4com
0
770
ゆるSRE勉強会 #8 組織的にSREが始まる中で意識したこと
abnoumaru
2
820
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
560
Entra ID の基礎(Japan Microsoft 365 コミュニティ カンファレンス 2024)
murachiakira
3
2.1k
プルリクが全てじゃない!実は喜ばれるOSS貢献の方法8選
tkikuc
17
2.1k
ご挨拶
iotcomjpadmin
0
290
EthernetベースのGPUクラスタ導入による学びと展望
lycorptech_jp
PRO
0
420
情シスの引継ぎが大変という話
miyu_dev
2
520
Featured
See All Featured
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Become a Pro
speakerdeck
PRO
25
5k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
470
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.3k
Docker and Python
trallard
40
3.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
17k
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値を予測させる 得意なゲーム/不得意なゲームがあるよ