4.2 受限玻尔兹曼机(RBM)#

4.1 经典玻尔兹曼机:可见单元与隐藏单元的对称性 所述,经典玻尔兹曼机理论上强大,但由于需要在全连接图上进行平衡采样,计算上不可处理。受限玻尔兹曼机(Restricted Boltzmann Machine, RBM) 由 Paul Smolensky 于 1986 年以 Harmonium 之名提出,后由 Geoffrey Hinton 推广。它施加了一个简单却深刻的架构约束,在保留建模复杂概率分布能力的同时,大幅降低采样复杂度。本节介绍 RBM 架构、数学性质,以及它为何成为基于能量的无监督学习主力模型。

架构限制:二部图#

RBM 的定义特征是 受限连接:网络组织为一个包含可见层和隐藏层的 二部图。连接 存在于可见单元与隐藏单元之间。没有 可见-可见连接,也没有 隐藏-隐藏连接

形式化地,设可见单元为 v=(v1,v2,,vNv)\mathbf{v} = (v_1, v_2, \ldots, v_{N_v}),偏置为 b=(b1,,bNv)\mathbf{b} = (b_1, \ldots, b_{N_v});隐藏单元为 h=(h1,h2,,hNh)\mathbf{h} = (h_1, h_2, \ldots, h_{N_h}),偏置为 c=(c1,,cNh)\mathbf{c} = (c_1, \ldots, c_{N_h})。权重矩阵 W\mathbf{W} 大小为 Nv×NhN_v \times N_h,其中 wijw_{ij} 连接可见单元 ii 与隐藏单元 jj。不存在可见-可见或隐藏-隐藏权重矩阵。

这种受限的拓扑结构如下图所示:

这种受限的拓扑结构带来了一个至关重要的特性:条件独立性。只要给定了可见单元的状态,各个隐单元之间就会变得相互独立。反之亦然,只要给定了隐单元的状态,各个可见单元之间也会变得相互独立。

能量函数与联合分布#

对于二值可见单元和二值隐藏单元的 RBM,联合构型 (v,h)(\mathbf{v}, \mathbf{h}) 的能量为:

E(v,h)=i=1Nvbivij=1Nhcjhji=1Nvj=1NhviwijhjE(\mathbf{v}, \mathbf{h}) = -\sum_{i=1}^{N_v} b_i v_i - \sum_{j=1}^{N_h} c_j h_j - \sum_{i=1}^{N_v} \sum_{j=1}^{N_h} v_i w_{ij} h_j

矩阵形式为:

E(v,h)=bvchvWhE(\mathbf{v}, \mathbf{h}) = -\mathbf{b}^\top \mathbf{v} - \mathbf{c}^\top \mathbf{h} - \mathbf{v}^\top \mathbf{W} \mathbf{h}

联合概率分布仍由玻尔兹曼分布给出:

P(v,h)=1Zexp(E(v,h))P(\mathbf{v}, \mathbf{h}) = \frac{1}{Z} \exp\left(-E(\mathbf{v}, \mathbf{h})\right)

配分函数为:

Z=v~,h~exp(E(v~,h~))Z = \sum_{\tilde{\mathbf{v}}, \tilde{\mathbf{h}}} \exp\left(-E(\tilde{\mathbf{v}}, \tilde{\mathbf{h}})\right)

RBM 中的概率分布#

为了更清楚地理解 RBM 的生成与训练过程,需要区分几个关键概率分布。它们都源自联合分布 p(v,h)p(v,h),但归一化方式不同。

  1. 联合分布 p(v,h)p(v,h)

p(v,h)=1Zexp(E(v,h))p(v, h) = \frac{1}{Z} \exp(-E(v, h))

其中 Z=v,hexp(E(v,h))Z = \sum_{v,h} \exp(-E(v,h))。这是模型最完整的描述。

  1. 边缘分布 p(v)p(v)

这是我们最关心的分布,因为它直接定义了 RBM 赋予观测可见数据(例如图像、特征)的概率,而不需要显式引用隐藏单元。训练时,最大似然估计的目标就是在训练数据上最大化 p(v)p(\mathbf{v})。训练良好的 RBM 应能从 p(v)p(\mathbf{v}) 中采样出看起来像真实数据的新可见构型。隐藏单元是捕捉复杂依赖关系的潜在辅助变量,但 p(v)p(\mathbf{v}) 才是生成质量的最终评价对象。

它通过对所有可能隐藏单元状态求和得到:

p(v)=hexp(E(v,h))Zp(v) = \frac{\sum_{h} \exp(-E(v, h))}{Z}

