- 示例工程
【免费下载链接】NYU-DLSP20
NYU Deep Learning Spring 2020
本讲内容源自 NYU Deep Learning Spring 2020(NYU-DLSP20)第 03 讲第三部分Properties of natural signals(讲师 Alfredo Canziani),对应的波斯语讲义位于 docs/fa/week03/03-3.md,完整实验代码在 06-convnet.ipynb。文章系统梳理自然信号的三大性质(stationarity、locality、compositionality),并说明它们如何逐一映射到卷积网络的稀疏连接、权重共享与多层堆叠三项设计,最后用同一笔记本中的“同等参数 FC 与 CNN 对比 + 像素乱序”实验验证结论。
一、信号即向量:音频、图像与语言的统一表示
讲义开篇给出的核心观点是:所有信号都可以被看作向量,而信号的“维度”取决于信息沿哪个变量变化。
- 音频是 1D 信号:$\boldsymbol{x} = [x_1, x_2, \cdots, x_T]$,其中每个 $x_t$ 表示 $t$ 时刻波形的振幅。人耳之所以能听懂语音,是因为耳蜗先把空气压力振动转成神经信号,大脑再用一个“语言模型”在给定信号的前提下挑选最可能的语句。即便是立体声音乐,拥有 2 个甚至更多声道(制造声音来自多方向的错觉),它依然是 1D 信号——因为唯一的变化变量仍然是时间。
- 图像是 2D 信号:信息沿空间铺展。每个空间点本身又可以是一个向量:若图像有 $d$ 个通道,则每个空间点是 $d$ 维向量。彩色图像的 RGB 三平面意味着 $d = 3$,即任一像素 $x_{i,j}$ 分别对应红、绿、蓝的强度。
- 语言同样可以这样表示:每个词对应一个 one-hot 向量,在词表对应位置为 1、其余为 0,因此每个词都是词表大小的向量。
这一“信号即向量”的视角是整个课程的底层语言:卷积、点积、相似度、感受野等一系列概念都建立在向量与信号的结构之上。
二、自然信号的三大性质
自然数据(信号)普遍遵循以下三条性质:
- Stationarity(平稳性/平移不变性):信号中会出现重复的特定“纹样”(motif)。音频中同一类模式在时间域反复出现;图像中则可以预期相似的视觉模式在不同位置重复。
- Locality(局部性):邻近的点比相距远的点相关性更强。对 1D 信号而言,如果在 $t_i$ 处出现一个峰值,那么 $t_i$ 附近小窗口内的点取值会与之接近;而远离 $t_i$ 的 $t_j$ 处,$x_{t_i}$ 对 $x_{t_j}$ 几乎没有影响。形式上,信号与其翻转版本做卷积(cross-correlation)时,当两者完全重合会出现峰值;两个 1D 信号的卷积本质上就是它们的点积,是衡量两个向量相似/接近程度的度量——因此信息集中在信号的特定局部片段。对图像而言,两个像素的距离越远,相关性越低:若 $x_{0,0}$ 是蓝色,相邻像素 $x_{1,0}$、$x_{0,1}$ 大概率也是蓝色;但到了图像对角的 $x_{-1,-1}$,其取值与 $x_{0,0}$ 基本无关。
- Compositionality(组合性):自然界的一切都由“部件”构成,而部件又由“子部件”构成。例如字符组成字符串、字符串组成单词、单词组成句子、句子组成文档。组合性让世界变得可解释,也直接对应深度学习“多层堆叠”的合理性。
讲义随后给出关键论断:当数据具备平稳性、局部性与组合性时,我们就可以用“稀疏连接 + 权重共享 + 多层堆叠”的网络(即卷积网络)来利用它们。下面的推导会看到,三条性质与三项网络设计一一对应。
三、由性质到架构:稀疏连接与权重共享如何催生卷积核
3.1 Locality → 稀疏连接(Sparsity)
讲义先以一个 5 层全连接网络(示意图 pre-inference4layers.png,每个箭头代表一个要与输入相乘的权重)说明问题:全连接在计算上是极其昂贵的。
如果数据具有局部性,那么每个神经元只需连接前一层的少数“局部邻居”,远端连接可以裁掉。以下两张图展示了这一过程:
| 图 2(a):应用稀疏化之前(全连接) | 图 2(b):应用稀疏化之后 |
|---|---|
| 应用稀疏化前的全连接网络 Before Applying Sparsity.png) | 应用稀疏化后的稀疏连接网络 After Applying Sparsity.png) |
隐藏层(绿色)的每个神经元不再横跨整个输入,但整体架构仍然能够覆盖所有输入神经元。这里自然引出**感受野(receptive field, RF)**的定义:某层每个神经元所能“看见”或纳入考虑的前层神经元个数。在讲义示例中:
- 输出层相对隐藏层的 RF 为 3;
- 隐藏层相对输入层的 RF 为 3;
- 但输出层相对输入层的 RF 为 5——多层的局部连接在感受野上完成了“接力式”累积。
这正是局部性转化为稀疏连接、并最终积累出全局视野的核心机制。
3.2 Stationarity → 参数共享(Parameter Sharing)
如果数据具备平稳性,就可以在网络的不同位置反复使用同一小批参数。以稀疏网络为例,把 3 组参数(图中黄、橙、红三色)跨位置共享,参数量从 9 直接降到 3——不仅参数更少,甚至可能训练得更好,因为每个权重能见到更多训练数据。
| 图 3(a):应用参数共享之前 | 图 3(b):应用参数共享之后 |
|---|---|
| 参数共享前的局部连接 Before Applying Parameter Sharing.png) | 参数共享后的权重复用 After Applying Parameter Sharing.png) |
讲义明确给出概念衔接:“经过稀疏化和参数共享之后的权重,就被称为卷积核(convolution kernel)。”至此,卷积的三大构件——局部连接、权重复用、滑动窗口——全部由数据性质推导出来。
讲义归纳了两类收益:
- 参数共享带来的收益:更快的收敛速度;更好的泛化能力;不受输入尺寸限制(同一个核可作用于任意尺寸输入);核与核相互独立,天然支持高并行化。
- 连接稀疏带来的收益:计算量显著降低。
3.3 核尺寸的选择与零填充
以 1D 数据上的卷积核为例(Figure_4a_kernels_ on_1D_data.png),一个核的总参数量为:
$$2\ (\text{核数}) \times 7\ (\text{前一层厚度}) \times 3\ (\text{每个核的独特权重数})$$
核尺寸的选择是经验性的(empirical):
- 对空间数据,$3 \times 3$ 卷积看起来是“最小可用”尺寸;
- $1 \times 1$ 卷积可用于构造最终层,从而把训练好的网络应用到更大的输入图像上;
- 偶数尺寸核可能降低数据质量,因此实践中几乎总是使用奇数核(通常是 3 或 5)。
Padding(填充):讲义提醒,填充“通常会使最终结果变差,但编程实现很方便”。标准做法是零填充(zero padding),尺寸为size = (kernel size - 1) / 2(见 Figure_4b_zero_padding.png)。注意:对奇数核,该公式恰好让输出空间尺寸与输入一致(samepadding),是 PyTorch 中padding=kernel_size//2的由来。
四、标准空间卷积网络的标准构件
讲义给出一个“标准空间 CNN”的构件清单:
- 多层结构,每层包含:
- 卷积(Convolution)
- 非线性(Non-linearity,使用 ReLU 或 Leaky ReLU 等激活函数)
- 池化(Pooling)
- 批归一化(Batch normalisation)
- 残差旁路连接(Residual bypass connection)
批归一化与残差连接对“把网络训练好”非常关键:层数堆叠过多时,信号的部分信息可能丢失;残差旁路为信号提供了从底层直达顶层的通道,同时也为梯度提供了从顶层回传到底层的通路。
关于层级表征的变化,讲义用下图说明(Figure 5):输入图像几乎全是二维空间信息(除每个像素的颜色这一“特征信息”外),而输出层“很厚”。随着层级上升,空间信息与特征信息之间存在权衡:空间信息逐渐丢失,表征越来越密集——这正对应“组合性”在表征层面的体现:底层学习局部纹样,高层组合出语义部件。
五、池化:用 $L_p$-范数压缩空间维度
池化是卷积网络中另一个关键算子(Figure 6 Illustration of Pooling.png):对一个区域施加 $L_p$-norm 算子,每个区域只输出一个值(示例中 4 个像素压缩为 1 个值),然后以 stride 为步长逐区域滑动。

