李宏毅老师2020年深度学习系列讲座笔记9

瞎看吧。。。。至少做个笔记

https://www.bilibili.com/video/BV1UE411G78S?from=search&

终于要讲到A3C啦啦啦!

首先来复习一下Policy Gradient,考虑了discount factor和baseline,但是这个公式是非常unstable的,这是因为在s处进行a之后发生的事情也是有很高的随机性的,因此得到的G的varience很大,虽然我们如果能够重复进行足够多次可以避免像例子中取得G=100的情况,但是实际上我们sample是很少量次,因此我们很自然考虑能不能获得G的期望来代替我们sample的过程中求得的G。

李宏毅老师2020年深度学习系列讲座笔记9_第1张图片

因此我们也复习一下怎么去取这个“期望”:有V有Q,且由定义就知道的确是我们想要的“期望”。

李宏毅老师2020年深度学习系列讲座笔记9_第2张图片

我们可以知道下方Q的公式的确就是上面的求和,而b正如先前所讲的确定义就是在这个state的期望,因此红框中式子表示的就是“在s_t采取a_t之后得到reward的期望”减掉“在s_t本身的期望(也就是对不同action的不同结果综合到一起求得的均值)”、也就是在s_t上采取a_t的“好处”(可能本身这个state就很好,为了防止“站在风口上的猪”效应我们想要排除“风口”的影响-具体详细看之前笔记)。

李宏毅老师2020年深度学习系列讲座笔记9_第3张图片

但是这个方法可能有一个问题,就是Q和V需要两个network分别train,但是本身network就是有误差的,因此这样结果的误差就是两个network的和很大,而且两个network也很繁琐,因此我们只trainV,也是因为Q可以用r和V表示。Q表示成期望的式子是可以理解的,但是期望我们直接以sample的结果近似。因为V本身就是期望因此期望的E其实只针对r,说白了我们是把r(在s处执行a获得的reward)的期望以sample的结果近似替代了。看橙色下方的蓝紫色的式子也能想象,本身橙色式子(正如前一张ppt的笔记而言)就是“在s_t执行a_t得到的reward的期望超过在s_t执行各种action的均值的程度”,因此也很容易知道可以理解为“在s_t执行a_t得到的即时reward与s_t执行a_t到达的s_{t+1}的reward期望和s_t的差 之和”……嘶好像还不够人话——那就是本身做着一步得到的奖励和到达新地点和起点平均奖励的差值。

再具体一点——A3C论文里试出来就是这个公式效果最好= =

李宏毅老师2020年深度学习系列讲座笔记9_第4张图片

李宏毅老师2020年深度学习系列讲座笔记9_第5张图片

一些有关A2C的tips:

1. actor和critic的参数可以共享(但是不是完全共享,两个网络不是完全一样的)。2.各个action的output不会差别很大,我们希望能广泛地探索。

李宏毅老师2020年深度学习系列讲座笔记9_第6张图片

下面讲A3C啦!像卡卡西一样N多个影分身一起修行!

A3C具体流程:每一个worker(可能单独占一个CPU)首先copy参数,然后自己和环境做互动来update参数,为了获得比较diverse的data,每一个actor可能初始点差别很大,然后各个actor分别计算gradient,然后(上三角是typo应该是下三角)把gradient传回控制中心,然后覆盖之前的\theta。

李宏毅老师2020年深度学习系列讲座笔记9_第7张图片

再讲一个方法:

李宏毅老师2020年深度学习系列讲座笔记9_第8张图片

这种方法,不同于之前的actor-critic只告诉你是不是好,还会告诉你到底哪个好

具体方法如下:critic类比generater啥的,GANS是啥。。。。?不过这个步骤还是很易懂的

李宏毅老师2020年深度学习系列讲座笔记9_第9张图片

演算法:

李宏毅老师2020年深度学习系列讲座笔记9_第10张图片

更具体点,与Q-learning对比

找一个Q,在s通过Q加一点探索找一个a,然后得到r存到buffer里。每一步采样更新采样更新。

李宏毅老师2020年深度学习系列讲座笔记9_第11张图片

改成A3C……不止target Q还有target actor

李宏毅老师2020年深度学习系列讲座笔记9_第12张图片

reference:

李宏毅老师2020年深度学习系列讲座笔记9_第13张图片

你可能感兴趣的:(李宏毅老师2020年深度学习系列讲座笔记9)