范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「利用动态规划求解马尔可夫决策过程」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。
动态规划
本文为 《强化学习系列》 文章 本文内容主要参考自: 1.《强化学习》 1 2. CS234: Reinforcement Learning 2 3. UCL Course on RL 3
动态规划 (Dynamic Programming,DP)是一种用于解决具有如下两个特性问题的通用算法:
策略评估
在强化学习中,DP 的核心思想是使用价值函数来结构化地组织对最优策略的搜索。一旦得到了满足贝尔曼最优方程的价值函数 $v_*$ 或 $q_*$ ,得到最优策略就容易了。对于任意 $s \in \mathcal{S}$ (状态集合), $a \in \mathcal{A} \left(s\right)$ (动作集合)和 $s' \in \mathcal{S}^{+}$ (在分幕式任务下 $\mathcal{S}$ 加上一个终止状态),有:
$$ \begin{aligned} v_{*}(s) &=\max _{a} \mathbb{E}\left[R_{t+1}+\gamma v_{*}\left(S_{t+1}\right) | S_{t}=s, A_{t}=a\right] \\ &=\max _{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{*}\left(s^{\prime}\right)\right] \end{aligned} $$
策略改进
$$ \begin{aligned} q_{*}(s, a) &=\mathbb{E}\left[R_{t+1}+\gamma \max _{a^{\prime}} q_{*}\left(S_{t+1}, a^{\prime}\right) | S_{t}=s, A_{t}=a\right] \\ &\left.=\sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma \max _{a^{\prime}}\right] q_{*}\left(s^{\prime}, a^{\prime}\right)\right] \end{aligned} $$
对于一个策略 $\pi$ ,如何计算其状态价值函数 $v_{\pi}$ 被称为 策略评估 。对于任意 $s \in \mathcal{S}$ ,有:
策略迭代
$$ \begin{aligned} v_{\pi}(s) & \doteq \mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] \\ &=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma G_{t+1} | S_{t}=s\right] \\ &=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\pi}\left(S_{t+1}\right) | S_{t}=s\right] \\ &=\sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right] \end{aligned} $$
其中 $\pi \left(a | s\right)$ 表示在环境 $s$ 中智能体在策略 $\pi$ 下采取动作 $a$ 的概率。只要 $\gamma < 1$ 或者任何状态在 $\pi$ 下都能保证最后终止,则 $v_{\pi}$ 唯一存在。
价值迭代
考虑一个近似的价值函数序列 $v_0, v_1, \cdots$ ,从 $\mathcal{S}^{+}$ 映射到 $\mathbb{R}$ ,初始的近似值 $v_0$ 可以任意选取(除了终止状态必须为 0 外)。下一轮迭代的近似可以使用 $v_{\pi}$ 的贝尔曼方程进行更新,对于任意 $s \in \mathcal{S}$ 有:
$$ \begin{aligned} v_{k+1}(s) & \doteq \mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{k}\left(S_{t+1}\right) | S_{t}=s\right] \\ &=\sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{k}\left(s^{\prime}\right)\right] \end{aligned} $$
异步动态规划
显然, $v_k = v_{\pi}$ 是这个更新规则的一个不动点。在保证 $v_{\pi}$ 存在的条件下,序列 $\left\{v_k\right\}$ 在 $k \to \infty$ 时将会收敛到 $v_{\pi}$ ,这个算法称作 迭代策略评估 。
对于任意一个确定的策略 $\pi$ ,我们已经确定了它的价值函数 $v_{\pi}$ 。对于某个状态 $s$ ,我们想知道是否应该选择一个不同于给定的策略的动作 $a \neq \pi \left(s\right)$ 。如果从状态 $s$ 继续使用现有策略,则最后的结果就是 $v \left(s\right)$ ,但我们并不知道换成一个新策略后是得到更好的结果还是更坏的结果。一种解决方法是在状态 $s$ 选择动作 $a$ 后,继续遵循现有的策略 $\pi$ ,则这种方法的价值为:
值得单独记下的点
- CS234: Reinforcement Learning http://web.stanford.edu/class/cs234/index.html ↩︎
- UCL Course on RL https://www.davidsilver.uk/teaching ↩︎
落地时建议先做的 5 件事
- 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
- 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
- 多智能体只在单智能体触到上下文或专业边界时再拆。
- Token、微调和压缩都要有对照数字,避免口号式优化。
- 结论写成可检查清单:接口、超时、评测集、回滚版本。
和智能体产品怎么接
龙虾PRO做 OpenClaw 落地时,最该拿走的是「单智能体先做好工具和提示,再谈编排」。数字员工、技能市场和网关应共用同一套评测与权限,而不是各写一套角色人设。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
什么是AI智能系统?
「AI智能系统」可概括为:本文为 《强化学习系列》 文章 本文内容主要参考自: 1.《强化学习》 1 2. CS234: Reinforcement Learning 2 3. UCL Course on RL 3 本文从定义、方法与实践要点展开说明。
为什么要关注AI智能系统?
关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:本文为 《强化学习系列》 文章 本文内容主要参考自: 1.《强化学习》 1 2. CS234: Reinforcement Learning 2 3. UCL Course on RL 3
如何落地AI智能系统?有哪些关键步骤?
建议按以下路径推进AI智能系统:1) CS234: Reinforcement Learning http://web.stanford.edu/class/cs234/index.html ↩︎;2) UCL Course on RL https://www.davidsilver.uk/teaching ↩︎;3) 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。;4) 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。;5) 多智能体只在单智能体触到上下文或专业边界时再拆。。细节见正文对应章节。
AI智能系统适合哪些人或团队?
AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。
关于「动态规划」,本文给出了什么结论?
在「动态规划」部分,要点是:化学习系列》 文章 本文内容主要参考自: 1.《强化学习》 1 2. CS234: Reinforcement Learning 2 3. UCL Course on RL 3 动态规划 (Dynamic Programming,DP)是一种用于解决具有如下两个特性问题的通用算法: 策略评估 在强化学习中,DP 的核心思想是使用价值函数来结构化地组织对最优策略的搜索。一旦得到了满足贝尔曼最优方程的价值函数 $v_*$ 或 $q_*$ ,
关于「策略评估」,本文给出了什么结论?
在「策略评估」部分,要点是:+1}\right) | S_{t}=s, A_{t}=a\right] \\ &=\max _{a} \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{*}\left(s^{\prime}\right)\right] \end{aligned} $$ 策略改进 $$ \begin{aligned} q_{*}(s, a) &=\mathbb