深層強化学習の self-playで、複雑な行動を機械に学習させたい!
TRANSCRIPT
![Page 1: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/1.jpg)
GMOインターネット 次世代システム研究室
勝田 隼一郎 2017/12/27 次世代システム研究室-研究発表 (GMO Yours)
深層強化学習の self-playで、複雑な行動を機械に学習させたい!
![Page 2: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/2.jpg)
�2
スライド長いよ!という人のために、ハイライトをまとめたブログが以下にあります。 「深層強化学習のself-playで遊んでみた!」 https://recruit.gmo.jp/engineer/jisedai/blog/self-play/
実験結果のアニメーションが以下にあります。 https://github.com/jkatsuta/17_4q_supplement
はじめに
![Page 3: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/3.jpg)
�3
自己紹介勝田 隼一郎 • 大学時代: ボートに熱中しすぎ留年 • 東京大学大学院理学系 研究科物理学 修了(博士) • Stanford大学と広島大学で ポスドク(日本学術振興会; 高エネルギー宇宙物理学) 2016.4: GMOインターネット 次世代システム研究室 データサイエンティスト兼アーキテクト
![Page 4: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/4.jpg)
�4
本研究の背景AlphaGoなどで有名になった深層強化学習。
近”self-play”による研究もさかん。
正解のない世界で、より正しい方法を模索する強化学習。その中でも、機械同士を争わせてよりよい手法を学習するself-playは、有望な手法の一つ!
![Page 5: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/5.jpg)
�5
本研究の背景ちょうどこんな記事も。 「日立製作所、ビジネス適用可能な自己競争型AI技術を開発」 https://japan.zdnet.com/article/35112453/
(ZDNet Japan 2017/12/25)
![Page 6: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/6.jpg)
�6
本研究の目的
「Self-playによる深層強化学習について、近発表された論文をベースに学び、その知見を習得しグループに共有する。」
目的 「Self-playで遊んでみたい!」
大人の言葉に翻訳すると、、、
![Page 7: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/7.jpg)
7
Outline
1. イントロ • 深層強化学習とは • Self-playとは(Alpha Goを例に)
2. 実験 • 背景、セットアップ • 実験結果、デモ • 考察
![Page 8: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/8.jpg)
�8
イントロ
![Page 9: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/9.jpg)
9
深層強化学習とは?深層学習の技術を 強化学習という学習フレームワークに応用
ここでは強化学習について説明する。 深層学習については、強化学習のフレームワークを実現するのに便利な道具、と思ってもらえば良い。
参考:「Deep Q-LearningでFXしてみた @ slideshare」 https://www.slideshare.net/JunichiroKatsuta/deep-qlearningfx
![Page 10: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/10.jpg)
10
強化学習は、機械学習の一種
教師あり学習
教師なし学習
強化学習
![Page 11: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/11.jpg)
�11
機械は何を学習してる?(教師あり学習)
input data
output data
与えられたデータyに合うように パラメータを学習(人のアナロジー)
モデル
x f(x) = ax + b f(x) vs y
f(x) = 1*x + 7 f(x) = 2.1x + 1.6
![Page 12: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/12.jpg)
�12
機械学習とは
数式(モデル)= “機械”のパラメータを、データに合うように、 適化 = “学習”すること
深層学習も原理は全く同じ。 何か神秘的なことが起きているのではない。
![Page 13: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/13.jpg)
�13
教師あり学習 vs 強化学習例:無人島サバイバル
教師あり学習 “ツアー:無人島サバイバルを体験しよう! # 経験豊富ガイドがいるので安全です!”
• ガイド(教師)がいる。 • 参加者(学習者)は、ガイドの言うとおりにすれば(正解データを真似すれば)、魚を釣り、火を起こせる。サバイバルには困らない。
![Page 14: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/14.jpg)
�14
教師あり学習 vs 強化学習
強化学習 = “リアルガチな無人島”
• 教師がいない。 • 一人で行動し、その行動の結果から学習する。 • 正解がわからない中で、”正しそう”な「方針」を学ぶ。効率的な学習をしないと死んでしまう。。
![Page 15: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/15.jpg)
�15
強化学習の概念図Agent (学習者)が 環境からの 情報(状態、報酬)をもとに、 適( 終的な報酬が も高くなる)な行動をとるように学習する技術
![Page 16: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/16.jpg)
�16
囲碁の場合
• 状態: 盤上の碁の位置 • 行動: 自分の石を一つ置く • 報酬: 勝つか負けるか
![Page 17: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/17.jpg)
�17
AlphaGo• Google DeepMind社が開発した囲碁をプレイするプログラム。
• 2016, 2017年に世界トップ棋士(人間)をなぎ倒し、史上 強に。
• 2017/10には後継のAlphaGo Zeroが発表。 • 人に圧勝したAlphaGoを、さらにフルボッコにしてドラゴンボールの世界を現実世界に展開。。← ナメック星で、フリーザの戦闘力を聞いた時の絶望感くらい。
![Page 18: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/18.jpg)
�18
AlphaGo1. 教師あり学習(人間の棋譜が教師) 2. 機械同士の対戦(self-play)で、さらに性能を高める
3. モンテカルロ木探索
AlphaGo Zero• Self-play x モンテカルロ木探索
• 人間の棋譜は全く使用せず • 純粋に機械だけで学習
![Page 19: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/19.jpg)
�19
強化学習
![Page 20: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/20.jpg)
�20
Self-play
![Page 21: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/21.jpg)
�21
注:• 前頁ではわかりやすさのため、2 agentsで分けたが、囲碁のように完全に対照的なゲームの場合、agentは2体でもモデルは1 agent分あれば十分。
• ただし非対称な場合は、agentごとにモデルが必要なので、前頁の方がより一般的な場合に当てはまる。
• もちろん、より一般的にはN agentsに拡張できる。
![Page 22: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/22.jpg)
�22
Self-play• 人の知識が要らず、機械だけで学習
• 人が楽 • 人が考えないような行動を学習する可能性
• 膨大な回数のゲームを(疲れずに)行える • 対戦相手が徐々に強くなることで、単純な環境/ルールから複雑な行動の学習が可能
→ 囲碁以外にも応用できそう!
![Page 23: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/23.jpg)
�23
実験
![Page 24: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/24.jpg)
�24
実験の背景下記論文(2017/10発表)を参考にする
![Page 25: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/25.jpg)
�25
run-to-goal-ants-v0
![Page 26: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/26.jpg)
�26
実験の内容
自陣からスタートして、相手陣地の ゴールに先についたAgentの勝利
Agent0 Agent1
下記ゲームを、敵対するAgent同士で争わせる。勝利 = 報酬。 相手に勝つ様に互いが学習することで、どちらも強いAgent
run-to-goal-ants-v0:
に成長していく、、 はず。
![Page 27: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/27.jpg)
�27
実験の目的1.上述の論文の再現実験を行う。論文にはほ
ぼ学習結果しか書かれていない。自前で実験することで、途中経過も観測可能となり、結果と合わせて考察する。
2.再現するだけでは面白くないので、論文から設定を少し変更して実験する。変更により結果がどう変化するか観察し考察。
![Page 28: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/28.jpg)
�28
Self-play
![Page 29: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/29.jpg)
�29
行動:足のjoint部分の動かし幅。 4足 x 2箇所 = 8箇所をどのように 動かすかを学習する。
状態:Agentが知覚できると仮定できる情報 (自分の位置 + 相手の位置 + 自分の足を どのように動かしたか + 外力)
目は描いてないけど、あるってことにして学習するよ
![Page 30: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/30.jpg)
�30
• 上の報酬だけだと、歩くことすら困難。 • 赤ちゃんが歩くことから学習するように、学習初期は歩けたら、すぐに(dense)報酬。
• 学習回数が増えるごとに、ゴール報酬(sparse)に切り替えていく。
報酬: • 勝ち → プラスの報酬 • 負け → マイナスの報酬
Advanced!: dense → sparse rewards
![Page 31: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/31.jpg)
�31
強化学習アルゴリズムの概念図
データ収集
方針の改善
(改善した 方針で)
(状態→行動の ”方針”を改善)
データ加工
(Q, V, A, etc)1周 = 1 iteration iterごとにモデルが学習
本実験では、 何度もゲームをすること (5万steps/iter; ボトルネック)
![Page 32: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/32.jpg)
�32
学習曲線
学習回数
報酬
正しく強化学習していれば、Agentは学習を重ねるごとに強くなり(=報酬が大きくなり)、いずれかの時点で収束する。
![Page 33: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/33.jpg)
�33
使用マシンGMOアプリクラウド type XL
•12 vCPU •120-GB mem •2.66 GHz
学習のボトルネックは、学習データの収集時間 → 複数のプロセスを並列に走らせることで、同時にデータ収集し時間を節約。
![Page 34: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/34.jpg)
�34
本実験の準備で、自分のやったこと
• 1 agentで学習するアルゴリズム (PPO) • https://github.com/openai/baselines
• ゲーム環境(run-to-goal-ants-v0) • https://github.com/openai/multiagent-competition
1. このゲームを学習するには、2 agentsでPPOを用いて相互に学習する必要がある。 → 上記コードを用いて作成 (TensorFlow)2. ゲーム環境を論文に合わせるよう修正
既存のものを使用
やったこと
![Page 35: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/35.jpg)
�35
3. 論文通りのパラメータで学習すると、全然終わらないので、学習パラメータを変更。
論文 本実験model MLP MLPn_hidden_layer 2 2n_hidden_unit 128 64learning rate 1E-03 1E-03ε_PPO 0.2 0.2γ 0.995 0.995λ_GAE 0.95 0.95n_batch 409600 (~4e+5) 49152 (~5e+4)n_mini_batch 5120 1024n_epoch / iter 6 10α_annealing 0 @ 500 iters 0 @ 300 iters
論文: 1 iter (改善) ~ 9分 → 1000 itersで~6日 → 1 iterで収集するデータ量を~1/8に変更 → 1000 iters ~ 1日弱
![Page 36: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/36.jpg)
�36
前置きが長くなりましたが 実験開始!
![Page 37: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/37.jpg)
実施した実験1. 実験1(テスト)
• 複雑な実験をする前のテスト 2. 実験2(本番)
• 本番。論文の再現実験 3. 実験3(応用)
• 実験2から、若干セットアップを変更 • どのように結果が変化するかチェック
4. 実験5(おまけ; 実験4は割愛)
![Page 38: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/38.jpg)
�38
実験1
![Page 39: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/39.jpg)
�39
実験1: テストルール Agent0のみ学習。もう一方 (Agent1)は学習しない。 # self-playでなく普通の1-agent強化学習。
期待 Agent0がまっすぐ進む ように学習 # Agent1はランダムに行動
Agent0: learning
Agent1: no-learning
???
![Page 40: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/40.jpg)
�40
実験1: 学習曲線
940500150500
1000が 報酬のMAX
iter=500でほぼ収束 よく見ると、報酬が微増
![Page 41: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/41.jpg)
�41
注:これから紹介していく、実験1–5の結果のアニメーションは https://github.com/jkatsuta/17_4q_supplement にあります。
![Page 42: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/42.jpg)
�42
iter = 0 Agent0 Agent1
![Page 43: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/43.jpg)
�43
実験1: 結果(iter=0)
• 何も学んでないので、適当に動いている。 • 学習しないと高く跳ねて、自滅する。
![Page 44: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/44.jpg)
�44
iter = 50
![Page 45: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/45.jpg)
�45
• この時点で学んでいるのは、ゴールすることよりちゃんと歩くこと。
• Agent0(赤)はそれを学習しつつあるのがわかる(跳ねにくい傾向)。
• Agent1(青)は何も学習していない。当たり前だが。。
実験1: 結果 (iter=50)
![Page 46: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/46.jpg)
�46
iter = 150
![Page 47: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/47.jpg)
�47
iter = 150
• ゴールに行く学習をしている。 • ただしまだ不安定。
実験1: 結果(iter=150)
![Page 48: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/48.jpg)
�48
iter = 500
![Page 49: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/49.jpg)
�49
• 確実にゴールする学習をしている。 • まっすぐ進むように学習するのかと予想したが、相手Agentを避けるよう、右に進むように学習している。
• 賢いなぁ。。
実験1: 結果(iter=500)
![Page 50: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/50.jpg)
�50
iter = 940 (final model)
![Page 51: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/51.jpg)
�51
iter = 940
• Final model • 確実にゴールする学習をしている。 • iter=500との差は殆ど見えない(iter=500で、ほぼ学習が収束しているようだ)。
実験1: 結果 (iter=940)
![Page 52: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/52.jpg)
�52
実験2
![Page 53: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/53.jpg)
�53
実験2: 本番
ルール 論文の通り。2体のAgentが、 相手より早くゴールに到達す るように学習する。
Agent0: learning
�53
Agent1: learning
![Page 54: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/54.jpg)
�54
実験2: 学習曲線
• 全体的な学習曲線の形は、実験1のときに似ている。 • 収束している値は300程度(実験1はMAXの~1000) • これは相手に勝ったり負けたりしているから。
970
![Page 55: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/55.jpg)
�55
Agent0 (iter = 970) vs
Agent1 (iter = 970)
![Page 56: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/56.jpg)
�56
実験2:結果(iter = 970)• 学習した戦略は、基本的には
• 相手に体当たりをする。 • 相手が怯んだら、そのすきにゴールに走る
• しかし明らかに相手を倒す事に”固執”したような行動も見られる。
• これは、ただ単に自分がゴールに向かうより、相手を倒した方が勝てる事を学んだ、とも考えられる。
![Page 57: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/57.jpg)
�57
実験2: 複雑な行動の創発• 単純な環境:ゴールと相手Agentのみ • 単純なルール:相手陣地のゴールを先に走り抜ければ良い。
• しかし 終的に学んだ戦略(の方向性)は、「ただ単に早くゴールする」ではなく、「相手の息の根を止めてから、確実に自分がゴールする」というもの。
![Page 58: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/58.jpg)
�58
実験2: 複雑な行動の創発
• 環境もルールも倒すことに報酬は与えていない。Agent同士が勝負をする中で、相手を倒す行動を学習。
• 実験1では、相手Agentが弱すぎて、倒す行動は学習していない。
• 実験2でも、学習初期は相手を倒すことより、ゴールを目指す事(報酬そのもの)に重きを置いているように見える(次頁)。
単純な環境 x self-play → 複雑な行動
![Page 59: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/59.jpg)
�59
Agent0 (iter = 300) vs
Agent1 (iter = 300)
![Page 60: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/60.jpg)
�60
実験2: 新モデルは本当に 強?
50% =互角
勝率
Agent1の過去モデル新しいモデル(iter>~800)では、ほぼ互角だが、 新モデルは 強と言って問題ない。
Agent0の 新モデル(970) vs 色々なAgent1の過去モデル
![Page 61: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/61.jpg)
�61
Agent0 (iter = 970) vs
Agent1 (iter = 300)
![Page 62: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/62.jpg)
�62
実験3
![Page 63: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/63.jpg)
�63
実験3: 応用
�63
期待 Agent0が勝つには、ただゴールに向かうのではダメ。Agent1を倒す必要がある。その学習をできるか?
Agent0を 斜め後ろに移動
ルール 実験2と同じ。ただし、Agent0の初期位置を、実験2の位置から斜め後ろにずらす。 明らかにAgent0が不利
![Page 64: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/64.jpg)
�64
圧倒的絶望。。。
1920800
「Agent0が~100%負け」に収束している。期待通りには学習できなかったようだ。。
![Page 65: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/65.jpg)
�65
Agent0 (iter = 800) vs
Agent1 (iter = 800)
![Page 66: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/66.jpg)
�66
Agent0 (iter = 1920) vs
Agent1 (iter = 1920)
![Page 67: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/67.jpg)
�67
実験3: 考察• 学習曲線で覚悟した行動よりは、悪くなかった。iter=800→1920でも学習をしている。
• Agent0:Agent1側に動く(Agent1をinterruptしようとする)行動は学習している。
• Agent1:初動でAgent0のいない方向に思いっきり飛んで、Agent0に邪魔されないように学習している。
![Page 68: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/68.jpg)
�68
実験3: 考察• 実験2から初期値を変更すると、それに応じた異なる行動を学習
• 両Agentとも学習するが、現状のゲーム設定では、学習が収束するとAgent1がほぼ勝ってしまう。
• Self-playとはいえ、期待する行動の学習させるには、ちゃんと設定をしないといけないことがわかる。
![Page 69: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/69.jpg)
�69
実験5
![Page 70: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/70.jpg)
�70
実験5: 追加実験 (実験4は割愛)
�70
期待 実験3の設定では、Agent0が不利すぎたので、制約を緩和する。Agent0の勝率が上がる事を期待。
Agent0を 後ろに移動
ルール 実験2と同じ。ただし、Agent0の初期位置を、実験2の位置から後ろにずらす。 Agent0が不利
![Page 71: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/71.jpg)
�71
実験5: 学習曲線学習曲線の取得に失敗。。→ Agent0の 新モデル vs Agent1の過去モデルの勝率の図を作成
勝率
Agent1の過去モデル
Agent0の 新モデル(2035) vs 色々なAgent1の過去モデル
![Page 72: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/72.jpg)
�72
実験5: 新モデル vs 過去モデル前頁の図より、 実験3と同様、Agent0はほぼ勝てない。 < 500 itersまでは、勝率~15%を保っているが、それ以降、下がり、 終的には3%程度に収束。 → 実験5の条件でも、Agent0が勝つのは難しいようだ。
![Page 73: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/73.jpg)
�73
Agent0 (iter = 2035) vs
Agent1 (iter = 2035)
![Page 74: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/74.jpg)
�74
Agent0 (iter = 2035) vs
Agent1 (iter = 1000)
![Page 75: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/75.jpg)
�75
Agent0 (iter = 2035) vs
Agent1 (iter = 200)
![Page 76: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/76.jpg)
�76
実験5: 考察• Agent0:Agent1側に動く(Agent1を邪魔する)行動は学習している。実際、勝利した場合は、相手を倒した後にゴールしている。
• Agent1:iterが進むにつれ、横に動く幅が大きくなっており、Agent0に邪魔されないように学習している。横幅が大きくなるとAgent1が追いつけなくなり、Agent1がほぼ勝利。
• 全体として実験3に似ているが、各Agentの学習した行動が、よりクリアになっている。
![Page 77: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/77.jpg)
�77
おまけ• 実験5のAgent0 新モデル(2035) vs 実験2のAgent1 新モデル(970)を、実験2のセットアップで行った。
• → Agent0の勝率 ~ 15% • → 実験5のセットアップよりは、勝率は高くなっているが、実験2の 新モデルの場合(勝率~50%)と比べると低い。
![Page 78: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/78.jpg)
�78
Agent0 (exp5; iter = 2035) vs
Agent1 (exp2; iter = 970)
![Page 79: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/79.jpg)
�79
• Agent1を邪魔するためトリッキーな動きを学習した分、安定性が小さくAgent1に負ける。
• →Agentの学習内容は、環境に強く依存することを確認。
• → 報酬設計なしに(環境だけで)、“相手Agentを倒す”といった特定の行動を、意図的に創発させるのは難しい気がする。
• → 論文では、異なる環境でも強いAgentが作れると書いていたが、難しいのでは?
考察
![Page 80: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/80.jpg)
�80
まとめ
![Page 81: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/81.jpg)
�81
まとめ• Bansal+17の実験(run-to-goal-ants)の再現を試み、ほぼ成功した。
• 相手より早くゴールする単純なゲームにも関わらず「相手を先に倒してからゴールする」という行動を学習したように見える。
• これはSelf-playにより、単純な環境から、複雑な行動を学習したと解釈できる。
• Agentの初期位置を変更することで、学習する行動に変化が出ることも確認した。
![Page 82: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/82.jpg)
�82
今後やってみたいこと
• 他のゲームも試す(論文の4種類のゲーム)。 • 新しいゲームを作る。
• 敵対するだけでなく、協力するAgentは作れないのか?
• 効率的な学習方法の模索
たとえば、、
![Page 83: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/83.jpg)
�83
ご清聴ありがとうございました!
![Page 84: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/84.jpg)
�84
Backup
![Page 85: 深層強化学習の self-playで、複雑な行動を機械に学習させたい!](https://reader035.vdocuments.mx/reader035/viewer/2022081800/5a6479337f8b9a4c568b4639/html5/thumbnails/85.jpg)
�85
Advanced! 敵は過去の相手全員!
各Agentは 新の行動方針で、”学習した相手”と戦い、そのデータを収集し、 新の行動方針をさらに改善。 ただし”学習した相手”は、必ずしも 新の学習をした方針を使うとは限らない。 新のモデル同士だけで戦うと、学習が不安定になるからだ(左図)。そこで過去の相手のモデルを全て記憶しておき、iterごとにそれらとランダムに戦うことで、この不安定性を回避する(右図)。 = 過去の相手全てに勝てるように学習することで安定化
Bansal+17