条件概率

  1. 这些分布是 RBM 计算效率的关键。由于二部图结构,它们可以分解为独立 Bernoulli 分布的乘积。

给定可见单元时隐藏单元的分布 p(hv)p(h|v)

  • p(hv)=p(v,h)p(v)=exp(E(v,h))hexp(E(v,h))p(h|v) = \frac{p(v, h)}{p(v)} = \frac{\exp(-E(v, h))}{\sum_{h'} \exp(-E(v, h'))}

  • 由于 RBM 中不存在隐藏-隐藏连接,该分布分解为:

关键计算优势:条件独立#

没有层内连接带来了关键性质:条件独立。给定可见单元后,隐藏单元彼此独立;反过来,给定隐藏单元后,可见单元也彼此独立。

给定可见层时,隐藏单元 hjh_j 激活的条件概率为:

P(hj=1v)=σ(cj+i=1Nvwijvi)P(h_j = 1 \mid \mathbf{v}) = \sigma\left( c_j + \sum_{i=1}^{N_v} w_{ij} v_i \right)

其中 σ(z)=1/(1+exp(z)) \sigma(z) = 1/(1 + \exp(-z)) 是 sigmoid 函数。由于没有隐藏-隐藏连接,所有隐藏单元的联合条件分布分解为:

P(hv)=j=1NhP(hjv)P(\mathbf{h} \mid \mathbf{v}) = \prod_{j=1}^{N_h} P(h_j \mid \mathbf{v})

类似地,给定隐藏层时,可见单元的激活概率为:

P(vi=1h)=σ(bi+j=1Nhwijhj)P(v_i = 1 \mid \mathbf{h}) = \sigma\left( b_i + \sum_{j=1}^{N_h} w_{ij} h_j \right)

且可见单元在给定隐藏单元时条件独立:

P(vh)=i=1NvP(vih)P(\mathbf{v} \mid \mathbf{h}) = \prod_{i=1}^{N_v} P(v_i \mid \mathbf{h})

高效 Gibbs 采样:块更新#

条件独立性质把 Gibbs 采样从缓慢的逐单元过程,转化为快速的 分块 过程。一轮 Gibbs 采样包含两个并行步骤:

  1. 给定可见层采样隐藏层:对每个隐藏单元 jj,计算 P(hj=1v)P(h_j = 1 \mid \mathbf{v}) 并采样 hj{0,1}h_j \in \{0,1\}。所有隐藏单元可同时采样。

  2. 给定隐藏层采样可见层:对每个可见单元 ii,计算 P(vi=1h)P(v_i = 1 \mid \mathbf{h}) 并采样 vi{0,1}v_i \in \{0,1\}。所有可见单元可同时采样。

这两个步骤构成一次完整的 块 Gibbs 采样。从可见向量 v(0)\mathbf{v}^{(0)} 出发,序列为:

v(0)P(hv(0))h(0)P(vh(0))v(1)P(hv(1))h(1)\mathbf{v}^{(0)} \xrightarrow{P(\mathbf{h} \mid \mathbf{v}^{(0)})} \mathbf{h}^{(0)} \xrightarrow{P(\mathbf{v} \mid \mathbf{h}^{(0)})} \mathbf{v}^{(1)} \xrightarrow{P(\mathbf{h} \mid \mathbf{v}^{(1)})} \mathbf{h}^{(1)} \rightarrow \cdots

每个半步并行更新整层,使 RBM 比经典玻尔兹曼机高效得多;后者每次更新都需要从所有其他单元计算输入。

学习 RBM:回到对比散度#

RBM 使用 3.3 对比散度 中介绍的 对比散度 算法训练。对数似然梯度保持同样的对比形式:

logP(v)wij=vihjdatavihjmodel\frac{\partial \log P(\mathbf{v})}{\partial w_{ij}} = \langle v_i h_j \rangle_{\text{data}} - \langle v_i h_j \rangle_{\text{model}}

得益于 RBM 的条件独立性,CD 所需的 Gibbs 采样步骤成为 块并行 操作。一次往返由“给定可见层采样所有隐藏单元”以及“给定隐藏层采样所有可见单元”组成。因此即便 CD-1 也非常有效。小批量权重更新为:

ΔW=η(E[vh]dataE[vh]recon)\Delta \mathbf{W} = \eta \left( \mathbb{E}[\mathbf{v} \mathbf{h}^\top]_{\text{data}} - \mathbb{E}[\mathbf{v} \mathbf{h}^\top]_{\text{recon}} \right)

