【强化学习】强化学习数学基础:Actor-Critic方法

Actor-Critic方法是一种结合策略梯度和值函数估计的强化学习算法。QAC是最简单的形式,通过策略更新和Sarsa+值函数近似进行。A2C通过引入基线来降低方差,利用优势函数进行优化。Off-policyActor-Critic通过重要性采样允许使用非目标策略的数据。最后,DPG介绍了确定性策略梯度,适用于连续动作空间。这些算法展示了强化学习中策略优化的不同策略和技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Actor-Critic方法是一个非常重要的policy gradient methods。这一类方法强调的一种整合策略梯度和value-based方法的结构。
什么是“ actor”和“ critic”?

  • “actor”表示policy update。它被称为actor是因为policies will be applied to take actions。
  • “critic”表示policy evaluation或者value estimation。它被称为critic是因为it criticizes the policy by evaluating it。

1. The simplest actor-critic(QAC)

重新回顾policy gradient的思想:
policy gradient的思想
我们可以从这个算法中看到“actor”和“critic”:

  • 这个算法对应actor!
  • 这个算法估计 q t ( s t , a t ) q_t(s_t,a_t) qt(st,at)对应ctitirc! q t q_t qt q π q_\pi qπ的近似

如何得到 q t ( s t , a t ) q_t(s_t, a_t) qt(st,at)?到目前为止,我们已经学习过两种方法来估计action values
两种方法来估计action values
现在给出第一个Actor-Critic算法:QAC
QAC
对上面算法做一些补充说明:

  • critic对应“Sarsa+value function approximation”
  • actor对应policy update algorithm.
  • 这个算法是on-policy,为什么呢?
    • 因为这个policy是stochastic,no need to use techniques like ϵ \epsilon ϵ-greedy
  • 这个特殊的actor-critic algorithm有时候也被称为Q Actor-Critic(QAC)。
  • 尽管简单,但是该算法揭示了actor-critic方法的核心思想。它可以被扩展到其他算法当中。

2. Advantage actor-critic(A2C)

A2C是QAC的一个推广。基本思想是它在reduce variance过程中引入了一个baseline。

Baseline invariance

首先介绍一个性质,the policy gradient is invariant to an additional baseline
Property
这里,the additional baseline b ( S ) b(S) b(S) S S S的一个scale function。

两个问题:

  1. 为什么引入一个新的b(S)它不会发生变化?
  2. 为什么要关注这个 b ( S ) b(S) b(S),它究竟有什么用?

第一个问题,为什么引入一个新的 b ( S ) b(S) b(S)公式仍然成立?这是因为
E
细节如下:
the detail
第二个问题,为什么这个baseline是有用的?首先把刚才的这个梯度 ∇ θ J ( θ ) = E [ X ] \nabla_\theta J(\theta)=\mathbb{E}[X] θJ(θ)=E[X],把这个 E [ X ] \mathbb{E}[X] E[X]写成一个新的变量 X X X
E(X)
我们有:

  • E [ X ] \mathbb{E}[X] E[X]对于 b ( S ) b(S) b(S)是invariant
  • 方差 v a r ( X ) var(X) var(X)对于 b ( S ) b(S) b(S)不是invariant
    • 为什么?因为 t r [ v a r ( X ) ] = E [ X T − X ] − x ˉ T x ˉ tr[var(X)]=\mathbb{E}[X^T-X]-\bar{x}^T\bar{x} tr[var(X)]=E[XTX]xˉTxˉ,并且
      E(X^TX)
      当b是非常巨大的时候,对于E的影响也是不一样的。

我们的目标:寻找一个最优的baseline b b b最小化 v a r ( X ) var(X) var(X)

  • Benefit:当我们使用一个随机采样去近似 E [ X ] \mathbb{E}[X] E[X]的时候,the estimation variance应当是较小的。

在REINFORCE和QAC算法中:

  • 没有baseline
  • 或者,我们可以说 b = 0 b=0 b=0,也就是not guaranteed to be a good baseline

