[RL Note] 最优价值函数

1. 最优价值函数

  在前文中提到,最优策略共享相同的最优状态价值函数,定义为对于任意 $s \in \mathcal S$,

\begin{equation}
v_*(s) \doteq \max_\pi v_\pi(s) \tag{1}
\end{equation}

  类似地,最优的策略也共享相同的最优动作价值函数,记为 $q_*$,定义为对于任意 $s \in \mathcal S, a \in \mathcal A$,

\begin{equation}
q_*(s, a) \doteq \max_\pi q_\pi(s, a) \tag{2}
\end{equation}

式 $(2)$ 表示在状态 $s$ 下先选择动作 $a$,然后采取最优策略记性决策的期望回报,故可以用 $v_*$ 来表示 $q_*$,即

\begin{equation}
q_*(s, a) = \mathbb{E}[R_{t+1} + \gamma v_*(S_{t+1}) | S_t = a, A_t = a] \tag{3}
\end{equation}

2. 贝尔曼最优方程

  最优状态价值函数仍满足前文的贝尔曼方程,此时

\begin{equation}
v_*(s) = \sum_a \pi_*(a|s) \sum_{s’} \sum_{r} p(s’, r | s, a) \Big[ r + \gamma v_*(s’) \Big] \tag{4}
\end{equation}

最优策略 $\pi_*$ 在每个状态都会选择最优动作,即会以概率 $1$ 选择具有最大价值的动作,而选择其他动作的概率为 $0$,于是可以将式 $(4)$ 中的 $\sum\limits_a \pi_*(a|s)$ 替换为 $\max\limits_{a}$,即

\begin{equation}
v_*(s) = \max_{a} \sum_{s’} \sum_{r} p(s’, r | s, a) \Big[ r + \gamma v_*(s’) \Big] \tag{5}
\end{equation}

注意式 $(5)$ 中不再出现 $\pi_*$ 了,使用 $v_*(s’)$ 表示 $v_*(s)$。式 $(5)$ 称为 $v_*$ 的贝尔曼最优方程

  类似地,最优动作价值函数也满足前文的贝尔曼方程,此时

\begin{align}
q_*(s, a) = \sum_{s’} \sum_{r} p(s’, r | s, a) \Big[ r + \gamma \sum_{a’} \pi_*(a’|s’) q_* (s’, a’) \Big] \tag{6}
\end{align}

出于同样的原因,将式 $(6)$ 中的 $\sum\limits_a \pi_*(a’|s’)$ 替换为 $\max\limits_{a}$,得到

\begin{align}
q_*(s, a) = \sum_{s’} \sum_{r} p(s’, r | s, a) \Big[ r + \gamma \max_{a} q_* (s’, a’) \Big] \tag{7}
\end{align}

式 $(7)$ 称为 $q_*$ 的贝尔曼最优方程。

  在前文的例子中,我们通过贝尔曼方程构造线性方程组来计算状态价值。类似地,通过贝尔曼最优方程,可以构造最优状态价值的方程组。但由于贝尔曼最优方程中的 $\max$ 不是一个线性操作,因此无法使用线性代数中求解线性系统的方法来求解这一方程组,而需要一些其他的技巧。注意式 $(4)$ 中虽然没有 $\max$ 操作,但并不能用它来构造最优状态价值的方程组,因为其中的 $\pi_*$ 是未知的,如果知道了 $\pi_*$,强化学习的问题就解决了。

  通过贝尔曼最优方程求解得到 $v_*$ 后,就可以很容易地确定最优策略 $\pi_*$。