【勉強会メモ】PyData Osaka Meetup #8
今回は学術的なテーマで専門分野ではない自分にとってはついていくのもひと苦労だったが、流行りの領域ではあるし、エンジニアとして知識を得ておいても損はないだろうと考え、自分の理解できた範囲でまとめておく。またもや遅れて参加となったため前半部分のメモができておらず後日ネット等の情報で少し補完してある。
深層強化学習チュートリアル
発表者:山本康生さま(ヤフー株式会社)
強化学習とは
一連の状態の変化に対して前の状態とその時にとったアクションが評価され「報酬」が与えられる。この報酬が最大となるDNN(ディープニューラルネットワーク)のパラメータを探すことが強化学習の目的。
強化学習のフレームワーク
①状態と行動の価値を推定 ↓ ②方策の改善 ↓ ③実験によりデータを生成 ↓ ①に戻る
- 方策勾配法:②の方策を改善していく仕組み
- Actor-Critic:①の推定と②の改善の両方を見直す
- Q学習:②はあまり気にしないで①に注目
- モデル推定(Model-Based):③の環境を推定
強化学習の枠組み
- Model-Free…方策勾配法、Actor-Qritic、Q学習
- Model-Based…環境を積極的に知ろうとす
方策勾配法(Policy Gradients)
方策勾配の計算
- 報酬を最大するパラメータの関数を定義する
- この関数の勾配を求める
報酬の期待値
- 報酬の期待値をサンプリングから得る
パラメータの更新
- REINFORCEアルゴリズム
※memo 過去に観測された報酬の合計を使って推定する手法
方策勾配法のまとめ
- 期待される報酬を方策から直接予測する
- トライ&エラー学習を行う
Variance(分散)が高い、収束に時間がかかる
Varianceを低減する方法
- 期待する報酬にBaselineを用いる
- Casualtyを用いる
収束を早める方法
- 自然方策勾配法などを使う
- 自動スクラップ調整などを使う
Actor-critic法
①Actor:価値関数を推定する ②Critic:行動を批判する
方策評価を改善する
- 方策勾配法で用いた報酬の期待値を推定する
- 真の報酬の期待値を価値観数で推定する
Actorの定義
- 状態stで取った行動atの全ての報酬
- 状態stのすべての報酬
- 行動atの良さ
価値観数の推定
- Actorで置き換えた方策勾配
- 結局価値関数Vπを推定する
価値観数のDNN
- 状態stから得られる報酬の期待値を推定する
価値観数の推定と方策の推定
- 異なる2つのネットワークで推定する
- 状態をActorとCriticをで共有する場合
Actor-Criticアルゴリズム
- バッチ学習
- オンライン学習
Actor-Criticアルゴリズムのまとめ
- Actor:状態から価値のある行動を予測する
- Critic:状態もしくは状態と行動を評価する
- 2つのタイプのネットワークが選択できる
Q学習
- ②の方策は一番高いものを選択
- ①を推定
Q学習まとめ
- 価値観数基準の利点
- 方策を学習する必要がない
- Q関数だけを学習すればよい
- Q関数の学習は方策の獲得と等価
- バッチ学習およびオンライン学習が可能
- 収束が保証されない
- Replay buffers, target networksがよく用いられる
- 連続した行動も推定可能
学習時間からみた各アルゴリズム
- レイヤーごとの10倍ぐらいスピードが違う
- Slowなら価値を上げることが重要
強化学習の今後の課題
- エージェントが少ない経験で学習
- エージェントが安全に探索
- rewordsがどこから得られるのか
参考
Deep Reinforcement Learning, Decision Making, and Control ICML 2017 Tutorial
探索と活用の戦略 - ベイズ最適化から強化学習へ
- 活用…やってみて良い結果になった行動を続ける
- 探索…もっと良い結果になる行動があるか模索
ベイズ最適化
形の分からない関数の最大値(最小値)を効率的に求める手法
- 形の分からない関数をガウス過程に従うと仮定
- 探索と活用の戦略でyを最大化するxを探索する
- GP(ガウシアンプロセス)の事前分布のもとで知識をつかって探索と活用をする
- まだ評価していないところでも推定して見切る
- ただしGPはスムーズな関数を想定している
- よって連続した変化を持つ問題を最適化するのに適している
多椀バンディット
なるべく期待値の高いものを選びたい
- 期待値と頻度から得られる知識を使って探索と活用する
- 評価するために各スロット数回は試す
- ベイズ最適化のようなスムーズな関数等を想定する必要は無い