受到DQN算法的启发,将非线性函数逼近器用到了DPG算法中设计出DDPG算法,为了保证算法稳定性,将DQN中的两个核心思想:经验回放和目标网络加入到了DDPG算法中。这个算法中也有一些DDQN的思想。
We adapt the ideas underlying the success of Deep Q-Learning to the continuous action domain. We present an actor-critic, model-free algorithm based on the deterministic policy gradient that can operate over continuous action spaces. Using the same learning algorithm, network architecture and hyper-parameters, our algorithm robustly solves more than 20 simulated physics tasks, including classic problems such as cartpole swing-up, dexterous manipulation, legged locomotion and car driving. Our algorithm is able to find policies whose performance is competitive with those found by a planning algorithm with full access to the dynamics of the domain and its derivatives. We further demonstrate that for many of the tasks the algorithm can learn policies “end-to-end”: directly from raw pixel inputs.
我们将深度Q-Learning的优势应用在了连续控制领域。我们展示了基于确定性策略梯度的actor-critic无模型算法。使用了相同的学习算法、网络结构和超参数,我们的算法能够鲁棒地解决超过20模拟物理任务,包括经典的问题如cartpole swing-up、dexterous manipulation、legged locomotion和car driving。我们的算法能够找到性能与能够完全访问环境动态及其衍生物的规划算法相比有竞争力的策略。我们进一步证明,对于许多任务,算法可以学习“端到端”策略:直接从原始像素输入获得动作输出。
人工智能领域的主要目标之一是通过未处理的、高维的、传感器输入来解决复杂的任务。最近,已取得显著进展,将传感器信息处理深度学习的进步(Krizhevsky et al ., 2012)与强化学习结合,提出了“深度Q网络”(DQN)算法(Mnih et al ., 2015),DQN能够使用未经处理的像素进行输入来进行决策后在许多雅达利视频游戏中达到人类的水平。DQN使用深度神经网络函数逼近器来估计动作值函数以达到上述的性能水平。
DQN在解决高维观测空间问题的同时,只能处理离散的、低维的动作空间。许多有趣的任务,尤其是物理控制任务,都具有连续的(实值)和高维的操作空间。DQN不能直接应用于连续域,因为它依赖于找到使动作值函数最大化的动作,而在连续值情况下,每一步都需要迭代优化过程。
将DQN应用于连续控制领域的一个方法是将动作空间离散化,但这可能会导致维度灾难。即使是粗粒度的离散化,将一个自由度离散化为三个离散值,那么7个维度的动作空间就会有 3 7 = 2187 3^7=2187 37=2187维度(如人手臂的控制)。并且简单的将动作空间离散化可能会丢失动作空间的重要结构信息,这些信息可能对解决一些问题非常有价值。
这篇文中中提出了无模型、off-policy actor-critic算法,使用了能够在高维连续操作空间中学习策略的深度函数逼近器。使用了确定性策略迭代(DPG)算法。但简单的将actor-critic算法与神经网络函数逼近器应用在一起在一些具有挑战性的问题中是不稳定的。
在DQN之前,人们普遍认为使用大型非线性函数逼近器学习值函数是困难和不稳定的。DQN之所以能够以一种稳定且鲁棒的方式使用这些函数逼近器来学习值函数,主要有两个创新:1.利用重放缓冲区中的样本对网络进行离线训练,以最小化样本之间的相关性;2. 该网络使用目标Q网络进行训练,以便在时间差异备份期间提供一致的目标(the network is trained with a target Q network to give consistent targets during temporal difference backups)。
在这篇文章中使用了同样的思想,并且还使用了batch normalization(Ioffe & Szegedy, 2015)。
文中无模型方法就是Deep DPG (DDPG),它可以使用相同的超参数和网络结构,通过低维观测(例如笛卡尔坐标或关节角度),得到一个就有竞争性的策略。这个方法最大的优势在于他的简单性,他只需要直接应用actor-critic结构以及只有很少的“moving parts”的学习算法,这使得它易于实现和扩展到更困难的问题和更大的网络。
当前环境为 E E E,环境的模型为一个马尔科夫决策过程,状态空间为 S S S,动作空间为 A = R N A=\R^N A=RN,初始状态分布为 p ( s 1 ) p(s_1) p(s1),转移动态为 p ( s t + 1 ∣ s t , a t ) p(s_{t+1}|s_t,a_t) p(st+1∣st,at),回报函数为 r ( s t , a t ) r(s_t,a_t) r(st,at)。
一个状态的回报为: R t = ∑ i = 1 T γ ( i − t ) r ( s t , a i ) R_t=\sum_{i=1}^T\gamma^{(i-t)}r(s_t,a_i) Rt=∑i=1Tγ(i−t)r(st,ai)。依赖于动作的选择,即依赖于策略 π \pi π,是一个随机数(因此要求期望)。
策略 π \pi π的discounted状态访问分布:
ρ π ( s ) = P ( s 0 = s ) + γ P ( s 1 = s ) + γ 2 P ( s 2 = s ) + ⋯ \begin{aligned} \rho_{\pi}(s)=P\left(s_{0}=s\right)+\gamma P\left(s_{1}=s\right)+\gamma^{2} P\left(s_{2}=s\right)+\cdots\\ \end{aligned} ρπ(s)=P(s0=s)+γP(s1=s)+γ2P(s2=s)+⋯
目标:学习一个能够最大化开始状态服从初始状态分布的期望回报 J = E r i , s i ∼ E , a i ∼ π [ R i ] J=E_{r_i,s_i\sim E,a_i\sim \pi}[R_i] J=Eri,si∼E,ai∼π[Ri]。
DPG算法维护了两个函数:
策略迭代:
∇ θ μ J ≈ E s t ∼ ρ β [ ∇ θ μ Q ( s , a ∣ θ Q ) ∣ s = s t , a = μ ( s t ∣ θ μ ) ] = E s t ∼ ρ β [ ∇ a Q ( s , a ∣ θ Q ) ∣ s = s t , a = μ ( s t ) ∇ θ μ μ ( s ∣ θ μ ) ∣ s = s t ] \begin{aligned} \nabla_{\theta^{\mu}} J & \approx \mathbb{E}_{s_{t} \sim \rho^{\beta}}\left[\nabla_{\theta^{\mu}} Q\left(s, a | \theta^{Q}\right)|_{s=s_{t}, a=\mu(s_{t} | \theta^{\mu})} \right] \\ &=\mathbb{E}_{s_{t} \sim \rho^{\beta}}\left[\left.\left.\nabla_{a} Q\left(s, a | \theta^{Q}\right)\right|_{s=s_{t}, a=\mu\left(s_{t}\right)} \nabla_{\theta_{\mu}} \mu\left(s | \theta^{\mu}\right)\right|_{s=s_{t}}\right] \end{aligned} ∇θμJ≈Est∼ρβ[∇θμQ(s,a∣θQ)∣s=st,a=μ(st∣θμ)]=Est∼ρβ[∇aQ(s,a∣θQ)∣∣s=st,a=μ(st)∇θμμ(s∣θμ)∣∣∣s=st]
为了保证样本独立同分布并且高效利用硬件优化:Learn in minibatchs, rather than online —— 经验回放
并且将DQN中目标网络的思想通过目标网络"软"更新的方式应用在actor-critic架构中:建立actor网络和critic网络的副本 Q ′ ( s , a ∣ θ Q ′ ) Q'(s,a|\theta^{Q'}) Q′(s,a∣θQ′)和 μ ′ ( s ∣ θ μ ′ ) \mu '(s|\theta^{\mu '}) μ′(s∣θμ′),用于计算目标网络值。这些目标网络的权重缓慢向学习网络靠近: θ ′ = τ θ + ( 1 − τ ) θ ′ \theta^{'}=\tau \theta+(1-\tau) \theta^{'} θ′=τθ+(1−τ)θ′, τ ≪ 1 \tau \ll 1 τ≪1。这使目标网络变化很慢,从而保证稳定性。这可能会减慢学习速度,因为目标网络延迟了价值估计的传播。然而,在实践中,发现学习的稳定性比学习速度会更有价值。
提高泛化性:使用batch normalization(Ioffe & Szegedy, 2015)。该技术将样本的每个维数归一化,使其具有单位均值和方差。此外,它保持了平均值和方差的一个运行平均值,以便在测试期间(此时指在探索或评估期间)进行标准化。在深度网络中,它通过确保每一层都接收到处理过的输入来最小化训练过程中的协方差移位。在低维的情况下,将batch normalization用在了状态输入、 μ \mu μ网络的所有层和动作输入之前的 Q Q Q网络的所有层。
探索策略:在actor策略上加上从噪声过程 N N N中采样得到的噪声来构造出探索策略。
μ ′ ( s t ) = μ ( s t ∣ θ t μ ) + N \mu '(s_t)=\mu (s_t|\theta_t^{\mu})+N μ′(st)=μ(st∣θtμ)+N
N N N可以根据环境进行选择。
这篇文章将深度学习和强化学习结合,提出了一个能够解决连续控制领域问题的算法,甚至可以使用原始像素输入作为观测。为了避免加入非线性函数逼近器带来的不收敛问题,文中将DQN中经验回放和目标网络的思想用到了DDPG算法之中。并且,为了提高泛化性能,使用了batch normalization(Ioffe & Szegedy, 2015)方法。在测试中,相比于DQN,DDPG算法使用了更少的步数就找到了Atari领域中的最优策略,这也意味着使用更多的时间,DDPG可能能够解决更困难的问题。而此方法的问题是需要很多的训练回合来能找到最优策略(无模型强化学习算法都存在的问题),但因为算法的鲁棒性,可能能够成为一些大型系统的重要组成部分,这些限制也会被研究和解决。