跳转至

Monte Carlo Simulation

Monte Carlo 方法的核心在于:把一个难以直接求解的问题,转化为对随机变量或随机过程的统计估计。它最适合处理这样的对象:

\[ \langle O\rangle=\sum_s O(s)\pi(s) \]

或者连续变量形式

\[ \langle O\rangle=\int O(x)\pi(x)\,dx. \]

困难通常来自三件事:状态空间太大,权重函数太复杂,归一化常数不可知。Monte Carlo 的威力就在于,它不试图枚举整个空间,而是让样本自动集中到最重要的区域。

从随机过程到高维积分

如果我们能产生一组服从分布 \(\pi(x)\) 的样本

\[ x_1,x_2,\cdots,x_N\sim \pi(x), \]

那么观测量的期望可以用样本平均估计:

\[ \langle O\rangle \simeq \frac{1}{N}\sum_{i=1}^N O(x_i). \]

这是 Monte Carlo 的第一层含义:用随机抽样近似积分。它的误差通常按

\[ {\rm Err}\sim \frac{1}{\sqrt{N}} \]

下降。这个公式可以从中心极限定理理解。若样本近似独立,单个观测量的方差为

\[ {\rm Var}(O)=\sigma_O^2, \]

那么样本平均

\[ \bar O=\frac1N\sum_{i=1}^N O(x_i) \]

的方差是

\[ {\rm Var}(\bar O)=\frac{\sigma_O^2}{N}. \]

所以标准误差就是

\[ \delta \bar O\sim \frac{\sigma_O}{\sqrt N}. \]

这背后也有一个随机行走图像:独立噪声的正负涨落会互相抵消,累计涨落的典型大小只像

\[ \sqrt N \]

那样增长;再除以样本数 \(N\),平均值的误差就变成 \(1/\sqrt N\)。这个收敛速度看起来不快,但它对维度不显式恶化。对于高维积分,传统网格方法会遇到维数灾难;Monte Carlo 虽然有统计噪声,却仍然能在很高维空间中给出可控估计。

物理中的配分函数

统计物理里最典型的问题是配分函数

\[ Z=\sum_s W(s), \]

以及平衡态平均

\[ \langle O\rangle=\frac{1}{Z}\sum_s O(s)W(s). \]

这里 \(s\) 是构型,\(W(s)\) 是构型权重。例如经典 Ising 模型中

\[ W(s)=e^{-\mathcal H(s)}. \]

真正困难的是 \(Z\):它包含所有构型的求和,系统稍大就不可能直接计算。Monte Carlo 最重要的优势是,不需要知道 \(Z\),只要能构造一个以

\[ \pi(s)=\frac{W(s)}{Z} \]

为平稳分布的随机过程,就可以从样本中估计物理量。Metropolis 算法正是利用权重比

