# 第 12 章　深度信念网络

> 来源：https://deeplearning.bnuai.com/chapters/12-deep-belief-networks ｜ 作者：唐志清（北京师范大学） ｜ 更新：2026-11-01 ｜ 内容依据邱锡鹏《神经网络与深度学习》（https://nndl.ai/）及作者公开课件

## 学习目标

<div class="goals">

- 理解玻尔兹曼机作为随机动力系统和能量模型的定义，以及它与 Hopfield 网络的关系；
- 掌握玻尔兹曼机的吉布斯采样、模拟退火和“数据期望 − 模型期望”的学习规则；
- 掌握受限玻尔兹曼机的条件概率和**对比散度**（CD-$k$）算法；
- 理解深度信念网络的结构、逐层预训练和精调过程，以及它在深度学习历史上的意义。

</div>

## 课件幻灯片

> 本章课件共 24 页，可在网页中逐页浏览：https://deeplearning.bnuai.com/chapters/12-deep-belief-networks；PDF 下载：https://deeplearning.bnuai.com/pdf/nndl-ch12.pdf

## 讲义

深度信念网络（DBN）是 2006 年 Hinton 等提出的一种深层概率生成模型。它通过**逐层预训练**有效地训练了深层网络，被认为是开启本轮深度学习浪潮的标志性工作之一。理解它需要先理解它的“砖块”——**玻尔兹曼机**和**受限玻尔兹曼机**。[幻灯片 2](#slide-2)

### 12.1 玻尔兹曼机

**玻尔兹曼机**可以看作一个随机动力系统：每个变量的状态都以一定概率受到其他变量的影响。它是一个由 $K$ 个二值随机变量构成的全连接无向图模型，具有以下性质：[幻灯片 4](#slide-4)

- 每个变量取值 $\{0,1\}$，分为**可观测变量** $\boldsymbol v$ 和**隐变量** $\boldsymbol h$；
- 节点之间全连接，权重对称 $w_{ij}=w_{ji}$，无自连接 $w_{ii}=0$；
- 联合分布服从**玻尔兹曼分布**：

$$
p(\boldsymbol x)=\frac1Z\exp\Big(\frac{-E(\boldsymbol x)}{T}\Big),\qquad
E(\boldsymbol x)=-\Big(\sum_{i<j}w_{ij}x_ix_j+\sum_i b_ix_i\Big),
$$

其中 $T$ 为温度，$Z$ 为配分函数。可以看到，玻尔兹曼机的能量函数与 Hopfield 网络（第 8 章）相同，区别在于它是**随机**的：Hopfield 网络是确定性地沿能量下降的方向更新，玻尔兹曼机则以一定概率更新。[幻灯片 8](#slide-8)

**推断：吉布斯采样**。玻尔兹曼机中任一变量的全条件概率为 [幻灯片 5](#slide-5) [幻灯片 6](#slide-6)

$$
p\big(x_i=1\mid\boldsymbol x_{\setminus i}\big)=\sigma\Big(\frac{\sum_j w_{ij}x_j+b_i}{T}\Big),
$$

即一个 Logistic 神经元。随机选择一个变量，按全条件概率更新其状态，反复迭代，最终 $\boldsymbol x$ 会服从玻尔兹曼分布（达到**热平衡**）。

**模拟退火**：温度 $T$ 控制随机性。$T\to\infty$ 时，$p(x_i=1)\to0.5$，状态完全随机；$T\to0$ 时，更新变为确定性的，玻尔兹曼机退化为 Hopfield 网络。若想找到能量最低的全局最优状态，可以让系统从较高的温度开始，逐渐降温——高温时能跳出局部极小，低温时稳定在低能量状态。只要降温足够慢，系统就能以较高概率收敛到全局最优。[幻灯片 7](#slide-7)

**参数学习**。对数似然对权重的梯度为“数据期望 − 模型期望”：[幻灯片 9](#slide-9) [幻灯片 10](#slide-10)

$$
\frac{\partial\mathcal L(\mathcal D;W,\boldsymbol b)}{\partial w_{ij}}=\mathbb E_{\hat p(\boldsymbol v)}\mathbb E_{p(\boldsymbol h\mid\boldsymbol v)}\big[x_ix_j\big]-\mathbb E_{p(\boldsymbol v,\boldsymbol h)}\big[x_ix_j\big].
$$

第一项是把可观测变量“钳制”在训练数据上时 $x_ix_j$ 的期望（**正相**），第二项是网络自由运行到热平衡时的期望（**负相**）。两项都需要用吉布斯采样近似，由于玻尔兹曼机是全连接的，要达到热平衡需要非常长的时间，因此一般玻尔兹曼机的学习非常慢。

### 12.2 受限玻尔兹曼机

**受限玻尔兹曼机**（RBM）是一个**二分图**结构的无向图模型：可观测层 $\boldsymbol v\in\{0,1\}^{M}$ 与隐藏层 $\boldsymbol h\in\{0,1\}^{N}$ 之间全连接，**层内无连接**。[幻灯片 12](#slide-12) 其能量函数和联合分布为

$$
E(\boldsymbol v,\boldsymbol h)=-\boldsymbol a^\top\boldsymbol v-\boldsymbol b^\top\boldsymbol h-\boldsymbol v^\top\boldsymbol W\boldsymbol h,\qquad
p(\boldsymbol v,\boldsymbol h)=\frac1Z\exp\big(-E(\boldsymbol v,\boldsymbol h)\big).
$$

**全条件概率**：由于层内无连接，给定一层时另一层的各变量**条件独立**：[幻灯片 13](#slide-13)

$$
p(h_j=1\mid\boldsymbol v)=\sigma\Big(b_j+\sum_i w_{ij}v_i\Big),\qquad
p(v_i=1\mid\boldsymbol h)=\sigma\Big(a_i+\sum_j w_{ij}h_j\Big).
$$

因此可以**整层并行**地进行吉布斯采样（块吉布斯采样）：$\boldsymbol v\to\boldsymbol h\to\boldsymbol v'\to\boldsymbol h'\to\cdots$ [幻灯片 14](#slide-14)

**参数学习**。与玻尔兹曼机类似，梯度为数据期望与模型期望之差：[幻灯片 15](#slide-15)

$$
\frac{\partial\mathcal L}{\partial w_{ij}}=\mathbb E_{\hat p(\boldsymbol v)}\mathbb E_{p(\boldsymbol h\mid\boldsymbol v)}[v_ih_j]-\mathbb E_{p(\boldsymbol v,\boldsymbol h)}[v_ih_j].
$$

**对比散度算法**（CD-$k$）：计算模型期望不必让马尔可夫链达到平衡——Hinton 发现，只要**从训练样本出发**做 $k$ 步吉布斯采样（通常 $k=1$）就足够好。CD-1 的一次更新：[幻灯片 16](#slide-16)

1. 以训练样本 $\boldsymbol v$ 初始化，根据 $p(\boldsymbol h\mid\boldsymbol v)$ 采样 $\boldsymbol h$；
2. 根据 $p(\boldsymbol v\mid\boldsymbol h)$ 采样重构 $\boldsymbol v'$，再根据 $p(\boldsymbol h\mid\boldsymbol v')$ 采样 $\boldsymbol h'$；
3. 更新参数：$\boldsymbol W\leftarrow\boldsymbol W+\alpha\big(\boldsymbol v\boldsymbol h^\top-\boldsymbol v'\boldsymbol h'^\top\big)$，$\boldsymbol a\leftarrow\boldsymbol a+\alpha(\boldsymbol v-\boldsymbol v')$，$\boldsymbol b\leftarrow\boldsymbol b+\alpha(\boldsymbol h-\boldsymbol h')$。

根据可观测变量和隐变量的类型，RBM 有多种变体：**伯努利-伯努利 RBM**（都是二值）、**高斯-伯努利 RBM**（可观测变量为实数，适合图像像素等连续数据）、**伯努利-高斯 RBM**等。

```mermaid
flowchart LR
  v0["v（训练样本）"] -- "p(h|v)" --> h0["h"]
  h0 -- "p(v|h)" --> v1["v′（重构）"]
  v1 -- "p(h|v′)" --> h1["h′"]
  h0 -. "正相 v hᵀ" .-> U["ΔW = α(v hᵀ − v′ h′ᵀ)"]
  h1 -. "负相 v′ h′ᵀ" .-> U
```

### 12.3 深度信念网络

**深度信念网络**是一种有多层隐变量的概率生成模型，所有变量都是二值的。其最顶部两层之间是**无向**连接（构成一个 RBM），其他层之间是**有向**的自上而下的连接（构成 Sigmoid 信念网络）。[幻灯片 18](#slide-18) 对一个有 $L$ 层隐变量的 DBN，联合分布为

$$
p\big(\boldsymbol v,\boldsymbol h^{(1)},\cdots,\boldsymbol h^{(L)}\big)=p\big(\boldsymbol v\mid\boldsymbol h^{(1)}\big)\Big(\prod_{l=1}^{L-2}p\big(\boldsymbol h^{(l)}\mid\boldsymbol h^{(l+1)}\big)\Big)\,p\big(\boldsymbol h^{(L-1)},\boldsymbol h^{(L)}\big),
$$

其中有向部分的局部条件概率为 $p\big(h_i^{(l)}=1\mid\boldsymbol h^{(l+1)}\big)=\sigma\big(b_i^{(l)}+\boldsymbol W_{i:}^{(l+1)}\boldsymbol h^{(l+1)}\big)$，顶部两层的 $p(\boldsymbol h^{(L-1)},\boldsymbol h^{(L)})$ 为 RBM 的联合分布。[幻灯片 19](#slide-19)

**生成样本**：先在顶部 RBM 中做足够多步吉布斯采样，得到 $\boldsymbol h^{(L-1)}$，然后自上而下逐层采样，最终得到可观测变量。

**参数学习**：DBN 的学习一般分为两个阶段。[幻灯片 20](#slide-20)

1. **逐层预训练**：把 DBN 看作由多个 RBM 自下而上堆叠而成。先用训练数据训练第一层 RBM，然后把它的隐藏层激活概率（或采样）作为下一层 RBM 的输入，依次训练每一层。Hinton 证明，在一定条件下每增加一层都会提高对数似然的变分下界。[幻灯片 21](#slide-21)
2. **精调**：
   - 作为**生成模型**，可以用**醒眠算法**（wake–sleep）精调：在“醒”阶段用识别权重（自下而上）根据数据推断隐状态，再更新生成权重；在“眠”阶段用生成权重（自上而下）“做梦”生成样本，再更新识别权重；[幻灯片 22](#slide-22)
   - 作为**判别模型**的初始化，可以在 DBN 顶部加一层输出层，用预训练得到的参数初始化一个前馈网络，再用反向传播和标注数据精调。[幻灯片 23](#slide-23)

**历史意义**。在 2006 年前后，深层网络由于梯度消失和数据不足等原因很难训练。DBN 的逐层无监督预训练给网络提供了一个较好的初始点，使得训练深层网络成为可能，重新点燃了人们对神经网络的兴趣。随着 ReLU、更好的初始化（第 7 章）、批量归一化和大规模标注数据的出现，今天的监督学习一般不再需要逐层预训练；但“先无监督预训练、再精调”的思想在预训练语言模型中得到了延续。

## 本章小结

- 玻尔兹曼机是带隐变量的随机全连接能量模型，用吉布斯采样推断，学习规则为“数据期望 − 模型期望”；$T\to0$ 时退化为 Hopfield 网络。
- RBM 采用二分图结构，层内条件独立，可块吉布斯采样；用对比散度 CD-$k$ 高效训练。
- DBN 顶部两层为 RBM、其余层为有向 Sigmoid 信念网络；通过逐层堆叠 RBM 预训练，再用醒眠算法或反向传播精调。

## 思考题与习题 {#exercises}

<div class="exercise-list">

1. **（推导）** 由玻尔兹曼分布推导全条件概率 $p(x_i=1\mid\boldsymbol x_{\setminus i})=\sigma\big((\sum_jw_{ij}x_j+b_i)/T\big)$。
2. **（推导）** 证明 RBM 中给定 $\boldsymbol v$ 时隐变量条件独立，并推导 $p(h_j=1\mid\boldsymbol v)$。
3. **（推导）** 推导 RBM 可观测变量的边际分布（自由能形式）：$p(\boldsymbol v)=\frac1Z\exp\big(\boldsymbol a^\top\boldsymbol v\big)\prod_j\big(1+\exp(b_j+\boldsymbol W_{:j}^\top\boldsymbol v)\big)$。
4. **（分析）** 对比散度为什么从训练样本而不是从随机状态开始采样？这样做引入了什么偏差？
5. **（比较）** 比较 Hopfield 网络、玻尔兹曼机和 RBM 在结构、动力学和用途上的异同。
6. **（编程）** 用 CD-1 在二值化 MNIST 上训练一个有 128 个隐藏单元的 RBM，可视化学到的权重，并通过多步吉布斯采样生成样本。

</div>

**部分提示**

- 第 1 题：比较 $x_i=1$ 和 $x_i=0$ 两个状态的能量差 $\Delta E_i=\sum_jw_{ij}x_j+b_i$，则 $p(x_i=1\mid\cdot)=\frac{1}{1+\exp(-\Delta E_i/T)}$。
- 第 3 题：对每个 $h_j\in\{0,1\}$ 分别求和，指数的和可以分解为各隐单元的乘积。
- 第 4 题：从数据出发，链在数据附近快速得到有意义的梯度；但 $k$ 很小时负相样本没有达到平衡，梯度是有偏的（不对应真实的似然梯度），可用持续对比散度（PCD）缓解。

## 延伸阅读

- 教材：邱锡鹏《神经网络与深度学习》第 12 章「深度信念网络」。
- Hinton G E, Osindero S, Teh Y W. A fast learning algorithm for deep belief nets, Neural Computation 2006；Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks, Science 2006。
- Hinton G E. A practical guide to training restricted Boltzmann machines, 2010。
- 第二版对应章节：第 15 章「深度信念网络」。
