首先放视频链接李宏毅老师深度强化学习课程
Actor-Critic算法简介
这是一种policy based和value based方法的结合。首先复习一下加了discount和baseline的policy gradient算法:
∇Rˉθ≈N1n=1∑Nt=1∑Tn(t′=t∑Tnγt′−trt′n−b)∇logpθ(atn∣stn)
这里有一个问题,括号里的累计收益Gtn可能是一个很不稳定的随机变量,即state s采取action a后轨迹可能有很大不同。而我们sample的轨迹又不能是太多,可能就会相差很多。所以我们希望用期望值代替sample的值。这时候就需要引入value based方法。发现这个期望值刚好是Q值,即
E[Gtn]=Qπθ(stn,atn)
这时候baseline可以用state value functionVπθ(stn),这样括号里就变成Qπ(stn,atn)−Vπ(stn),看起来需要用两个网络来分别计算,现在考虑到:
Qπ(stn,atn)=E[rtn+Vπ(st+1n)]
我们为了简单,把期望去掉,得到Qπ(stn,atn)=rtn+Vπ(st+1n),这样原式就可以换成rtn+Vπ(st+1n)−Vπ(stn),这便是优势函数版的actor-critic,即Advantage Actor-Critic。
训练的过程是交互——更新V网络——更新policy——再互动
Some tips
- 两个网络的前半部分可以共享
- 输出larger entropy,即更不确定的action,更鼓励探索。
A3C
关键在于加了多个worker,具体的过程如下
- 子worker复制全局的parameters
- 交互采样
- 计算梯度
- 更新全局parameters
Pathwise Derivative Policy Gradient
一种特别的AC算法,这个算法在于critic部分不但能告诉好与不好,还能指出要采用哪一个action。也可以理解为利用actor解决最大化Q的这个optimization problem。

直观理解就是利用π输出一个action a,放入Q网络后,能后使Q值尽可能的大。

感觉最关键一点就是利用π(si)产生a,同时以最大化Q(si,π(si))为π的优化目标。