Paper reading: Playing Atari with Deep Reinforcement Learning
论文的Motivation是大部分效果比较好的RL算法都是基于大量的人工特征,而Deep Neural Network(CNN等)已经在图像等领域被证明具有很好的直接从原始数据中提取高层特征的能力,因此很自然的想到将Deep Neural Network与RL算法结合。
但是Deep learning与reinforcement learning有很大的不同:
1. deep learning 在训练时需要大量的有标注的训练数据; 而rl是通过与环境交互得到奖赏,通常这个奖赏还是稀疏、延时的
2. deep learning中要求input的数据是独立的; rl中数据是交互的sequence, 具有很高的相关性
3. deep learning中数据的分布是一个固定的,训练的过程相当于是找从一个固定的分布到另一个分布的映射;而rl中的数据分布随着policy的更新是变化的。
本篇论文基于Q-learning提出了DQN(Deep Q-Network),将deep neural network与Q-learning结合,同时针对上述deep learning和rl之间的问题做了一些改进。
回顾Q-learning:
Q-learning是value-based,off-policy的方法,用TD的方法估计value function,Q-function更新:
(产生数据的policy为
, 更新参数使用的是
)
DQN:
将state 直接输入网络(游戏画面),连接CNN层,得到
, 估计Q-value function
这里的网络相当于是在做回归,
对应于deep learning中的(x,y),网络每一次训练的输入为, 更新的方法就是梯度下降.
一个重要改进是增加了experience replay,即将每一次交互产生的数据存入replay memory中,每次更新参数时,从replay memory中随机sample出一个batch的数据。这样做可以降低了一个batch中数据之间的相关性,降低了更新的方差。并且,使用experience replay相对于对产生数据的分布做了平滑(针对产生数据的分布一直在改变),可以防止振荡或者不收敛的情况( 原文:By using experience replay the behavior distribution is averaged over many of its previous states, smoothing out learning and avoiding oscillations or divergence in the parameters.)。
算法:
在实际算法中,是将最近的条experience放在repley memory
中,每次更新时,从
中按均匀分布随机采样一个batch的experience。因为是均匀分布所以每一条的experience的重要性被认为是一样的并且新的experience会把所有旧的experience都覆盖,但是实际上experience的重要性并不相同,这里可以考虑prioritized sweeping的方法。