深度架构

从Hopfield网络到CNN:深度学习架构的关键演进

Posted by CloudingYu on March 27, 2026

一、Hopfield 网络与玻尔兹曼机的历史

1.1 开场:为什么要讲历史

虽然今天的大模型训练范式和早期已经完全不同,但回看历史非常重要,因为历史里最值得学的不是”当年用过什么技巧”,而是科学家是如何定位问题、如何一步步打通思路的

只看”是什么”意义不大,最重要的是”为什么要这样设计”。真正值钱的是背后的动机。

1.2 Hopfield 网络(Hopfield Network)

2024 年,Hopfield 与 Hinton 共同获得诺贝尔物理学奖。Hopfield 的贡献不在于”网络更深”,而在于他把物理学、神经科学、神经网络三件事联系起来。

Hopfield 网络的结构特点:

  1. 只有一层神经元,但存在大量侧向连接(lateral connection)。
  2. 神经元两两相连,但通常不与自己相连
  3. 神经元状态是离散的,常写成 ${-1,+1}$ 或 ${0,1}$。
  4. 由于网络存在反馈连接,它本质上属于一类早期的循环网络。

其更新规则为:

\[s_i(t+1)=\operatorname{sign}\!\left(\sum_{j\neq i} w_{ij}s_j(t)-\theta_i\right)\]

1.3 能量函数与缺损记忆恢复

Hopfield 的关键思想是定义能量函数(energy function):

\[E=-\frac{1}{2}\sum_{i\neq j}w_{ij}s_is_j+\sum_i \theta_i s_i\]

网络每次异步更新都会让能量下降,因此最终会收敛到一个局部极小值。这种动力学过程之所以重要,是因为它非常像人脑从残缺记忆中恢复完整记忆的过程。

总结:Hopfield 最牛的地方,不是造了一个”老模型”,而是把统计物理里的能量下降过程,和神经网络里的记忆恢复过程,放进了同一个框架里。

1.4 从 Hopfield 到 玻尔兹曼机(Boltzmann Machine)

Hopfield 的能量观点后来被用于训练玻尔兹曼机。把玻尔兹曼机分成两类:

  • 一般玻尔兹曼机:连接是无向的、层内也可能互连,结构灵活但训练非常困难。
  • 受限玻尔兹曼机(Restricted Boltzmann Machine, RBM):可见层与隐层之间连接,但层内不连边,形成二部图结构,训练难度明显下降。

RBM 的意义不在于它今天仍是主流,而在于它提供了一个当时非常关键的训练思路:逐层无监督预训练

1.5 逐层预训练深度置信网络(Deep Belief Network, DBN)

早期深层网络很难直接端到端训练,原因主要有两点:

  1. 非线性函数主要依赖 sigmoid,深层反传时容易梯度衰减。
  2. 参数初始化很敏感,随机起点稍差,深层网络就可能训不动。

Hinton 当时的重要突破是:

  1. 先训练第一层 RBM,让第一层学到输入的统计结构。
  2. 固定第一层,再训练第二层。
  3. 逐层堆叠,形成 DBN
  4. 最后再用监督信号做整体微调(fine-tuning)。

它的本质是:先把网络参数放到一个比较好的区域,再用反向传播做任务适配

注意:现在训练大模型,已经不是当年的逐层预训练范式了;但如果没有这一段历史,人们当时根本缺少训练很多层网络的手段。

二、深层网络为什么后来能训起来

2.1 sigmoid 的瓶颈

回顾早期深层网络训练困难的根源。以 sigmoid 为例,其导数为:

