10.1-最简单的演员-评论性方法
本节将介绍最简单的Actor-Critic算法。我们可以推广式\((9.32)\)的策略梯度算法很容易得到该算法。
首先,让我们回顾一下。策略梯度方法的基本思想是通过最大化一个目标函数\(J(\theta)\)来得到最优策略。用于最大化\(J(\theta)\)的梯度上升算法是
其中\(\eta\)表是态分布(详见定理\(9.1\))。由于真实梯度是无法得到的,我们可采用随机梯度进行近似:
Note
把一个含有期望的算法,变为一个采样的不含期望的算法
该算法由上一章式\((9.32)\)给出。
方程\((10.2)\)具有重要意义,因为它清楚地展示了如何融合基于策略的方法和基于价值的方法。一方面,它是一个基于策略的算法,因为它直接更新策略参数\(\theta\)。另一方面,该方程的更新需要知道\(q_t(s_t, a_t)\),即对行动值 \(q_\pi(s_t, a_t)\)的估计量。因此,需要另一个基于价值的算法来得到\(q_t(s_t, a_t)\)。
截至目前,本书已探讨了两种估计行动值的方法:第一种是基于蒙特卡洛的方法,第二种是时序差分的方法。
-
若通过蒙特卡洛来估计\(q_\pi(s_t, a_t)\),则对应算法称为REINFORCE或蒙特卡洛策略梯度,该算法已在第\(9\)章介绍过了。
-
若通过时序差分方法来估计\(q_t(s_t, a_t)\),那么相应算法通常称为Actor-Critic。换句话说,当我们把基于时序差分的价值估计融入策略梯度方法时,就得到了Actor-Critic方法。
最简单的Actor-Critic算法流程如算法\(10.1\)所示。其中Actor对应于\((8.35)\)给出的Sarsa算法,用于估计策略对应的值。其中行动值通过函数\(q(s,a,\mathbf{w})\)表示;Actor则对应于\((10.2)\)给出的策略更新步骤。该算法有时被称为Q Actor-Critic(QAC)。虽然结构简单,但QAC揭示了Actor-Critic算法的核心思想,我们将在后续章节展示多种进阶算法都可以通过推广QAC得到。

算法\(10.1\):最简单的演员-评论性算法(QAC)