1. 介绍
这篇论文将DQN应用于动作空间是连续的情况。我们知道,DQN的输入通常是高纬度的观测空间(例如图像像素),输出则是离散的动作空间。生活中有相当一部分问题,动作空间是连续的。DQN无法直接用于这些问题。
一种方式是离散化动作空间。但是问题多多
这篇论文中,作者提出了一种model-free, off-policy actor-critic算法来在连续的动作空间中使用DQN。
通常使用一个复杂的非线性的函数来拟合价值函数会导致不稳定,DQN通过两种方式来克服不稳定,一是,网络从replay buffer来学习,属于off-policy,减少了样本之间的关联;二是网络和一个目标网络一同训练,这使得学习的目标更加稳定。
论文提出的算法称为 DDPG。
2. 算法
Q-learning的主要方式就是最小化如下loss
其中
在连续的动作空间,很难直接应用Q-learning,因此在每一步都要对最优的进行求解,这是非常困难的。为此,这里采用基于actor-critic approach的DPG算法。
DPG算法包含了一个actor函数,它指定了从状态到动作的确定性的映射,也就是策略。还包含了一个critic ,它通过bellman方程学习。
下面公式为policy的梯度,也就是actor函数的梯度。
在论文DPG中证明了上式是policy gradient。
和Q-learning一样,使用一个非线性函数拟合会导致无法保证收敛。论文的贡献就是在DQN的启发下,对DPG进行了修改,使得它能够用于训练神经网络,也就是Deep DPG(DDPG)。
算法如下:
在增强学习问题中应用神经网络的一个困难是,很多的优化算法基于样本独立同分布的假设。显然,增强学习环境产生的样本不满足这个假设。除此之外,为了有效训练,通常还会采用minibatch。
像DQN中一样,论文采用了replay buffer来克服这个困难。根据一个exploration策略,采样一些样本存储在replay buffer中。训练时就从这里取样本。
直接使用神经网络,实现Q-learning通常会不稳定。因此网络 同时用于计算target value,和更新。论文中采用的方法是类似DQN中的target network,但是更新时不是直接拷贝,而是使用soft target updates。作者首先拷贝一份actor和critic网络:和。它们用于计算target value。它们的参数通过慢慢地跟踪learned network来更新:。远远小于1,这意味着target value也会改变地非常慢。
在实际问题中,一些低维度的特征往往单位不同,例如位置和速度,这可能使得网络难以高效训练。
一种方式是认为统一。论文使用batch-normalization来克服这个问题。
另一个连续动作空间的问题是exploration。论文中通过加入噪声来构造exploration policy。。