偏置以类似方式更新。关于 CD-k 算法的完整说明,请参见 3.3 对比散度

自由能与边缘概率

自由能与边缘概率#

对于 RBM,由于隐藏单元可以解析求和,可见向量 v\mathbf{v} 的自由能具有闭式表达:

Fθ(v)=loghexp(Eθ(v,h))F_\theta(\mathbf{v}) = -\log \sum_{\mathbf{h}} \exp\left(-E_\theta(\mathbf{v}, \mathbf{h})\right)

于是可见向量边缘概率为:

Pθ(v)=exp(Fθ(v))v~exp(Fθ(v~))P_\theta(\mathbf{v}) = \frac{\exp(-F_\theta(\mathbf{v}))}{\sum_{\tilde{\mathbf{v}}} \exp(-F_\theta(\tilde{\mathbf{v}}))}

虽然分母仍需对所有 2Nv2^{N_v} 个可见构型求和,但对给定 v\mathbf{v} 计算自由能很便宜。因此,即使绝对似然仍不可处理,也可以比较不同可见向量的相对似然。

自由能与解析形式#

在 RBM 中,给定可见单元后隐藏单元条件独立,因此可以把隐藏单元解析求和。代入 RBM 能量函数:

Eθ(v,h)=bvchvWhE_\theta(\mathbf{v}, \mathbf{h}) = -\mathbf{b}^\top \mathbf{v} - \mathbf{c}^\top \mathbf{h} - \mathbf{v}^\top \mathbf{W} \mathbf{h}

可以得到:

hexp(Eθ(v,h))=exp(bv)j=1Nh(1+exp(cj+iviwij))\sum_{\mathbf{h}} \exp(-E_\theta(\mathbf{v}, \mathbf{h})) = \exp(\mathbf{b}^\top \mathbf{v}) \prod_{j=1}^{N_h} \left( 1 + \exp(c_j + \sum_i v_i w_{ij}) \right)

因此,自由能具有闭式表达:

Fθ(v)=bvj=1Nhlog(1+exp(cj+iviwij))F_\theta(\mathbf{v}) = -\mathbf{b}^\top \mathbf{v} - \sum_{j=1}^{N_h} \log \left( 1 + \exp\left( c_j + \sum_i v_i w_{ij} \right) \right)

这个解析形式是 RBM 相对经典玻尔兹曼机的关键计算优势。它允许我们以 O(NvNh)O(N_v N_h) 的时间评估不同可见向量的相对似然,而无需枚举 2Nh2^{N_h} 个隐藏构型。需要注意的是,由于可见状态上的配分函数仍不可处理,绝对似然仍然不可处理;但闭式自由能已足以支持模型比较、相对似然比较和采样等许多实际应用。

自由能与期望能量#

为了获得更深入的物理直觉,可以把自由能与隐藏单元条件分布下的 期望能量 进行比较:

Eθ[Eθ(v,H)v]=bvcm(v)vWm(v)\mathbb{E}_\theta[E_\theta(\mathbf{v}, \mathbf{H}) \mid \mathbf{v}] = -\mathbf{b}^\top \mathbf{v} - \mathbf{c}^\top \mathbf{m}(\mathbf{v}) - \mathbf{v}^\top \mathbf{W} \mathbf{m}(\mathbf{v})

其中 mj(v)=σ(cj+iviwij)m_j(\mathbf{v}) = \sigma(c_j + \sum_i v_i w_{ij}) 是给定 v\mathbf{v} 时隐藏单元 jj 的条件期望。自由能与期望能量满足:

Fθ(v)=Eθ[Eθ(v,H)v]Entropy(Pθ(Hv))F_\theta(\mathbf{v}) = \mathbb{E}_\theta[E_\theta(\mathbf{v}, \mathbf{H}) \mid \mathbf{v}] - \text{Entropy}(P_\theta(\mathbf{H} \mid \mathbf{v}))

二者差值正是给定可见层时隐藏层的 。这与热力学关系 F=UTSF = U - TS 一致:自由能等于期望能量减去温度加权熵。在 RBM 中,这个熵项刻画了隐藏单元激活的不确定性。

RBM 作为专家乘积#

RBM 可以解释为 专家乘积(Product of Experts, PoE)。每个隐藏单元 hjh_j 都像一个“专家”,根据可见向量 v\mathbf{v} 与其偏好模式(由权重向量 w:j\mathbf{w}_{:j} 编码)的匹配程度,对 v\mathbf{v} 赋予概率。联合分布是这些专家意见的乘积并重新归一化:

