序言
蒙特卡罗方法,也称为统计模拟法或统计试验法,是一种以概率统计理论为基础的数值模拟方法。自 20 20 20世纪 40 40 40年代中期提出以来,它因能灵活处理复杂计算问题而广泛应用于多个领域,如金融工程学、宏观经济学和计算物理学等。该方法的核心思想是通过构造概率模型或随机过程,并利用随机数进行模拟试验,以求解问题的统计特性或期望值。然而,在应用蒙特卡罗方法时,特别是在处理具有不同峰值的复杂问题时,常常面临混合挑战。
不同的峰值之间的混合挑战
-
使用 MCMC \text{MCMC} MCMC方法的主要难点在于他们经常混合得很糟糕。
- 理想情况下,从设计好的马尔可夫链中采出的连续样本之间是完全独立的,而且在 x \boldsymbol{x} x 空间中,马尔可夫链以正比于不同区域对应概率的概率访问这些区域。
- 然而, MCMC \text{MCMC} MCMC方法采出的样本可能会具有很强的相关性,尤其是在高维的情况下。
- 我们把这种现象称为慢混合甚至混合失败。
- 具有缓慢混合的 MCMC \text{MCMC} MCMC方法可以被视为对能量函数无意地执行类似于带噪声的梯度下降的操作,或者说等价于相对于链的状态(随机变量被采样)依据概率进行等效的噪声爬坡。
- (在马尔可夫链的状态空间中)从 x ( t − 1 ) \boldsymbol{x}^{(t−1)} x(t−1) 到 x ( t ) \boldsymbol{x}^{(t)} x(t) 该链倾向于选取很小的步长,其中能量 E ( x ( t ) ) E(\boldsymbol{x}^{(t)}) E(x(t)) 通常低于或者近似等于能量 E ( x ( t − 1 ) ) E(\boldsymbol{x}^{(t−1)}) E(x(t−1)),倾向于向较低能量的区域移动。
- 当从可能性较小的状态(比来自 p ( x ) p(\boldsymbol{x}) p(x) 的典型样本拥有更高的能量)开始时,链趋向于逐渐减少状态的能量,并且仅仅偶尔移动到另一个峰值。
- 一旦该链已经找到低能量的区域(例如,如果变量是图像中的像素,则低能量的区域可以是同一对象所对应图像的一个相连的流形),我们称之为峰值,链将倾向于围绕着这个峰值游走(以某一种形式的随机游走)。
- 它时不时会走出该峰值,但是结果通常会返回该峰值或者(如果找到一条离开的路线)移向另一个峰值。
- 问题是对于很多有趣的分布来说成功的离开路线很少,所以马尔可夫链将在一个峰值附近抽取远超过需求的样本。
-
当考虑到 Gibbs \text{Gibbs} Gibbs 采样算法(见蒙特卡罗方法 - Gibbs采样篇)时,这种现象格外明显。
- 在这种情况下,我们考虑在一定步数内从一个峰值移动到一个临近峰值的概率。决定这个概率的是两个峰值之间的 ‘‘能量障碍’’ 的形状。
- 隔着一个巨大 ‘‘能量障碍” (低概率的区域)的两个峰值之间的转移概率是(随着能量障碍的高度)指数下降的,如在图例1中展示的一样。
- 当目标分布有很多峰值并且以很高的概率被低概率区域所分割,尤其当 Gibbs \text{Gibbs} Gibbs 采样的每一步都只是更新变量的一小部分而这一小部分变量又严重依赖其他的变量时,这会导致严重的问题。
-
举一个简单的例子,考虑两个变量 a \text{a} a, b \text{b} b 的基于能量的模型,这两个变量都是二元的,取值 + 1 +1 +1 或者 − 1 −1 −1。
- 如果对某个较大的正数 w w w, E ( a , b ) = − w ab E(\text{a}, \text{b}) = −w\text{ab} E(a,b)=−wab,那么这个模型传达了一个强烈的信息, a \text{a} a 和 b \text{b} b 有相同的符号。
- 当 a = 1 \text{a} = 1 a=1 时用 Gibbs \text{Gibbs} Gibbs 采样更新 b \text{b} b。
- 给定 b \text{b} b 时的条件分布满足 p ( b = 1 ∣ a = 1 ) = σ ( w ) p(\text{b} = 1 \mid \text{a} = 1) = \sigma(w) p(b=1∣a=1)=σ(w)。
- 如果 w w w 的值很大, sigmoid \text{sigmoid} sigmoid函数趋近于饱和,那么 b \text{b} b 取到 1 1 1 的概率趋近于 1 1 1。
- 相同的道理,如果 a = − 1 \text{a} = −1 a=−1,那么 b \text{b} b 取到 − 1 −1 −1 的概率也趋于 1 1 1。
- 根据模型 p model ( a , b ) p_{\text{model}}(\text{a}, \text{b}) pmodel(a,b),两个变量取一样的符号的概率几乎相等。
- 根据 p model ( a ∣ b ) p_{\text{model}}(\text{a}\mid \text{b}) pmodel(a∣b),两个变量应该有相同的符号。
- 这也意味着 Gibbs \text{Gibbs} Gibbs采样很难会改变这些变量的符号。
-
在实际问题中,这种挑战更加地艰巨因为在实际问题中我们不能仅仅关注在两个峰值之间的转移而是需要关注在多个峰值之间地转移。如果由于峰值之间混合困难导致几个这样的转移是很艰难的,那么得到一些可靠的覆盖大部分峰值的样本集合的代价是很昂贵的,同时马尔可夫链收敛到它的静态分布的过程也会非常缓慢。
-
通过寻找一些高度依赖变量的组以及分块同时更新块(组)中的变量,这个问题有时候可以被解决的。然而不幸的是,当依赖关系很复杂的时候,从这些组中采样的过程从计算角度上说是难以处理的。归根结底, 马尔可夫链最初就是被提出来解决这个问题,即从大量变量中采样的问题。
-
含有潜变量的模型中定义了一个联合分布 p model ( x , h ) p_{\text{model}}(\boldsymbol{x}, \boldsymbol{h}) pmodel(x,h),我们经常通过交替地从 p model ( x ∣ h ) p_{\text{model}}(\boldsymbol{x} \mid \boldsymbol{h}) pmodel(x∣h) 和 p model ( h ∣ x ) p_{\text{model}}(\boldsymbol{h} \mid \boldsymbol{x}) pmodel(h∣x) 中采样来达到抽 x \boldsymbol{x} x 的目的。
- 从快速混合的角度上说,我们更希望 p model ( h ∣ x ) p_{\text{model}}(\boldsymbol{h} \mid \boldsymbol{x}) pmodel(h∣x) 有很大的熵。
- 然而,从学习一个 h \boldsymbol{h} h 的有用表示的角度上考虑,我们还是希望 h \boldsymbol{h} h 能够包含 x \boldsymbol{x} x 的足够信息从而能够较完整地重构它,这意味 h \boldsymbol{h} h 和 x \boldsymbol{x} x有着非常高的互信息。
- 这两个目标是相互矛盾的。
- 我们经常学习到能够将 x \boldsymbol{x} x 精确地编码为 h \boldsymbol{h} h 的生成模型,但是无法很好混合。
- 这种情况在玻尔兹曼机中经常出现,一个玻尔兹曼机学到的分布越尖锐,该分布的马尔可夫链采样越难混合得好。
- 这个问题在图例2中有所描述。
-
当感兴趣的分布对于每个类具有单独的流形结构时,所有这些问题可以使 MCMC \text{MCMC} MCMC方法不那么有用:分布集中在许多峰值周围,并且这些模式由大量高能量区域分割。我们在许多分类问题中遇到的是这种类型的分布,由于峰值之间混合缓慢,它将使得 MCMC \text{MCMC} MCMC方法非常缓慢地收敛。
不同峰值之间通过回火来混合
-
当一个分布有一些陡峭的峰并且被低概率区域包围时,很难在分布的不同峰值之间混合。一些加速混合的方法是基于构造一个不同的概率分布,这个概率分布的峰值没有那么高, 峰值周围的低谷也没有那么低。 基于能量的模型为这个想法提供一种简单的做法。截止目前,我们已经描述了一个基于能量的模型的概率分布的定义:
p ( x ) ∝ e − E ( x ) p(\boldsymbol{x})\propto e^{-E(\boldsymbol{x})} p(x)∝e−E(x) — 公式1 \quad\textbf{---\footnotesize{公式1}} —公式1 -
基于能量的模型可以通过添加一个额外的控制峰值尖锐程度的参数 β \beta β 来加强:
p β ( x ) ∝ e ( − β E ( x ) ) p_{\beta}(\boldsymbol{x})\propto e^(-\beta E(\boldsymbol{x})) pβ(x)∝e(−βE(x)) — 公式2 \quad\textbf{---\footnotesize{公式2}} —公式2 -
β \beta β 参数可以被理解为温度 ( temperature \text{temperature} temperature) 的倒数,在统计物理中反映了基于能量的模型的本质。当温度趋近于 0 0 0 时, β \beta β 趋近于无穷大,此时的基于能量的模型是确定性的。当温度趋近于无穷大时, β \beta β 趋近于零, 基于能量的模型(对离散的 x \boldsymbol{x} x)成了均匀分布。
-
通常情况下,在 β = 1 \beta = 1 β=1 时训练一个模型。然而,我们利用了其他温度,尤其是 β < 1 \beta < 1 β<1 的情况。 回火 ( tempering \text{tempering} tempering) 作为一种通用的策略,它通过从 β β < 1 β\beta < 1 ββ<1 模型中采样来实现在 p 1 p_1 p1 的不同峰值之间快速混合。
-
基于回火转移 ( tempered transition \text{tempered transition} tempered transition) ( Neal, 1994 \text{Neal, 1994} Neal, 1994) 的马尔可夫链初始从高温度的分布中采样使其在不同峰值之间混合,然后从单位温度的分布中重新开始。
- 这些技巧被应用在一些模型比如 RBM \text{RBM} RBM中 (Salakhutdinov, 2010)。
- 另一种方法是利用并行回火 ( parallel tempering \text{parallel tempering} parallel tempering) ( Iba, 2001 \text{Iba, 2001} Iba, 2001)。其中马尔可夫链并行地模拟许多不同温度的不同状态。
- 最高温度的状态混合较慢,相比之下最低温度的状态,即温度为 1 1 1 时,采出了精确的样本。
- 转移算子包括了两个温度之间的随机跳转,所以一个高温度状态分布槽中的样本有足够大的概率跳转到低温度分布的槽中。
- 这个方法也被应用到了 RBM \text{RBM} RBM中 ( Desjardins et al., 2010a; Cho et al., 2010a \text{Desjardins et al., 2010a; Cho et al., 2010a} Desjardins et al., 2010a; Cho et al., 2010a)。
- 尽管回火这种方法前景可期,现今它仍然无法让我们在采样复杂的基于能量的模型中更进一步。
- 一个可能的原因是在临界温度 ( critical temperatures \text{critical temperatures} critical temperatures) 时温度转移算子必须设置的非常慢(因为温度需要逐渐下降)来确保回火的有效性。
深度也许会有助于混合
-
当我们从潜变量模型 p ( h , x ) p(\boldsymbol{h},\boldsymbol{x}) p(h,x)中采样的时候,我们可以发现如果 p ( h ∣ x ) p(\boldsymbol{h} \mid \boldsymbol{x}) p(h∣x) 将 x \boldsymbol{x} x 编码得非常好,那么从 p ( x ∣ h ) p(\boldsymbol{x} \mid \boldsymbol{h}) p(x∣h) 中采样的时候,并不会太大地改变 x \boldsymbol{x} x,那么混合结果会很糟糕。
- 解决这个问题的一种方法是使得 h \boldsymbol{h} h 成为一种将 x \boldsymbol{x} x 编码为 h \boldsymbol{h} h 的深度表达,从而使得马尔可夫链在 h \boldsymbol{h} h 空间中更容易混合。
- 在许多表示学习算法诸如自编码器和 RBM \text{RBM} RBM中, h \boldsymbol{h} h 的边缘分布相比于关于 x \boldsymbol{x} x 的原始数据分布,通常表现为更加均匀、更趋近于单峰值。
- 值得指出的是,这些方法往往利用所有可用的表达空间并尽量减小重构误差。
- 因为当训练集上的不同样本之间在 h \boldsymbol{h} h空间能够被非常容易地区分时,我们也会很容易地最小化重构误差。
- Bengio et al. (2013a) \text{Bengio et al. (2013a)} Bengio et al. (2013a) 观察到这样的现象,堆叠越深的正则化自编码器或者 RBM \text{RBM} RBM,顶端 h \boldsymbol{h} h空间的边缘分布越趋向于均匀和发散,而且不同峰值(比如说实验中的类别)所对应区域之间的间距也会越模糊。
- 在高层次的空间训练 RBM \text{RBM} RBM使得 Gibbs \text{Gibbs} Gibbs 采样混合得更快。然而,如何利用这种观察到的现象来辅助训练深度生成模型或者从中采样仍然有待探索。
-
尽管存在混合的难点,蒙特卡罗技巧仍然是一个有用的也是最好的可用工具。事实上,在遇到难以处理的无向模型中的配分函数时, 蒙特卡罗方法仍然是最基础的工具,这将在后续篇章中详细阐述。
- 图例1:对于三种分布使用
Gibbs
\text{Gibbs}
Gibbs 采样所产生的路径,所有的分布马尔可夫链初始值都设为峰值。
-
对于三种分布使用 Gibbs \text{Gibbs} Gibbs 采样所产生的路径,所有的分布马尔可夫链初始值都设为峰值
-
说明:
- 左图:
- 一个带有两个独立变量的多维正态分布。
- 由于变量之间是相互独立的, Gibbs \text{Gibbs} Gibbs 采样混合得很好。
- 中图:
- 变量之间存在高度相关性的一个多维正态分布。
- 变量之间的相关性使得马尔可夫链很难混合。
- 因为每一个变量的更新需要相对其他变量求条件分布,相关性减慢了马尔可夫链远离初始点的速度。
- 右图:
- 峰值之间间距很大且不在轴上对齐的混合高斯分布。
- Gibbs \text{Gibbs} Gibbs 采样混合得很慢,因为每次更新仅仅一个变量很难跨越不同的峰值。
- 左图:
-
- 图例2:深度概率模型中一个混合缓慢问题的例证。每张图都是按照从左到右从上到下的顺序的。
-
深度概率模型中一个混合缓慢问题的例证。每张图都是按照从左到右从上到下的顺序的
-
说明:
- 左图:
- Gibbs \text{Gibbs} Gibbs 采样从 MNIST \text{MNIST} MNIST 数据集训练成的深度玻尔兹曼机中采出的连续样本。
- 这些连续的样本之间非常相似。
- 由于 Gibbs \text{Gibbs} Gibbs 采样作用于一个深度图模型,相似度更多地是基于语义而非原始视觉特征。
- 但是对于吉布斯链来说从分布的一个峰值转移到另一个仍然是很困难的,比如说改变数字。
- 右图:
- 从生成式对抗网络中抽出的连续原始样本。
- 因为原始采样生成的样本之间互相独立,所以不存在混合问题。
- 译者注:此处左右好像搞反了。
- 左图:
-
总结
-
蒙特卡罗方法在处理具有不同峰值的复杂问题时,其主要挑战在于马尔可夫链的混合效果不理想。马尔可夫链蒙特卡罗( MCMC \text{MCMC} MCMC)方法是蒙特卡罗方法中的一种重要手段,它通过构建马尔可夫链来模拟随机过程,并从链中采样以获取所需统计特性。然而,在实际应用中,马尔可夫链可能会因强相关性而导致慢混合,甚至混合失败,尤其是在高维空间中。这种现象表现为链中的连续样本之间具有很强的相关性,难以充分遍历整个样本空间,从而影响了蒙特卡罗方法的效率和准确性。
-
为解决这一问题,研究者们提出了多种策略,如通过调整温度参数β的回火转移策略来改善不同峰值间的混合效果。这些策略旨在提高马尔可夫链的混合速度,使其能够更有效地遍历样本空间,从而提高蒙特卡罗方法在处理复杂问题时的效率和准确性。尽管面临挑战,但蒙特卡罗方法仍因其强大的适应能力和广泛的应用前景而受到广泛关注和研究。
往期内容回顾
蒙特卡罗方法 - Gibbs采样篇