CoderXL's Blog

Back

课程笔记 →

Bellman Optimal Equation (BOE)

如何优化一个策略

根据2.贝尔曼公式中介绍的 action value,我们可以得出一种直观的优化策略的方式:
选择当前 action value 高的动作。

但这样做有一个问题:
当前的 action value 高,不一定代表这个动作就是更优的。因为 action value 的计算依赖于后续的策略,而后续策略可能不是最优的,导致当前“贪心”的选择也不是最优的。

不过,后续我们会看到,只要迭代多轮,策略会自动收敛到最优情况。其原理类似 Dijkstra 的松弛操作。

Optimality#

“更优性”定义:如果存在两个策略 π1,π2\pi_1, \pi_2,满足对任何状态 s∈Ss \in \mathcal{S},都有 vπ1(s)≥vπ2(s)v_{\pi_1}(s) \ge v_{\pi_2}(s),(其中 v(s)v(s) 为 ss 的 state value,)则称 π1\pi_1 优于 π2\pi_2.

“最优性”定义:如果策略 π∗\pi^* 满足对任何策略 π\pi,都有 π∗\pi^* 优于 π\pi,则称 π∗\pi^* 是最优的。

这个定义引出了一系列问题:

  • 最优策略是否一定存在?
  • 最优策略存在时,是否唯一?
  • 最优策略是 stochastic 还是 deterministic?
  • 如何得到最优策略?

这些问题可以通过研究 BOE 得到回答。


Definition#