P(v)j=1Nhexp(cjhj+iviwijhj)hj summed outP(\mathbf{v}) \propto \prod_{j=1}^{N_h} \exp\left( c_j h_j + \sum_i v_i w_{ij} h_j \right) \bigg|_{h_j \text{ summed out}}

专家乘积视角突出了 RBM 的表示能力:每个隐藏单元贡献一个软约束,许多约束组合即可建模复杂高维分布。二部图限制阻止专家直接相互作用,迫使它们只通过可见层协调。

变体:处理不同数据类型#

具有二值可见单元的基本 RBM 适合建模二值数据,例如黑白图像或二值特征向量。不过,RBM 框架可通过修改能量函数和条件分布自然扩展到其他数据类型。

  • Gaussian-Bernoulli RBM:用于实值数据(如灰度图像、连续特征)。可见单元建模为单位方差或可学习方差的 Gaussian。能量为:

E(v,h)=i(vibi)22σi2jcjhji,jviσiwijhjE(\mathbf{v}, \mathbf{h}) = \sum_i \frac{(v_i - b_i)^2}{2\sigma_i^2} - \sum_j c_j h_j - \sum_{i,j} \frac{v_i}{\sigma_i} w_{ij} h_j

条件分布 P(vih)P(v_i \mid \mathbf{h}) 是均值为 bi+σijwijhjb_i + \sigma_i \sum_{j} w_{ij} h_j 的 Gaussian。

  • Softmax / Multinomial RBM:用于计数或类别数据,例如词频、用户评分,可见层可设为词表或评分尺度上的 softmax 单元。

  • Replicated Softmax RBM:用于变长文档,可见层由一组多项式单元组成,建模词频分布。

这些变体保留二部图结构和条件独立性质,因此仍可使用相同的高效块 Gibbs 采样和对比散度训练。

RBM 的局限#

尽管 RBM 取得了成功,它仍有局限:

  1. 浅层架构:单个 RBM 只有一层潜变量,表达能力相比深层架构有限;堆叠 RBM 形成 深度置信网络(DBN) 可缓解这一点(见 4.3 超越单层:面向深度学习的堆叠)。

  2. 配分函数仍不可处理:边缘似然 P(v)P(\mathbf{v}) 仍需对所有可见构型求和。推断虽然高效,模型评估和比较仍具挑战。

  3. CD 训练中的模态塌缩:如 3.3 对比散度 所述,CD 训练可能无法捕捉数据分布所有模态。持久 CD(PCD)可改善这一点,但增加计算开销。

  4. 超参数敏感:学习特征质量对学习率、动量、权重衰减和隐藏单元数量敏感,需要经验和仔细验证。

RBM 在深度学习历史中的位置#

RBM 在 2000 年代中期的 深度学习复兴 中发挥了关键作用。在 ReLU、批归一化以及更好前馈网络优化器广泛使用之前,训练深层神经网络非常困难。RBM 提供了有效的 无监督预训练 方法:逐层训练并堆叠 RBM,可以用从数据分布中提取的合理特征初始化深层网络,而不是随机权重。随后再用反向传播进行判别式微调,使真正深层架构在 MNIST 以及后来 ImageNet 等任务上的训练成为可能。

尽管现代深度学习大多转向大规模有标签数据上的端到端监督训练,RBM 的概念贡献仍是基础性的:基于能量学习、对比散度,以及分布式表示的力量。此外,RBM 仍在协同过滤、降维、小到中等数据集的生成建模中有小众应用。

小结#

  • 受限玻尔兹曼机(RBM) 施加 二部连接 约束:没有可见-可见或隐藏-隐藏连接。

  • 该限制带来 条件独立P(hv)P(\mathbf{h} \mid \mathbf{v})P(vh)P(\mathbf{v} \mid \mathbf{h}) 分解为独立 Bernoulli 分布乘积。

  • 块 Gibbs 采样 并行更新整层,大幅加速推断与训练。

  • RBM 使用 对比散度(CD) 训练,通常为 CD-1,每个数据点只需一次块 Gibbs 往返。

  • 可见向量的 自由能 具有闭式表达,可高效比较相对似然。

  • RBM 可扩展到 实值(Gaussian-Bernoulli RBM)和 类别(Softmax RBM)数据。

  • RBM 是 深度置信网络 构建块,并在深层神经网络无监督预训练历史中发挥重要作用。

  • 虽然不再是监督深度学习主流范式,RBM 仍是理解无监督学习、特征提取和基于能量生成模型的重要模型。