13 Policy Gradient Methods
之前的方法都是基于动作价值函数的方法(2.8中的梯度赌博机除外,复习2.8有助于理解本章),如果没有动作价值函数的估计,策略也就不会存在。本章讨论直接学习参数化的策略的方法。此时价值函数被用于学习策略的参数。定义策略的参数向量 θ \mathbf{\theta} θ 。
学习策略参数的方法:基于 某种标量性能指标 J ( θ ) J(\mathbf{\theta }) J(θ) 相对于策略参数的梯度。
▽ J ( θ ) ^ \widehat{\bigtriangledown J(\mathbf{\theta })} ▽J(θ) :一个随机估计,其期望值是性能指标对它的参数的梯度的近似。
Actor–Critic Methods:同时学习策略和价值函数的方法。分幕式情况下的性能指标:当前参数化策略下初始状态的价值。持续性问题下的性能指标:10.3节中的平均收益(the average reward rate)。
13.1 Policy Approximation and its Advantages
本节将介绍最常见的对于离散动作空间的策略参数化方法,处理连续动作的方法将在13.7节中介绍。
注:连续是离散的反义词。连续空间并不限定于一组独特的值, 例如整数。相反, 它可以是一定范围的值, 通常是实数。动作也可以是连续的动作。例如玩飞镖的机器人,它必须设置扔飞镖的高度和角度。选择相应级别的扔力。即使这些值出现小小的变化,也会对飞镖最终落在板上的位置有很大的影响。对于连续性问题,两个主要策略是,离散化和函数逼近。
参数化的数值偏好 h ( s , a , θ ) h(s,a,\theta) h(s,a,θ) 。Soft-max in action preferences(动作偏好softmax):uses an exponential soft-max distribution.
动作偏好值可以被任意地参数化。AlphaGo系统使用了神经网络表示偏好值,theta是网络连接权重的向量。偏好值也可以是特征的简单线性组合。
策略参数化的优势
动作偏好值的softmax 和 动作价值的softmax 。动作价值的估计值趋向于对应的真实值。在动作价值的softmax中引入一个温度参数有很多困难。动作偏好值不趋向于任何特定的值,相反,它们趋向于最优的随机策略。
根据动作偏好值的softmax来参数化策略的第二个优势:以任意的概率来选择动作。基于动作价值函数的方法无法求解随机最优策略。例 13.1:考虑所有的非终止状态具有相同的特征的情况,此时具有epsilon-greedy策略的动作价值函数方法被迫在两个策略之间选择,它无法找到选择动作的特定概率。
策略参数化和动作价值参数化的复杂度因问题而异。
使用策略参数化是在强化学习系统中引入期望的策略形式的预先知识的一个好办法。
练习 13.1:利用贝尔曼方程求解。
13.2 The Policy Gradient Theorem
这一节要多次阅读,多次思考。
策略参数化的理论优势:动作概率会平滑地变化。这很大程度上导致了策略梯度方法具有更强的收敛保证。
由于对性能指标的定义不同,分幕式和持续性情况在一定程度上不得不分开处理。但主要理论用同一组公式表示。本节先考虑分幕式情况,将性能指标定义为幕初始状态的价值。在不失去泛化性的情况下,为了简化符号,假设每幕都从某个状态 s 0 s_0 s0 开始。
性能指标公式。
挑战:在改变策略参数时如何保证性能改进。性能取决于 动作选择 和相应的 状态分布,而这两者都会受到策略参数的影响。给定一个状态,策略参数对动作及收益的影响,可以通过参数化以相对直接的方式计算出来。但是策略对状态分布的影响是环境(状态转移概率等知识?)的一个函数,通常是未知的。当 性能指标对策略参数的梯度 取决于策略变化对状态分布的未知影响时,我们如何估计这个梯度呢?
这个挑战的理论答案:策略梯度定理,为我们提供了一个 性能指标相对于策略参数的梯度 的解析表达式,其中并没有涉及对状态分布的求导。
式中,比例常量:分幕式时为幕的平均长度;持续性时为1。
策略梯度定理的证明(分幕式情况)。 η ( s ) \eta(s) η(s):一幕中在状态 s 上消耗的平均时长。
13.3 REINFORCE: Monte Carlo Policy Gradient
一个策略梯度学习算法,一个随机梯度方法。我们需要一个样本梯度,这个样本梯度的期望需要近似或等于策略梯度定理的表达式。首先进一步处理策略梯度定理的右侧,得到一个期望。然后使用这个新的等式,将我们的随机梯度上升算法(式13.1)实例化。
全部动作算法:更新涉及所有可能的动作。经典REINFORCE算法:更新仅涉及当前时刻被实际采用的动作。
继续推导,采用与之前引入 S t S_t St 类似的方法,引入 A t A_t At 。
根据策略(例如使用偏好值决定动作选择概率),采样得到动作。然后根据对应的动作选择概率,以及获得的收益,对参数进行梯度更新。式13.8:梯度决定了更新的方向,而回报决定了更新的大小。更新方向正比于回报,反比于选择动作的概率(否则频繁被选择的动作,更新会更频繁)。
REINFORCE 伪代码。
练习 13.2:还没有得出满意的答案。
REINFORCE可以收敛到局部最优。缺点:方差较大,导致学习较慢。
练习 13.3
13.4 REINFORCE with Baseline
将一个任意的与动作价值函数进行对比的基线函数加入策略梯度定理中(基线只要不随 a 变化即可)。
根据这个新的策略梯度定理,我们可以推导出新的REINFORCE算法。
一般,基线不会使更新值的期望发生变化,但是可以很有效地降低方差(降低方差可以加速学习)。
MDPs的基线应该随状态而变化。这里,一个很自然的基线是状态价值函数。
算法的两个步长,在相比之下,价值函数的步长相对容易设置。但是策略参数更新的步长的设定尚不特别清楚,它的最佳值取决于收益的变化范围以及策略参数化的形式。
图 13.2:在 REINFORCE 中加入基线可以使模型学习得更快。
13.5 Actor–Critic Methods
带基线的REINFORCE方法不是一个 AC 方法,因为它的状态价值函数仅被用作基线,而不是一个 “critic” (即没有被用于策略参数更新的自举操作) 。这是一个有用的区分,因为只有通过自举,我们才会引入偏差和对函数近似质量的渐进依赖。正如我们所看到的,通过自举和对状态表征的依赖而引入的偏差往往是有益的,因为它减少了方差并加速了学习。
带基线的REINFORCE方法,和其他 MC 方法一样,它的学习比较慢(产生高方差的估计),并且不便于在线实现,也不适合持续性问题。
Actor–critic methods with a bootstrapping critic.
单步 AC 方法,和单步 TD 方法类似。它们是资格迹的一种特殊情况。我们可以很自然地采用半梯度TD(0)来学习状态价值函数。这是一个完全在线、增量式的算法,所有数据只会在第一次被收集时使用。
注:AC比REINFORCE更适合长任务中使用,并且可以在线使用,这样更有可能部署到移动机器人上。
单步 AC 方法(分幕式) 伪代码。
与资格迹相结合。对行动器和评判器分别使用不同的资格迹。
带资格迹的 AC 方法(分幕式) 伪代码。这也是一个完全在线、增量式的算法,所有数据只会在第一次被收集时使用。
13.6 Policy Gradient for Continuing Problems
对于持续性问题,我们根据每个时刻上的平均收益率(10.3节)来定义性能。稳定分布,遍历性假设:独立于初始状态。
带资格迹的 AC 方法(持续型) 。
策略梯度定理的证明(持续型问题) 。
13.7 Policy Parameterization for Continuous Actions
Policy-based 的方法提供了处理大型动作空间,甚至是具有无限数量动作的连续空间的途径。学习概率分布的统计量。假设动作集是一个实数集。
The probability density function for the normal distribution.
p ( x ) p(x) p(x) 的值是概率密度,不是概率。可以通过求 p ( x ) p(x) p(x) 下的积分来得到对应范围的概率。
策略参数化:将策略定义为关于实数型的标量动作的正态概率密度,其中均值和标准差由状态的参数化函数逼近器给出。策略参数被分成两个部分,分别用来近似均值和标准差。
练习 13.4
练习 13.5
13.8 Summary
策略参数方法的优点:它们能够学习选择动作的特定的概率;它们能够实现合理程度的试探并逐步地接近确定性策略。它们能够自然地处理连续状态空间。这些都是贪心法和价值函数法无法实现的。
策略梯度定理为策略参数化方法提供了理论优势。
状态价值函数也可以用来给策略的动作选择进行评估打分:AC 方法。