DQN と Gorila と夏休み
GCPUG in Tokyo
藤原 秀平 (FUJIWARA Shuhei)
https://goo.gl/Qn202M
http://gcpug.jp
自己紹介
藤原 秀平 (FUJIWARA Shuhei)
twitter: @shuhei_fujiwara
http://gcpug.jp
この会はいったい・・・?
http://gcpug.jp
導入
http://gcpug.jp
DQN (Deep Q-Network) の自己紹介
http://gcpug.jp
強化学習
現実世界
or
シミュレータ
行動
学習
http://gcpug.jp
DQN の将来の夢
画面の状態
key 1
key 2
key N
key 3
各ボタンを押したときに
期待される最終スコアが出てくる
http://gcpug.jp
DQN にやらせたいこと
P | | | |
| | | |
| | | |
| | D | |
http://gcpug.jp
DQN の餌
ボタンを押す前の
画面の状態
押したボタン
ボタンを押した後の
画面の状態
報酬
・・・
http://gcpug.jp
DQN のためのシミュレータ
画面の状態
でぃーぷ
らーにんぐ
シミュレータ
ボタンを押す前の
画面の状態
押したボタン
ボタンを押した後の
画面の状態
報酬
http://gcpug.jp
画面の状態の定義
画面の状態
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 |
0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 |
http://gcpug.jp
DQN の学習方法
ボタンを押す前の
画面の状態
押したボタン
ボタンを押した後の
画面の状態
報酬
でぃーぷ
らーにんぐ
key 1
key 2
key N
・・・
予測スコア A
http://gcpug.jp
DQN の学習方法
ボタンを押す前の
画面の状態
押したボタン
ボタンを押した後の
画面の状態
報酬
でぃーぷ
らーにんぐ
key 1
key 2
key N
・・・
予測スコア B
報酬
http://gcpug.jp
DQN の学習方法
http://gcpug.jp
進捗
http://gcpug.jp
前回までのあらすじ
http://gcpug.jp
進捗どうですか?
http://gcpug.jp
OpenAI Gym
強化学習アルゴリズムを開発するための toolkit
http://gcpug.jp
OpenAI Gym
シミュレータが継承すべきスーパークラスが定められている
http://gcpug.jp
GPU を使おう!
思ったより速くならなくてつらい
http://gcpug.jp
シミュレータを回す頻度を落とす
STEP 1: ゲームをプレイしてデータを replay memory に保存
STEP 2: replay memory からデータを取り出して学習 × N 回
STEP 3: STEP 1 へ戻る
http://gcpug.jp
Google ReInforcement Learning Algorithm
http://gcpug.jp
実際に組んだやつ
勾配を�計算
勾配
勾配
共有
パラメータを更新
シミュレータを動かすのと勾配の計算を
交互に行う
http://gcpug.jp
補足
Q. Replay memory を共有しなかったのはなぜ?
http://gcpug.jp
補足
Q. Actor と Learner を兼任させたのはなぜ?
http://gcpug.jp
Replay Memory の実装
めっちゃシンプルにしたらめっちゃ速くなった
http://gcpug.jp
上手く学習できるようになってきたので
OpenAI のシミュレータで適当に遊んでみた
http://gcpug.jp
報酬を上手く定義しよう!
報酬がスパースなゲームはとてもつらいということに気付く
他人事とは思えない悲しみの連鎖
報酬が貰えない
学習できない
http://gcpug.jp
報酬を上手く定義しよう!
http://gcpug.jp
数十分くらいで 8 x 8 を極めし者の姿
http://gcpug.jp
やったね
http://gcpug.jp
What’s Next?
http://gcpug.jp