范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「无模型策略预测和控制 – 蒙特卡洛方法」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。

蒙特卡洛预测

本文为 《强化学习系列》 文章 本文内容主要参考自: 1.《强化学习》 1 2. CS234: Reinforcement Learning 2 3. UCL Course on RL 3

蒙特卡洛算法仅需要 经验 ,即从真实或者模拟的环境交互中采样得到的状态、动作、收益的序例。从 真实 经验中学习不需要关于环境动态变化规律的先验知识,却依然能够达到最优的行为;从 模拟 经验中学习尽管需要一个模型,但这个模型只需要能够生成状态转移的一些样本,而不需要像动态规划那样生成所有可能的转移概率分布。

蒙特卡洛控制

一个状态的价值是从该状态开始的期望回报,即未来的折扣收益累积值的期望。那么一个显而易见的方式是根据经验进行估计,即对所有经过这个状态之后产生的回报进行平均。随着越来越多的回报被观察到,平均值就会收敛到期望值,这就是蒙特卡洛算法的基本思想。

假设给定策略 $\pi$ 下途径状态 $s$ 的多幕数据,我们需要估计策略 $\pi$ 下状态 $s$ 的价值函数 $v_{\pi} \left(s\right)$ 。在同一幕中, $s$ 可能多次被访问,因此蒙特卡洛方法分为 首次访问型 MC 算法 和 每次访问型 MC 算法 ,两者的区别在于更新时是否校验 $S_t$ 已经在当前幕中出现过。以首次访问型 MC 预测算法为例,算法流程如下:

同轨策略和离轨策略

\begin{algorithm} \caption{首次访问型 MC 预测算法,用于估计 $V \approx v_{\pi}$} \begin{algorithmic} \REQUIRE 待评估策略 $\pi$ \STATE 对于所有 $s \in \mathcal{S}$,任意初始化 $V \left(s\right) \in \mathbb{R}$ \STATE 对于所有 $s \in \mathcal{S}$,$Returns \left(s\right) \gets \varnothing$ \WHILE{TRUE} \STATE 根据 $\pi$ 生成一幕序列 $S_0, A_0, R_1, \cdots, S_{T-1}, A_{T-1}, R_T$ \STATE $G \gets 0$ \FOR{$t \in T-1, T-2, \cdots, 0$} \STATE $G \gets \gamma G + R_{t+1}$ \IF{$S_t$ 在 $S_0, S_1, \cdots, S_

考虑如下策略,玩家在手牌点数之和小于 20 时均要牌,否则停牌。通过该策略多次模型二十一点游戏,并且计算每一个状态的回报的平均值。模拟结果如下:

同轨策略

有可用 A 的状态的估计会更不确定、不规律,因为这样的状态更加罕见。无论哪种情况,在大于约 500000 局游戏后,价值函数都能很好地近似。

如果无法得到环境的模型,那么计算动作的价值(“状态-动作”二元组的价值)比计算状态的价值更加有用。动作价值函数的策略评估的目标是估计 $q_{\pi} \left(s, a\right)$ ,即在策略 $\pi$ 下从状态 $s$ 采取动作 $a$ 的期望回报。只需将对状态的访问改为对“状态-动作”二元组的访问,蒙特卡洛算法就可以几乎和之前完全相同的方式解决该问题,唯一复杂之处在于一些“状态-动作”二元组可能永远不会被访问到。为了实现基于动作价值函数的策略评估,我们必须保证持续的试探。一种方式是将指定的“状态-动作”二元组作为起点开始一幕采样,同时保证所有“状态-动作”二元组都有非零的概率可以被选为起点。这样就保证了在采样的幕个数趋于无穷时,每一个“状态-动作”二元组都会被访问到无数次。我们把这种假设称为 试探性出发 。

离轨策略

策略改进的方法是在当前价值函数上贪心地选择动作。由于我们有动作价值函数,所以在贪心的时候完全不需要使用任何的模型信息。对于任意的一个动作价值函数 $q$ ,对应的贪心策略为:对于任意一个状态 $s \in \mathcal{S}$ ,必定选择对应动作价值函数最大的动作:

$$ \pi \left(s\right) = \arg\max_a q \left(s, a\right) $$

值得单独记下的点

  • CS234: Reinforcement Learning http://web.stanford.edu/class/cs234/index.html ↩︎
  • UCL Course on RL https://www.davidsilver.uk/teaching ↩︎

落地时建议先做的 5 件事

  1. 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
  2. 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
  3. 多智能体只在单智能体触到上下文或专业边界时再拆。
  4. Token、微调和压缩都要有对照数字,避免口号式优化。
  5. 结论写成可检查清单:接口、超时、评测集、回滚版本。

和智能体产品怎么接

龙虾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智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。

关于「蒙特卡洛预测」,本文给出了什么结论?

在「蒙特卡洛预测」部分,要点是:;从 模拟 经验中学习尽管需要一个模型,但这个模型只需要能够生成状态转移的一些样本,而不需要像动态规划那样生成所有可能的转移概率分布。 蒙特卡洛控制 一个状态的价值是从该状态开始的期望回报,即未来的折扣收益累积值的期望。那么一个显而易见的方式是根据经验进行估计,即对所有经过这个状态之后产生的回报进行平均。随着越来越多的回报被观察到,平均值就会收敛到期望值,这就是蒙特卡洛算法的基本思想。 假设给定策略 $\pi$ 下途径状态 $s$ 的多

关于「蒙特卡洛控制」,本文给出了什么结论?

在「蒙特卡洛控制」部分,要点是:rns \left(s\right) \gets \varnothing$ \WHILE{TRUE} \STATE 根据 $\pi$ 生成一幕序列 $S_0, A_0, R_1, \cdots, S_{T-1}, A_{T-1}, R_T$ \STATE $G \gets 0$ \FOR{$t \in T-1, T-2, \cdots, 0$} \STATE $G \gets \gamma G + R_{t+1}$ \IF{$S_t$