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
3.7k
0
Share
マールタスの仕組みを解説
RPGアツマールのゲームのプレイ方法を学習するシステム「マールタス」の学習アルゴリズムであるDeep Q-Learningの基本的な仕組みを解説しています。
kzmssk
August 28, 2019
More Decks by kzmssk
See All by kzmssk
Dwangoでの漫画データ活用〜漫画理解と動画作成〜@コミック工学シンポジウム2025
kzmssk
0
260
[email protected]
参加レポ
kzmssk
0
1.1k
強化学習による3Dキャラクターの モーション生成@SIGGRAPH ASIA2018
kzmssk
0
1.4k
Montezuma’s Revenge Solved by Go-Explore, a New Algorithm for Hard-Exploration Problems
kzmssk
0
450
深層学習を用いた3D仮想物理環境における キャラクターの動的な行動生成
kzmssk
0
350
Other Decks in Technology
See All in Technology
AIガバナンス実践 - 生成AIコネクタのデータ漏洩リスクと実務対策
knishioka
0
110
OpenClawとHermesAgentでAI新入社員を作った話
takanoriyanada
0
130
JJUG CCC 2026 Spring AI時代の開発こそ標準化を武器に! ― 方式・プロセス・プラットフォームの標準化
s27watanabe
2
540
自作エディターをOSSにして分かった、一人に刺さる開発が世界を動かす理由
shinyasaita
1
450
組織の中で自分を経営する技術
shoota
0
190
eBPF Can Do It! A 5-Minute Tour of 5 Real-World PHP Issues Solved with eBPF
egmc
0
300
ビジュアルプログラミングIoTLT vol.23
1ftseabass
PRO
0
150
インフラが苦手でも大丈夫! 紙芝居 Kubernetes -WWGT 10周年編-
aoi1
1
280
データ分析基盤の信頼を支える視点と設計
yuki_saito
2
730
Spring AI × MCP 入門〜AIエージェントへのツール公開、境界設計から始める最小構成 〜
yuyamiyamoto
0
150
大規模環境でどのように監視を実現する?
yuobayashi
1
260
Strands Agents超入門
kintotechdev
1
130
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
450
Deep Space Network (abreviated)
tonyrice
0
150
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
520
sira's awesome portfolio website redesign presentation
elsirapls
0
260
The Invisible Side of Design
smashingmag
302
52k
How to train your dragon (web standard)
notwaldorf
97
6.6k
The Cost Of JavaScript in 2023
addyosmani
55
9.9k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
200
Git: the NoSQL Database
bkeepers
PRO
432
67k
Into the Great Unknown - MozCon
thekraken
41
2.5k
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値を予測させる 得意なゲーム/不得意なゲームがあるよ