深度神经网络已成为现代人工智能的基石,在图像识别、自然语言处理等领域取得了卓越的成就。但在它们占据主导地位之前,曾有一个巨大的障碍: 训练它们极其困难。网络越深,就越难让它学到任何有用的东西。2000 年代中期,一个关键的突破随之而来,那就是无监督预训练思想的提出,这是一种在对特定任务进行微调之前,逐层初始化深度网络的方法。
这项技术引出了一个根本性的问题: 在无监督阶段,网络学习到的“好”表示应具备什么特征? 正如 Pascal Vincent、Hugo Larochelle、Yoshua Bengio 和 Pierre-Antoine Manzagol 在 2008 年一篇开创性论文中所提出的,答案出人意料地简单而优雅。他们假设,一个好的表示应该具备鲁棒性——即使输入数据部分损坏或缺失,也能够捕捉其本质。
为此,他们在一种经典的神经网络模型上加入了新思路,创造了去噪自编码器。本文将深入探讨他们的工作,揭示添加噪声的这个简单想法如何引出强大的特征学习、更佳的模型性能,以及对机器“学习”含义的更深刻理解。
背景: 标准自编码器
在理解“去噪”部分之前,需要先了解基本的自编码器。自编码器是一种神经网络,它被训练来执行一个看似平淡无奇的任务: 重构其输入本身。这听起来似乎无关紧要,但关键在于中间环节的表示学习。
一个自编码器由两部分组成:
编码器 (Encoder) : 接收一个输入向量 \(\mathbf{x}\),并将其映射到一个压缩的隐藏表示 \(\mathbf{y}\),通常使用如下映射:
\[ \mathbf{y} = f_{\theta}(\mathbf{x}) = s(\mathbf{W}\mathbf{x} + \mathbf{b}) \]其中 \(s\) 是一个激活函数,例如 sigmoid 函数。
解码器 (Decoder) : 接收隐藏表示 \(\mathbf{y}\),并将其映射回原始输入空间,得到重构向量 \(\mathbf{z}\)。
目标是让 \(\mathbf{z}\) 尽可能接近 \(\mathbf{x}\)。网络通过最小化一个重构损失来进行训练,该损失衡量输入 \(\mathbf{x}\) 与输出 \(\mathbf{z}\) 之间的差异:
图: 基本自编码器的重构损失目标。
对于取值在 0 到 1 之间的二进制或实值输入,常用的选择是重构交叉熵:
图: 自编码器的重构交叉熵损失。
在经验训练分布上最小化期望重构误差,可以得到:
图: 在训练集上的自编码器训练目标。
通过迫使数据通过一个压缩的隐藏层 (通常称为瓶颈层) ,编码器学会捕捉数据中最重要和最显著的特征。然而,如果隐藏层不比输入层小,标准自编码器可能会简单地学到恒等映射——精确地复现输入,而没有提取出有意义的特征。
核心方法: 学习去噪
研究人员对自编码器的训练方式提出了一个根本性的改动。他们不再让模型从输入本身重构输入,而是训练它从被破坏的版本中重构出干净、原始的输入。
这就是去噪自编码器 (Denoising Autoencoder, DAE) 。其训练过程如下:
- 从一个干净的输入 \(\mathbf{x}\) 开始。
- 随机破坏输入: 随机破坏一部分输入特征 (在他们的实验中,通过将一部分比例 \(\nu\) 的像素置为零) ,生成 \(\tilde{\mathbf{x}}\)。
- 将破坏后的输入 \(\tilde{\mathbf{x}}\) 输入编码器: \[ \mathbf{y} = f_{\theta}(\tilde{\mathbf{x}}) \]
- 将 \(\mathbf{y}\) 解码为重构输出 \(\mathbf{z} = g_{\theta'}(\mathbf{y})\)。
- 计算 \(\mathbf{z}\) 与干净输入 \(\mathbf{x}\) 之间的损失。
图1: DAE 从破坏版本中重构干净输入。
由于输入和输出不同,网络无法学习一个平凡的恒等函数。为了完成任务,它必须学习数据中潜在的统计依赖和结构——一种类似生成模型的理解,使其能够填补缺失部分。
DAE 的目标函数变为:
图: 编码器使用破坏输入的 DAE 目标函数。
通过堆叠 DAE——每一层在前一层的干净输出上进行训练,并且仅在训练过程中进行破坏——我们可以用鲁棒的分层特征来预训练深度网络。
为什么它有效?三种更深层次的视角
虽然“填补空白”是个直观的解释,但该论文从多个理论视角对 DAE 进行了论证。
1. 流形学习视角
高维数据 (如手写数字图像) 通常位于输入空间的一个低维流形附近。破坏过程会将数据点从这个流形上“击落”。DAE 学习一个投影映射 \(\tilde{X} \mapsto X\),将破坏后的点投回流形。
图2: 通过去噪实现流形学习。
在这里,隐藏表示 \(\mathbf{y}\) 充当了流形上点的坐标——刻画了数据的主要变化。
2. 生成模型视角
DAE 可以被解释为一种潜变量生成模型:
- 从一个简单的先验分布中采样隐藏编码 \(Y\)。
- 从 \(Y\) 生成一个干净的 \(X\) (解码) 。
- 将 \(X\) 破坏成 \(\tilde{X}\)。
训练过程通过变分下界来最大化观察到破坏样本的似然。DAE 的重构损失在数学上等价于为特定生成模型最大化这一界,从而赋予它坚实的概率基础。
3. 信息论视角
从信息论角度来看,当隐藏编码 \(Y\) 是从一个破坏的 \(\tilde{X}\) 计算得出时,DAE 的训练最大化了干净输入 \(X\) 与其隐藏编码 \(Y\) 之间互信息 \(I(X;Y)\) 的下界。这迫使 \(Y\) 即使在特征缺失情况下,也尽可能保留关于 \(X\) 的信息。
付诸实践: 实验与结果
作者在 MNIST 数据集以及更具挑战性的变体 (包括旋转数字、随机像素背景、图像背景,以及这些失真形式的组合) 上评估了堆叠去噪自编码器 (SdA) 。他们将其与支持向量机 (SVM) 、深度信念网络 (DBN) 以及标准堆叠自编码器 (SAA) 进行了比较。
表1: SdA-3 在大多数任务上取得了最佳或有竞争力的性能。与 SAA-3 (0% 噪声) 相比,引入噪声显著改善了结果。
结果表明,SdA-3 在几乎所有任务上均优于或至少持平于最好的竞争模型,并且常常能明显胜过 SAA-3。
深入观察: 可视化学习到的特征
网络第一层的滤波器揭示了每个神经元的响应模式。将学习到的权重可视化为图像块,直观展现了去噪训练的影响。
图3a–c: 无噪声时,许多滤波器呈现噪声状,无太大信息量。较高的噪声水平则产生了用于检测边缘、笔画和形状的结构化检测器。
他们还追踪了单个神经元的滤波器在不同破坏水平下的变化:
图3d: 神经元 A 从一个均匀的图像块发展成一个独特的细长特征检测器。
图3e: 神经元 B 从模糊斑点演变成一个清晰的对角线笔画检测器。
更高的噪声水平鼓励神经元去捕捉更大、更全局的结构,从而形成更鲁棒、更有意义的特征。
结论与启示
去噪自编码器为无监督特征学习提出了一个简单却深刻的原则: 好的表示应当对输入的破坏具备鲁棒性。训练网络去修复受损数据,迫使它去学习深层的统计规律。
本研究的关键启示:
- 更优的预训练: 相比标准自编码器,DAE 能在下游分类任务中取得更出色的性能。
- 避免平凡解: 引入破坏过程消除了恒等映射陷阱,使过完备的隐藏层也能学到丰富的表示。
- 高质量特征: 学到的滤波器富有意义,能够检测边缘、笔画及高层模式。
这项工作改变了我们对无监督学习目标的理解,突出了鲁棒性这一核心标准。它展示了刻意注入噪声可以引导模型学习具备良好泛化能力的特征——这一洞见至今仍在影响着表示学习、生成模型与鲁棒人工智能系统的研究。