《强化学习的数学原理》【学习笔记03】最优状态值与贝尔曼最优方程:如何找到最好的策略

举报
yd_269763035 发表于 2026/10/17 00:24:48 2026/10/17
【摘要】 《强化学习的数学原理》赵世钰 著 · 第 3 章第 2 章告诉我们如何评估一个给定策略的好坏(算状态值)。本章更进一步:如何找到最优策略?答案藏在贝尔曼最优方程中。 一、如何改进策略?书中用一个启发式例子引入:给定一个策略 π\piπ,我们算出了它的状态值 vπ(s)v_\pi(s)vπ​(s)。能不能找到一个更好的策略 π′\pi'π′,使得 vπ′(s)≥vπ(s)v_{\pi'}(s)...

《强化学习的数学原理》赵世钰 著 · 第 3 章

第 2 章告诉我们如何评估一个给定策略的好坏(算状态值)。本章更进一步:如何找到最优策略?答案藏在贝尔曼最优方程中。


一、如何改进策略?

书中用一个启发式例子引入:给定一个策略 π\pi,我们算出了它的状态值 vπ(s)v_\pi(s)。能不能找到一个更好的策略 π′\pi',使得 vπ′(s)≥vπ(s)v_{\pi'}(s) \geq v_\pi(s) 对所有 ss 成立?

答案是:可以!而且方法很自然——贪心地选择动作值最大的动作。

但这引出一个问题:什么是最优?最优策略存在吗?唯一吗?


二、最优状态值和最优策略

定义

最优状态值 定义为所有策略中状态值的上确界:

v∗(s)=max⁡πvπ(s),∀s∈Sv^*(s) = \max_\pi v_\pi(s), \quad \forall s \in \mathcal{S}

最优策略 π∗\pi^* 是达到这个上确界的策略:

vπ∗(s)=v∗(s),∀s∈Sv_{\pi^*}(s) = v^*(s), \quad \forall s \in \mathcal{S}

关键定理

  • 最优策略一定存在(对于有限 MDP)
  • 最优策略不唯一,但所有最优策略的状态值都相同(都等于 v∗v^*)
  • 至少存在一个确定性最优策略

为什么至少有一个确定性最优策略? 直觉上,如果某个随机策略是最优的,那么它以正概率选择的每个动作都必须是最优的(否则可以去掉次优动作得到更好的策略)。所以总可以构造一个确定性策略达到同样的最优值。


三、贝尔曼最优方程(Bellman Optimality Equation)

把第 2 章的贝尔曼方程中的 ∑aπ(a∣s)\sum_a \pi(a|s) 替换为 max⁡a\max_a,就得到贝尔曼最优方程:

v∗(s)=max⁡a∑s′p(s′∣s,a)[r(s,a,s′)+γv∗(s′)],∀sv^*(s) = \max_a \sum_{s'} p(s'|s,a) \big[ r(s,a,s') + \gamma v^*(s') \big], \quad \forall s

用动作值表示更简洁:

v∗(s)=max⁡aq∗(s,a)v^*(s) = \max_a q^*(s, a)

其中:

q∗(s,a)=∑s′p(s′∣s,a)[r(s,a,s′)+γv∗(s′)]q^*(s, a) = \sum_{s'} p(s'|s,a) \big[ r(s,a,s') + \gamma v^*(s') \big]

与普通贝尔曼方程的对比

贝尔曼方程 贝尔曼最优方程
对象 给定策略 π\pi 的状态值 vπv_\pi 最优状态值 v∗v^*
方程 $v_\pi(s) = \sum_a \pi(a s) \sum_{s’} p(\cdot)[r + \gamma v_\pi(s’)]$
性质 线性方程 非线性方程(因为有 max)
求解 直接求逆 需要迭代

关键区别:max 操作使得贝尔曼最优方程是非线性的,不能像第 2 章那样直接求矩阵逆。这引出了第 4 章的迭代算法。


四、矩阵-向量形式

v∗=max⁡a(ra+γPav∗)v^* = \max_a (r_a + \gamma P_a v^*)

