[RL Note] “行动器-评判器”方法

1. “行动器-评判器”方法

  直接学习策略参数与学习价值函数并不是互斥的,二者可以结合起来:参数化策略作为行动器(actor)选择动作,价值函数作为评判器(critic)对行动器选择的动作进行评价。

  对于策略参数的更新公式

\begin{equation}
\boldsymbol{\mathrm{\theta}}_{t+1} \doteq \boldsymbol{\mathrm{\theta}}_t + \alpha \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) q_{\pi}(S_t, A_t) \tag{1}
\end{equation}

其中的 $q_{\pi}(S_t, A_t)$ 并不是在一开始就已知的,如使用 TD 进行逼近,此时式 $(1)$ 变为

\begin{equation}
\boldsymbol{\mathrm{\theta}}_{t+1} \doteq \boldsymbol{\mathrm{\theta}}_t + \alpha \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) [R_{t+1} – \overline{R} + \hat{v}(S_{t+1}, \boldsymbol{\mathrm{w}})] \tag{2}
\end{equation}

其中 $\hat{v}$ 是通过学习得到的价值函数,在这里担任评判器,可以在学习过程中给出立即的反馈。

  式 $(7)$ 可以进一步改进为

\begin{equation}
\boldsymbol{\mathrm{\theta}}_{t+1} \doteq \boldsymbol{\mathrm{\theta}}_t + \alpha \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) [R_{t+1} – \overline{R} + \hat{v}(S_{t+1}, \boldsymbol{\mathrm{w}}) – \hat{v}(S_t, \boldsymbol{\mathrm{w}})] \tag{3}
\end{equation}

其中 $\hat{v}(S_t, \boldsymbol{\mathrm{w}})$ 称为基线(baseline),式中 $R_{t+1} – \overline{R} + \hat{v}(S_{t+1}, \boldsymbol{\mathrm{w}}) – \hat{v}(S_t, \boldsymbol{\mathrm{w}})$ 一项实际上是 TD 误差。计算式 $(8)$ 中的更新值的期望

\begin{align}
&\mathbb{E}\Big[ \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) [R_{t+1} – \overline{R} + \hat{v}(S_{t+1}, \boldsymbol{\mathrm{w}}) – \hat{v}(S_t, \boldsymbol{\mathrm{w}})] | S_t = s \Big] \\
&= \mathbb{E}\Big[ \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) [R_{t+1} – \overline{R} + \hat{v}(S_{t+1}, \boldsymbol{\mathrm{w}})] | S_t = s \Big] – \mathbb{E}\Big[ \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) \hat{v}(S_t, \boldsymbol{\mathrm{w}}) | S_t = s\Big]
\end{align}

上式中的第二项 $\mathbb{E}\Big[ \nabla \ln \pi(A_t|S_t, \boldsymbol{\mathrm{\theta}}_t) \hat{v}(S_t, \boldsymbol{\mathrm{w}}) | S_t = s\Big]$ 为零,因此式 $(2)$ 和式 $(1)$ 中更新的期望实际上是一样的。式 $(2)$ 中减去基线的目的是减小更新的方差,以提高学习速度。

  上述“行动器-评判器”方法可以表示为图 1 的形式。行动器根据策略选择了一个动作后,环境给出一个收益;评判器通过 TD 误差比较当前行动的收益和当前状态的平均收益:如果 TD 误差是正数,则说明选择该动作会带来高于预期的收益,进而更新策略以更多地选择该动作;反之,如果 TD 误差是负数,则会更新策略来减少选择该动作的概率。行动器和评判器都在不断地交互中学习,行动器不断调整策略来符合评判器的期望,评判器不断地更新价值函数来评价行动器的策略。

图 1

2. “行动器-评判器” 和 Softmax 策略

  上面介绍的“行动器-评判器”中,评判器负责策略评估,使用半梯度 TD 对价值函数的权重进行更新

\begin{equation}
\boldsymbol{\mathrm{w}} \leftarrow \boldsymbol{\mathrm{w}} + \alpha^{\boldsymbol{\mathrm{w}}} \delta \nabla \hat{v}(S, \boldsymbol{\mathrm{w}}) \tag{4}
\end{equation}

行动器负责改进策略,使用通过评判器得到的 TD 误差对参数化策略的参数进行更新

\begin{equation}
\boldsymbol{\mathrm{\theta}} \leftarrow \boldsymbol{\mathrm{\theta}} + \alpha^{\boldsymbol{\mathrm{\theta}}} \delta \nabla \ln\pi(A|S, \boldsymbol{\mathrm{\theta}}) \tag{5}
\end{equation}

  策略参数化的一个常用方法是使用 Softmax 策略

\begin{equation}
\pi(a|s, \boldsymbol{\mathrm{\theta}}) \doteq \frac{e^{h(s, a, \boldsymbol{\mathrm{\theta}})}}{\sum\limits_{b \in \mathcal{A} } e^{h(s, b, \boldsymbol{\mathrm{\theta}})}} \tag{6}
\end{equation}

Softmax 策略给出了在各个状态下选择每个动作的概率,可以据此选择动作。注意策略的参数包含状态,不同的状态可以具有不同的动作分布。

  对于线性方法,式 $(4)$ 中的 $\hat{v}(S, \boldsymbol{\mathrm{w}})$ 定义为

\begin{equation}
\hat{v}(S, \boldsymbol{\mathrm{w}}) \doteq \boldsymbol{\mathrm{w}}^\mathsf{T} \boldsymbol{\mathrm{x}}(s) \tag{7}
\end{equation}

易知 $\nabla \hat{v}(S, \boldsymbol{\mathrm{w}}) = \boldsymbol{\mathrm{x}}(s)$,于是式 $(4)$ 的更新公式可以写成

\begin{equation}
\boldsymbol{\mathrm{w}} \leftarrow \boldsymbol{\mathrm{w}} + \alpha^{\boldsymbol{\mathrm{w}}} \delta \boldsymbol{\mathrm{x}}(s) \tag{8}
\end{equation}

  同样对于线性方法,式 $(6)$ 中的 $h(s, a, \boldsymbol{\mathrm{\theta}})$ 定义为

\begin{equation}
h(s, a, \boldsymbol{\mathrm{\theta}}) \doteq \boldsymbol{\mathrm{\theta}} ^\mathsf{T} \boldsymbol{\mathrm{x}}_h(s, a) \tag{9}
\end{equation}

其中 $\boldsymbol{\mathrm{x}}_h(s, a)$ 为表示状态和动作的特征,可以通过为每个动作叠加状态特征的方式得到。此时可以计算式 $(5)$ 中的梯度 $\nabla \ln\pi(A|S, \boldsymbol{\mathrm{\theta}})$ 为

\begin{equation}
\nabla \ln\pi(A|S, \boldsymbol{\mathrm{\theta}}) = \boldsymbol{\mathrm{x}}_h(s, a) – \sum_{b}\pi(b|s, \boldsymbol{\mathrm{\theta}}) \boldsymbol{\mathrm{x}}_h(s, b)
\end{equation}

将上式代入式 $(5)$,就可以得到 Softmax 策略的更新公式。