DQN
作为DRL的开山之作,DeepMind的DQN可以说是每一个入坑深度增强学习的同学必了解的第一个算法了吧。先前,将RL和DL结合存在以下挑战:1.deep learning算法需要大量的labeled data,RL学到的reward 大都是稀疏、带噪声并且有延迟的(延迟是指action 和导致的reward之间);2.DL假设样本独立;而RL前后state状态相关;3.DL假设分布固定,而RL在学习新的行为时,数据分布会变化。DQN通过Q-Learning使用reward来构造标签、使用经验池等方法解决了这些问题。
基于Q-learning 确定Loss Function
Q-learning 更新公式为:
DQN 的 loss function:
DQN使用随机梯度下降更新参数,为啥要把targetnet单独拎出来呢,后续会说的。
experience replay
DQN 使用exprience replay解决instablity的问题,把每个时间步agent与环境交互得到的转移样本
存储在buffer中,并被随机抽取。通过这种方式,去除了数据之前的相关性,并且缓和了数据分布的差异。
TargetNet
为了减少
和 目标
之间的相关性,从而提高稳定性.2015年版的DQN加入了另一个网络——
作为targetnet,它和
参数分离,每次参数更新只更新
,而
的参数
保持不变,并且周期性的将
的参数复制给
。此时,loss function变为:
DQN算法伪代码
double DQN
在标准的Q-learning,和DQN中,参数是这么更新的:
max操作使得估计的值函数比值函数的真实值大。如果是均匀的过估计,找到的最优策略是不会变的,不会对我们的目标造成影响。但实际上,过估计的误差在不同的states和actions下是不同的,这就会影响到我们找到最佳策略了。为了减少overestimation,van Hasselt et al.(2016)提出Double DQN(D-DQN)。利用DQN中的target network,将selection 和 evelation 解藕。使用Behavior Network选择出value最大的action,用target network来估计它的值
被更改为:
PS 论文中有对两个数学定理的详细证明,感兴趣的同学可以看哦
Prioritized Experienc