七. 连续动作空间的确定性策略

简单易懂:b站搬运ShuSenWang教程

如何理解:两个网络:策略网络与价值函数网络( 函数 ) , 时刻,先利用策略时序差分地更新价值函数,再更新策略网络,策略网络的梯度下降想法是:参数朝着使 函数增大的方向走,即 函数关于策略网络的参数求梯度,所以最后推得的关系式策略网络的更新式形式为连式法则的样子

本章介绍在连续动作空间里的确定性执行者 / 评论者算法.在连续的动作空间中,动作的个数是无穷大的.如果采用常规方法,需要计算 .而对于无穷多的动作,最大值往往很难求得.为此,D. Silver 等人在文章《 Deterministic Policy Gradient Algorithms 》中提出了确定性策略的方法,来处理连续动作空间情况.本章将针对连续动作空间,推导出确定性策略的策略梯度定理,并据此给出确定性执行者 / 评论者算法.

7.1 同策确定性算法

对于连续动作空间里的确定性策略, 并不是一个通常意义上的函数,它对策略参数 的梯度. 也不复存在.所以,第 6 章介绍的执行者 / 评论者算法就不再适用.幸运的是,曾提到确定性策略可以表示为 .这种表示可以绕过由于 并不是通常意义上的函数而带来的困难.

本节介绍在连续空间中的确定性策略梯度定理,并据此给出基本的同策确定性执行者 / 评论者算法.

7.1.1 策略梯度定理的确定性版本

当策略是一个连续动作空间上的确定性的策略 时,策略梯度定理为 (证明:状态价值和动作价值满足以下关系 以上两式对 求梯度,有 的表达式代人 的表达式中,有 对上式求关于 的期望,并考虑到 (其中 任取),有 这样就得到了从 的递推式.注意,最终关注的梯度值就是 所以有 就得到和之前梯度策略定理类似的形式 ).

对于连续动作空间中的确定性策略,更常使用的是另外一种形式: 其中的期望是针对折扣的状态分布 (discounted state distribution) 而言的。(证明: 得证.)

7.1.2 基本的同策确定性执行者 / 评论者算法

根据策略梯度定理的确定性版本,对于连续动作空间中的确定性执行者 / 评论者算法,梯度的方向变为 确定性的同策执行者 评论者算法还是用 来近似 .这时, 近似为 所以,与随机版本的同策确定性执行者 / 评论者算法相比,确定性同策执行者 / 评论者算法在更新策略参数 时试图减小 .迭代式可以是 算法 7-1 给出了基本的同策确定性执行者 / 评论者算法.对于同策的算法,必须进行探索.连续性动作空间的确定性算法将每个状态都映射到一个确定的动作上,需要在动作空间添加扰动实现探索.具体而言,在状态 下确定性策略 指定的动作为 ,则在同策算法中使用的动作可以具有 的形式,其中 是扰动量.在动作空间无界的情况下(即没有限制动作有最大值和最小值),常常假设扰动量 满足正态分布.在动作空间有界的情况下,可以用 clip 函数进一步限制加扰动后的范围(如 ,其中 是动作的最小取值和最大取值),或用 sigmoid 函数将对加扰动后的动作变换到合适的区间里

算法 7-1 基本的同策确定性执行者 / 评论者算法


输入: 环境(无数学描述) 输出:最优策略的估计 参数:学习率 ,折扣因子 ,控制回合数和回合内步数的参数.

  1. (初始化) 任意值,任意值
  2. (带自益的策略更新)对每个回合执行以下操作: 2.1 (初始化累积折扣) 2.2 (初始化状态动作对)选择状态 ,对 加扰动进而确定动作 (如用正态分布随机变量扰动) 2.3 如果回合未结束,执行以下操作:
    1. (采样)根据状态 和动作 得到采样 和下一状态
    2. (执行)对 加扰动进而确定动作
    3. (估计回报)
    4. (更新价值)更新 以减小
    5. (策略改进)更新 以减小
    6. (更新累积折扣)
    7. (更新状态)

在有些任务中,动作的效果经过低通滤波器处理后反映在系统中,而独立同分布的 Gaussian 噪声不能有效实现探索.例如,在某个任务中,动作的直接效果是改变一个质点的加速度.如果在这个任务中用独立同分布的 Gaussian 噪声叠加在动作上,那么对质点位置的整体效果是在没有噪声的位置附近移动.这样的探索就没有办法为质点的位置提供持续的偏移,使得质点到比较远的位置.在这类任务中,常常用 Ornstein Uhlenbeck 过 程作为动作噪声.Ornstein Uhlenbeck 过程是用下列随机微分方程定义的 (以一维的情况为例 ) 其中 是参数 是标准 Brownian 运动.当初始扰动是在原点的单点分布(即限定 ),并且 时,上述方程的解为 (证明:将 代入 化简可得 .将此式从 0 积到 ,得 .当 时化简可得结果).

这个解的均值为 0 ,方差为 ,协方差为 (证明:由于均值为 0 ,所以 .另外,Ito Isometry 告诉我们 ,所以 ,进一步化简可得结果.)

对于 总有 ,所以 .据此可知,使用 Ornstein Uhlenbeck 过程让相邻扰动正相关,进而让动作向相近的方向偏移.

7.2 异策确定性算法

对于连续的动作空间,我们希望能够找到一个确定性策略,使得每条轨迹的回报最大.同策确定性算法利用策略 生成轨迹,并在这些轨迹上求得回报的平均值,通过让平均回报最大,使得每条轨迹上的回报尽可能大.事实上,如果每条轨迹的回报都要最大,那么对于任意策略 采样得到的轨迹,我们都希望在这套轨迹上的平均回报最大.所以异策确定性策略算法引入确定性行为策略 ,将这个平均改为针对策略 采样得到的轨迹,得到异策确定性梯度为 这个表达式与同策的情形相比,期望运算针对的表达式相同.所以,异策确定性算法的迭代式与同策确定性算法的迭代式相同.

