结合了策略梯度和值函数的 Actor-Critic 算法则能同时兼顾两者的优点,并且甚至能缓解两种方法都很难解决的高方差问题。
基于价值的(或称评论员型,Critic), 基于策略的(或称 演员型)
高方差的来源
Q
?
(
s
t
,
a
t
)
Q_{\phi}(s_t, a_t)
Q??(st?,at?) 输入是状态和动作,估计当前的值。输出的是单个值。
?
\phi
? 表示 Critic 网络的参数。
Actor 策略函数 Policy
Critic 价值函数 Value Function
分别用两个模块来表示。
Actor 与环境交互采样,然后将采样的轨迹输入Critic 网络,Critic 网络估计出当前状态-动作对的价值,然后将价值作为 Actor 网络的梯度更新的依据。
为了进一步缓解高方差问题,引入一个优势函数
A
p
i
(
s
t
,
a
t
)
A^{pi}(s_t, a_t)
Api(st?,at?), 表示当前状态-动作相对于平均水平的优势。
原先的 A2C 算法相当于只有一个全局网络并持续与环境交互更新。而 A3C 算法中增加了多个进程,每一个进程都拥有一个独立的网络和环境以供交互,并且每个进程每隔一段时间都会将自己的参数同步到全局网络中,这样就能提高训练效率。