Actor-Critic
概述
MC策略梯度方法使用了收获作为状态价值的估计,它虽然是无偏的,但是噪声却比较大,也就是变异性(方差)较高。如果我们能够相对准确地估计状态价值,用它来指导策略更新,那么是不是会有更好的学习效果呢?这就是Actor-Critic策略梯度的主要思想。

Actor-Critic的字面意思是“演员-评论”,相当于演员在演戏的同时,有评论家指点,继而演员演得越来越好。即使用Critic来估计行为价值:
Qw(s,a)≈Qπθ(s,a)
基于Actor-Critic策略梯度学习分为两部分内容:
1.Critic:更新action-value函数的参数w。
2.Actor:按照Critic得到的价值,引导策略函数参数θ的更新。
∇θJ(θ)≈Eπθ[∇θlogπθ(s,a)Qw(s,a)]
Δθ=α∇θlogπθ(s,a)Qw(s,a)
可以看出,Critic做的事情其实是我们已经见过的:策略评估,他要告诉个体,在由参数θ确定的策略πθ到底表现得怎么样。
Compatible Function Approximation
近似策略梯度的方法引入了Bias,从而得到的策略梯度不一定能最后找到较好的解决方案,例如当近似价值函数引起状态重名的特征时。
幸运的是,如果我们小心设计近似函数,是可以避免引入bias的。该近似函数需要满足下面两个条件:
- 近似价值函数的梯度完全等同于策略函数对数的梯度,即不存在重名情况:
∇wQw(s,a)=∇θlogπθ(s,a)
ϵ=Eπθ[(Qπθ(s,a)−Qw(s,a))2]
符合这两个条件,则认为策略梯度是准确的,即:
∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Qw(s,a)]
Reducing Variance Using Baseline
除了bias之外,variance也是需要考虑的方面。
我们从策略梯度里抽出一个基准函数B(s),要求这一函数仅与状态有关,而与行为无关,因而不改变梯度本身。
Eπθ[∇θlogπθ(s,a)B(s)]=s∈S∑dπθ(s)a∈A∑∇θπθ(s,a)B(s)=s∈S∑dπθ(s)B(s)∇θa∈A∑πθ(s,a)=0
由于B(s)与行为无关,可以将其从针对行为a的求和中提出来,同时我们也可以把梯度从求和符号中提出来,而最后一个求和项:策略函数针对所有行为的求和,根据策略函数的定义,这里的结果肯定是1。而常数的梯度是0,因此总的结果等于0。
原则上,和行为无关的函数都可以作为B(s)。一个很好的B(s)就是基于当前状态的状态价值函数:Vπθ(s)。
所以,我们可以用一个advantage function来改写策略梯度:
Aπθ(s,a)=Qπθ(s,a)−Vπθ(s)
上式的现实意义在于评估当个体采取行为a离开s状态时,究竟比该状态s总体平均价值要好多少?
∇θJ(θ)=Eπθ[∇θlogπθ(s,a)Aπθ(s,a)]
advantage function可以明显减少状态价值的variance。(通俗的说法就是A的值有正有负,不像Q和V都是正值。)
因此,现在Critic的任务就改为估计advantage function。
在这种情况下,我们需要两个近似函数也就是两套参数,一套用来近似状态价值函数,一套用来近似行为价值函数。即:
Vv(s)≈Vπθ(s)
Qw(s,a)≈Qπθ(s,a)
A(s,a)=Qw(s,a)−Vv(s)
不过实际操作时,我们并不需要计算两个近似函数。这里以TD学习为例说明一下。
根据定义,TD误差δπθ可以根据真实的状态价值函数Vπθ(s)算出:
δπθ=r+γVπθ(s′)−Vπθ(s)
因为:
Eπθ[δπθ∣s,a]=Eπθ[r+γVπθ(s′)∣s,a]−Vπθ(s)=Qπθ(s,a)−Vπθ(s)=Aπθ(s,a)
可见δπθ就是Aπθ(s,a)的一个无偏估计。
因此,我们就可以使用TD误差来计算策略梯度:
∇θJ(θ)=Eπθ[∇θlogπθ(s,a)δπθ]
实际运用时,我们使用一个近似的TD误差,即用状态函数的近似函数来代替实际的状态函数:
δv=r+γVv(s′)−Vv(s)
这也就是说,我们只需要一套参数描述状态价值函数,而不再需要行为价值函数了。
上述方法不仅可用于TD方法,还可用于MC方法等,以下不加讨论的给出如下结论:
KaTeX parse error: No such environment: align at position 7: \begin{̲a̲l̲i̲g̲n̲}̲
\nabla_\theta …
参考
https://zhuanlan.zhihu.com/p/51652845
强化学习这都学不会的话,咳咳,你过来下!
https://mp.weixin.qq.com/s/ce9W3FbLdsqAEyvw6px_RA
Actor Critic——一个融合基于策略梯度和基于值优点的强化学习算法
Integrating Learning and Planning
前面的章节主要介绍了Model-Free RL,下面将讲一下Model-Based RL,主要包括如下内容:
-
如何从经历中直接学习Model。
-
如何基于模型来进行Planning(规划)。
-
如何将“学习”和“规划”整合起来。
|
上面两图形象的说明了Model-Free RL(左图)和Model-Based RL(右图)的差别。
Model-Based RL

上图比较好的说明了模型学习在整个RL学习中的位置和作用。
我们首先看一下Model的定义:Model是一个参数化(参数为η)的MDP<S, A, P, R>,其中假定:状态空间S和行为空间A是已知的,则M=<Pη,Rη>,其中Pη≈P,Rη≈R。则:
St+1∼Pη(St+1∣St,At)
Rt+1=Rη(Rt+1∣St,At)
通常我们需要如下的假设,即状态转移函数和奖励函数是条件独立的:
P[St+1,Rt+1∣St,At]=P[St+1∣St,At]P[Rt+1∣St,At]
Model Learning
所谓Model Learning是指:从experience{S1,A1,R2,…,ST},学习
S1,A1→R2,S2
S2,A2→R3,S3
…
ST−1,AT−1→RT,ST
这实际上是一个监督学习的问题。其中,s,a→r是一个回归问题(regression problem),而s,a→s′是一个密度估计问题(density estimation problem)。
选择一个损失函数,比如均方差,KL散度等,优化参数η来最小化经验损失(empirical loss)。所有监督学习相关的算法都可以用来解决上述两个问题。
根据使用的算法不同,可以有如下多种模型:查表式(Table lookup Model)、线性期望模型(Linear Expectation Model)、线性高斯模型(Linear Gaussian Model)、高斯决策模型(Gaussian Process Model)、和深信度神经网络模型(Deep Belief Network Model)等。
这里主要以查表模型来解释模型的构建。