\[\sigma'(x)=\sigma(x)(1-\sigma(x))\]

这个导数在绝大多数区域都很小,反向传播时层层相乘,梯度会迅速衰减。因此,网络一深,前面层几乎收不到有效训练信号。

2.2 修正线性单元(Rectified Linear Unit, ReLU)

ReLU 的定义非常简单:

\[\operatorname{ReLU}(x)=\max(0,x)\]

它相较于 sigmoid 的优势在于:

  • 正半轴上导数恒为 1,不容易大范围梯度消失。
  • 计算便宜,训练稳定。
  • 网络可以更深。

可以认为:ReLU 的成功不只是”换个激活函数”,而是直接改变了深层网络能否顺利传播梯度。

2.3 残差连接(Residual Connection)

另一个关键突破是残差网络的思想:

\[y = F(x) + x\]

其中 $x$ 通过一条捷径直接传到后层,相当于给信息和梯度提供了一条”快速公路”。它解决的问题是:网络很深时,最后一层误差难以有效回传到前面层

比喻:残差连接就像给信息修了一条高速路,不必每次都在层层弯路里慢慢传。

三、卷积神经网络的动机与基本操作

3.1 为什么全连接网络不适合图像

从图像建模动机切入,指出全连接层直接处理图像有几个明显问题:

  1. 参数量爆炸。比如 $100\times 100$ 的图像一旦全连接到大隐层,参数规模会非常夸张。
  2. 忽视局部结构。图像的语义往往来自局部区域及其上下文,而不是每个像素和所有像素等价连接。
  3. 输入尺寸不灵活。全连接网络通常要求固定输入维度。

更重要的是:图像的有效信息量其实没有想象中那么大。很多区域是重复的、局部相关的,所以应该利用这种结构先验。

3.2 卷积神经网络(Convolutional Neural Network, CNN)的核心思想

CNN 的两个核心先验是:

  1. 局部感受野:一个位置的语义主要由附近区域决定。
  2. 参数共享:同一个模式(边缘、纹理)可以在图像不同位置重复出现。

因此,卷积层不是给每个像素配一套新参数,而是用一个小卷积核在整张图上滑动。

3.3 二维卷积、stride、padding 与 channel

设输入张量大小为 $H\times W\times C_{\text{in}}$,卷积核大小为 $K_h\times K_w\times C_{\text{in}}$,步长为 $S$,填充为 $P$,则输出空间尺寸为:

\[H_{\text{out}}=\left\lfloor \frac{H+2P-K_h}{S}\right\rfloor + 1,\qquad W_{\text{out}}=\left\lfloor \frac{W+2P-K_w}{S}\right\rfloor + 1\]

几个关键点:

  • 一个卷积核会同时看见所有输入通道,然后输出一个 feature map。
  • 多个卷积核并行工作,就会得到多个输出通道。
  • stride 决定滑动步幅,越大下采样越强。
  • padding 用来控制边界信息是否保留,以及输出尺寸是否变化。

3.4 为什么卷积有效

从直觉上给了三个理由:

  1. 卷积关注局部区域,符合图像的生成规律。
  2. 卷积在不同位置复用同一组参数,显著减少参数量。
  3. 卷积天然在建模一个点的上下文,而上下文正是语义形成的关键。

此外,词义也依赖上下文,例如 bank 到底是”银行”还是”河岸”,取决于周围词语。

3.5 Pooling 池化为什么重要

卷积之后常接 Pooling

  • 压缩空间分辨率。
  • 保留显著响应。
  • 减少后续计算量。
  • 提高对局部平移和形变的鲁棒性。

“卷积 + 池化”几乎就是早期 CNN 最核心的两块内容:卷积负责提特征,池化负责做稳健压缩

四、从 LeNet 到一维/三维卷积

4.1 LeNet-5 与分层表征

LeNet-5 为例说明早期 CNN 的工作方式:前面层先提边缘、笔画和简单纹理,中间层提更复杂的局部形状,后面层组合成高层语义。

这说明 CNN 的表征具有明显层次性:越靠前越局部,越靠后越抽象

4.2 特征可视化

展示了不同层的可视化结果,并强调这是 CNN 很吸引人的地方之一:我们可以观察网络早期、中期、后期究竟在提取什么。

关键:卷积网络之所以一度特别有魅力,一个原因就是它比很多别的模型更容易”看见”自己学了什么。

4.3 一维卷积与三维卷积

卷积并不局限于图像:

  • 一维卷积(1D Convolution)用于文本、语音等序列信号,对一个时间窗口做滑动。
  • 二维卷积(2D Convolution)用于图像。
  • 三维卷积(3D Convolution)用于视频、医学体数据等,卷积核会同时沿空间和时间/深度方向滑动。

特别指出:文本和语音做卷积时,本质上也是在一个局部窗口上提取模式,只不过窗口维度变成了时间或序列位置。

五、中文分词与序列标注

5.1 为什么中文分词难

中文分词(Chinese Word Segmentation)作为序列建模的典型任务,并强调即使在大模型时代它仍然重要,因为检索、索引、传统 NLP 流水线都受分词质量影响。

中文分词的难点主要有:

  1. 组合歧义:如”个人的名义”中的”个人”可以是一个词,而”一个人在家”中的”个”又是量词。
  2. 重叠歧义:如”从小学到中学”与”从小学计算机”中的切分方式不同。
  3. 整体歧义:如”美国会采取行动”,可能切成”美国/会/采取/行动”,也可能牵涉其他句法理解。
  4. 人名、机构名、新词持续出现。
  5. 中文构词和缩略规律并不总是规则可推。
  6. 可分词短语、插入语、简称等现象很多。

5.2 从词图搜索到序列标注

提到非常早期的方法是:枚举一句话的可能切分路径,再通过词典和概率选最优路径。但这种方法依赖词典、效率低、应对新词也差。

真正的突破是把分词改写成序列标注(sequence labeling)问题:对每个字打标签即可恢复分词结果。

5.3 BIES 标注方案

采用的是 BIES 风格的标签思想:

  • B:词首(Begin)
  • I:词中(Inside)
  • E:词尾(End)
  • S:单字成词(Single)

这样一来,输入是字序列,输出是标签序列,分词就从”结构搜索问题”变成了”序列预测问题”。

总结:这一步思路转化非常关键,它标志着中文分词从词典规则,真正走向了统计学习方法。

六、隐马尔可夫模型的引入

6.1 隐马尔可夫模型(Hidden Markov Model, HMM)的直觉

从 HMM 的角度来看:如果把观测到的字序列看作 observation,把背后的分词标签看作 hidden state,那么分词自然可以转化成一个带隐状态的序列模型问题。

在 HMM 里:

  • 观测序列是字或其他可见信号。
  • 隐状态序列是我们看不到、但真正决定观测生成方式的结构。
  • 模型包含状态转移概率发射概率两类核心参数。

6.2 HMM 的三个经典问题

HMM 的三大核心问题如下:

  1. 评估问题:给定观测序列,求它出现的概率。
  2. 解码问题:给定观测序列,求最可能的隐状态序列。
  3. 学习问题:给定样本序列,反推模型参数。

这些内容会在后续内容展开。

七、本章主线总结

本章的主线:

  1. 先从 Hopfield、玻尔兹曼机、逐层预训练回看深度学习的历史突破。
  2. 再说明 ReLU 和残差为什么让深层网络真正可训练。
  3. 接着讲 CNN 为什么适合图像,以及卷积/池化/可视化/1D-3D 卷积的统一思想。
  4. 最后把中文分词引到序列标注,再引出 HMM。

核心观点:学历史不是为了复古,而是为了理解每一次模型设计背后到底在解决什么训练困难、什么结构困难、什么表示困难。