強化学習周りの勉強メモ
最近何かと話題の強化学習周りのまとめ兼自分用メモ
適宜追加
基礎知識周り
強化学習まわりの最近読んだ重要な論文
- Schaul et al. (2016). Prioritized Experience Replay.
DQNの学習時においてはexperience replayとして,replay bufferに蓄積された過去の状態遷移を及び報酬のデータがランダムに取り出されて学習が行われるが,このときのサンプリングで,取り出すデータに優先順位を設定することで学習を安定化,促進する手法.
- Ng et al. (1999). Policy invariance under reward transformations: Theory and application to reward shaping.
本論文では,学習されるポリシーが変化しない程度にどうやってreward functionをいじるかに注目しています.
報酬追加によって学習速度を向上させようとして,単純にゴールに近づけばとにかく,プラスの報酬を与えてやる,とかはすぐ思いつきますが,
Randløv et al. (1998). Learning to Drive a Bicycle Using Reinforcement Learning and Shaping.
などで,うまくいかないことが紹介されています.あとはサッカーロボットとかで,とにかくボールにタッチするたびに報酬を与えてやる,とかをすると,常にボールの近くで振動するポリシーを学習してしまうみたいですww
これらに上手く対処するには,状態遷移に対するrewardが各状態の「ポテンシャル」の差になっていて("potential-based shaping"),TやR以外の余計なMDPに関するprior knowledgeに基づいているとダメだと言うことが述べられています.
紹介したブログでも書かれていますが,状態価値関数を用いた補助報酬を設定してやるので,本論文でも紹介されている一つには迷路のタスクのような,状態価値観数の見積もりが容易なタスクで効果を発揮します.(undiscounted MDP として扱ってもそれっほど誤差がないようなタスクが良い.)
さらに,もう一つ論文中で紹介されているパターンは,迷路の中に中継ポイントがあって,それらを経由しないといけないようなタスクの場合です.この場合も結構ざっくりと残りの距離から状態価値関数を見積もってやって報酬を設定してやると,結構早く学習を収束させることが可能になります.
この論文のキモは結構ざっくりした状態価値関数の見積もりによる報酬の補助でもそこそこに早く学習を収束させることができるということです.
とはいえ,実際はシミュレータが複雑なタスクになってくると,報酬関数がアドホックにならない範囲でこれほど単純に見積もりを行うことすら難しいのですが....
注)
なお,potential-based shaping に基づく報酬設計が学習後のポリシーに影響を与えない唯一の方法のようです.
また,infinite-stateなMDPにも条件付きで(状態のポテンシャルが有界であること)適応できることが保証されています.