Task04: 演员-评论家算法(Actor-Critic)

演员-评论家算法(Actor-Critic Algorithm)是一种结合策略梯度和时序差分学习的强化学习方法,其中:

  • 演员(Actor)是指策略函数 π θ ( a ∣ s ) \pi_{\theta}(a|s) πθ(as),即学习一个策略来得到尽量高的回报。
  • 评论家(Critic)是指值函数 V π ( s ) V^{\pi}(s) Vπ(s),对当前策略的值函数进行估计,即评估演员的好坏。
  • 借助于值函数,演员-评论家算法可以进行单步更新参数,不需要等到回合结束才进行更新。

Actor-Critic 算法又可以根据更新策略的不同,分为:

  • 如果去掉 Asynchronous,只有 Advantage Actor-Critic,就叫做 A2C。
  • 如果加了 Asynchronous,变成 Asynchronous Advantage Actor-Critic,就变成 A3C。

 

Previously on EasyRL

  • 这里我们引入 G 来表示累积奖励。
  • 但 G 这个值,其实是非常不稳定的。因为互动的过程本身是有随机性的,所以在某一个状态 s 采取某一个动作 a,然后计算累积奖励,每次算出来的结果都是不一样的,即 G 是一个随机变量。
  • 既然 G 是随机变量,我们就可以对 G 做采样,然后再采样结果的基础上,算出 G 的期望值—— E [ G t n ] E\left[G_{t}^{n}\right] E[Gtn]

然后简单回顾下两个关键知识点:

(1)Policy Gradient

在这里插入图片描述
 

(2)Q-learning

在这里插入图片描述
 

Actor-Critic

在这里插入图片描述
这里涉及到两个假设:

(1)用 E [ G t n ] E\left[G_{t}^{n}\right] E[Gtn] 来代表 ∑ t ′ = t T n γ t ′ − t r t ′ n \sum_{t^{\prime}=t}^{T_{n}} \gamma^{t^{\prime}-t} r_{t^{\prime}}^{n} t=tTnγttrtn

而根据 Q-function 的定义:

在某一个状态 s,采取某一个动作 a,假设 policy 就是 π \pi π 的情况下会得到的累积奖励的期望值有多大,而这个东西就是 G 的期望值。

即满足下面公式:

E [ G t n ] = Q π θ ( s t n , a t n ) E[G_t^n] = Q^{\pi_θ}(s_t^n,a_t^n) E[Gtn]=Qπθ(stn,atn)

(2)第二个假设是关于baseline的

  • 有不同的方法来表示 baseline,但一个常见的做法是用价值函数 V π θ ( s t n ) V^{\pi_{\theta}}\left(s_{t}^{n}\right) Vπθ(stn)
  • 根据价值函数定义,假设 policy 是 π \pi π,在某一个状态 s 一直互动到游戏结束,期望奖励(expected reward)有多大。

这里还有一个需要理解的关键点:
价值函数有两种不同表现形式:V 和 Q,两个的区别在于:

  • V π θ ( s t n ) V^{\pi_{\theta}}\left(s_{t}^{n}\right) Vπθ(stn) 初始已知条件只有状态s,不涉及动作 a ,衡量的只是不同 s 下的价值或奖励。
  • Q π θ ( s t n , a t n ) Q^{\pi_{\theta}}\left(s_{t}^{n}, a_{t}^{n}\right) Qπθ(stn,atn) 的初始已知条件既有状态 s 也有动作 a ,衡量的是在不同 s 和 不同 a 下的价值或奖励。
  • 所以,从数据分布角度理解, V π θ ( s t n ) V^{\pi_{\theta}}\left(s_{t}^{n}\right) Vπθ(stn) 其实是 Q π θ ( s t n , a t n ) Q^{\pi_{\theta}}\left(s_{t}^{n}, a_{t}^{n}\right) Qπθ(stn,atn) 的期望值 。
     

A2C—Advantage Actor-Critic

在这里插入图片描述
前面提到了,累计期望奖励 G 是每一步奖励的累加,具有随机性 —— Previously on EasyRL

A2C 是在 AC 的基础上,用 V V V 的期望值来表示 Q Q Q

Q π ( s t n , a t n ) = E [ r t n + V π ( s t + 1 n ) ] Q^\pi(s^n_t,a^n_t) = E[r^n_t + V^\pi(s^n_{t+1})] Qπ(stn,atn)=E[rtn+Vπ(st+1n)]