能够最小化方差 v a r ( X ) var(X) var(X)的最优baseline应当是,对于任意 s ∈ S s\in \mathcal{S} sS,有
optimal baseline

  • 尽管这个baseline是最优的,但是它太复杂了
  • 所以,我们可以移除权重 ∣ ∣ ∇ θ ln ⁡ π ( A ∣ s , θ t ) ∣ ∣ 2 ||\nabla_\theta \ln \pi (A|s, \theta_t)||^2 ∣∣θlnπ(As,θt)2并且选择次优的baseline b ( s ) = E A ∼ π [ q ( s , A ) ] = v π ( s ) b(s)=\mathbb{E}_{A\sim \pi}[q(s,A)]=v_\pi(s) b(s)=EAπ[q(s,A)]=vπ(s)这是s的state value

The algorithm of advantage actor-critic

b ( s ) = v π ( s ) b(s)=v_\pi(s) b(s)=vπ(s)

  • the gradient-ascent algorithm是:
    the gradient-ascent algorithm
    其中 δ π ( S , A ) ≐ q π ( S , A ) − v π ( S ) \delta_\pi(S,A)\doteq q_\pi(S,A)-v_\pi(S) δπ(S,A)qπ(S,A)vπ(S)被称为advantage function(为什么称为advantage?其实它描述的是 q π q_\pi qπ v π v_\pi vπ之间的差,而 v π v_\pi vπ q π q_\pi qπ在某一个状态下它的一个平均值,那么如果对应的某一个action是比这个平均值要大,那就说明这个action肯定是比较好的,所以它是有一定的优势的)
  • 这个算法的stochastic version是:
    stochastic version

进一步地,算法被重新表示为:
algorithm
这里边其实想要强调的是:

  • the step size is proportional to the relative value δ t \delta_t δt,而不是absolute value q t q_t qt,这是更合理的。
  • 它能够平衡exploration和exploitation。

更进一步地,the advantage function是由TD error近似: δ t = q t ( s t , a t ) − v t ( s t ) → r t + 1 + γ v t ( s t + 1 ) − v t ( s t ) \delta_t=q_t(s_t,a_t)-v_t(s_t)\rightarrow r_{t+1}+\gamma v_t(s_{t+1})-v_t(s_t) δt=qt(st,at)vt(st)rt+1+γvt(st+1)vt(st)

  • 这种近似是reasonable,是因为:
    reasonable
  • 这么做的好处是:只需要一个神经网络去近似 v π ( s ) v_\pi(s) vπ(s),而不需要两个网络去近似 q π ( s , a ) q_\pi(s,a) qπ(s,a) v π ( s ) v_\pi(s) vπ(s)

这样,我们就得到了A2C这个算法:
在这里插入图片描述
这是一个on-policy的算法,因为策略 π ( θ t ) \pi(\theta_t) π(θt)是stochastic,不需要使用像 ϵ \epsilon ϵ-greedy的这些方法。

3. Off-policy actor-critic

Policy gradient是on-policy,因为the gradient 是 ∇ θ J ( θ ) = E S ∼ η , A ∼ π [ ∗ ] \nabla_\theta J(\theta )=\mathbb{E}_{S\sim \eta, A\sim \pi}[*] θJ(θ)=ESη,Aπ[]。那么我们是否可以把它转化为off-policy吗?当然是可以的,通过importance sampling就可以。the importance sampling technique is not limited to AC, but also to any algorithm that aims to estimate an expectation.

Illustrative examples