v(s)=max⁡π∑aπ(a∣s)(∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)v(s′)),∀s∈S≜max⁡π∑aπ(a∣s)q(s,a),s∈S\begin{align*} v(s) &= \max_\pi \sum_a \pi(a \mid s)\left(\sum_r p(r \mid s,a)r + \gamma \sum_{s'}p(s' \mid s,a)v(s')\right),\quad \forall s \in \mathcal{S}\\ &\triangleq \max_\pi \sum_a \pi(a \mid s) q(s,a),\quad s \in \mathcal{S} \end{align*}

以上是贝尔曼最优公式的 elementwise 形式。它和贝尔曼公式的联系就是:将 vπv_\pi 替换为 vv,然后对所有 π\pi 取一个最大值。(将 vπv_\pi 替换为 vv,保证了最优性的递归。)

在 BOE 中,v(s)v(s) 不再与 π\pi 有关,而只与状态 ss、状态转移模型、奖励模型有关。

通过定义一些符号,我们可以写出 BOE 的 matrix-vector 形式:

v=max⁡π(rπ+γPπv)\boldsymbol{v} = \max_\pi (\boldsymbol{r}_\pi + \gamma \boldsymbol{P}_\pi \boldsymbol{v})

其中 [rπ]s≜∑aπ(a∣s)∑rp(r∣s,a)r[\boldsymbol{r}_\pi]_s \triangleq \sum_a \pi(a \mid s) \sum_r p(r \mid s,a)r,[Pπ]s,s′=p(s′∣s)≜∑aπ(a∣s)∑s′p(s′∣s,a)[\boldsymbol{P}_\pi]_{s,s'} = p(s' \mid s) \triangleq \sum_a \pi(a \mid s)\sum_{s'} p(s' \mid s,a).

关于向量 max⁡\max:最优策略为什么一定存在

这里读者可能对向量的 max⁡\max 感到疑惑。毕竟向量是不可比较大小的,除非采用范数大小来间接比较。

但是,多亏了 Markov Decision Process 中策略的「逐状态可分性(state-wise separability)」,我们可以把 max⁡\max 定义为逐状态的。换句话说,就是每个分量单独考虑最大值,结果的分量不必来自同一个向量。

这源于策略在不同状态的可组合性。假如策略 π1\pi_1 在状态 s1s_1 是最优的,策略 π2\pi_2 在状态 s2s_2 是最优的,那么可以构造策略 π3\pi_3,在 s1s_1 时采取 π1\pi_1 的行动,在 s2s_2 时采取 π2\pi_2 的行动。这个 π3\pi_3 是完全合法的,因而也存在于状态空间中。

也就是说,最优策略 π∗\pi^* 必然存在。

更深层次地,这反映了策略空间的类似笛卡尔积的结构,即各个分量之间的独立性。

值得指出的是,v∗v^* 是唯一存在的,但 π∗\pi^* 可能有多种。


Analysis#

由于上述不动点方程 v=max⁡π(rπ+γPπv)\boldsymbol{v} = \max_\pi (\boldsymbol{r}_\pi + \gamma \boldsymbol{P}_\pi \boldsymbol{v}) 右侧是一个压缩映射,根据压缩映射定理,解存在且唯一,并可以通过迭代算法收敛求解。

证明:f(v)=max⁡π(rπ+γPπv)f(v) = \max_\pi (\boldsymbol{r}_\pi + \gamma \boldsymbol{P}_\pi \boldsymbol{v}) 是一个压缩映射

只需证明 ∥f(v1)−f(v2)∥∞≤γ∥v1−v2∥∞,∣γ∣<1,∀v1,v2∈R∣S∣\| f(v_1) - f(v_2) \|_\infty \le \gamma \| v_1 - v_2\|_\infty,\quad |\gamma| < 1,\quad \forall v_1, v_2 \in \mathbb{R}^{\lvert \mathcal{S} \rvert}.

此处范数任取,因为有限维空间的范数等价(详见 ChatGPT - 理解范数等价 ↗),而取 L∞L_\infty 将会简化证明。

记 π1=arg⁡max⁡π(rπ+γPπv1), π2=arg⁡max⁡π(rπ+γPπv2)\pi_1 = \arg \max_\pi(\boldsymbol{r}_\pi + \gamma \boldsymbol{P}_\pi \boldsymbol{v}_1),\ \pi_2 = \arg \max_\pi(\boldsymbol{r}_\pi + \gamma \boldsymbol{P}_\pi \boldsymbol{v}_2),则有:

f(v1)=rπ1+γPπ1v1≥rπ2+γPπ2v1f(v2)=rπ2+γPπ2v2≥rπ1+γPπ1v2\begin{align*} f(v_1) = \boldsymbol{r}_{\pi_1} + \gamma \boldsymbol{P}_{\pi_1} \boldsymbol{v}_1 \ge \boldsymbol{r}_{\pi_2} + \gamma \boldsymbol{P}_{\pi_2} \boldsymbol{v}_1\\\\ f(v_2) = \boldsymbol{r}_{\pi_2} + \gamma \boldsymbol{P}_{\pi_2} \boldsymbol{v}_2 \ge \boldsymbol{r}_{\pi_1} + \gamma \boldsymbol{P}_{\pi_1} \boldsymbol{v}_2\\ \end{align*}

其中 ≥\ge 是逐元素比较算子。于是:

f(v1)−f(v2)=rπ1+γPπ1v1−(rπ2+γPπ2v2)≤rπ1+γPπ1v1−(rπ1+γPπ1v2)=γPπ1(v1−v2)\begin{align*} f(v_1) - f(v_2) &= \boldsymbol{r}_{\pi_1} + \gamma \boldsymbol{P}_{\pi_1} \boldsymbol{v}_1 - (\boldsymbol{r}_{\pi_2} + \gamma \boldsymbol{P}_{\pi_2} \boldsymbol{v}_2)\\ &\le \boldsymbol{r}_{\pi_1} + \gamma \boldsymbol{P}_{\pi_1} \boldsymbol{v}_1 - (\boldsymbol{r}_{\pi_1} + \gamma \boldsymbol{P}_{\pi_1} \boldsymbol{v}_2)\\ &= \gamma \boldsymbol{P}_{\pi_1}(\boldsymbol{v}_1 - \boldsymbol{v}_2) \end{align*}

同理可得 f(v2)−f(v1)≤γPπ2(v2−v1)f(v_2) - f(v_1) \le \gamma \boldsymbol{P}_{\pi_2}(\boldsymbol{v}_2 - \boldsymbol{v}_1). 结合起来即:

γPπ2(v1−v2)≤f(v1)−f(v2)≤γPπ1(v1−v2)\gamma \boldsymbol{P}_{\pi_2}(\boldsymbol{v}_1 - \boldsymbol{v}_2) \le f(v_1) - f(v_2) \le \gamma \boldsymbol{P}_{\pi_1}(\boldsymbol{v}_1 - \boldsymbol{v}_2)

不妨定义

z=max⁡{∣γPπ1(v1−v2)∣,∣γPπ2(v1−v2)∣}∈R∣S∣z = \max \left\{ \lvert\gamma \boldsymbol{P}_{\pi_1}(\boldsymbol{v}_1 - \boldsymbol{v}_2)\rvert, \lvert\gamma \boldsymbol{P}_{\pi_2}(\boldsymbol{v}_1 - \boldsymbol{v}_2)\rvert \right\} \in \mathbb{R}^{\lvert\mathcal{S}\rvert}

以上 ≤, max⁡, ∣⋅∣\le,\ \max,\ \lvert \cdot \rvert 均为逐元素算符。
已知 z>0z > 0,并且一方面,

−z≤f(v1)−f(v2)≤z-z \le f(v_1) - f(v_2) \le z

即

∣f(v1)−f(v2)∣≤z\lvert f(v_1) - f(v_2)\rvert \le z

这就导致了

∥f(v1)−f(v2)∥∞≤∥z∥∞\lVert f(v_1) - f(v_2) \rVert_\infty \le \lVert z \rVert_\infty

另一方面,记 piT, qiTp_i^T,\ q_i^T 分别是 Pπ1,Pπ2\boldsymbol{P}_{\pi_1}, \boldsymbol{P}_{\pi_2} 的第 ii 行,ziz_i 为 zz 的第 ii 个分量。

则有

zi=max⁡{∣γpiT(v1−v2)∣,∣γqiT(v1−v2)∣}z_i = \max \left\{ \lvert\gamma p_i^T(\boldsymbol{v}_1 - \boldsymbol{v}_2)\rvert, \lvert\gamma q_i^T(\boldsymbol{v}_1 - \boldsymbol{v}_2)\rvert \right\}

注意到 pip_i 的元素均非负且和为 11,有

∣γpiT(v1−v2)∣ ≤ γpiT∣v1−v2∣ ≤ γ∥v1−v2∥∞\lvert\gamma p_i^T (v_1 - v_2)\rvert \ \le\ \gamma p_i^T \lvert v_1 - v_2\rvert \ \le\ \gamma \lVert v_1 - v_2 \rVert_\infty

同理可得 ∣γqiT(v1−v2)∣ ≤ γ∥v1−v2∥∞\lvert\gamma q_i^T (v_1 - v_2)\rvert \ \le\ \gamma \lVert v_1 - v_2 \rVert_\infty,于是引出

∥z∥∞ = max⁡i∣zi∣ ≤ γ∥v1−v2∥∞\rVert z \rVert_\infty \ =\ \max_i \lvert z_i\rvert \ \le\ \gamma \lVert v_1 - v_2 \rVert_\infty

这就证明了

∥f(v1)−f(v2)∥∞ ≤ γ∥v1−v2∥∞\lVert f(v_1) - f(v_2) \rVert_\infty \ \le\ \gamma \lVert v_1 - v_2 \rVert_\infty

也即,f(v)f(v) 是压缩映射。


Solution#

使用迭代法求解 v\boldsymbol{v}:

vt+1(s)=max⁡π∑aπ(a∣s)qt(s,a),s∈Sv_{t+1}(s) = \max_\pi \sum_a \pi(a \mid s) q_t(s,a),\quad s \in \mathcal{S}

其中 qt(s,a)=∑rp(r∣s,a)r+γ∑s′p(s′∣s,a)vt(s′)\displaystyle{q_t(s,a) = \sum_r p(r \mid s,a)r + \gamma \sum_{s'}p(s' \mid s,a)v_t(s')}.

迭代时,等式右侧的 qtq_t 已知,只需要确定 π\pi 的取值。

而 ∀s∈S,∑aπ(a∣s)=1\forall s \in \mathcal{S},\quad \sum_a \pi(a \mid s) = 1,因此使得 ∑aπ(a∣s)qt(s,a)\sum_a \pi(a \mid s) q_t(s,a) 最大的 π\pi 的形式一定是:

π(a∣s)={1,a=arg⁡max⁡aqt(s,a),0,otherwise.\pi(a \mid s) = \begin{cases} 1, & a = \arg \max_{\mathscr{a}} q_t(s,\mathscr{a}),\\ 0, & \text{otherwise}. \end{cases}

这被称为 Greedy Optimal Policy.

该结论指出,实际求解时,我们不需要真正枚举所有 π\pi,而只需要对每个状态依次计算最佳动作(逐状态可分)。且必然存在 deterministic 的最佳动作。


Proof of Optimality#

可以证明,BOE 的解 v∗v^*,以及其对应的 π∗\pi^*,满足 ∀π, v∗=vπ∗≥vπ\forall \pi,\ v^* = v_{\pi^*} \ge v_\pi.
这就是说,通过 BOE 求解出来的 v∗v^* 及 π∗\pi^*,确实是最优的策略。

下面证明:

对任何 policy π\pi,有 vπ=rπ+γPπvπv_\pi = r_\pi + \gamma P_\pi v_\pi.

与此同时,对于 BOE 的解,有:

v∗=max⁡π(rπ+γPπv∗)=rπ∗+γPπ∗v∗≥rπ+γPπv∗v^* = \max_\pi(r_\pi + \gamma P_\pi v^*) = r_{\pi^*} + \gamma P_{\pi^*} v^* \ge r_{\pi} + \gamma P_{\pi} v^*

因此,

v∗−vπ≥γPπ(v∗−vπ)v^* - v_\pi \ge \gamma P_\pi (v^* - v_\pi)

由于 γ>0\gamma > 0,且 Pπn (∀n∈N+)P_\pi^n\ (\forall n \in \mathbb{N}^+) 为元素均不大于 11 的非负矩阵,故可两边同时左乘 γPπ\gamma P_\pi,得到不等式链:

v∗−vπ≥γPπ(v∗−vπ)≥γ2Pπ2(v∗−vπ)≥⋯≥γnPπn(v∗−vπ)v^* - v_\pi \ge \gamma P_\pi (v^* - v_\pi) \ge \gamma^2 P_\pi^2 (v^* - v_\pi) \ge \cdots \ge \gamma^n P_\pi^n (v^* - v_\pi)
∀x∈Rd, lim⁡n→∞Anx=0\forall x \in \mathbb{R}^d,\ \lim_{n \to \infty}A^n x = 0 的条件

对于一般地 ∀x∈Rd, lim⁡n→∞Anx=0\forall x \in \mathbb{R}^d,\ \lim_{n \to \infty}A^n x = 0,其充要条件为 AA 的所有特征值模长 ρ(A)≤1\rho(A) \le 1.

但是对于 stochastic 矩阵 PπnP_\pi^n,更简单地证明方法是使用 L∞L_\infty 范数。

这就可以导出:

v∗−vπ=lim⁡n→∞(v∗−vπ) ≥ lim⁡n→∞γnPπn(v∗−vπ)=0v^* - v_\pi = \lim_{n \to \infty} (v^* - v_\pi)\ \ge\ \lim_{n \to \infty} \gamma^n P_\pi^n (v^* - v_\pi) = 0

Optimal Policy Invariance#

考虑 MDP,其最优 state value 已求出:v∗=max⁡π∈Π(rπ+γPπv∗)v^* = \max_{\pi \in \Pi}\left(r_\pi + \gamma P_\pi v^*\right). 如果将所有奖励 rr 应用同一个仿射变换 r′=αr+β, α,β∈R, α>0r' = \alpha r + \beta,\ \alpha, \beta \in \mathbb{R},\ \alpha > 0,则新的最优 state value v′v' 也将由 v∗v^* 的一个仿射变换确定:

v′=αv∗+β1−γ1v' = \alpha v^* + {\beta \over 1 - \gamma}\boldsymbol{1}

由此可见,最优策略 π∗\pi^* 对仿射变换不敏感,变换前后最优策略还是最优策略。

直观理解较为简单,第一项表示「reward 增大几倍,state value 就增大几倍」;第二项表示「reward 统一增大一个数,state value 就统一增大其 discounted 之后的量」。

证明

新的 BOE 变为

v′=max⁡π(rπ′+γPπv′)=max⁡π(αrπ+β1+γPπv′)v' = \max_\pi (r'_\pi + \gamma P_\pi v') = \max_\pi (\alpha r_\pi + \beta \boldsymbol{1} + \gamma P_\pi v')

接下来先猜测 v′=αv+c1v' = \alpha v + c \boldsymbol{1} 的形式,并尝试进行正向变换或者直接带入化简。此处以正向变换为例。

v′α=max⁡π(rπ+βα1+γPπv′α)v′α=max⁡π(rπ+(11−γ−γ1−γ)βα1+γPπv′α)v′α−11−γβα1=max⁡π(rπ+γ(Pπv′α−11−γβα1))\begin{align*} {v' \over \alpha} &= \max_\pi\left(r_\pi + {\beta \over \alpha} \boldsymbol{1} + \gamma P_\pi {v' \over \alpha}\right)\\ {v' \over \alpha} &= \max_\pi\left(r_\pi + \left({1 \over 1 - \gamma} - {\gamma \over 1 - \gamma}\right){\beta \over \alpha} \boldsymbol{1} + \gamma P_\pi {v' \over \alpha}\right)\\ {v' \over \alpha} - {1 \over 1 - \gamma}{\beta \over \alpha} \boldsymbol{1} &= \max_\pi\left(r_\pi + \gamma\left( P_\pi {v' \over \alpha} - {1 \over 1 - \gamma}{\beta \over \alpha} \boldsymbol{1}\right)\right)\\ \end{align*}

