李宏毅机器学习系列-强化学习之Actor-Critic

回顾策略梯度

回顾下我们前面讲的基于策略的梯度是怎么样的,中间会有一项是优势函数,从看到s时采取a的时刻开始到游戏结束的累计奖励 G t n G_t ^n Gtn,但是因为游戏的奖励可能是随机的,所以这个值通常是不稳定的,所以可以看成一个随机变量:
在这里插入图片描述
既然是随机变量,我们又不能采样到足够的样本,如果采样到不好的结果,那训练的效果也会不好,那我们只能想办法去估计他的期望了,那怎么拿这个期望值去代替采样的值呢,就要用到基于价值的方法:
在这里插入图片描述

回顾Q-Learning

我们两种价值函数,一种是 V π ( s ) V^\pi(s) Vπ(s),表示在某个s状态下,用actor π \pi π去跟环境做互动,直到游戏结束的累计奖励的期望。另一种是 Q π ( s , a ) Q^\pi(s,a) Qπ(sa),表示在某个s状态下,强制采取行为a之后,用actor π \pi π去跟环境做互动,一直到游戏结束的累计奖励的期望。做的时候可以用TD或者MC,TD比较稳,MC比较精确:
在这里插入图片描述

Actor-Critic

其实我们的G的期望,就是Q函数,我们的b也就是基线,可以用 V π ( s t n ) V^\pi(s_t ^n) Vπ(stn),其实这个就是均值,这样的话,红色的这两项我们就可以替换了:
在这里插入图片描述
然后我们就需要估计这个了,但是这个是两个网络,就会出现估计不准的风险,而且是两倍的,所以我们能不能改成一个呢:
在这里插入图片描述
我们的Q可以写成这样,也就是Q的定义,因为奖励可能是随机的,所以取期望:
在这里插入图片描述
然后我们可以把期望给去掉,为什么要去掉呢,貌似是这样做效果比较好,或许是单个奖励的随机性也不影响累计的奖励:
在这里插入图片描述
然后代入得:
在这里插入图片描述
这样只要估计一个网络就行了,但是引入了奖励的随机变量,但是这个奖励的方差不会很大,比以前的累计的奖励的方差要小。

所以这个训练的过程就变这样了,只是把刚才的式子代进去:
在这里插入图片描述

Actor-Critic小贴士

我们要训练两个网络,一个是actor采取动作的,一个是critic,评判V的,我们可以共享前面几层的参数,因为前面几层基本都是游戏画面,用CNN提取特征的操作可以是一样的。另外,我们要给actor的输出加一个限制,希望他的熵大一点,这样输出行为分布可以平均点,也就是每个行为都可能被采用,也就是探索机制:
在这里插入图片描述

Asynchronous Advantage Actor-Critic (A3C)

其实就是分布式并行训练的思想,因为单个可能训练比较慢,看过火影的都知道,鸣人可以用影分身来进行加速训练:
在这里插入图片描述
具体就是这么个结构,开始每台机器可以用同一个参数,然后每台机器都采集样本,计算梯度,然后去更新全局的参数,因为是并行的,所以只要把梯度上传就行,不用管现在的参数是什么,只管上传梯度即可:
在这里插入图片描述

Pathwise Derivative Policy Gradient

这个新方法可以解决连续行为的问题,而且他不仅可以知道行为好不好,还能告诉你怎么样的是好的行为,我们可以用训练一个actor来接maxQ的问题,就好像是GAN里面的判别器,用来判别好不好:
在这里插入图片描述
我们实际做的时候是训练一个actor网路和Q网络连接起来,我们希望actor生成的a输入Q,使得Q越大越好,训练的时候我们会先固定住Q,然后训练actor,跟GAN训练的步骤类似:
在这里插入图片描述
他的算法过程图就是这样,在Q-Learning里面的技巧都可以用上:
在这里插入图片描述
然后看看具体的算法细节,这个是我们Q-Learning的算法:
在这里插入图片描述
我们经过改良后的:
在这里插入图片描述
主要是四点:
1.本来我们采取的a是基于Q的,现在因为有了actor π \pi π,所以改成基于 π \pi π
2.本来我们是max的问题,改成 π \pi π来解决,但是我们在训练 π \pi π的时候,也需要有固定的目标网络 π ′ \pi' π,所以也就是可以用 π ′ \pi' π生成a来解决,所以改了。
3.我们的目标是让 π \pi π生成的a使得Q最大。
4.我们也要训练多步之后把目标的网络的参数改成训练的。

总结

本篇主要介绍强化学习的actor-critic的方法,结合了前面我们所学的梯度策略和累计奖励期望,介绍了A2C,A3C,还介绍了一种新方法的解决连续行为的Q函数最大问题。

好了,今天就到这里了,希望对学习理解有帮助,大神看见勿喷,仅为自己的学习理解,能力有限,请多包涵,图片来自李宏毅课件,侵删。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值