考虑一个随机变量 X ∈ X = { + 1 , − 1 } X\in \mathcal{X}=\{+1, -1\} XX={+1,1}。如果X的概率分布是 p 0 p_0 p0 p 0 ( X = + 1 ) = 0.5 , p 0 ( X = − 1 ) = 0.5 p_0(X=+1)=0.5, p_0(X=-1)=0.5 p0(X=+1)=0.5,p0(X=1)=0.5那么 X X X的expectation是 E X ∼ p 0 [ X ] = ( + 1 ) ⋅ 0.5 + ( − 1 ) ⋅ 0.5 = 0 \mathbb{E}_{X\sim p_0}[X]=(+1)\cdot 0.5+(-1)\cdot 0.5=0 EXp0[X]=(+1)0.5+(1)0.5=0
那么问题是:如何使用一些采样 { x i } \{x_i\} {xi}来估计 E [ X ] \mathbb{E}[X] E[X]?考虑两种情况:
第一种情况:
根据 p 0 p_0 p0生成采样 { x i } \{x_i\} {xi}: E [ x i ] = E [ X ] , v a r [ x i ] = v a r [ X ] \mathbb{E}[x_i]=\mathbb{E}[X], var[x_i]=var[X] E[xi]=E[X],var[xi]=var[X]然后,the average value可以收敛到the expectation: x ˉ = 1 n ∑ i = 1 n x i → E [ X ] , as  n → ∞ \bar{x}=\frac{1}{n}\sum_{i=1}^nx_i\rightarrow \mathbb{E}[X], \text{as } n\rightarrow \infty xˉ=n1i=1nxiE[X],as n因为 E [ x ˉ ] = E [ X ] , v a r [ x ˉ ] = 1 n v a r [ X ] \mathbb{E}[\bar{x}]=\mathbb{E}[X], var[\bar{x}]=\frac{1}{n}var[X] E[xˉ]=E[X],var[xˉ]=n1var[X]
Figure
第二种情况:
样本 { x i } \{x_i\} {xi}是根据另一个分布 p 1 p_1 p1生成的: p 1 ( X = + 1 ) = 0.8 , p 1 ( X = − 1 ) = 0.2 p_1(X=+1)=0.8, p_1(X=-1)=0.2 p1(X=+1)=0.8,p1(X=1)=0.2The expectation是 E X ∼ p 0 [ X ] = ( + 1 ) ⋅ 0.8 + ( − 1 ) ⋅ 0.2 = 0.6 \mathbb{E}_{X\sim p_0}[X]=(+1)\cdot 0.8+(-1)\cdot 0.2=0.6 EXp0[X]=(+1)0.8+(1)0.2=0.6如果我们使用样本的平均值,那么 x ˉ = ∑ i = 1 n 1 n x i → E X ∼ p 1 [ X ] = 0.6 ≠ E X ∼ p 0 [ X ] \bar{x}=\sum_{i=1}^n \frac{1}{n}x_i\rightarrow \mathbb{E}_{X\sim p_1}[X]=0.6\ne \mathbb{E}_{X\sim p_0}[X] xˉ=i=1nn1xiEXp1[X]=0.6=EXp0[X]
importance sampling
我们的问题是:是否可以使用 { x i } ∼ p 1 \{x_i\}\sim p_1 {xi}p1去估计 E X ∼ p 0 [ X ] \mathbb{E}_{X\sim p_0}[X] EXp0[X]

  • 为什么要这样做?因为我们想估计 E A ∼ π [ ∗ ] \mathbb{E}_{A\sim \pi}[*] EAπ[],其中 π \pi π是基于一个behavior policy β \beta β的采样数据的target policy
  • 如何做到这一点?
    • 我们不能直接使用 x ˉ \bar{x} xˉ x ˉ = E X ∼ p 1 [ X ] = 0.6 ≠ E X ∼ p 0 [ X ] \bar{x}=\mathbb{E}_{X\sim p_1}[X]=0.6\ne \mathbb{E}_{X\sim p_0}[X] xˉ=EXp1[X]=0.6=EXp0[X]
    • 我们可以通过importance sampling technique来实现。

Importance sampling

