背景描述

概括来说,RL要解决的问题是:让agent学习在一个环境中的如何行为动作(act), 从而获得最大的奖励值总和(total reward)。 这个奖励值一般与agent定义的任务目标关联。

agent需要的主要学习内容:第一是行为策略(action policy), 第二是规划(planning)。

其中,行为策略的学习目标是最优策略, 也就是使用这样的策略,可以让agent在特定环境中的行为获得最大的奖励值,从而实现其任务目标。

行为(action)可以简单分为:

  • 连续的:如赛车游戏中的方向盘角度、油门、刹车控制信号,机器人的关节伺服电机控制信号。
  • 离散的:如围棋、贪吃蛇游戏。 Alpha Go就是一个典型的离散行为agent。

DDPG是针对连续行为的策略学习方法。

如果要了解完整和系统的RL背景知识,推荐大家看R.Sutton的这本书: 《Reinforcement Learning: An Introduction, by Sutton, R.S. and Barto, A.G.


DDPG的定义和应用场景

在RL领域,DDPG主要从:PG -> DPG -> DDPG 发展而来。

先复述一下相关的基本概念

  1. sts_t : 在tt时刻,agent观察到的环境状态,比如观察到的环境图像,agent在环境中的位置、速度、机器人关节角度等;

  2. ata_t : 在tt时刻,agent选择的行为(action),通过环境执行后,环境状态由sts_t转换为st+1s_{t+1}

  3. r(st,at)r(s_t,a_t)函数: 环境在状态sts_t 执行行为ata_t 后,返回的单步奖励值;
    上述关系可以用一个状态转换图来表示:
    Deep Reinforcement Learning —— DDPG原理和算法

  4. RtR_t :是从当前状态直到将来某个状态,期间所有行为所获得奖励值的加权总和,即discounted future reward:
    Rt=i=tTγitr(si,ai)R_{t}=\sum_{i=t}^{T} \gamma^{i-t} r\left(s_{i}, a_{i}\right)
    其中γγ叫做discounted rate, ∈[0,1] ,通常取0.99.


PG

R.Sutton 在2000年提出的Policy Gradient 方法,是RL中,学习连续的行为控制策略的经典方法,其提出的解决方案是: 通过一个概率分布函数 πθ(stθπ)π_θ(s_t|θ_π)生成action的过程,本质上是一个随机过程;最后学习到的策略,也是一个随机策略(stochastic policy).


DPG

Deepmind的D.Silver等在2014年提出DPG: Deterministic Policy Gradient, 即确定性的行为策略,每一步的行为通过函数μ直接获取确定的值:
at=μ(stθμ)a_t=μ(s_t|θ_μ)
即最优行为策略,不再是一个需要采样的随机策略。

为何需要确定性的策略?简单来说,PG方法有以下缺陷:

  1. 即使通过PG学习得到了随机策略之后,在每一步行为时,我们还需要对得到的最优策略概率分布进行采样,才能获得action的具体值;而action通常是高维的向量,比如25维、50维,在高维的action空间的频繁采样,无疑是很耗费计算能力的;
  2. 在PG的学习过程中,每一步计算policy gradient都需要在整个action space进行积分:

θ=SAρ(s)πθ(as)Qπ(s,a)dads\nabla_{\theta}=\int_{\mathcal{S}} \int_{A} \rho(s) \pi_{\theta}(a \mid s) Q^{\pi}(s, a) d a d s
这个积分我们一般通过Monte Carlo 采样来进行估算,需要在高维的action空间进行采样,耗费计算能力。

如果采取简单的Greedy策略,即每一步求解 argmaxaQ(s,a)argmaxaQ(s,a)也不可行,因为在连续的、高维度的action空间,如果每一步都求全局最优解,太耗费计算性能。

在这之前,业界普遍认为,环境模型无关(model-free)的确定性策略是不存在的,在2014年的DPG论文中,D.Silver等通过严密的数学推导,证明了DPG的存在, 其数学表示参见DDPG算法部分给出的公式 (3)。

然后将DPG算法融合进actor-critic框架,结合Q-learning或者Gradient Q-learning这些传统的Q函数学习方法,经过训练得到一个确定性的最优行为策略函数。