如果输入是 $m \times n$、带 $c$ 个通道,使用 2×2 池化后输出为 $\frac{m}{2} \times \frac{n}{2}$,通道数 $c$ 保持不变(Figure 7 Pooling results.png)。
要点:
- 池化没有可学习参数(not parametrized);
- 类型可选:最大池化(max pooling)、平均池化(average pooling)等;
- 主要目的是压缩数据量,使计算能在合理时间内完成。
在卷积网络中,池化同时贡献了平移不变性(translation invariance),这一点在笔记本的总结中被明确列为“卷积使用局部性与平稳性、池化内置平移不变性”的三条先验知识之一。
六、实验验证:同等参数的 FC 与 CNN 在 MNIST 上的对照
讲义对应 06-convnet.ipynb。该笔记本训练一个多层感知机(全连接网络)和一个卷积神经网络(CNN)做 MNIST 手写数字分类,且两个网络参数量相等。
6.1 环境与数据准备
按仓库 README.md 的指引安装环境:
conda env create -f environment.yml source activate NYU-DL jupyter labenvironment.yml 定义的环境名为NYU-DL(讲义中所说的pDL即指此课程环境),包含pytorch、torchvision、matplotlib、jupyterlab等依赖。
数据加载时先做归一化,让网络初始化与数据分布匹配(讲义强调“非常重要”)。笔记本中 MNIST 的变换为transforms.ToTensor()后接transforms.Normalize((0.1307,), (0.3081,))(均值 0.1307、标准差 0.3081),训练批大小 64、测试批大小 1000,均在 06-convnet.ipynb 中可查。