最核心的式子:
importance sampling
有了这个式子,我们可以估计 E X ∼ p 1 [ f ( X ) ] \mathbb{E}_{X\sim p_1}[f(X)] EXp1[f(X)]以达到估计 E X ∼ p 0 [ X ] \mathbb{E}_{X\sim p_0}[X] EXp0[X]的目的。
那么如何估计 E X ∼ p 1 [ f ( X ) ] \mathbb{E}_{X\sim p_1}[f(X)] EXp1[f(X)]呢?
大数定理
因此, f ˉ \bar{f} fˉ又可以用来近似 E X ∼ p 1 [ f ( X ) ] = E X ∼ p 0 [ X ] \mathbb{E}_{X\sim p_1}[f(X)]=\mathbb{E}_{X\sim p_0}[X] EXp1[f(X)]=EXp0[X]
终极算法

  • p 0 ( x i ) p 1 ( x i ) \frac{p_0(x_i)}{p_1(x_i)} p1(xi)p0(xi)被称为importance weight。
    • 如果 p 1 ( x 1 ) = p 0 ( x i ) p_1(x_1)=p_0(x_i) p1(x1)=p0(xi),那么importance weight是1,并且 f f f变为了 x ˉ \bar{x} xˉ
    • 如果 p 1 ( x 1 ) ≥ p 0 ( x i ) p_1(x_1)\ge p_0(x_i) p1(x1)p0(xi),那么 x i x_i xi p 0 p_0 p0下被采样到的概率比在 p 1 p_1 p1下大。这个importance weight ( > 1 ) (>1) (>1)可以强调这个采样的重要性。

也许会问:当 f = 1 n ∑ i = 1 n p 0 ( x i ) p 1 ( x i ) x i f=\frac{1}{n}\sum _{i=1}^n\frac{p_0(x_i)}{p_1(x_i)}x_i f=n1i=1np1(xi)p0(xi)xi,如果我知道 p 0 ( x ) p_0(x) p0(x),为什么没有直接计算the expectation?
回答:It is applicable to the case where it it easy to calculate p 0 ( x ) p_0(x) p0(x) given an x, 但是difficult to calculate the expectation。

  • 例如,在连续的情况下, p 0 ( x ) p_0(x) p0(x)的表达式是复杂的,或者没有 p 0 ( x ) p_0(x) p0(x)的表达式(例如, p 0 ( x ) p_0(x) p0(x)用一个神经网络表示)。

小结:如果 { x i } ∼ p 1 \{x_i\}\sim p_1 {xi}p1
summary
仿真

The theorem of off-policy policy gradient

就像上面的on-policy的情况,我们需要将policy gradient推导到off-policy的情况。

  • 假设 β \beta β是the behavior policy,用来生成experience samples
  • 我们的目标是用这些samples去更新一个target policy π \pi π,使其可以最小化下面的度量:
    minimize the metric
    其中 d β d_\beta dβ是在policy β \beta β条件下的stationary distribution。

这个目标函数对应的gradient就是下面的定理:
Off-policy gradient theorem

The algorithm of off-policy actor-critic

同样地,The off-policy policy gradient对于一个baseline b ( s ) b(s) b(s)也是invariant。

  • 具体地,我们有
    policy gradient
  • 为了减少估计方差,我们选择 b ( S ) = v π ( S ) b(S)=v_\pi(S) b(S)=vπ(S)作为baseline,然后得到:
    true gradient

对应的stochastic gradient-ascent algorithm
stochastic gradient-ascent algorithm
与on-policy case中的情况相似,
on-policy case
然后,这个算法变为
algorithm change
因此
hence
The algorithm of off-policy actor-critic
The algorithm of off-policy actor-critic

4. Deterministic actor-critic(DPG)

直到现在,用在policy gradient methods中的policies全部都是stochastic,因为对于所有的 ( s , a ) (s,a) (s,a) π ( a ∣ s , θ ) > 0 \pi(a|s,\theta)>0 π(as,θ)>0

那么,是否可以在policy gradient methods中使用deterministic policies呢?首先我们为什么要关心这个deterministic policies呢,因为它可以处理continuous action

