RPGアツマールのゲームのプレイ方法を学習するシステム「マールタス」の学習アルゴリズムであるDeep Q-Learningの基本的な仕組みを解説しています。
マールタスの仕組みを解説
View Slide
マールタスとは?RPGアツマールに投稿されたゲームのプレイ⽅法を⾃動的に学習するシステム
ゲームのプレイ⽅法を学習するプレイ⽅法を⼈間がデザインするのではなく学習によって獲得する何度もプレイして試⾏錯誤してデータ取集強化学習と呼ばれる⽅法でシステムを更新し成⻑ハイスコアを⽬指すܦա࣌ؒείΞɿ είΞɿ είΞɿ
この時間で話したいことマールタスの学習の仕組みDeep Q-Network(DQN)の基本マールタスのが得意/不得意なゲームの特徴%2/
ビデオゲームAIを作る?伝統的な⽅法:ルールベース「〜のときは〜せよ」• ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢• ࣌ؒͷΧϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ• ʜ
ビデオゲームAIを作る?伝統的な⽅法:ルールベース「〜のときは〜せよ」• ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢• ࣌ؒͷΧϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ• ʜήʔϜ͕ෳࡶʹͳΔͱॻ͘ͷ͕͘͠ͳΔ
攻略法を機械に学ばせる:機械学習ルールを⼈間が記述するのは諦める機械に攻略法を探してもらう
機械学習による(ビデオ)ゲームAI様々な⽅法が提案されてきた遺伝的アルゴリズムモンテカルロ⽊探索などなどマールタスの学習⽅法:強化学習
強化学習によるビデオゲームAI古いゲームから新しいゲームまで⼈⼯知能研究の題材としてゲームが使われることもATARIDota 2Starcraft-II.OJI 7 FUBM IUUQTPQFOBJDPNGJWFIUUQTEFFQNJOEDPNCMPHBMQIBTUBSNBTUFSJOHSFBMUJNFTUSBUFHZHBNFTUBSDSBGUJJ
強化学習の枠組み環境とエージェントの相互作⽤ゲーム:環境エージェント:ゲームプレイヤーΤʔδΣϯτ ڥ
環境とエージェントの相互作⽤マールタスがボタンを選択ゲーム画⾯が変わる
環境とエージェントの相互作⽤マールタスがボタンを選択ゲーム画⾯が変わる新たな画⾯とスコアが与えられるマールタスは画⾯をみて次のボタンを選択
環境とエージェントの相互作⽤マールタスがボタンを選択ゲーム画⾯が変わる新たな画⾯とスコアが与えられるマールタスは画⾯をみて次のボタンを選択スコア差分:ゲームの画⾯が変わるときの良さを測る指標
環境とエージェントの相互作⽤エージェントが⾏動を選択環境が変わる新たな状態と報酬が与えられるエージェントは状態をみて次の⾏動を選択報酬:環境の状態が変わるときの良さを測る指標
エージェントが⾏動選択をするルール⽅策:状態を⼊⼒として⾏動を出⼒する関数ํࡦೖྗͨͪग़ྗ
強化学習で⽬指すこと⽅策:状態を⼊⼒として⾏動を出⼒する関数ํࡦೖྗͨͪग़ྗྑ͍ํࡦΛݟ͚͍ͭͨʂ
良い⽅策とは?良い⽅策:たくさん報酬(=スコア差分)がもらえる⽅策たくさんとは?ゲームの終わりまでの報酬の合計を考えるελʔτ ήʔϜΦʔόʔ
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値を予測させる得意なゲーム/不得意なゲームがあるよ