范叶亮写智能体、模型和数据系统时,习惯先把定义和边界钉死。把「马尔科夫链蒙特卡洛方法和吉布斯采样」整理成可落地的中文笔记:问题在哪、默认做法会踩什么坑、该怎么选。原站导航和广告已去掉。
蒙特卡罗方法 (Monte Carlo, MC)
蒙特卡罗方法 (Monte Carlo) 也称为统计模拟方法,是于 20 世纪 40 年代由冯·诺伊曼,斯塔尼斯拉夫·乌拉姆和尼古拉斯·梅特罗波利斯在洛斯阿拉莫斯国家实验室为核武器计划工作时 (曼哈顿计划) 发明。因为乌拉姆的叔叔经常在摩纳哥的蒙特卡罗赌场输钱,该方法被定名为蒙特卡罗方法。蒙特卡罗方法是以概率为基础的方法,与之对应的是确定性算法。
蒙特卡罗方法最早可以追述到 18 世纪的 布丰投针问题 ,该方法通过一个平行且等距木纹铺成的地板,随意抛一支长度比木纹之间距离小的针,求针和其中一条木纹相交的概率的方法得出了一个求 $\pi$ 的蒙特卡罗方法。我们通过另一种方式使用蒙特卡罗方法计算圆周率 $\pi$ ,对于一个边长为 $2r$ 的正方形,其内切圆的半径即为 $r$ ,因此圆形的面积 $A_c$ 与正方形的面积 $A_s$ 的比值为
马尔科夫链 (Markov Chain, MC)
$$ \dfrac{A_c}{A_s} = \dfrac{\pi r^2}{\left(2r\right)^2} = \dfrac{\pi}{4} $$
如果我们在矩形内随机的生成均匀分布的点,则在圆内的点的个数的占比即为 $\dfrac{\pi}{4}$ ,因此通过模拟即可求出 $\pi$ 的近似值
马尔科夫链蒙特卡洛方法 (MCMC)
library ( tidyverse ) # 圆的中心点和半径 r <- 2 center_x <- r center_y <- r # 距离公式 distance <- function ( point_x , point_y , center_x , center_y ) { sqrt (( point_x – center_x ) ^2 + ( point_y – center_y ) ^2 ) } # 点生成器 points_generator <- function ( size ) { set.seed ( 112358 ) points_x <- runif ( size , min = 0 , max = 2 * r ) points_y <- runif ( size , min = 0 , max = 2 * r ) tibble ( x = points_x , y = points_y , in_cycle = ifelse ( distance ( points_x , poin
对于简单的分布 $p\left(x\right)$ ,我们可以相对容易的生成其样本,但对于复杂的分布或高维的分布,样本的生成就比较困难了 1 ,例如:
吉布斯采样 (Gibbs Sampling)
马尔可夫过程 (Markov Process) 是因俄国数学家安德雷·安德耶维齐·马尔可夫 (Андрей Андреевич Марков) 而得名一个随机过程,在该随机过程中,给定当前状态和过去所有状态的条件下,其下一个状态的条件概率分布仅依赖于当前状态,通常具备离散状态的马尔科夫过程称之为马尔科夫链 (Markov Chain)。因此,马尔科夫链可以理解为一个有限状态机,给定了当前状态为 $s_i$ 时,下一时刻状态为 $s_j$ 的概率,不同状态之间变换的概率称之为转移概率。下图描述了 3 个状态 $S_a, S_b, S_c$ 之间转换状态的马尔科夫链。
对于马尔科夫链,我们设 $X_t$ 表示 $t$ 时刻随机变量 $X$ 的取值,则马尔科夫链可以表示为
值得单独记下的点
- $p\left(x\right) = \dfrac{\tilde{p}\left(x\right)}{\int\tilde{p}\left(x\right) dx}$ ,其中 $\tilde{p}\left(x\right)$ 是可以计算的,而分母中的积分是无法显式计算的。
- $p\left(x, y\right)$ 是一个二维分布函数,函数本身计算很困难,但其条件分布 $p\left(x | y\right)$ 和 $p\left(y | x\right)$ 计算相对简单。对于高维情况 $p\left(\boldsymbol{x}\right)$ ,这种情况则更加明显。
- 非周期性,可以简单理解为如果一个状态有自环,或者与一个非周期的状态互通,则是非周期的。
- LDA 数学八卦,靳志辉,2013 ↩︎ ↩︎
落地时建议先做的 5 件事
- 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。
- 本地部署先算显存、延迟和失败回滚,不要只看能跑通一次。
- 多智能体只在单智能体触到上下文或专业边界时再拆。
- Token、微调和压缩都要有对照数字,避免口号式优化。
- 结论写成可检查清单:接口、超时、评测集、回滚版本。
和智能体产品怎么接
龙虾PRO做 OpenClaw 落地时,最该拿走的是「单智能体先做好工具和提示,再谈编排」。数字员工、技能市场和网关应共用同一套评测与权限,而不是各写一套角色人设。
本文侧重全链路风控方法论。落地时请用自身业务单据做回放验证,不要把示例阈值直接当生产策略。 相关:风控体检 · 方案资源
常见问题 FAQ
什么是AI智能系统?
「AI智能系统」可概括为:蒙特卡罗方法 (Monte Carlo) 也称为统计模拟方法,是于 20 世纪 40 年代由冯·诺伊曼,斯塔尼斯拉夫·乌拉姆和尼古拉斯·梅特罗波利斯在洛斯阿拉莫斯国家实验室为核武器计划工作时 (曼哈顿计划) 发明。因为乌拉姆的叔叔经常在摩纳哥的蒙特卡罗赌场输钱,该方法被定名为蒙特卡罗方法。蒙特卡罗方法是以概率为基础的方法,与之对应的是确定性算法。 本文从定义、方法与实践要点展开说明。
为什么要关注AI智能系统?
关注AI智能系统,是因为它直接影响效率、风险与可复制性。文中指出:蒙特卡罗方法 (Monte Carlo) 也称为统计模拟方法,是于 20 世纪 40 年代由冯·诺伊曼,斯塔尼斯拉夫·乌拉姆和尼古拉斯·梅特罗波利斯在洛斯阿拉莫斯国家实验室为核武器计划工作时 (曼哈顿计划) 发明。因为乌拉姆的叔叔经常在摩纳哥的蒙特卡罗赌场输钱,该方法被定名为蒙特卡罗方法。蒙特卡罗方法是以概率为基础的方法,与之对应的是确定性算法。
如何落地AI智能系统?有哪些关键步骤?
建议按以下路径推进AI智能系统:1) $p\left(x\right) = \dfrac{\tilde{p}\left(x\right)}{\int\tilde{p}\left(x\right) …;2) $p\left(x, y\right)$ 是一个二维分布函数,函数本身计算很困难,但其条件分布 $p\left(x | y\right)$ 和 $p\left…;3) 非周期性,可以简单理解为如果一个状态有自环,或者与一个非周期的状态互通,则是非周期的。;4) LDA 数学八卦,靳志辉,2013 ↩︎ ↩︎;5) 先写清任务能不能被自动验证:能验证的交给系统和评测,不能验证的留给人审。。细节见正文对应章节。
AI智能系统适合哪些人或团队?
AI智能系统更适合:产品/技术负责人、运营与增长团队、需要落地智能体或自动化的中小团队、关注「AI智能系统」方向的读者。若你只需要单次聊天式问答,可先读概念;若要上生产,请重点看步骤、权限与风控相关段落。
关于「蒙特卡罗方法 (Monte Carlo, MC)」,本文给出了什么结论?
在「蒙特卡罗方法 (Monte Carlo, MC)」部分,要点是:可以追述到 18 世纪的 布丰投针问题 ,该方法通过一个平行且等距木纹铺成的地板,随意抛一支长度比木纹之间距离小的针,求针和其中一条木纹相交的概率的方法得出了一个求 $\pi$ 的蒙特卡罗方法。我们通过另一种方式使用蒙特卡罗方法计算圆周率 $\pi$ ,对于一个边长为 $2r$ 的正方形,其内切圆的半径即为 $r$ ,因此圆形的面积 $A_c$ 与正方形的面积 $A_s$ 的比值为 马尔科夫链 (Markov Chain, MC) $$
关于「马尔科夫链 (Markov Chain, MC)」,本文给出了什么结论?
在「马尔科夫链 (Markov Chain, MC)」部分,要点是:арков) 而得名一个随机过程,在该随机过程中,给定当前状态和过去所有状态的条件下,其下一个状态的条件概率分布仅依赖于当前状态,通常具备离散状态的马尔科夫过程称之为马尔科夫链 (Markov Chain)。因此,马尔科夫链可以理解为一个有限状态机,给定了当前状态为 $s_i$ 时,下一时刻状态为 $s_j$ 的概率,不同状态之间变换的概率称之为转移概率。下图描述了 3 个状态 $S_a, S_b, S_c$ 之间转换状态的马尔科夫链。