表示一个策略的方式:

  • 直到现在,一个普通的策略的定义是 π ( a ∣ s , θ ) ∈ [ 0 , 1 ] \pi(a|s, \theta)\in[0,1] π(as,θ)[0,1],既可以是stochastic,也可以是deterministic。
  • 现在,deterministic policy可以直接定义为 a = μ ( s , θ ) ≐ μ ( s ) a=\mu (s,\theta)\doteq \mu(s) a=μ(s,θ)μ(s)
    • μ \mu μ是从KaTeX parse error: Undefined control sequence: \methcal at position 1: \̲m̲e̲t̲h̲c̲a̲l̲{S} A \mathcal{A} A的一个映射
    • μ \mu μ可以由,例如,输入是 s s s,输出是 a a a,参数是 θ \theta θ的神经网络表示
    • 可以将 μ ( s , θ ) \mu(s,\theta) μ(s,θ)简写为 μ ( s ) \mu(s) μ(s)

The theorem of deterministic policy gradient

之前得到的policy gradient theorem是merely valid for stochastic policies。如果policy必须是deterministic,那么必须derive a new policy gradient theorem

首先,我们要有一个目标函数。consider the metric of average state value in the discounted case: J ( θ ) = E [ v μ ( s ) ] = ∑ s ∈ S d 0 ( s ) v μ ( s ) J(\theta)=\mathbb{E}[v_\mu (s)]=\sum _{s\in \mathcal{S}}d_0(s)v_\mu(s) J(θ)=E[vμ(s)]=sSd0(s)vμ(s)其中 d 0 ( s ) d_0(s) d0(s)是满足 ∑ s ∈ S d 0 ( s ) = 1 \sum _{s\in \mathcal{S}}d_0(s)=1 sSd0(s)=1的一个概率分布。

  • d 0 d_0 d0 μ \mu μ没有什么关系。在这种情况下,容易计算梯度。
  • 在选择 d 0 d_0 d0上,有两种重要而又特殊的情况:
    • 第一种,只关心某一个状态,比如有一个任务,每次开始这个任务,都会从这个状态出发,那么其他状态无所谓,只要最大化从这个状态出发它的return就可以了。这个时候令 d 0 ( s 0 ) = 1 d_0(s_0)=1 d0(s0)=1 d 0 ( s ≠ s 0 ) = 0 d_0(s\ne s_0)=0 d0(s=s0)=0,其中 s 0 s_0 s0就是我们感兴趣的特殊出发状态。
    • 第二种, d 0 d_0 d0是一个stationary distribution of a behavior policy,that is different from the μ \mu μ

Theorem
这与之前stochastic case的一个重要的差异在于:

  • the gradient 没有涉及到action A A A的分布(为什么?因为这个action A最后会被替换成 μ ( S ) \mu(S) μ(S)
  • 因此,the deterministic policy gradient method是一个off-policy的算法。

The algorithm of deterministic actor-critic

基于policy gradient,the gradient-ascent algorithm就可以最大化 J ( θ ) J(\theta) J(θ)
J
因为 E \mathbb{E} E是不能被计算的,所以使用stochastic gradient来进行代替,对应的stochastic gradient-ascent algorithm就是:
stochastic gradient-ascent algorithm
相应对的deterministic actor-critic算法如下:
deterministic actor-critic
补充说明:

  • 这是一个off-policy implementation,其中the behavior policy β \beta β可能与 μ \mu μ不同
  • β \beta β也可以由 μ + noise \mu+\text{noise} μ+noise替代
  • 如何选取函数以表示 q ( s , a , w ) q(s,a,w) q(s,a,w)
    • Linear function q ( s , a , w ) = ϕ T ( s , a ) w q(s,a,w)=\phi^T(s,a)w q(s,a,w)=ϕT(s,a)w,其中 ϕ ( s , a ) \phi(s,a) ϕ(s,a)是feature vector。
    • Neural function:deep deterministic policy gradient (DDPG) method。

总结:
到此为止,我们已经学习完成了赵老师的《强化学习的数学原理》课程,虽然可能仍然存在这样那样的问题,但是只要我们继续坚持探索,坚持学习下去,现在所面临或者困惑的问题终将会被解决。后面我们将继续强化学习实践之旅!

内容来源

  1. 《强化学习的数学原理》 西湖大学工学院 赵世钰 教授主讲
  2. 《动手学强化学习》 俞勇 著
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值