又由于 Pπ1=1P_\pi \boldsymbol{1} = \boldsymbol{1},故

v′α−11−γβα1=max⁡π(rπ+γPπ(v′α−11−γβα1)){v' \over \alpha} - {1 \over 1 - \gamma}{\beta \over \alpha} \boldsymbol{1} = \max_\pi\left(r_\pi + \gamma P_\pi \left({v' \over \alpha} - {1 \over 1 - \gamma}{\beta \over \alpha} \boldsymbol{1}\right)\right)

这就是说,

v∗=v′α−11−γβα1v^* = {v' \over \alpha} - {1 \over 1 - \gamma}{\beta \over \alpha} \boldsymbol{1}

即

v′=αv∗+β1−γ1v' = \alpha v^* + {\beta \over 1 - \gamma}\boldsymbol{1}

最后,由于仿射变换不改变相对大小,适用于 v∗v^* 的最佳策略也适用于 v′v',因此最佳策略不变。


后记#

BOE 的目标和 RL 的目标有所区别。具体来说,

RL Objective: 最大化初始状态(或者初始状态分布)下的 expected return;

Bellman Optimality: 求所有状态下的 v∗v^*.

可以看到,BOE 的讨论更加一般化,并且最优策略的存在性有保证,因此理论上往往研究 BOE.

此外,目前为止涉及的 MDP 方法,是高度理想的模型,更像是随机过程 + 动态规划 + 线性代数。其假设状态空间、策略空间均有限,转移概率和奖励能被精确估计。这种条件下,问题的核心是解 Bellman 方程。

Comment seems to stuck. Try to refresh?✨