这里 max⁡\max 是逐元素取最大。rar_a 和 PaP_a 分别是动作 aa 对应的奖励向量和转移矩阵。


五、压缩映射定理

这是本章的数学核心,用于证明贝尔曼最优方程有唯一解。

压缩映射的定义

映射 f:X→Xf: \mathcal{X} \to \mathcal{X} 是压缩映射,如果存在 α∈[0,1)\alpha \in [0, 1) 使得:

∥f(x1)−f(x2)∥≤α∥x1−x2∥,∀x1,x2\|f(x_1) - f(x_2)\| \leq \alpha \|x_1 - x_2\|, \quad \forall x_1, x_2

Banach 不动点定理

如果 ff 是完备度量空间上的压缩映射,则:

  1. ff 有唯一不动点 x∗x^*:f(x∗)=x∗f(x^*) = x^*
  2. 从任意初始点出发,迭代 xk+1=f(xk)x_{k+1} = f(x_k) 收敛到 x∗x^*
  3. 收敛速度:∥xk−x∗∥≤αk1−α∥x1−x0∥\|x_k - x^*\| \leq \frac{\alpha^k}{1-\alpha} \|x_1 - x_0\|

应用到贝尔曼最优方程

定义算子 TT:

[Tv](s)=max⁡a∑s′p(s′∣s,a)[r(s,a,s′)+γv(s′)][Tv](s) = \max_a \sum_{s'} p(s'|s,a) [r(s,a,s') + \gamma v(s')]

可以证明 TT 是 γ\gamma-压缩映射(在无穷范数下)。因此:

  • 贝尔曼最优方程有唯一解 v∗v^*
  • 迭代 vk+1=Tvkv_{k+1} = T v_k 收敛到 v∗v^*

为什么压缩因子是 γ\gamma? 因为折扣因子 γ<1\gamma < 1,每次迭代把差异缩小 γ\gamma 倍。这就是折扣因子除了"经济意义"之外的数学意义——它保证了压缩性,从而保证了收敛。


六、从贝尔曼最优方程得到最优策略

一旦求出 v∗v^*,最优策略就是:

π∗(s)=arg⁡max⁡aq∗(s,a)=arg⁡max⁡a∑s′p(s′∣s,a)[r(s,a,s′)+γv∗(s′)]\pi^*(s) = \arg\max_a q^*(s, a) = \arg\max_a \sum_{s'} p(s'|s,a) [r(s,a,s') + \gamma v^*(s')]

即在每个状态选择动作值最大的动作。


七、影响最优策略的因素

书中详细讨论了哪些因素影响最优策略:

1. 折扣因子 γ\gamma

γ\gamma 越大,越重视长期回报;γ\gamma 越小,越短视。

极端情况:

  • γ=0\gamma = 0:只看即时奖励(贪心策略)
  • γ→1\gamma \to 1:重视所有未来奖励(可能不收敛)

2. 奖励分布

奖励的绝对值不重要,相对值才重要。把所有奖励加一个常数 cc,最优策略不变(但状态值会变)。

3. 状态转移概率

环境动力学直接决定哪些策略可行、哪些策略好。

实践启示:在工程中,如果你发现最优策略"不合理",首先检查奖励函数的设计——这是最常出错的地方。


八、总结

概念 公式 作用
最优状态值 v∗(s)=max⁡πvπ(s)v^*(s) = \max_\pi v_\pi(s) 所有策略能达到的最好值
贝尔曼最优方程 v∗=max⁡a(ra+γPav∗)v^* = \max_a (r_a + \gamma P_a v^*) v∗v^* 满足的方程
压缩映射 ∣Tv1−Tv2∣∞≤γ∣v1−v2∣∞|Tv_1 - Tv_2|_\infty \leq \gamma |v_1 - v_2|_\infty 保证解存在唯一且迭代收敛
最优策略 π∗(s)=arg⁡max⁡aq∗(s,a)\pi^*(s) = \arg\max_a q^*(s,a) 从 v∗v^* 导出
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。