3.3 Actor-Critic方法: QAC,A2C

category
type
status
slug
date
summary
tags
password
icon
本系列为学习赵世钰老师的《强化学习的数学原理》所作的学习笔记.
Actor-Critic是指在值函数法和策略梯度法的基础上, 结合了基于策略和基于值两种方法的结构. 同时构造两者的拟合函数并迭代求解最优参数, Actor指策略更新, Critic指值更新.

3.3.1 QAC

上一节我们介绍了策略梯度法的策略函数参数的更新公式:
基于随机梯度, 用采样梯度代替期望:
之前我们介绍了, 如果由MC learning方法估计, 就是REINFORCE方法.
这里我们同时加入了值函数, 并且值函数由TD learning方法估计, 也就是Actor-Critic方法.
它利用了Sarsa方法中的方法, 来更新值函数的参数:
完整伪代码如图:
notion image

3.3.2 Advantage actor-critic (A2C)

3.3.2.1 定义

Advantage actor-critic在QAC的基础上, 在策略梯度中添加了一个标量函数, 来减少估计方差.

3.3.2.2 为什么有效

我们可以做以下推导, 来证明添加了 标量函数以后, 并不改变原来期望.
上面的式子说明添加项的期望是0, 因此不改变原始期望大小. 那么为什么它能够减少方差呢?
之所以有用,是因为它能够在我们使用样本, 来近似真实梯度时减少近似的方差. 如果我们把新的策略梯度定义为:
上式的真实期望是, 因为我们要用随机变量去近似真实梯度:
  • 如果策略梯度的方差很小, 那么我们随机采样结果会相对接近真实梯度期望.
  • 相反, 如果策略梯度的方差很大, 那么随机采样结果可能离真实期望较远.
虽然我们证明了添加了与期望无关, 但是它能够改变策略梯度的方差. 因此我们需要找到合适的使得方差尽量的小.
这里直接给出结果, 的最优解是(具体证明可以前往书中):
但是这个式子计算过于复杂, 我们做一定的简化, 去掉式子中的数值项, 它实际就是状态值:

3.3.2.3 算法过程

所以我们将状态值代入到A2C策略更新公式中, 并将偏差项定义为:
采用随机梯度法之后, 更新公式为:
如果用TD learning来估计它们, 就是A2C方法. 也可以用MC learning估计, 叫REINFORCE with a baseline.
我们可以看到偏差项中既有动作值函数和状态值函数, 如果同时拟合两个函数开销是比较大的. 用TD learning估计的优势是: 我们可以只用状态值来估计, 并用随机近似理论:
实际上, 这个式子就是TD error. 完整的算法伪代码如下:
notion image
 
上一篇
动手学控制理论
下一篇
端到端-理论与实战视频课程
Loading...