(由于最近研究方向从CV转到了RL,得从头学RL的知识。所以这段时间我会整理一些RL中非常经典的论文,在给我自己整理思路的同时,也分享给大家。)
写在前面
今天主要介绍三篇RL中非常重要的论文:DPG (Deterministic Policy Gradient)
为什么要将这三篇放在一起介绍呢?因为DDPG其实是在DPG之上,加入了DQN的idea,而形成的文章(从名字也能看出来,在DPG前面加上DQN的Deep就得到了DDPG)。若要解释清楚DDPG的原理,则必须得介绍DPG和DQN。
1. General Idea
在介绍DPG, DQN和DDPG的具体细节之前,先简单介绍一下它们的演化关系。
DPG是最早的一篇文章,主要从理论的角度提出了一种deterministic、off-policy的policy gradient算法,并给出了policy gradient的计算公式和参数更新方法。
DQN在DPG后一年发表,主要是解决了用神经网络拟合Q函数(也就是action-value函数)导致的训练不稳定的问题。导致训练不稳定的具体原因会在下文中介绍。在DQN出现之前,神经网络被认为是不适合做Q函数的近似的,而DQN则使得这个“不可能”成为了现实。
在这两个work的基础上,DDPG结合了DPG和DQN,也就是将DQN中用来拟合Q函数的神经网络用在了DPG的框架中,并加入了batch normalization的trick,形成了一套真正可用的、基于深度神经网络的(这也是DDPG名字中Deep的来源)的DPG算法。
理解了这个关系,接下来看三个work的具体细节就会轻松很多。
2. DPG (Deterministic Policy Gradient)
2.1 Story
顾名思义,DPG是一种deterministic的policy gradient算法。policy gradient算法的基本思想是,用一个参数化的概率分布
来表示policy,并且由于policy是一个概率分布,那么action
就是随机选取的,也就是所谓的Stochastic Policy Gradient。
DPG做的事情,就是摒弃了用概率分布表示policy的方法,转而用一个确定性的函数
表示policy。也就是说,给定当前的state
,选取的action
就是确定的。
相对于stochastic function,用deterministic function表示policy有其优点和缺点。优点就是,从理论上可以证明,deterministic policy的梯度就是Q函数梯度的期望,这使得deterministic方法在计算上比stochastic方法更高效;
但缺点也很明显,对于每个state,下一步的action是确定的。这就导致只能做exploitation而不能