$30 off During Our Annual Pro Sale. View Details »

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

kzmssk
August 28, 2019

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

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

kzmssk

August 28, 2019
Tweet

More Decks by kzmssk

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. ゲームのプレイ⽅法を学習する

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

    View Slide

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

    %2/

    View Slide

  5. ビデオゲームAIを作る?
    伝統的な⽅法:ルールベース
    「〜のときは〜せよ」

    • ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋
    ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢
    • ࣌ؒͷΧ΢ϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ
    • ʜ

    View Slide

  6. ビデオゲームAIを作る?
    伝統的な⽅法:ルールベース
    「〜のときは〜せよ」

    • ఢΩϟϥΫλʔ͕࠲ඪ ̋ɺ̋
    ʹ౸ୡͨ͠Β"ϘλϯΛԡ͢
    • ࣌ؒͷΧ΢ϯλʔ͕˘ඵʹͳΔ·ͰԣҠಈΛଓ͚Δ
    • ʜ
    ήʔϜ͕ෳࡶʹͳΔͱॻ͘ͷ͕೉͘͠ͳΔ

    View Slide

  7. 攻略法を機械に学ばせる:機械学習
    ルールを⼈間が記述するのは諦める
    機械に攻略法を探してもらう

    View Slide

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

    View Slide

  9. 強化学習によるビデオゲームAI

    古いゲームから新しいゲームまで
    ⼈⼯知能研究の題材としてゲームが使われることも
    ATARI
    Dota 2
    Starcraft-II
    .OJI 7 FUBM

    IUUQTPQFOBJDPNGJWF
    IUUQTEFFQNJOEDPNCMPHBMQIBTUBSNBTUFSJOHSFBM
    UJNFTUSBUFHZHBNFTUBSDSBGUJJ

    View Slide

  10. 強化学習の枠組み
    環境とエージェントの相互作⽤
    ゲーム:環境
    エージェント:ゲームプレイヤー

    ΤʔδΣϯτ ؀ڥ

    View Slide

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

    View Slide

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

    View Slide

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

    スコア差分:
    ゲームの画⾯が変わるときの
    良さを測る指標

    View Slide

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

    報酬:
    環境の状態が変わるときの良
    さを測る指標

    View Slide

  15. エージェントが⾏動選択をするルール
    ⽅策:状態を⼊⼒として⾏動を出⼒する関数

    ํࡦ
    ೖྗͨͪ
    ग़ྗ

    View Slide

  16. 強化学習で⽬指すこと
    ⽅策:状態を⼊⼒として⾏動を出⼒する関数

    ํࡦ
    ೖྗͨͪ
    ग़ྗ
    ྑ͍ํࡦΛݟ͚͍ͭͨʂ

    View Slide

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

    ελʔτ ήʔϜΦʔόʔ

    View Slide

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



    View Slide

  19. ⻑いエピソード

    BͱCͲ͕ͬͪྑ͍ʁ

    View Slide


  20. ܭࢉͯ͠ΈΑ͏














    View Slide


  21. ܭࢉͯ͠ΈΑ͏















    View Slide


  22. ܭࢉͯ͠ΈΑ͏















    View Slide


  23. ܭࢉͯ͠ΈΑ͏























    View Slide


  24. ܭࢉͯ͠ΈΑ͏
























    View Slide


  25. ܭࢉͯ͠ΈΑ͏

























    View Slide


  26. ܭࢉͯ͠ΈΑ͏
























    C

    View Slide

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

    View Slide

  28. Q値があれば良いルートがわかる

    ߦಈBͷ2஋ ʼ ߦಈCͷ2஋
    ߦಈB͕͓ಘ

    View Slide

  29. Q値を計算したい

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

    View Slide

  30. Q値を計算したい
    Q関数:状態を⼊⼒してQ値を出⼒する関数

    2ؔ਺
    ঢ়ଶ ֤Ϙλϯͷ2஋

    View Slide

  31. Q関数は簡単に求められない

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

    View Slide

  32. Q関数の近似

    正確なQ値を計算するのを諦める
    実際にエピソードを集める

    View Slide

  33. Q関数の近似
    正確なQ値を計算するのを諦める
    実際にエピソードを集める
    集めた中でのQ値を使ってQ関数を近似する

    2ؔ਺
    ঢ়ଶ ֤Ϙλϯͷ2஋
    ͷ༧ଌ
    0,

    View Slide

  34. どうやってQ関数を近似するの?
    ニューラルネットワークと呼ばれるものを使う
    脳の神経回路を模したモデル

    ॏΈɺόΠΞε
    ೖྗ ग़ྗ

    View Slide

  35. どうやってQ関数を近似するの?
    ニューラルネットワークと呼ばれるものを使う
    脳の神経回路を模したモデル

    ग़ྗ
    ॏΈʹ
    όΠΞεʹ
    = ೖྗ ×[重み]+όΠΞε
    = . × . +.

    View Slide

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

    ೖྗ ग़ྗ ਖ਼ղ
    ޡࠩ
    मਖ਼

    View Slide

  37. ニューラルネットワークの拡張

    ೖྗ ग़ྗ
    ͭͷೖྗɺ̍ͭͷग़ྗ

    View Slide

  38. ニューラルネットワークの拡張

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

    View Slide

  39. ニューラルネットワークに画像を⼊⼒

    ը૾ ϐΫηϧ஋

    View Slide

  40. ニューラルネットワークに画像を⼊⼒

    ը૾ ϐΫηϧ஋

    View Slide

  41. ニューラルネットワークに画像を⼊⼒

    Deep Neural NetworkでQ値を予測する
    ֤Ϙλϯͷ2஋
    ͷ༧ଌ
    ʢը૾ʣ
    %FFQ2/FUXPSL %2/

    View Slide

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

    ঢ়ଶʢը૾ʣ %FFQ2/FUXPSL ༧ଌͨ͠2஋

    View Slide

  43. データ収集の効率化
    重みとバイアスの修正の時間 < データ収集にかかる時間
    並列してデータ収集

    View Slide

  44. データ収集の効率化
    重みとバイアスの修正の時間 < データ収集にかかる時間
    並列してデータ収集

    • ࣮ࡍʹ͸৭ʑ޻෉ΛՃ͑ͨ"QF9ͱݺ
    ͹ΕΔख๏Λ࢖͍ͬͯΔ
    • ࣮૷͸3-MJCʢ1ZUIPOͷڧԽֶशͷͨΊ
    ͷϥΠϒϥϦʣΛར༻
    <)PSHBO FUBM
    >

    View Slide

  45. マールタスが得意なゲーム


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

    View Slide

  46. マールタスが不得意なゲーム


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

    View Slide

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

    View Slide

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

    View Slide