6.2 两个模型定义(源码级对照)
笔记本中的两个模型定义与讲义的推导严格对应:
FC2Layer(全连接):nn.Sequential(nn.Linear(input_size, n_hidden), nn.ReLU(), nn.Linear(n_hidden, n_hidden), nn.ReLU(), nn.Linear(n_hidden, output_size), nn.LogSoftmax(dim=1)),输入先view(-1, input_size)展平为 784 维——它假设所有像素“平权”,不利用任何空间结构。CNN(卷积):两层nn.Conv2d(1, n_feature, kernel_size=5),每层卷积后接F.relu与F.max_pool2d(kernel_size=2),随后展平经fc1/fc2输出log_softmax——它显式编码了“像素位于网格上且满足平稳/局部”的先验。
训练中get_n_params(model)统计参数量,用于保证两者“同等参数”。讲义强调训练循环中必须包含五个步骤,笔记本的train()函数逐一实现:
- 把数据送入模型(
output = model(data)); - 计算损失(
loss = F.nll_loss(output, target)); - 用
optimizer.zero_grad()清空累积的梯度缓存; - 计算梯度(
loss.backward()); - 优化器前进一步(
optimizer.step())。
6.3 实验结果与解读
在归一化后的 MNIST 上:
- FC 网络准确率约87%;
- CNN 准确率约95%。
在参数量相同的前提下,CNN 能够训练出多得多的滤波器。FC 网络中大量参数浪费在“把相距很远的东西与邻近的东西建立依赖”上;而卷积网络把所有参数集中在邻域像素之间的关系上——这正是局部性先验的价值。
6.4 像素乱序实验:假设被破坏之后
随后,实验对所有图像的全部像素做一次随机置换(perm = torch.randperm(784),将每张图展平、按perm重排、再还原为 28×28),得到“乱序 MNIST”:

结果极具说服力:
- FC 网络性能几乎不变(约85%);
- CNN 准确率跌到83%。
原因正如讲义总结:随机置换之后,图像不再具备局部性、平稳性与组合性——这三条正是 CNN 赖以发挥作用的先验假设。CNN 在假设成立时收益巨大(95% vs 87%),在假设失效时同样损失巨大(跌至 83%);而 FC 网络不依赖这些假设,既不享受其红利,也不承受其反噬。笔记本末尾的柱状图(plt.bar(('NN image', 'CNN image', 'CNN scrambled', 'NN scrambled'), accuracy_list))直观呈现了这一对比。
七、小结:一条从数据性质到网络架构的完整推导链
本讲的逻辑可以浓缩为一条推导链:
- 平稳性→ 同一套参数(卷积核)跨空间位置复用 → 参数共享、更少参数、更强泛化;
- 局部性→ 只连接局部邻域 → 稀疏连接、感受野逐层累积、计算量下降;
- 组合性→ 多层堆叠 → 表征从空间明细走向语义密集。
再加上批归一化与残差旁路保证深层可训练、池化压缩数据并注入平移不变性,就得到了现代卷积网络的标准形态。而 06-convnet.ipynb 的对照实验从正反两面验证了这一套设计:先验假设在成立时是巨大优势,在被破坏时则变成短板——这既是 CNN 在图像任务上成功的根源,也是选择架构时必须理解的权衡。
如需复现全部结果,可直接运行仓库根目录下的 06-convnet.ipynb,并配合 environment.yml 创建课程环境;相关图文讲义还可在 docs/en/week03/03-3.md(英文原版)与 docs/fa/week03/03-3.md(波斯语译本)中对照阅读。
- 示例工程
【免费下载链接】NYU-DLSP20
NYU Deep Learning Spring 2020
相关推荐
自然信号的三大属性与 CNN 设计原理:从信号表示到稀疏化、参数共享与 MNIST 实战验证
自然信号的三大属性与 CNN 设计原理:从信号表示到稀疏化、参数共享与 MNIST 实战验证 本篇文章是 NYU DLSP20(NYU Deep Learnin
示例工程从自然信号的三性到卷积网络:稀疏性、参数共享与不变性构建(NYU-DLSP20 第 3 周实战)
从自然信号的三性到卷积网络:稀疏性、参数共享与不变性构建(NYU DLSP20 第 3 周实战) 自然界的信号——声音、图像、语言——看似千差万别,却共享三个结
示例工程NYU-DLSP20 深度学习笔记:自然信号的三大性质与 CNN 设计动机——从局部性、平稳性到卷积神经网络
NYU DLSP20 深度学习笔记:自然信号的三大性质与 CNN 设计动机——从局部性、平稳性到卷积神经网络 本文基于 NYU Deep Learning Sp
示例工程
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考