2020李宏毅学习笔记——70 RL Advanced Version 6.Actor-Critic

Asynchronous Advantage Actor-Critic (A3C)
回顾 – Policy Gradient
先对policy gradient进行回顾,只需要记得几个要点:

给定某个state采取某个action的概率
考虑到行动输出的概率和为一,为了保证reward越大的有更大的概率被sample到,需要加上baseline b
考虑到当先action对过去的reward没有影响,从当前时间点开始进行reward的累加
考虑到时间越久,当前action对后期reward的影响越小,添加折扣系数γ
由于无法sample到如此多的G,因此我们引入了Q-learning
在这里插入图片描述
回顾 – Q-Learning
Q-learning部分主要记住以下几个点:
状态价值函数 Vπ(s)(state value function,表示当使用某个actor时,观察到state之后预计会得到的累积reward)

状态行动价值函数Qπ(s,a)(state-action value function,当使用某个actor与环境互动时,在某个state采取某个action预计会得到的累积reward)在这里插入图片描述
Actor-Critic
在policy gradient和Q-learning的基础上,我们引入actor-critic。
将两者结合,即用Q-learning当中的V和Q来替换policy gradient公式里面的累积reward和baseline,分别表示为Qπθ(snt,ant)

在这里插入图片描述
但是,在这个时候我们需要估计两个network,Q和V,这会导致整个模型的结果更加不稳定,因此引入advantage actor-critic
在这里插入图片描述
Advantage Actor-Critic
相比于前面所介绍的计算G的方法,即用Q减去V,这里引入对G的另外一个估计,将Q表示为下一个状态的V加上当前状态下获得的reward变化值r,这样做的好处是降低了模型整体方差(类似于MC到TD)

实验表明,这个方法是对Q值的最好估计。

在这里插入图片描述
算法:
先用一个actor π \piπ 与环境做互动,利用TD或MC的方法学习V值,根据学到的V值对actor进行更新π→π′
,替换原来的π \piπ 之后继续与环境互动,重复上述步骤。
在这里插入图片描述
注意:
actor π(s)和 critic V 网络的前几层的参数是可以共享的,因为他们具有相同的输入s,在对s的处理上可以共享该部分参数。

使用output entropy 作为 π(s) 的正则项的时候,最好用较大的entropy(与之前的课笔记中所述的exploration方法类似,避免总sample到reward较大的几个action)

Asynchronous Advantage Actor-Critic (A3C)
效率来源: multi-workers

方法步骤:

每个worker都会copy全局参数
每个worker都与环境进行互动,并得到sample data
计算梯度
更新全局参数
Pathwise Derivative Policy Gradient
另外一种使用 Critic 的方式:
对于最原始的actor-critic,critic只会告诉actor,某个行动是好的还是坏的。而这里引入的Pathwise Derivative Policy Gradient不仅仅会告诉actor某一个action的好坏,还会告诉actor应该采取哪一个action(使用以下训练出来的actor告知)

即训练一个actor π ,如果给这个actor输入state,会返回一个使得Q值最大的action a
在这里插入图片描述
然后将这个actor 返回的action和state一起输入到一个固定的Q中,计算出来的Q值一定会增大,然后使用梯度上升更新actor,重复上述步骤。

在这里插入图片描述
以上网络实际上是两个网络的叠加,类似于conditional GAN,其中actor是generator,Q是discriminator在这里插入图片描述
算法在这里插入图片描述
当前采取的action由训练的actor决定
Q是用state s以及$ \hat{\pi}$
采取的action来计算的
不仅需要更新Q,也需要更新 π \piπ.
由于该方法与GAN类似,可以根据已有的研究进行两个领域的研究方向迁移,为之后的研究提供一定的思路。

在这里插入图片描述