摘要
我们将“深度Q学习(Deep Q-learning)”成功的基础思想应用于连续动作领域。我们基于确定性策略梯度(Deterministic Policy Gradient,DPG),提出了一种基于演员评论家(Actor-critic),无模型(model-free)的算法,该算法能应用在连续动作空间。我们进一步证明,对于许多任务,算法可以学习“端到端”策略:直接从原始像素输入。
引言
DQN用一个神经网络代替传统的多项式或者核来拟合state-action value function(Q)。解决了输入是高维度观测值的问题,但是输出的动作只能是离散的低维度空间,无法直接应用在输出的动作为连续时的情况。
In this work we present a model-free, off-policy actor-critic algorithm using deep function approximators that can learn policies in high-dimensional, continuous action spaces.
在DQN之前,通常认为使用大范围、非线性函数近似器去学习value function是困难且不稳定的,但是DQN通过两个创新性工作完成了稳定鲁棒的函数近似:
- 神经网络采用异策略(off-policy)从一个replay buffer中采样降低了样本间的相关性;
- 使用了target Q 网络来保持一致性的目标(在后文中有提及,在训练Q时的计算目标的网络参数更新滞后)。
DDPG方法的一个主要特点在于简易性:它仅需要一个常规的AC框架和学习算法,伴随着少量的moving parts,方便在大型网络中使用。
数学背景
RL算法中约定俗称的数学定义,包括观测xtx_{t}xt?,动作ata_{t}at?,回报(收益)rtr_{t}rt?。对于部分可观测的环境中,观测动作对(observation-action pair)用来描述状态sts_{t}st?,当假设环境完全可观时,有xt=stx_{t}=s_{t}xt?=st?。
一个智能体的行为(behavior)由策略π\piπ定义,将状态映射到一个动作的概率分布上。环境(environment)被建模成一个马尔可夫决策过程(Markov decision process,MDP),包含状态,动作,状态转移,回报。
从一个状态得到的回报被定义为折扣的未来回报的和,回报取决于在状态sts_{t}st?时所选择的动作ata_{t}at?(相当于取决于策略π\piπ)。
强化学习的目标是学习一个策略,能最大化从起始分布的期望收益。
公式(1)给出action-value function的标准定义,在状态sts_{t}st?且选择动作ata_{t}at?之后,再继续遵守策略π\piπ的期望收益(主要是衡量ata_{t}at?的优劣)。
公式(2)给出RL算法中计算Qπ(st,at)Q^{\pi}(s_{t},a_{t})Qπ(st?,at?)的Bellman方程递归关系,这里ata_{t}at?遵循的策略π\piπ是个随机策略,也就是说由π\piπ给出的ata_{t}at?是一个概率分布(比如at+1a_{t+1}at+1?有0.3概率取动作axa_{x}ax?,有0.7概率取动作aya_{y}ay?),所以求期望E[Q]E[Q]E[Q]。
公式(3)给出了目标策略为确定性时的Qπ(st,at)Q^{\pi}(s_{t},a_{t})Qπ(st?,at?)递归方程,确定性策略产生的at+1a_{t+1}at+1?只有一个值,因此不需要取期望,直接带入QQQ即可。此时,expectation仅取决于环境,意味着可以从随机behavior policyβ\betaβ产生的transitions中以off-policy的方式学习QμQ^{\mu}Qμ。(Q-learning本身就是一个典型的off-policy应用,确定性的评估策略和随机的动作策略,前者体现在学习Q-table时只选择确定的动作greedy,后者体现在随机选择动作?\epsilon?-greedy来构造transitions。)
公式(4)和(5)给出DQN算法中函数近似器的训练方法,构造误差函数并通过优化θQ\theta^{Q}θQ尽可能地减小误差,我觉得和Deep learning中监督学习思路相同,yty_{t}yt?起到了一个标签的作用。
这里再次提及DQN的两个创新性工作:
(1)使用了replay buffer,打破transitions的相关性;(2)使用单独分离的target network来计算yty_{t}yt?,保持学习目标的一致性,防止yty_{t}yt?过于频繁的改变。
算法
在连续动作空间中直接使用DQN算法是不可行的,原因在于在连续空间中寻找贪婪策略需要每个timestep中最优化的ata_{t}at?。(我的理解是离散空间中,动作个数已知,想找最优的ata_{t}at?最朴素的办法是遍历action set,然后取greedy,这个最优甚至可以理解成为全局最优,但是连续空间中无法做到这点。连续空间中朴素的思想是选择一个动作初值,同时在这个动作附近加一点噪声,得到一个很局部的action set,说白了就是在一个点附近以很小的间隔采样,然后通过计算动作值的梯度来对动作迭代优化,这里的最优应该谈不上是全局最优,这个过程类比非凸函数求极值。)
DPG算法使用一个参数化的动作函数μ(s∣θμ)\mu(s|\theta^{\mu})μ(s∣θμ)通过确定性地映射一个状态到特定动作来表示当前的策略。criticQ(s,a)Q(s,a)Q(s,a)学习方式同Q-learning中的Bellman方程。动作更新方式为:应用链式法则对关于actor参数的初始分布J(θμ)J(\theta^{\mu})J(θμ)求导数,如公式(6)。
使用神经网络做RL时的一个挑战为,对于大多数优化算法需要假设样本是独立同分布,但是在环境中序列探索生成的样本不满足这个假设。另外,为了是硬件优化有效,必须使用mini-batch训练而非online。在这里,DDPG使用了DQN中的replay buffer方法来解决样本相关性问题。
接下来是解决DDPG在训练评估策略网络和行为策略网络时出现的不稳定,不收敛的问题。解决方案时参考DQN中的target network方法,在DDPG中将该方法扩展到Actor和Critic网络中,即使用软更新(soft target update),分别copy一个actor和critic网络,对应的网络参数更新均滞后于学习到的网络(target network的参数缓慢的向learned network的参数更新)。这样,target value被强制性的缓慢改变,极大提高了学习的稳定性。这个简单的改变使得相对不稳定的学习行为值函数的问题更接近于监督学习的情况,这是一个存在鲁棒解的问题。如公式(5)所示,因为yiy_{i}yi?与actor和critic网络均有关系,因此Q′Q'Q′和μ′\mu'μ′都是必需的。
从低维度特征向量观测中学习时,不同观测量有不同的物理单位(如位置,速度等),并且范围可能随着环境变化,使得网络学习有一定的困难。解决方法为batch normalization,将一个mini-batch中样本的每个维度都归一化至具有单位均值和方差。batch normalization对于不同任务的不同单位的学习均很高校,取代了人工缩放范围。
连续动作空间中的探索,off-policy算法的优势之一是我们可以独立于learning算法去对待探索问题,DDPG的探索策略是在行为策略的结果中加入一个noise,例如OU过程noise。
附上DDPG算法流程图