DDPG

Deepmind在2016年提出DDPG,全称是:Deep Deterministic Policy Gradient,是将深度学习神经网络融合进DPG的策略学习方法。

相对于DPG的核心改进是: 采用卷积神经网络作为策略函数μ函数的模拟,即策略网络和Q网络;然后使用深度学习的方法来训练上述神经网络。

Q函数的实现和训练方法,采用了Deepmind 2015年发表的DQN方法 ,即 Alpha Go使用的Q函数方法。


DDPG算法相关基本概念定义

我们以Open Gym 作为环境为例来讲解。

先复述一下DDPG相关的概念定义:

  • 确定性行为策略μ: 定义为一个函数,每一步的行为可以通过 at=μ(st)a_t=μ(s_t) 计算获得。
  • 策略网络:用一个卷积神经网络对μ函数进行模拟,这个网络我们就叫做策略网络,其参数为θμθ_μ
  • behavior policy β: 在RL训练过程中,我们要兼顾2个e: exploration和exploit;exploration的目的是探索潜在的更优策略,所以训练过程中,我们为action的决策机制引入随机噪声。 将action的决策从确定性过程变为一个随机过程, 再从这个随机过程中采样得到action,下达给环境执行.

过程如下图所示:
Deep Reinforcement Learning —— DDPG原理和算法

上述这个策略叫做behavior策略,用β来表示, 这时RL的训练方式叫做off-policy. 这里与ϵ−greedy的思路是类似的。

DDPG中,使用Uhlenbeck-Ornstein随机过程(下面简称UO过程),作为引入的随机噪声:

UO过程在时序上具备很好的相关性,可以使agent很好的探索具备动量属性的环境。

注意:

  • 这个β不是我们想要得到的最优策略,仅仅在训练过程中,生成下达给环境的action, 从而获得我们想要的数据集,比如状态转换(transitions)、或者agent的行走路径等,然后利用这个数据集去 训练策略μμ,以获得最优策略。
  • 在test 和 evaluation时,使用μ,不会再使用β。
  • Q函数: 即action-value 函数,定义在状态sts_t下,采取动作ata_t后,且如果持续执行策略μμ的情况下, 所获得的RtR_t期望值, 用Bellman 等式来定义:

Qμ(st,at)=E[r(st,at)+γQμ(st+1,μ(st+1))]Q^{\mu}\left(s_{t}, a_{t}\right)=E\left[r\left(s_{t}, a_{t}\right)+\gamma Q^{\mu}\left(s_{t+1}, \mu\left(s_{t+1}\right)\right)\right]

可以看到,Q函数的定义是一个递归表达,在实际情况中,我们不可能每一步都递归计算Q的值, 可行的方案是通过一个函数对Bellman等式表达进行模拟。

  • Q 网络:DDPG中,我们用一个卷积神经网络对Q函数进行模拟,这个网络我们就叫做Q网络, 其参数为θQθ^Q。采用了DQN相同的方法。

  • 如何衡量一个策略μμ的表现:用一个函数JJ来衡量,我们叫做performance objective,针对off-policy学习的场景,定义如下:
    Jβ(μ)=Sρβ(s)Qμ(s,μ(s))dsJ_{\beta}(\mu)=\int_{S} \rho^{\beta}(s) Q^{\mu}(s, \mu(s)) d s =Esρβ[Qμ(s,μ(s))]=E_{s \sim \rho^{\beta}}\left[Q^{\mu}(s, \mu(s))\right]

