策略梯度法引入值函数
策略梯度法中梯度的基本形式为:
现在我们回顾一下状态-动作值函数和状态值函数
的定义:
现在我们令公式(1)中的,为什么用
来表示,因为这两者是有密切联系的,
是
的期望。
现在我们要做的就是用代替
,因为采样的每一条轨迹中,在状态
之后的奖赏之和可能是不同的,我们想使得状态
之后奖赏之和能够稳定。
同样在引入基线后,我们可以将前文所述的基线用其期望
取代,现在我们的梯度形式就变为
其中,,称为优势函数(Advantage Function)。
优势函数可理解为在给定策略的情况下,在状态
处,采用行动
的收益能比该策略的平均今后收益期望多出多少。
演员-评论家算法
演员-评论家算法要做的就是引入另一个参数,通过神经网络来拟合优势函数
和
有如下的关系,
如果我们用用轨迹样本来估计这个期望(即用来代替
),那么,优势函数也可以被近似为
这样的话,我们只需要用参数去拟合
即可。
在蒙特卡洛策略评估中,进行一次轨迹采样后
如果进行多次轨迹采样后
虽然多次轨迹采样比一次轨迹采样效果好,但是,一次轨迹采样的表现也不错。
训练神经网络来拟合值函则比较简单,首先收集训练数据
,然后使用最小二乘的损失函数
为了使拟合效果更好,在理想化的情况下,我们的目标也可修改为(自助法(bootstrapped))
这样我们便可以直接使用先前的拟合值函数。
批量演员-评论家算法 (batch actor-critic algorithm):
- 根据策略
得到一些样本
,包括所处状态、行动和收益。
- 使用样本收益之和拟合
。这一步样本可以做蒙特卡洛,也可以做自助法;拟合可以用最小二乘的目标函数。
- 评估优势函数
。
-
。
-
。
引入“折扣因子”
在策略梯度中引入“折扣因子”,梯度变为
在演员-评论家算法中引入“折扣因子”,首先我们的优势函数将从
变为
此时的梯度将变为
在线的演员-评论家算法 (online actor-critic algorithm)
- 根据策略执行行动
,得到一个状态转移样本
,即从一个状态出发执行某行动到哪个新的状态,单步收益多少
- 使用评论家的结果
来更新
- 评估优势函数
批量演员-评论家算法 (batch actor-critic algorithm):
- 根据策略
得到一些样本
,包括所处状态、行动和收益。
- 使用样本收益之和拟合
。这一步样本可以做蒙特卡洛,也可以做自助法;拟合可以用最小二乘的目标函数。
- 评估优势函数
。
-
。
-
。
Actor-Critic算法(公式14)是低方差的(由于Critic的存在)、有偏差的(如果Critic表现地不好)
Policy Gradients方法(公式11)是高方差(由于用单样本采样来估计)、无偏差的
为了使结果无偏差、低方差的,我们可以结合上述两者的优点,算法如下:
在CS294-112的作业2中正是利用这个算法。
参考