神野さんに言われました。

読者です 読者をやめる 読者になる 読者になる

神野さんに言われました。

AIの勉強をしています @sesenosannko

Google DeepMindの深層強化学習についての記事を読む

深層強化学習について調べていたら、DeepMindのDavid SilverがICLR 2015で使用した資料(多分)を見つけました。

非常に参考になったので少しまとめておきたいと思います。

http://www0.cs.ucl.ac.uk/staff/d.silver/web/Resources_files/deep_rl.pdf

まぁ前半は普通にQ学習の基礎的な話をしています。
参考になったのは12ページ以降に書いてある、学習の振動、発散を防ぐ技術についてです。


ナイーブなQ学習では以下の3点によってNNが振動、発散をすることがあります。

1. データの連続性

 探索によって得られるデータは連続した過程のものです。このときデータ間には相関性があり、独立同分布とは言えない。

2. 方策の変化がQ値に小さな変化しかもたらさない

 方策は振動する。これはデータの分布が大きく変化することを表す。

3. 報酬の大きさが未知

 報酬の大きさが想定できない場合、勾配が発散する恐れがある。


そこで、以上の点を解決するために3つの手法が提案されています。

1. experience replay

 データ間の相関をなくすための方法。
 探索時に \left( s_t, a_t, r_{t+1}, s_{t+1} \right)を保存しておき、そのデータをランダムに用いて学習を行う。

2. 目標となるQ-networkを固定する

 振動を防ぐための方法。学習における目標値 r + \gamma \, \underset{a'}{max} \, Q \left( s', a', w \right) とQ-networkの相関をなくす。
 通常は学習時に用いるQ-networkは毎回更新された最新のものを用いているが、それを一定期間固定し定期的に更新するようにする。

3. 報酬の範囲を固定

 報酬を[-1, 1]で切り取る。
 これはQ値の増大を防ぎ勾配は安定するが、報酬の大きさの情報は伝わらなくなる。


以上が16ページまでに書いてあることです。
ところどころ、英語や根本的なQ学習、DQNについて自信のない部分があるので誤りがあればご指摘いただければ幸いです。

17ページ以降はAtariについて書いてあるみたいです。
まだ目を通せていませんが、近いうちに読みたいと思います。