更进一步的,根据 A3C paper 里展示的实验结果,可以把外层求期望去掉:

Q π ( s t n , a t n ) = r t n + V π ( s t + 1 n ) Q^\pi(s^n_t,a^n_t) = r^n_t + V^\pi(s^n_{t+1}) Qπ(stn,atn)=rtn+Vπ(st+1n)

这样实际只需要估计一个网络就够了。

在这里插入图片描述
其中, r t n + V π ( s t + 1 n ) − V π ( s t n ) r_{t}^{n}+V^{\pi}\left(s_{t+1}^{n}\right)-V^{\pi}\left(s_{t}^{n}\right) rtn+Vπ(st+1n)Vπ(stn) 叫做 Advantage function。

在这里插入图片描述
关于 A2C 的两个Tips:
(1)Actor 网络 π ( s ) \pi(s) π(s) 、Critic 网络 V π ( s ) V^\pi(s) Vπ(s) ,这两个网络的输入都是 s,所以它们前面几个层(layer),其实是可以共享的。
(2)我们一样需要探索(exploration)的机制。在探索是我们引入 熵(entropy) 作为 π ( s ) \pi(s) π(s) 的正则项,目的是:

这个约束是希望这个分布的熵(entropy)不要太小,希望这个分布的熵可以大一点,也就是希望不同的动作它的被采用的概率平均一点。这样在测试的时候,它才会多尝试各种不同的动作,才会把这个环境探索的比较好,才会得到比较好的结果。

A3C—AsynchronousAdvantage Actor-Critic

在这里插入图片描述

Q: A3C 是怎么运作的?

A:

  • A3C 一开始有一个 global network。那我们刚才有讲过,其实 policy network 跟 value network 是绑(tie)在一起的,它们的前几个层会被绑一起。我们有一个 global network,它们有包含 policy 的部分和 value 的部分。
  • 假设 global network 的参数是 θ 1 \theta_1 θ1 ,你会开很多个 worker。每一个 worker 就用一张 CPU 去跑。比如你就开 8 个 worker,那你至少 8 张 CPU。每一个 worker 工作前都会 global network 的参数复制过来。
  • 接下来你就去跟环境做互动,每一个 actor 去跟环境做互动的时候,要收集到比较多样性的数据。举例来说,如果是走迷宫的话,可能每一个 actor 起始的位置都会不一样,这样它们才能够收集到比较多样性的数据。
  • 每一个 actor 跟环境做互动,互动完之后,你就会计算出梯度。计算出梯度以后,你要拿梯度去更新你的参数。你就计算一下你的梯度,然后用你的梯度去更新 global network 的参数。就是这个 worker 算出梯度以后,就把梯度传回给中央的控制中心,然后中央的控制中心就会拿这个梯度去更新原来的参数。
  • 注意,所有的 actor 都是平行跑的,每一个 actor 就是各做各的,不管彼此。所以每个人都是去要了一个参数以后,做完就把参数传回去。所以当第一个 worker 做完想要把参数传回去的时候,本来它要的参数是 θ 1 \theta_1 θ1 ,等它要把梯度传回去的时候。可能别人已经把原来的参数覆盖掉,变成 θ 2 \theta_2 θ2 了。但是没有关系,它一样会把这个梯度就覆盖过去就是了。Asynchronous actor-critic 就是这么做的,这个就是 A3C。

附上论文中的 A3C 算法:
在这里插入图片描述

Pathwise Derivative Policy Gradient

使用 Q-learning 解 continuous action 的方法,也是一种 Actor-Critic 方法。其会对于actor提供value最大的action,而不仅仅是提供某一个action的好坏程度。

针对策略优化问题,有两种不同的观点:

  • 一个观点是说,我们可以对原来的 Q-learning 加以改进,我们学习一个 actor 来决定动作以解决 arg max 不好解的问题。
  • 另外一个观点是,原来的 actor-critic 的问题是 critic 并没有给 actor 足够的信息,它只告诉它好或不好,没有告诉它说什么样叫好,那现在有新的方法可以直接告诉 actor 说,什么样叫做好。

第二个观点所描述的就是 pathwise derivative policy gradient 要解决的问题。
在这里插入图片描述

在这里插入图片描述
对 Q-learning 改造后的 Pathwise Derivative Policy Gradient 算法:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值