Continuous control with deep Rei

2018-12-10  本文已影响0人  Junr_0926

1. 介绍

这篇论文将DQN应用于动作空间是连续的情况。我们知道,DQN的输入通常是高纬度的观测空间(例如图像像素),输出则是离散的动作空间。生活中有相当一部分问题,动作空间是连续的。DQN无法直接用于这些问题。
一种方式是离散化动作空间。但是问题多多
这篇论文中,作者提出了一种model-free, off-policy actor-critic算法来在连续的动作空间中使用DQN。
通常使用一个复杂的非线性的函数来拟合价值函数会导致不稳定,DQN通过两种方式来克服不稳定,一是,网络从replay buffer来学习,属于off-policy,减少了样本之间的关联;二是网络和一个目标网络一同训练,这使得学习的目标更加稳定。
论文提出的算法称为 DDPG

2. 算法

Q-learning的主要方式就是最小化如下loss


4

其中


5

在连续的动作空间,很难直接应用Q-learning,因此在每一步都要对最优的a_t进行求解,这是非常困难的。为此,这里采用基于actor-critic approach的DPG算法。
DPG算法包含了一个actor函数\mu (s | \theta^\mu),它指定了从状态到动作的确定性的映射,也就是策略。还包含了一个critic Q(s,a),它通过bellman方程学习。
下面公式为policy的梯度,也就是actor函数的梯度。

6

在论文DPG中证明了上式是policy gradient。

和Q-learning一样,使用一个非线性函数拟合会导致无法保证收敛。论文的贡献就是在DQN的启发下,对DPG进行了修改,使得它能够用于训练神经网络,也就是Deep DPG(DDPG)。
算法如下:


DDPG

在增强学习问题中应用神经网络的一个困难是,很多的优化算法基于样本独立同分布的假设。显然,增强学习环境产生的样本不满足这个假设。除此之外,为了有效训练,通常还会采用minibatch。
像DQN中一样,论文采用了replay buffer来克服这个困难。根据一个exploration策略,采样一些样本(s_t,a_t,r_t,s_{t+1})存储在replay buffer中。训练时就从这里取样本。
直接使用神经网络,实现Q-learning通常会不稳定。因此网络Q(s,a|\theta^Q) 同时用于计算target value,和更新。论文中采用的方法是类似DQN中的target network,但是更新时不是直接拷贝,而是使用soft target updates。作者首先拷贝一份actor和critic网络:Q'(s,a|\theta^{Q'})\mu'(s|\theta^{\mu'})。它们用于计算target value。它们的参数通过慢慢地跟踪learned network来更新:\theta' \leftarrow \tau \theta + (1 - \tau) \theta'\tau远远小于1,这意味着target value也会改变地非常慢。
在实际问题中,一些低维度的特征往往单位不同,例如位置和速度,这可能使得网络难以高效训练。
一种方式是认为统一。论文使用batch-normalization来克服这个问题。

另一个连续动作空间的问题是exploration。论文中通过加入噪声来构造exploration policy\mu'\mu'(s_t) = \mu(s_t|\theta_t^\mu) + N

上一篇下一篇

猜你喜欢

热点阅读