[TOC]
- 策略梯度
- 最优梯度的度量
- 度量的梯度
- 基于蒙特卡洛的策略梯度——REINFORCE
- 梯度上升算法
- AC方法
- QAC
- A2C:通过引入偏置量减少估计的方差
- off-policy AC:将on-policy方法转换为 off-policy方法
- 重要性采样
- DPG:随机策略变为确定性策略
5.1 策略梯度
之前的方法以策略为核心,基于价值产生策略,并用表格表示策略
策略梯度 (policy gradient) 是基于策略的方法,用策略函数近似策略
利用机器学习模型的泛化能力,将已知状态上的策略泛化到未知状态上的策略
目标函数是策略的函数,通过优化目标函数直接获取最优策略
- A-C方法,实际上是将策略梯度与价值函数结合的方法
5.1.1 策略的表示
表格型策略
策略为在每个状态下
缺点:当状态空间很大或无穷、状态连续变化时,用表格表示策略就非常低效,体现在存储与泛化能力的缺陷上
函数型策略
用带参数的函数拟合策略,也可以表示为
(a) 输入是状态和动作,输出是当前状态下采取这个动作使累积奖励最大化的可能性
(b) 输入是状态,输出是当前状态下采取各个动作使累积奖励最大化的可能性
最优的策略可以通过最优化度量标量的目标函数获取,这种方法称为 策略梯度
- 更适合处理高维度或连续的动作空间
- 具有更强大的泛化能力
- 具有更好的收敛性质和稳定性
- 能够学习随机策略
缺点:
- 通常会收敛到局部最优,而非全局最优,所以需要加噪音扰动
- 评价一个策略通常不高效,且方差较大(受数据分布影响大,策略一直变,所以数据分布一直变)
表格型VS函数型
最优策略的定义:
- 表格型:若一个策略 $\pi^
\mathbf{V}_{\pi^}(S)\ge\mathbf{V}_{\pi}(S),\forall \pi\in \Pi$ - 函数型:指定一个标量的策略度量指标目标函数,使目标函数最大化的策略就是最优策略
获取一个动作的概率:
表格型:通过
可查表获取函数型:计算策略函数的值
参数每传播一次,都需要计算一次
策略更新:
- 表格型:直接修改
的值 - 函数型:通过修改策略函数的参数
间接影响策略
策略梯度基本思路
所有的策略度量指标
最优化算法为梯度上升法
- 如何定义策略度量指标
- 如何计算策略度量指标的梯度
5.1.2 策略度量指标
平均状态价值
为在策略 下加权平均的状态价值 是状态 的权重,也可以理解为状态的概率分布- 向量形式下,
若求解加权平均,需要知道状态
与策略 无关
将分布
记为 ,此时,平均状态价值记为
相对简单,因为度量指标函数的梯度计算相对简单
一种情况是每个状态都是同等重要的,因此将
另一种情况是只关注特定的状态
与策略 有关
状态的分布与策略
有关,即 是策略 下的稳态分布
- 状态分布概率值是状态转移矩阵特征值为1的特征向量
平均单步立即奖励
其中,
两种度量指标的关系
关于策略的度量指标,可以定义在折扣奖励
对于 平均单步立即奖励
一个达到最优,另一个也能达到极值
证明:贝尔曼方程
等价定义
平均状态价值
在策略
对于
平均单步立即奖励
假设在策略
- 起始状态
是什么不重要
证明:
首先,证明对于任意的起始状态
- 纬洛平均:对于一个序列
若其是收敛的,即 是存在的,则 ,故序列 是一个收敛序列
其次,证明等价
对于
表示在第 轮迭代中使用的状态转移矩阵 因此,起始状态 并不重要
故有等价成立
最后,对于任意的稳态分布
即,对任意的稳态分布
5.1.3 策略度量指标的梯度
所有度量指标的梯度有一个统一形式
是不同的策略度量指标 可以是等于、近似、成比例 是状态的分布或状态的权重,在不同问题中呈现不同的分布
一些特殊的结果
- 当折扣情况,
为 ;当非折扣情况, 为 由于 平均单步立即奖励 与 平均状态价值成正比,所以
策略梯度的计算
为了便于计算,需要将梯度改写
将其代入策略度量指标的梯度
此时,目标函数可以用样本近似
注
因为需要计算
在RL中,若不做处理,这个条件并不满足,如贪心策略或确定性策略,有些动作
为确保满足条件,需要对所有的
Softmax :对于一个特征向量
,
决策值可以归一化为
其中,
策略函数
- 由于
,所以策略是随机性及探索性的 - 策略梯度也可改为确定性策略
softmax策略的梯度
因此,策略网络的梯度为
5.1.4 与基于价值的学习对比
基于价值的学习由一个
优化目标为最小化TD误差:
更新方式
基于策略梯度的学习 由一个
优化目标为最大化策略度量指标
更新方式
5.2 基于蒙特卡洛的策略梯度——REINFORCE
不管采用哪种策略度量指标,对策略函数的优化方法通过梯度上升法最大化
此外,真实的动作价值
基于MC方法去近似动作价值,称为 REINFORCE 算法
用累积奖励值的无偏采样
去近似基于TD方法去近似,称为AC算法
5.2.3 伪代码
采样
从
采集状态样本:
,其中分布 状态为在策略 下的稳态分布采集动作样本:
, 是策略 的采样
由采样也可看出,REINFORCE 算法为同策略 on-policy 算法
REINFORCE是离线方法
基于蒙特卡洛方法,必须将所有的回合数据采集完后才能开始运行,所以策略
缺点:
基于片段式数据的任务,任务需要终止状态,才能去计算回报
低数据利用效率:需要大量的训练数据
高训练方差
从单个或多个片段中采样到的回报去估计动作价值有很高的方差
5.2.2 算法分析
由于
其中,
- 若
,则在 时选择 的可能性被提高,即 ,且 越大,增大程度越大 - 若
,则
对于任意的
与 ,当 足够小时, 从微分角度看,随着
,这个近似变为等式 其中,梯度上升法步长
,由此可见,当 时, ;当 ,
能很好平衡探索与利用
利用 :若某个动作价值大,
,若 增大,则 会增大,引起 增大
探索 :若在状态
越小,则 越大,从而 会增大
5.3 AC方法
将价值近似函数引入到策略梯度中,得到了 Actor-Critic 方法
Actor:策略更新,策略会被应用于决策/动作选择
- 生成使评论家满意的策略
Critic:策略评估/价值评估,用度量指标衡量策略的优劣
- 学会准确估计演员策略所采取动作的价值函数
- QAC
- A2C:通过引入偏置量减少估计的方差
- off-policy AC:将on-policy方法转换为 off-policy 方法
- 重要性采样
- DPG:随机策略变为确定性策略
策略梯度方法的步骤:
用于度量策略好坏的策略度量指标函数/目标函数
,如:Critic(策略评估):最小化价值函数与价值的损失
Actor(策略更新)
通过梯度上升法最大化
为便于计算,使用随机梯度上升法
策略梯度的方法为 Actor ,其中
对于
5.3.1 QAC
- 实质上,是 基于价值近似函数的Sarsa+策略梯度
QAC是同策略 on-policy 算法
在求最优化时,由于存在一个期望
动作需要按照策略
QAC是随机性策略
采取每个动作
所以,策略本身就具有一定的探索能力
5.3.2 A2C
advantage actor-critic(A2C):核心思想是通过引入一个偏置量 bias 减小方差,即
策略梯度对于额外的偏置量是不变的
额外的偏置量是关于状态变量
为什么引入偏置量不改变策略梯度
相当于证明
为什么引入偏置量能减小估计方差
令
,其中 的期望 与 无关,方差 与 有关使用方差的迹评价方差大小,
已知
与偏置量 无关可见偏置量
对策略度量函数梯度的方差有影响,为使
最小化,最优的偏差应使 ,即且
不是好的偏置- 对于 REINFORCE 与 QAC 算法,其偏置量
,并不是好的偏置
- 对于 REINFORCE 与 QAC 算法,其偏置量
减小方差的意义:采样时会有更小的误差,在均值相同的情况下,采样时方差小的样本集,每个样本
因此,在A2C中,算法目标为对
尽管存在最优的偏置量,但为了计算方便,移除权重
算法
令偏置量
- 使用
代替动作价值 ,因为我们在乎的不是动作价值的绝对大小,而是动作价值间的相对大小
将梯度上升法改为随机梯度上升法
另外,由动作价值定义:
优势函数可以用TD误差来近似:
因此,我们仅需要一个神经网络来近似
伪代码
A2C是同策略算法
在一步迭代后,
A2C是随机性策略
由于策略梯度算法需要经过 Softmax 层,所以每个动作的概率
能很好平衡探索与利用
由于
利用
step size 比较大,也就是优势函数
,若 增大,则 会增大,策略更新时会朝着 增大的方向更新
探索 :若在状态
越小,则 越大,从而 会增大
5.3.3 异策略AC算法
REINFORCE ,QAC ,A2C 都是同策略算法,因为在计算策略度量指标梯度时,涉及到期望的计算
基于RM算法,改为随机梯度下降法,由于在采样过程中,由于动作
为复用通过其他方法得到的一些经验,通过 重要性采样 技巧,可将其改为异策略AC算法
- 同理,重要性采样可用于任何估计期望的算法中
对于异策略算法,我们希望估计
异策略策略梯度
- 策略梯度表达式
- 使用梯度上升的方法优化
异策略梯度表达式
设
其中,
异策略梯度
在折扣奖励情况下
为探索策略, 为状态服从的分布 ,表示基于策略 从状态 转移到 的概率,其中 表示矩阵第 行,第 列的值
异策略梯度优化
异策略梯度仍引入偏置量
为减少估计方差,令偏置量
相应的随机梯度上升算法为
为了便于计算,将优势函数
因此,异策略梯度优化为
充分利用的算法
在异策略梯度中
此时,
伪代码
5.3.4 Deterministic actor-critic(DPG)
策略梯度算法,为便于求解,将策略度量函数的梯度转换为期望形式,使用RM算法去近似估计。而这个转换设计
随机性策略的缺点是动作
若改用确定性策略,可以处理连续的动作,表示为
为从状态空间 到动作空间 的映射 也可以是一个神经网络,其输入是状态 ,输出是一个动作 ,其参数为
梯度的计算
之前的梯度仅是针对随机策略的梯度,若策略是确定性的,需要重新计算梯度
确定性策略梯度的统一形式
为状态 的分布,具体表达式由探索策略下状态的稳态分布与基于策略 的状态转移确定- 对于策略
下的动作价值 ,先对 求梯度,然后将所有的动作替换为 ——二者是等价的
DPG天然是异策略
首先,actor 是异策略的
求策略度量梯度时并不涉及动作的分布,因为这个动作
会被替换为 ,所以不需要 对应的分布之后使用随机梯度上升法相当于对真实的梯度进行随机采样,若在采样时,给定了一个
,根据这个状态 可以得到 ,并不需要关心这个 是哪个策略得到的,因此可以使用任何的探索策略,即DPG天然是异策略的
其次,critic 也是异策略的
对价值函数的近似需要的经验样本是
, ,这个经验样本的生成涉及两个策略第一个策略是对状态
时生成 ,这个策略是探索策略, 用于与环境交互第二个策略是对状态
生成 ,这个策略必须是 ,因为这是 critic 要去评价的策略 ,所以 是目标策略, 在下一时刻并不会用于与环境实际交互
两种常用的度量指标梯度
平均状态价值
将平均状态价值的折扣情况作为策略度量指标
其中,
关于状态分布的选择:
且 ,其中状态 是我们关注的起始状态 策略优化的目标是最大化从
开始的折扣奖励
是另一个不同于 的探索策略 下的稳态分布 与异策略有关,因为DPG算法天然是异策略的,不需要重要性采样进行转换
为计算目标函数的梯度,首先要计算
- 其中,
,表示基于策略 从状态 转移到 的概率,其中 表示矩阵第 行,第 列的值
策略度量指标的梯度
其中,
- 其中,
,表示基于策略 从状态 转移到 的概率,其中 表示矩阵第 行,第 列的值
平均单步立即奖励
将平均单步立即奖励作为策略度量指标
其中,
策略梯度为
- 其中,
为状态 基于策略 的稳态分布
DPG算法
基于策略梯度,使用梯度上升法最大化策略度量函数
相应的使用随机梯度上升法去近似
伪代码
对于探索策略
每次得到一个
- 实质上,
与 非常类似,但这里不能用贪心算法,因为此处应对的时动作空间连续的情况,不能给无限的连续动作赋予一定探索概率
此时,DPG可以变为同策略算法
DPG的进一步改进
使用不同的价值近似基函数去近似
线性函数:
线性近似基函数的难点在于基函数(特征向量)的选择,由于函数结构的限制,逼近动作价值的能力有限
神经网络 :DDPG