⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议。
Skip to content

3.2 CNN的本质

核心问题: CNN如何工作?与DSP中的卷积有什么关系?

在线 Notebook

对应的交互式版本可在 Google Colab 打开,统一使用方式见 第0章说明


CNN的基本结构

三个关键操作

  1. 卷积(Convolution):提取特征
  2. 激活(Activation):引入非线性
  3. 池化(Pooling):降维

卷积层

操作: 用可学习的卷积核扫过输入,提取特征。

输入:28×28 图像
卷积核:3×3(可学习)
输出:26×26 特征图

数学表达:

y[i,j]=m,nx[i+m,j+n]w[m,n]+b

激活函数

ReLU(最常用):

ReLU(x)=max(0,x)

作用: 引入非线性,让网络能学习复杂函数。

池化层

最大池化:

y[i,j]=max(x[i:i+k,j:j+k])

作用: 降维,提取最重要的特征。

池化不是深度学习的核心魔法,但它在早期 CNN 里常被用来压缩空间尺寸、扩大感受野并减少计算。


CNN与DSP的联系

详见第1章: 1.3 滤波器与卷积

卷积核 = 可学习的滤波器

DSP中的滤波器:

CNN中的卷积核:

  • 可学习的参数
  • 网络自动学习适合当前任务的卷积核
  • 1.6 信号检测 - 匹配滤波器 的思想相似:都是通过卷积提取对任务有用的信息

启示

CNN可以理解为学习一组适合任务的滤波器。

换句话说,CNN 不是“替代卷积”,而是把卷积从手工设计的信号处理步骤,变成了端到端可学习的表示模块。

每个卷积层学习多个滤波器:

  • 第1层:学习边界检测器
  • 第2层:学习纹理检测器
  • 第3层:学习形状检测器

CNN的工作流程

例子:MNIST手写数字识别

输入:28×28 灰度图像

卷积层1:32个3×3卷积核 → 26×26×32

ReLU激活

最大池化:2×2 → 13×13×32

卷积层2:64个3×3卷积核 → 11×11×64

ReLU激活

最大池化:2×2 → 5×5×64

展平:1600维向量

全连接层:128维

输出层:10维(0-9数字)

为什么CNN有效

1. 局部连接(Local Connectivity)

卷积核只看局部区域,减少参数。

2. 权重共享(Weight Sharing)

同一个卷积核在整个图像上共享,进一步减少参数。

3. 平移不变性(Translation Invariance)

同一个物体在不同位置,CNN都能识别。

4. 感受野逐层扩大

单个卷积核只能看到局部,但多层卷积叠加后,深层神经元能“看到”更大的区域。

浅层:边缘、角点、局部纹理

中层:部分结构、重复模式

深层:物体、场景、语义概念

这解释了为什么CNN既能提取局部细节,又能逐步形成整体理解。

这条“从局部到整体”的路径,就是 CNN 在视觉里最重要的归纳偏置。

5. 多通道特征图

CNN不是只学习一个滤波器,而是同时学习很多个卷积核。

  • 一个卷积核可能关注水平边缘
  • 一个卷积核可能关注竖直边缘
  • 一个卷积核可能关注纹理或颜色变化

结果: 每一层都会形成多个特征图(feature maps),共同描述输入图像的不同方面。


CNN的局限与视觉任务的扩展

CNN非常适合图像分类,但分类只回答一个问题:图里有什么?

更复杂的视觉任务还包括:

  • 目标检测:图里有什么?它在哪里?
  • 图像分割:图中每个像素属于什么?

这说明CNN不仅可以做分类,还可以作为更复杂视觉系统的特征提取骨干网络。

也就是说,CNN 的价值不只是“做分类器”,而是为检测、分割等更复杂任务提供通用视觉表征。

但也有局限:

  • 主要依赖局部卷积,建模长距离关系不如自注意力直接
  • 对小目标和复杂空间关系的理解需要更深结构或额外机制
  • 对序列和跨模态任务不如Transformer通用

这正好解释了为什么第 3 章后面会继续从视觉走到序列,再走到 Transformer。


MNIST CNN

图3.2:CNN在MNIST上的识别效果与特征提取结果示意。它把卷积、特征图和最终分类结果串起来,帮助读者把”可学习滤波器”这个抽象概念落到具体视觉任务上。

代码文件: code/ch03_deep_learning_fast/mnist_cnn.py
运行方式: python code/ch03_deep_learning_fast/mnist_cnn.py

本节小结

CNN是深度学习在计算机视觉中的基础:

  • 卷积核是可学习的滤波器
  • 分层提取特征
  • 局部连接和权重共享减少参数
  • 感受野和多特征图让模型逐步形成语义理解
  • 目标检测和图像分割都是在CNN特征提取基础上的进一步扩展

下一节: 3.3 从分类到检测:YOLO的核心思想

本教程采用 CC BY-NC-SA 4.0 许可协议