マールタスの仕組みを解説

39c6dc454be13be8e4a2593c55352f45?s=47 kzmssk
August 28, 2019

 マールタスの仕組みを解説

RPGアツマールのゲームのプレイ方法を学習するシステム「マールタス」の学習アルゴリズムであるDeep Q-Learningの基本的な仕組みを解説しています。

39c6dc454be13be8e4a2593c55352f45?s=128

kzmssk

August 28, 2019
Tweet

Transcript

  1. マールタスの仕組みを解説

  2. マールタスとは? RPGアツマールに投稿されたゲームのプレイ⽅法を ⾃動的に学習するシステム 

  3. ゲームのプレイ⽅法を学習する  プレイ⽅法を⼈間がデザインするのではなく 学習によって獲得する 何度もプレイして試⾏錯誤してデータ取集 強化学習と呼ばれる⽅法でシステムを更新し成⻑ ハイスコアを⽬指す ܦա࣌ؒ είΞɿ είΞɿ

    είΞɿ
  4. この時間で話したいこと マールタスの学習の仕組み Deep Q-Network(DQN)の基本 マールタスのが得意/不得意なゲームの特徴  %2/

  5. ビデオゲームAIを作る? 伝統的な⽅法:ルールベース 「〜のときは〜せよ」  • ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋ ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢ • ࣌ؒͷΧ΢ϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ

    • ʜ
  6. ビデオゲームAIを作る? 伝統的な⽅法:ルールベース 「〜のときは〜せよ」  • ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋ ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢ • ࣌ؒͷΧ΢ϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ

    • ʜ ήʔϜ͕ෳࡶʹͳΔͱॻ͘ͷ͕೉͘͠ͳΔ
  7. 攻略法を機械に学ばせる:機械学習 ルールを⼈間が記述するのは諦める 機械に攻略法を探してもらう 

  8. 機械学習による(ビデオ)ゲームAI 様々な⽅法が提案されてきた 遺伝的アルゴリズム モンテカルロ⽊探索 などなど マールタスの学習⽅法:強化学習 

  9. 強化学習によるビデオゲームAI  古いゲームから新しいゲームまで ⼈⼯知能研究の題材としてゲームが使われることも ATARI Dota 2 Starcraft-II .OJI 7

    FUBM    IUUQTPQFOBJDPNGJWF IUUQTEFFQNJOEDPNCMPHBMQIBTUBSNBTUFSJOHSFBM UJNFTUSBUFHZHBNFTUBSDSBGUJJ
  10. 強化学習の枠組み 環境とエージェントの相互作⽤ ゲーム:環境 エージェント:ゲームプレイヤー  ΤʔδΣϯτ ؀ڥ

  11. 環境とエージェントの相互作⽤ マールタスがボタンを選択 ゲーム画⾯が変わる 

  12. 環境とエージェントの相互作⽤ マールタスがボタンを選択 ゲーム画⾯が変わる 新たな画⾯とスコアが与えられる マールタスは画⾯をみて 次のボタンを選択 

  13. 環境とエージェントの相互作⽤ マールタスがボタンを選択 ゲーム画⾯が変わる 新たな画⾯とスコアが与えられる マールタスは画⾯をみて 次のボタンを選択  スコア差分: ゲームの画⾯が変わるときの 良さを測る指標

  14. 環境とエージェントの相互作⽤ エージェントが⾏動を選択 環境が変わる 新たな状態と報酬が与えられる エージェントは状態をみて次の ⾏動を選択  報酬: 環境の状態が変わるときの良 さを測る指標

  15. エージェントが⾏動選択をするルール ⽅策:状態を⼊⼒として⾏動を出⼒する関数  ํࡦ ೖྗͨͪ ग़ྗ

  16. 強化学習で⽬指すこと ⽅策:状態を⼊⼒として⾏動を出⼒する関数  ํࡦ ೖྗͨͪ ग़ྗ ྑ͍ํࡦΛݟ͚͍ͭͨʂ

  17. 良い⽅策とは? 良い⽅策:たくさん報酬(=スコア差分)がもらえる⽅策 たくさんとは? ゲームの終わりまでの報酬の合計を考える  ελʔτ ήʔϜΦʔόʔ   

    ఺
  18. 1ステップのみの場合   

  19. ⻑いエピソード  BͱCͲ͕ͬͪྑ͍ʁ

  20.  ܭࢉͯ͠ΈΑ͏        

         
  21.  ܭࢉͯ͠ΈΑ͏        

            
  22.  ܭࢉͯ͠ΈΑ͏        

            
  23.  ܭࢉͯ͠ΈΑ͏        

                              
  24.  ܭࢉͯ͠ΈΑ͏        

                               ఺
  25.  ܭࢉͯ͠ΈΑ͏        

                               ఺ ఺
  26.  ܭࢉͯ͠ΈΑ͏        

                              ఺ ఺ C
  27. ⾏動選択の価値を考える 価値:ある状態におけるゲームの終わりまでの報酬の総和 (報酬の総和の期待値) ⾏動価値(Q値) :ある状態において、ある⾏動を選択した場合の報酬の総和 

  28. Q値があれば良いルートがわかる  ߦಈBͷ2஋ ʼ ߦಈCͷ2஋ ߦಈB͕͓ಘ

  29. Q値を計算したい  Q値を計算したい 関数を考える ؔ਺ ೖྗ ग़ྗ

  30. Q値を計算したい Q関数:状態を⼊⼒してQ値を出⼒する関数  2ؔ਺ ঢ়ଶ ֤Ϙλϯͷ2஋

  31. Q関数は簡単に求められない  ⾮常に限られた環境では正確 なQ関数を作ることができる が。。。 実際には組み合わせが膨⼤ 計算できない!

  32. Q関数の近似  正確なQ値を計算するのを諦める 実際にエピソードを集める

  33. Q関数の近似 正確なQ値を計算するのを諦める 実際にエピソードを集める 集めた中でのQ値を使ってQ関数を近似する  2ؔ਺ ঢ়ଶ ֤Ϙλϯͷ2஋ ͷ༧ଌ 0,

  34. どうやってQ関数を近似するの? ニューラルネットワークと呼ばれるものを使う 脳の神経回路を模したモデル  ॏΈɺόΠΞε ೖྗ ग़ྗ

  35. どうやってQ関数を近似するの? ニューラルネットワークと呼ばれるものを使う 脳の神経回路を模したモデル   ग़ྗ ॏΈʹ όΠΞεʹ = ೖྗ

    ×[重み]+όΠΞε = . × . +.
  36. ニューラルネットワークの学習 1. 重みとバイアスをランダムに決める 2. 出⼒を計算 3. 欲しい出⼒(正解データ)を使って誤差を計算 4. 誤差を使って重みとバイアスを修正する 5.

    2に戻る  ೖྗ ग़ྗ ਖ਼ղ ޡࠩ मਖ਼
  37. ニューラルネットワークの拡張  ೖྗ ग़ྗ ͭͷೖྗɺ̍ͭͷग़ྗ

  38. ニューラルネットワークの拡張  複数⼊⼒、複数出⼒に拡張 ⼤規模なニューラルネットワーク=Deep Neural Network

  39. ニューラルネットワークに画像を⼊⼒  ը૾ ϐΫηϧ஋

  40. ニューラルネットワークに画像を⼊⼒  ը૾ ϐΫηϧ஋

  41. ニューラルネットワークに画像を⼊⼒  Deep Neural NetworkでQ値を予測する ֤Ϙλϯͷ2஋ ͷ༧ଌ ʢը૾ʣ %FFQ2/FUXPSL %2/

  42. Deep Q-Network(DQN)の学習 1. Deep Q-Networkの重みとバイアスを初期化(乱数とか) 2. 状態を⼊⼒してQ値を予測 3. ゲームをプレイさせてデータを集める 4.

    集めたデータで重みとバイアスを更新 5. 2に戻る  ঢ়ଶʢը૾ʣ %FFQ2/FUXPSL ༧ଌͨ͠2஋
  43. データ収集の効率化 重みとバイアスの修正の時間 < データ収集にかかる時間 並列してデータ収集 

  44. データ収集の効率化 重みとバイアスの修正の時間 < データ収集にかかる時間 並列してデータ収集  • ࣮ࡍʹ͸৭ʑ޻෉ΛՃ͑ͨ"QF9ͱݺ ͹ΕΔख๏Λ࢖͍ͬͯΔ •

    ࣮૷͸3-MJCʢ1ZUIPOͷڧԽֶशͷͨΊ ͷϥΠϒϥϦʣΛར༻ <)PSHBO FUBM   >
  45. マールタスが得意なゲーム   ⾏動に対して報酬が即座に反映する:アクションゲーム ⾏動に対する報酬の反映が遅いと学習が難しい ⾏動パターンが少ない:クリックよりもキーボード操作 Q学習は離散の値を前提にしている

  46. マールタスが不得意なゲーム   報酬がすぐに与えられない:RPG系 ゲームオーバー時にしかスコアがもらえない スコアがもらえるが限られた複雑な操作をしないと進めない ⾔語の理解を必要とする ⾏動パターンが連続:マウス操作とか

  47. ルールを機械に学ばせる ⾏動に対して報酬が即座に反映する:アクションゲーム ⾏動に対する報酬の反映が遅いと学習が難しい ⾏動パターンが少ない:クリックよりもキーボード操作 Q学習は離散の値を前提にしている 

  48. まとめ エージェントと環境、⾏動、状態、報酬 ある状態で⾏動を選択した場合の未来のスコアを考える(Q値) Q値は簡単に求められないので近似する データを集める Deep Q-NetworkでQ値を予測させる 得意なゲーム/不得意なゲームがあるよ