[强化学习杂记] 从数学角度理解贝尔曼最优公式为什么是greedy?

贝尔曼最优公式

首先先让我们回顾一下贝尔曼最优公式的定义:

假设存在一个确定性策略 π ′ \pi' π′,在任意一个状态 s s s 下
V π ′ ( s ) ≥ V π ( s ) V^{\pi'}(s) \geq V^\pi(s) Vπ′(s)≥Vπ(s)

那么称策略 π ′ \pi' π′ 为贝尔曼方程的最优解。

了解以下定义之后,我们需要思考下面几个问题:

  1. 最优策略是否一定存在?
  2. 最优策略是否唯一?
  3. 最优策略是确定的还是非确定的?
  4. 如何求解最优策略?

在这里,我们先考虑状态价值下的贝尔曼最优公式:
v ∗ ( s ) = max ⁡ π r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) ⋅ v ( s ′ ) v^*(s) = \max_{\pi} \left r(s,a) + \\gamma \\sum_{s'} P(s'\|s,a) \\cdot v(s') \\right v∗(s)=πmaxr(s,a)+γs′∑P(s′∣s,a)⋅v(s′)

在之前的笔记中,我写的是
v ∗ ( s ) = max ⁡ a r ( s , a ) + γ ∑ s ′ P ( s ′ ∣ s , a ) ⋅ v ∗ ( s ′ ) v^*(s) = \max_{a} \left r(s,a) + \\gamma \\sum_{s'} P(s'\|s,a) \\cdot v\^\*(s') \\right v∗(s)=amaxr(s,a)+γs′∑P(s′∣s,a)⋅v∗(s′)

但这两者是等价的,后者描述的是在当前状态下我们选择最优动作然后按照最优策略行动

事实上,贝尔曼最优公式是一个 "包含两个未知数的方程",为了让读者更直观理解,不妨先看下这个例子:

对给定变量 x , a ∈ R x,a∈ R x,a∈R和方程:
x = max ⁡ a 2 x − 1 − a 2 − − − ① x = \max_{a} 2x - 1 -a\^2 ---① x=amax2x−1−a2−−−①

求解x的最大值。

首先,这个方程包含两个未知数。首先我们先固定 x x x , 显然, a 2 ≥ 0 a^2 \geq 0 a2≥0,因此,当且仅当 a = 0 时, ①式取最大值。于是方程变为求解
x = 2 x − 1 x = 2x -1 x=2x−1的最大值。于是我们可以求解得到 x = 1

类似的,观察贝尔曼最优公式,对给一个贝尔曼最优公式,我们首先也是需要求解出最优策略 π \pi π, 然后再求解出我们在该策略下所得到的最优状态价值(state value)。

假设对某一状态 s s s下,有以下动作价值 q 1 , q 2 , q 3 {q_1,q_2,q_3} q1,q2,q3,对该状态的下的分布函数,我们可以描述为:
max ⁡ c 1 , c 2 , c 3 c 1 ∗ q 1 + c 2 ∗ q 2 + c 3 ∗ q 3 \max_{c_1,c_2,c_3}c_1 * q_1 + c_2 * q_2 + c_3 * q_3 c1,c2,c3maxc1∗q1+c2∗q2+c3∗q3

其中, c 1 , c 2 , c 3 {c_1,c_2,c_3} c1,c2,c3分别为在状态s下执行各动作的概率,因此我们有
c 1 + c 2 + c 3 = 1 c_1 +c_2 + c_3 = 1 c1+c2+c3=1 , c 1 , c 2 , c 3 ≥ 0 c_1,c_2,c_3 \geq 0 c1,c2,c3≥0

如果我们要求解出该状态下的最优策略 π \pi π(也就是在该状态下让状态价值最大的那个策略),假设已知 q 3 ≥ q 1 , q 2 q_3 \geq q_1,q_2 q3≥q1,q2。则该状态下的最优策略应该为 c 3 ∗ = 1 , c 2 ∗ = c 1 ∗ = 0 c^*_3 = 1, c^*_2 = c^*_1 = 0 c3∗=1,c2∗=c1∗=0 。因为:
q 3 = ( c 1 + c 2 + c 3 ) q 3 = c 1 q 3 + c 2 q 3 + c 3 q 3 ≥ c 1 q 1 + c 2 q 2 + c 3 q 3 q_3 = (c_1 + c_2 + c_3) q_3 = c_1q_3+ c_2q_3 +c_3q_3 \geq c_1q_1 + c_2q_2 +c_3q_3 q3=(c1+c2+c3)q3=c1q3+c2q3+c3q3≥c1q1+c2q2+c3q3

参考
相关推荐
JieE2121 天前
LeetCode 101. 对称二叉树|JS 递归 + 迭代双解法,彻底搞懂镜像判断
javascript·算法
JieE2122 天前
LeetCode 56. 合并区间|超清晰 JS 图解思路,面试高频区间题
javascript·算法·面试
Jack203 天前
HarmonyOS开发中错误处理策略:网络异常统一处理
算法
小小杨树3 天前
读懂色彩:拍照调色不再难
算法·计算机视觉·配色
JieE2123 天前
LeetCode 226. 翻转二叉树|JS 递归超详细拆解,二叉树入门经典题
javascript·算法
JieE2123 天前
LeetCode 104. 二叉树的最大深度|递归思路超详细拆解
javascript·算法
vivo互联网技术3 天前
CVPR 2026 | 全新强化学习框架 BeautyGRPO:重塑真实人像
算法·大模型·cvpr·影像
Darling噜啦啦3 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
用户497863050734 天前
(一)小红的数组操作
算法·编程语言