\[ \frac{W(s')}{W(s)} \]

来决定是否接受新构型,因此归一化常数自动消掉。

从样本到物理

在统计物理中,Monte Carlo 的任务可以概括为三步。

第一步,先给定一个模型。这个模型通常由哈密顿量、作用量或概率权重定义,例如

\[ W(s)=e^{-\beta\mathcal H(s)}. \]

等价地说,我们给定了配分函数

\[ Z=\sum_s W(s), \]

也就给定了目标分布

\[ \pi(s)=\frac{W(s)}{Z}. \]

第二步,构造一个以 \(\pi(s)\) 为平稳分布的随机过程。Metropolis、heat bath、cluster、worm、loop 等算法的核心差别,不在于目标分布不同,而在于它们如何更高效地在构型空间中移动。只要随机过程满足正确的平衡条件和遍历性,长时间产生的构型就可以看作来自目标分布的样本:

\[ s_1,s_2,\cdots,s_N\sim \pi(s). \]

第三步,从这些样本中提取物理量。统计物理真正关心的通常不是单个构型,而是样本平均:

\[ \langle O\rangle \simeq \frac1N\sum_{i=1}^NO(s_i). \]

这些平均值可以用来研究不同相的性质,例如序参量、能量、刚度、关联函数和结构因子;也可以用来定位临界点,分析临界指数、分形维度、普适类和有限尺寸标度。Monte Carlo 负责产生服从正确权重的样本;相变理论和统计分析负责从样本中读出物理。

量子 Monte Carlo 的思想类似,但构型空间更丰富。量子配分函数

\[ Z={\rm Tr}\,e^{-\beta\hat H} \]

通常不能直接看成普通经典构型求和,需要通过路径积分、SSE、世界线、辅助场等表示,把量子问题改写成一个扩展构型空间上的统计权重。直观地说,\(d\) 维量子统计问题常被映射成带有虚时方向的 \(d+1\) 维经典构型。这样不仅可以研究有限温热力学,也可以研究零温投影、虚时关联函数、谱函数、超流刚度、缠绕数、纠缠熵等更丰富的量子多体信息。

为什么它适合复杂系统

Monte Carlo 特别适合下面几类问题:

  • 状态空间巨大:自旋模型、量子多体系统、路径积分、组合优化问题都无法枚举全部构型。
  • 权重只知道相对值:很多物理模型、贝叶斯后验和能量模型只容易计算未归一化权重。
  • 目标量是平均性质:热力学量、关联函数、风险指标、策略价值都可以写成期望。
  • 重要区域很稀疏:高维空间中大部分构型贡献很小,重要性抽样可以把计算资源集中到高权重区域。

从这个角度看,Monte Carlo 可以作为一套处理复杂概率分布的通用语言,使用范围远远超出物理问题。

在现代问题中的位置

在强化学习中,Monte Carlo 方法用完整 episode 的随机回报估计价值函数:

\[ V^\pi(s)=\mathbb E_\pi[G_t|S_t=s]. \]

它不需要显式知道环境的转移矩阵,只要能与环境交互并采样轨迹。Monte Carlo Tree Search 进一步把随机模拟用于决策树搜索,在围棋、游戏 AI 和规划问题中,用有限次数 rollout 估计巨大决策空间中的动作价值。

在神经网络和人工智能中,Monte Carlo 常用于 dropout 不确定性估计、生成模型采样、强化学习策略评估、扩散模型中的随机过程、贝叶斯神经网络的后验近似。很多深度学习问题虽然表面是优化,背后仍然离不开“从复杂分布中采样”和“用样本估计期望”。

在概率论和统计推断中,Markov Chain Monte Carlo 是贝叶斯计算的核心工具。后验分布

\[ p(\theta|D)\propto p(D|\theta)p(\theta) \]

通常只知道右边的未归一化形式,但这已经足够构造采样过程。

在量化交易和风险管理中,Monte Carlo 用于情景模拟、期权定价、投资组合风险、极端损失估计。价格路径、利率路径或波动率路径都可以视为随机过程的样本,复杂衍生品的价值则是路径函数的期望。

阅读主线

这份笔记采用从简单到复杂的路线:

  1. 基础:从 Markov chain 的概率归一化与平稳分布出发,推出 detailed balance 和 Metropolis 接受率。
  2. 相变理论基础:说明 RG、LGW 场论、有限尺寸标度、Mermin-Wagner 定理和 BKT 相变如何组织临界现象的理论语言。
  3. 常用更新算法:概览 Metropolis、heat bath、cluster、loop、worm 和 lifted 等更新思想。
  4. 长程体系与 Clock 技巧:讨论长程相互作用下的周期边界、加键过程、累计概率和其他加速策略。
  5. 世界线更新算法:进入量子 Monte Carlo 中连续时间、连续空间和 Worm 更新的构型语言,并说明常见物理量如何从世界线几何中测量。
  6. SSE 随机级数展开:把 \(e^{-\beta\hat H}\) 展开成算符串,说明 diagonal update、loop update 和 directed-loop update 的基本结构。
  7. 辅助场蒙卡:从 Hubbard-Stratonovich 变换出发,说明如何把相互作用费米子问题转化为辅助场上的行列式权重,并区分零温投影算法与有限温 trace 算法。

Monte Carlo 的本质可以压缩为一句话:构造一个正确的随机过程,让它在复杂空间中替我们按照目标权重行走。