文章目录
本文是强化学习入门系列的第七篇,介绍一种结合了策略梯度和时序差分的算法——Actor-Critic即演员评论家算法。
Actor-Critic
介绍
Actor-Critic即演员-评论家算法。分为两部分,Actor基于概率选动作(不用Epsilon-greedy了),Critic基于Actor的动作进行打分,Actor再根据Critic的得分修改选择动作的概率。
我们知道状态价值函数如下:
V π ( s , a ) = ∑ a π ( a ∣ s ) Q π ( s , a ) V_{\pi}(s,a)=\sum_a\pi(a|s)Q_{\pi}(s,a) Vπ(s,a)=a∑π(a∣s)Qπ(s,a)
策略函数 π \pi π 以及动作价值函数 Q π Q_{\pi} Qπ 可以分别用两个神经网络来表示,也是分别对应Actor与Critic。
对于Actor,用神经网络(即策略网络) π ( a ∣ s ; θ ) \pi(a|s;\theta) π(a∣s;θ) 来近似策略函数 π ( a ∣ s ) \pi(a|s) π(a∣s), θ \theta θ 是决定策略的参数。Actor的目标是选出最优的策略,使得状态价值函数最大。更新方法采用Policy-Gradient。然而在更新过程中 Q π Q_{\pi} Qπ 的值Actor是不知道的,所以需要Critic来更新这一值。
对于Critic,用神经网络(即价值网络 ) q ( s , a ; ω ) q(s,a;\omega) q(s,a;ω) 来近似价值函数 Q θ ( s , a ) Q_{\theta}(s,a) Qθ(s,a), ω \omega ω 是神经网络的参数。Critic的目标对Actor选出的动作打分,然后作为Actor的监督信号,指导Actor更新参数。更新方法采用时序差分(TD)方法。其实本质上就是在更新q-function。
如何训练?
我们来看看具体如何训练。实际上,这两个网络是同时训练的。步骤如下:
- 观察到初始状态 s t s_t st
- 从策略函数 π \pi π 随机采样动作 a t a_t at,进入到下一状态 s t + 1 s_{t+1}