异策确定性算法可能比同策确定性算法性能好的原因在于,行为策略可能会促进探索,用行为策略采样得到的轨迹能够更加全面的探索轨迹空间.这时候,最大化对轨迹分布的平均期望时能够同时考虑到更多不同的轨迹,使得在整个轨迹空间上的所有轨迹的回报会更大.

7.2.1 基本的异策确定性执行者 / 评论者算法

基于上述分析,我们可以得到异策确定性执行者 / 评论者算法 (Off-Policy Deterministic Actor-Critic, ),见算法 7-2 .

值得一提的是,虽然异策算法和同策算法有相同形式的迭代式,但是在算法结构上并不完全相同.在同策算法迭代更新时,目标策略的动作可以在运行过程中直接得到;但是在异策算法迭代更新策略参数时,对环境使用的是行为策略决定的动作,而不是目标策略决定的动作,所以需要额外计算目标策略的动作.在更新价值函数时,采用的是 学习,依然需要计算目标策略的动作.

算法 9-2 基本的异策确定性执行者 / 评论者算法

输入:环境(无数学描述) 输出:最优策略的估计 参数:学习率 ,折扣因子 ,控制回合数和回合内步数的参数.

  1. (初始化) 任意值, 任意值.
  2. (带自益的策略更新)对每个回合执行以下操作: 2.1 (初始化累积折扣) 2.2 (初始化状态)选择状态 2.3 如果回合未结束,执行以下操作:
    1. (执行)用 得到动作
    2. (采样)根据状态 和动作 得到采样 和下一状态
    3. (估计回报)
    4. (更新价值)更新 以减小
    5. (策略改进)更新 以减小 (如
    6. (更新累积折扣)
    7. (更新状态)

7.2.2 深度确定性策略梯度算法

深度确定性策略梯度算法(Deep Deterministic Policy Gradient, )将基本的异策 确定性执行者 / 评论者算法和深度 Q 网络中常用的技术结合.具体而言,确定性深度策略梯度算法用到了以下技术.

  • 经验回放:执行者得到的经验 收集后放在一个存储空间中,等更新参数时批量回放,用批处理更新.
  • 目标网络:在常规价值参数 和策略参数 外再使用一套用于估计目标的目标价值参数 和目标策略参数 在更新目标网络时,为了避免参数更新过快,还引入了目标网络的学习率

算法 7-3 给出了深度确定性策略梯度算法.

算法 7-3 深度确定性策略梯度算法 (假设 总是在动作空间内)


输入:环境(无数学描述) 输出:最优策略的估计 参数:学习率 ,折扣因子 ,控制回合数和回合内步数的参数,目标网络学习率

  1. (初始化) 任意值, 任意值,
  2. 循环执行以下操作: 2.1 (累积经验)从起始状态 出发,执行以下操作,直到满足终止条件:
    • 用对 加扰动进而确定动作 (如用正态分布随机变量扰动)
    • 执行动作 ,观测到收益 和下一状态
    • 将经验 存储在经验存储空间 2.2 (更新)在更新的时机,执行一次或多次以下更新操作:
    • (回放)从存储空间 采样出一批经验
    • (估计回报)为经验估计回报
    • (价值更新)更新 以减小
    • (策略更新)更新 以减小 (如
    • (更新目标)在恰当的时机更新目标网络和目标策略,

7.2.3 双重延迟深度确定性策略梯度算法

S. Fujimoto 等人在文章 《 Addressing function approximation error in actor-critic methods》 中给出了双重延迟深度确定性策略梯度算法(Twin Delay Deep Deterministic Policy Gradient, TD3 ),结合了深度确定性策略梯度算法和双重 Q 学习.

回顾前文,双重 学习可以消除最大偏差.基于查找表的双重 Q 学习用了两套动作价值函数 ,其中一套动作价值函数用来计算最优动作(如 ,另外一套价值函数用来估计回报(如 ;双重 网络则考虑到有了目标网络后已经有了两套价值函数的参数 所以用其中一套参数 计算最优动作(如 ),再用目标网络的参数 估计目标 (如 ). 但是对于确定性策略梯度算法,动作已经由含参策略 决定了 (如 ),双重网络则要由双重延迟深度确定性策略梯度算法维护两份学习过程的价值网络参数 和目标网络参数 .在估计目标时,选取两个目标网络得到的结果中较小的那个,即

算法 7-4 给出了双重延迟深度确定性策略梯度算法.

算法 7-4双重延迟深度确定性策略梯度


输入: 环境(无数学描述) 榆出:最优策略的估计 参数:学习率 ,折扣因子 ,控制回合数和回合内步数的参数,目标网络学习率

  1. (初始化) 任意值, 任意值,
  2. 循环执行以下操作: 2.1 (累积经验)从起始状态 出发,执行以下操作,直到满足终止条件:
    • 用对 加扰动进而确定动作 (如用正态分布随机变量扰动)
    • 执行动作 ,观测到收益 和下一状态
    • 将经验 存储在经验存储空间 2.2 (更新)一次或多次执行以下操作:
    • (回放)从存储空间 采样出一批经验
    • (扰动动作)为目标动作 加受限的扰动,得到动作
    • (估计回报)为经验估计回报
    • (价值更新)更新 以减小
    • (策略更新)在恰当的时机,更新 以减小
    • (更新目标)在恰当的时机,更新目标网络和目标策略,

TODO:AlphaZero算法