【李宏毅机器学习课程笔记】深度强化学习(四)—— Actor-Critic

本文回顾了强化学习中的关键方法,包括Policy Gradient、Q-Learning及其改进版本,并详细介绍了Actor-Critic算法及其优势版本A2C。同时探讨了A3C的并行训练策略和Pathwise Derivative Policy Gradient的独特之处。

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

Review——Policy Gradient

介绍A3C的方法之前先来复习一遍Policy Gradient,在Policy Gradient中我们在更新Policy的参数 θ \theta θ 的时候,我们使用了下面这个式子来计算梯度:

在这里插入图片描述
上面这个式子的意思是说,我们先让Agent与环境做互动,在 s t s_t st 这个状态下采取了 a t a_t at 这个action,可以计算出在 s t s_t st下采取 a t a_t at的概率。接下来计算从这个状态下采取了这个动作之后直到这个Episode结束得到的cumulated reward的值。 γ t ′ − t {\gamma}^{t'-t} γtt的意义在于,距离当前step比较久远的action对于这里的action space的影响是比较小的(0< γ \gamma γ<1)。b作为baseline,主要作用是希望括号当中的这一项有正有负,当括号内项为正时就调整 θ \theta θ使得在这个状态下采取这个action的几率增大,反之则减小。

拓展:现在我们令 G t n = ∑ t ′ = t T n γ t ′ − t r t ′ n (1) G_t^n = \sum\nolimits_{t' = t}^{{T_n}} {{\gamma ^{t' - t}}r_{t'}^n} \tag{1} Gtn=t=tTnγttrtn(1)
即让 G t n G_t^n Gtn来表示在状态 s t s_t st下采取了动作 a t a_t at后直到Episode结束,policy所得到的cumulated reward。
显然, G t n G_t^n Gtn是一个非常不稳定的值,因为在状态 s t s_t st下采取了动作 a t a_t at后会发生什么是完全随机的, G t n G_t^n Gtn可能是一个随机变量,服从某一个distribution,我们的每一个Episode都是在这个distribution里抽样,而这个随机变量的方差可能会非常的大。如果能用 G t n G_t^n Gtn的期望值来代替公式(1)中左边的项,会使得整个计算更为稳定。那么问题来了,我们能不能直接估测这个随机变量的期望值呢?
在这里插入图片描述

Review——Q-Learning

在上一节介绍Q-Learning方法的时候,我们介绍了两种Critic,即 V π ( s ) V^{\pi}(s) Vπ(s) Q π ( s , a ) Q^{\pi}(s,a) Qπ(s,a)

  • State value function V π ( s ) {V^\pi }(s) Vπ(s)
    这个function的输入是一个环境s,输出是当前 actor π \pi π 在此环境下进行互动直到当前Episode结束时获得的reward的期望值
  • State-action value function Q π ( s , a ) {Q^\pi }(s,a) Qπ(s,a)
    这个function的输入是一个环境s和一个动作a,输出是在环境s下强制采取了动作a之后当前 actor π \pi π 的cumulated reward的期望值。

Actor-Critic

观察这两种Critic的定义我们会发现,下面的这种Critic恰好满足: E [ G t n ] = Q π θ ( s t n , a t n ) (2) E[G_t^n]=Q^{\pi_\theta}(s_t^n,a_t^n) \tag{2} E[Gtn]=Qπθ(stn,atn)(2)
另外,我们用 V π θ ( s t n ) V^{\pi_\theta}(s_t^n) Vπθ(stn)来代替计算梯度的公式当中的 b(baseline),(当然b有很多代替的方式,这里提到的是最常见的一种),将计算梯度的式子中括号内的项变为
Q π θ ( s t n , a t n ) − V π θ ( s t n ) Q^{\pi_\theta}(s_t^n,a_t^n)-V^{\pi_\theta}(s_t^n) Qπθ(stn,atn)Vπθ(stn)
至此,我们就介绍完了Actor-Critic的思想。

Advantage Actor-Critic(A2C)

Actor-Critic有一项缺点就是它需要Estimate两个network(Q-network和V-network),成倍增加了network估测不准的风险。我们可以只估测一个network来降低风险,主要利用了以下这个式子
Q π ( s t n , a t n ) = r t n + V π ( s t + 1 n ) Q^\pi(s_t^n,a_t^n)=r_t^n+V^\pi(s_{t+1}^n) Qπ(stn,atn)=rtn+Vπ(st+1n)
(注:严格来说应该在右边加上期望值,这两端才能完全相等,这里直接令两端相等,虽然引入了 r t n r_t^n rtn这个随机变量带来的方差,但相比于 G t n G_t^n Gtn这个将所有step的reward加起来得到的随机变量的方差来说是微不足道的)
基于这些步骤,我们可以更新一下我们在文章开头用于计算梯度的那个式子:
在这里插入图片描述
Tips for Advantage Actor-Critic

  • Actor和Critic两个network的参数可以共用:
    我们知道A2C当中实际上要更新的是两个network,一个是策略本身 π ( s ) \pi(s) π(s),,另外一个是V-network V π ( s ) V^\pi(s) Vπ(s),由于这两个network的输入都是状态s,因而它们在最前面几层layer的处理是可以共用的(如使用CNN将image的pixel变成比较high-level的information等)。
    在这里插入图片描述
  • A2C的探索机制(Exploration)

Asynchronous Advantage Actor-Critic(A3C)

A3C具体操作由一个Global Network和若干个Worker来完成。每个Worker循环执行以下过程:将Global Network当中的参数copy过来,然后各自sample data,计算梯度,再将计算得到的梯度传回Global Network以更新参数。(对于某一个Worker来说,当它把梯度传回Global Network时,其参数可能已经被其他的Worker更新过,这个不需要关心,我们直接在当前的参数基础上更新就好)
在这里插入图片描述

Pathwise Derivative Policy Gradient

这种方法可以被认为是Q-Learning用于解决continous action问题的一种特别的解法(在上篇笔记当中我们提到过,一般的Q-Learning在解决continous action问题时会比较麻烦),也可以被认为是一种特别的Actor-Critic方法。
通俗的解释这种方法的特别之处就是说,它不只告诉你当前采取的action好或者不好,还会告诉你采取什么样的action才是最好的(得到最大的Q-value)

在一般的Q-learning当中,我们进行 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)的学习,这个network以一个状态s和一个动作a为输入,输出的是Q-function的值;而现在Pathwise Derivative Policy Gradient的方法是,再learn一个actor,这个actor的输入是一个状态s,输出是使 Q π ( s , a ) Q^\pi(s,a) Qπ(s,a)最大的那个action a,最后将这两个network接起来,成为一个更大的network。在这种方法中,Q-network中的参数会被固定住,调整的只有前半部分actor的参数,仍然使用gradient ascent方法来使Q-function的值最大化。
在这里插入图片描述
在这里插入图片描述
在这种方法中,Q-learning方法当中的一些机制(如Exploration、Replay Buffer)均可继续沿用。

现在,我们在上一节中Q-learning的演算法的基础上做几处更改,得到Pathwise Derivative Policy Gradient的演算法。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值