其中:

  • ss是环境的状态,这些状态(或者说agent在环境中走过的状态路径)是基于agent的behavior策略产生的,它们的分布函数为ρβρ^β

  • Qμ(s,μ(s))Q^{\mu}(s, \mu(s))是在每个状态下,如果都按照μμ策略选择acton时,能够产生的QQ值。 也即,Jβ(μ)J_{\beta}(\mu)是在s根据ρβρ^β分布时,Qμ(s,μ(s))Q^{\mu}(s, \mu(s))的期望值。

  • 训练的目标: 最大化Jβ(μ)J_{\beta}(\mu),同时最小化Q网络的Loss(下面描述算法步骤时会给出)。

  • 最优行为策略μμ的定义: 即最大化Jβ(μ)J_{\beta}(\mu)的策略:
    μ=argmaxμJ(μ)\mu=\underset{\mu}{\operatorname{argmax}} J(\mu)
    训练μμ网络的过程,就是寻找μμ网络参数θμθ^μ的最优解的过程, 我们使用SGA(stochastic gradient ascent)的方法。

  • 最优Q网络定义:具备最小化的Q网络Loss; 训练Q网络的过程,就是寻找QQ网络参数θQθ^Q的最优解的过程,我们使用SGD的方法。


DDPG算法流程如下

online 和 target 网络

以往的实践证明,如果只使用单个”Q神经网络”的算法,学习过程很不稳定,因为Q网络的参数在频繁gradient update的同时,又用于计算Q网络和策略网络的gradient, 参见下面等式(1),(2),(3).

基于此,DDPG分别为策略网络、Q网络各创建两个神经网络拷贝,一个叫做online,一个叫做target:

策略网络 { online: μ(sθμ): gradient 更新 θμ target :μ(sθμ): soft update θμ\left\{\begin{array}{l}\text { online: } \mu\left(s \mid \theta^{\mu}\right): \text { gradient 更新 } \theta^{\mu} \\ \text { target }: \mu^{\prime}\left(s \mid \theta^{\mu^{\prime}}\right): \text { soft update } \theta^{\mu^{\prime}}\end{array}\right.

Q网络 { online :Q(s,aθQ): gradient 更新 θQ target :Q(s,aθQ): soft update θQ\quad\left\{\begin{array}{l}\text { online }: Q\left(s, a \mid \theta^{Q}\right): \text { gradient 更新 } \theta^{Q} \\ \text { target }: Q^{\prime}\left(s, a \mid \theta^{Q^{\prime}}\right): \text { soft update } \theta^{Q^{\prime}}\end{array}\right.

在训练完一个mini-batch的数据之后,通过SGA/SGD算法更新online网络的参数,然后再通过soft update算法更新 target 网络的参数。soft update是一种running average的算法:

soft update : {θQτθQ+(1τ)θQθμτθμ+(1τ)θμ\left\{\begin{array}{l}\theta^{Q^{\prime}} \leftarrow \tau \theta^{Q}+(1-\tau) \theta^{Q^{\prime}} \\ \theta^{\mu^{\prime}} \leftarrow \tau \theta^{\mu}+(1-\tau) \theta^{\mu^{\prime}}\end{array}\right.

τ\tau一般取0.001

  • 优点:target网络参数变化小,用于在训练过程中计算online网络的gradient,比较稳定,训练易于收敛。

  • 代价:参数变化小,学习过程变慢。


DDPG实现框架,如下图所示
Deep Reinforcement Learning —— DDPG原理和算法

Deep Reinforcement Learning —— DDPG原理和算法
Deep Reinforcement Learning —— DDPG原理和算法
Deep Reinforcement Learning —— DDPG原理和算法


总结一下:

actor-critic框架是一个在循环的episode和时间步骤条件下,通过环境、actor和critic三者交互,来迭代训练策略网络、Q网络的过程。

DDPG对于DPG的关键改进

  1. 使用卷积神经网络来模拟策略函数和Q函数,并用深度学习的方法来训练,证明了在RL方法中,非线性模拟函数的准确性和高性能、可收敛;
    而DPG中,可以看成使用线性回归的机器学习方法:使用带参数的线性函数来模拟策略函数和Q函数,然后使用线性回归的方法进行训练。

  2. experience replay memory的使用:actor同环境交互时,产生的transition数据序列是在时间上高度关联(correlated)的,如果这些数据序列直接用于训练,会导致神经网络的overfit,不易收敛。
    DDPG的actor将transition数据先存入experience replay buffer, 然后在训练时,从experience replay buffer中随机采样mini-batch数据,这样采样得到的数据可以认为是无关联的。

  3. target 网络和online 网络的使用, 使的学习过程更加稳定,收敛更有保障。

参考自:kenneth_yu

相关文章: