拉丁超立方采样 返回
数理与统计模拟器

拉丁超立方采样 — LHS 与朴素蒙特卡罗对比

二维分层采样 LHS 与朴素蒙特卡罗并排显示。每行每列恰好放置一个采样点的机理与相同样本数下的积分精度差异可实时对比。

参数设置
样本数 N
维度数 d
固定二维

为可视化固定为 2D。LHS 本身可推广至任意维度 d。

随机数种子(LCG)
被积函数 f(x,y)

0:高斯峰(中心尖峰)/1:sin(πx)sin(πy) 脊/2:高频 sin(20πx)sin(20πy)

随机数由 LCG 确定性生成。相同种子与 N 始终给出相同样本。

计算结果
真值 ∫∫f dxdy
LHS 估计
朴素 MC 估计
|MC 误差| / |LHS 误差|
样本散点图(左:LHS/右:朴素 MC)

背景网格线为 LHS 的 N×N 单元分割。LHS 每行每列各放置一个点(分层);朴素 MC 无分层。

理论与主要公式

拉丁超立方采样对每个维度 $d$ 构造独立排列 $\pi_d$(取自 $\{0,1,\dots,N-1\}$),第 $i$ 个样本的第 $d$ 维由下式给出($u_{i,d}\sim U(0,1)$):

$$x_{i,d} = \frac{\pi_d(i) + u_{i,d}}{N}$$

函数 $f$ 的积分由样本均值估计:

$$\hat{I} = \frac{1}{N}\sum_{i=1}^{N} f(\mathbf{x}_i)$$

对光滑函数,LHS 的估计方差以快于朴素 MC 的 $1/N$ 的速度下降,实用误差更小:

$$\mathrm{Var}(\hat{I}_\text{LHS}) \le \mathrm{Var}(\hat{I}_\text{MC})$$

测试函数 $f_1(x,y)=\sin(\pi x)\sin(\pi y)$ 的真值为 $4/\pi^2 \approx 0.4053$。本工具以此为基准比较 LHS 与 MC 的误差。

什么是拉丁超立方采样(LHS)

🙋
在 CAE 文献里常看到「LHS」,它和普通蒙特卡罗有什么区别?不都是随机撒点吗?
🎓
问得好。两者都是随机撒点,但放置规则不一样。LHS 把每个维度切成 $N$ 个等间隔格,约束"每行每列只放一个点"。看上方模拟器左侧,横向每一列、纵向每一行都恰好有一个蓝点,对吗?右侧的朴素 MC(橙色)没有任何约束,独立采样,所以偶然会出现空荡的区域或点的聚集。
🙋
原来如此!「每行每列一个」就像数独的规则。为什么这样积分就更准呢?
🎓
比喻得好。因为样本均匀覆盖空间,求函数均值时的偏差就更小。比如右上角值很大的函数,朴素 MC 偶然没有样本落在那里,估计值就被低估。而 LHS 任何行、任何列都至少有一个点,原理上不容易出现这种「空白」。把模拟器调到 N=20,多次变换种子看看:LHS 估计(蓝色)始终接近真值 0.4053,而 MC(橙色)会在 0.3 到 0.5 之间大幅波动。
🙋
「误差比」这张卡片上显示「2.5×」「5×」之类的,这是不是说 LHS 误差比朴素 MC 小?
🎓
没错。是 |MC 误差|÷|LHS 误差|,所以大于 1 就是 LHS 胜出。实务上的关键是「相同样本数」下成立。比如能跑 100 个 CFD 任务,只要把这 100 个用 LHS 布置,平均值或响应面的精度就明显胜过朴素 MC,零额外成本,只是采样方式不同。
🙋
把函数切到「高频」(2)后,误差比就接近 1,几乎看不到差别。这是为什么?
🎓
观察很敏锐。LHS 起作用主要靠「函数光滑」。像 $\sin(20\pi x)\sin(20\pi y)$ 这种在一个格内振荡好几周的函数,分层效果几乎消失。用 CAE 的话讲,LHS 对「无相关高频噪声」基本无效。实务上要么假设响应是光滑的,要么先用响应面构造光滑的代理模型,再用 LHS 在其上采样。

常见问题

两者都是比朴素蒙特卡罗更均匀覆盖空间的方差缩减方法,但设计思想不同。LHS 是分层采样,保证每个维度的边缘分布均匀,先确定样本数 N 再一次性生成。Sobol 等拟随机(低偏差)序列可以增量扩展,但对维度间相关结构控制较难。CAE 设计探索倾向于使用 LHS,光滑函数的数值积分则常用 Sobol 列。
"每个维度的边缘分布均匀"这一性质与维度无关,始终成立。但空间随维度指数增长(维度灾难),N 较小时投影到二维子空间仍会显得稀疏。为改善高维 LHS,实务上常用最大化最小距离的 Maximin LHS,或相关系数最小化的优化 LHS(MILHS)。
基本的 LHS 固定 N 一次性生成,事后只追加一个点会破坏"每行每列一个"的性质。需要扩展时,常用的有 Nested LHS(把 N 扩到 kN)或 Refinable LHS 构造法。实现较复杂,可以的话最好一开始就取足够大的 N。
在期望意义下,当被积函数在每个维度上单调或光滑时,LHS 的方差理论上保证不超过朴素 MC(McKay 1979)。对于高频振荡函数或 N 极小的情况,两者差距缩小。本模拟器的「高频」函数(模式 2)下误差比贴近 1,正是此种情形。

实际应用

响应面与代理模型的训练数据生成:当一次 FEM/CFD 分析耗时数小时,向设计变量空间投入数百次试验并不可行。用 LHS 均匀放置 30 至 100 个样本,并基于结果训练多项式回归、克里金或神经网络等代理模型,借此加速设计探索与优化,是 CAE 领域的标准流程。

不确定性量化(UQ)与可靠性分析:从材料常数、板厚、载荷等变化的概率分布出发,评估其对产品性能影响的概率分析中,LHS 同样常用。结合蒙特卡罗滤波或 Saltelli 敏感性方法,可在有限试验数下对各输入变量的重要性进行排序。

试验设计(DOE):除了计算机实验,化学过程或生产线的实物试验中,当多个连续变量需要均匀覆盖且试验数受限时,LHS 也被广泛使用。与正交表型的经典 DOE 不同,它更易处理连续变量,适合因子数多而样本数受限的场景。

机器学习的超参数搜索:作为改良版随机搜索,LHS 被用于学习率、正则化系数、隐藏层大小等超参数空间的高效探索。比网格搜索能以更少试验覆盖更广区域,也常用作贝叶斯优化的初始采样布局。

常见误解与注意事项

最常见的误解是「用了 LHS 就能减少样本数也不损失精度」的过度信任。LHS 改善的是估计量的方差,并不能补齐函数局部结构本身。例如响应有尖锐峰值时,N=20 的 LHS 仍难以精确定位峰值位置。模拟器中将高斯峰函数(模式 0)与 N=20 组合,LHS 也会出现明显误差。请记住"样本变均匀"与"峰值能定位"是两回事。

其次,「每个维度的边缘分布均匀」与「整体样本均匀」并不等同。LHS 只保证边缘均匀,二维投影下仍可能存在偏差。多次更换种子比较时,偶尔会看到点排成对角线的「对角偏差」。要避免此问题,可使用引入最大化最小距离准则的 Maximin LHS 或 Optimized LHS。本工具为标准 LHS,因此根据种子有时也能观察到此类偏差。

最后,LHS 的优势会因被积函数大幅变化这一点务必注意。本工具的模式 1($\sin(\pi x)\sin(\pi y)$)正是 LHS 擅长的光滑低频函数,误差比可达数倍至十倍以上。模式 2 的高频函数则使优势消失,甚至偶尔会因运气让 MC 取得更好的值。实务上更安全的做法是先用测试函数观察行为,或在多个种子下评估方差。LHS 并非万能,而是「针对光滑函数的加速器」,这才是正确的定位。