卷积神经网络(CNN)
从 MLP 的归纳偏置不足讲起,理解卷积层(局部连接、参数共享、平移等变)、步长/空洞卷积与特征图尺寸计算、池化、感受野,以及 LeNet/AlexNet/VGG/ResNet 等经典网络与残差连接。
🎯学习目标
- 理解 MLP 的不足与 CNN 的归纳偏置(局部性、平移等变、参数共享);
- 掌握卷积层的五个视角、多通道卷积与参数量计算;
- 掌握步长 stride、填充 padding、空洞卷积及特征图尺寸公式;
- 理解最大/平均/全局池化、1×1 卷积、降采样与上采样;
- 掌握感受野、特征图概念,编码器-解码器与 U-Net;
- 熟悉 LeNet/AlexNet/VGG/GoogLeNet/ResNet 与残差连接。
1从 MLP 到 CNN
MLP 是通用、简洁、易并行的近似器,但缺点明显:
图像具有局部性与平移不变性:相关的事物聚集在一起,相距甚远的可假设相互独立;同样的内容在不同位置应被同样处理。
若假设输出是输入的局部函数,并对每个局部用相同权重(权重共享)计算,就得到了卷积神经网络。
2卷积层与五个视角 ⭐
卷积层是一种受约束的线性层:其权重矩阵是 Toeplitz(托普利茨)矩阵(每条左上到右下对角线元素相同)。约束带来更少的参数 → 更易学习、更少过拟合,且能应用于任意尺寸输入。
卷积层的五个视角
平移等变
输入平移,输出同样平移。
区域块处理
对每个 patch 做处理。
图像滤波
卷积即滤波运算。
参数共享
各位置共用一组权重。
处理可变尺寸
可处理任意大小张量。
3多通道卷积与参数量 ⭐
图像处理中卷积常指单通道滤波;但神经网络的卷积层更通用——把多通道输入映射为多通道输出。
- 多通道输入:对 RGB 图像 x∈ℝ3×H×W,用多通道滤波器 w∈ℝ3×K×K,对各输入通道分别滤波再相加,得到单通道输出;
- 多通道输出:用一个滤波器组 {w₀,…,w_{C-1}},每个滤波器产生一个输出通道(称为特征图 feature map);
- 通用卷积层:把 C_in 通道映射为 C_out 通道,滤波器组是张量 w∈ℝC_out×C_in×K×K。
每个滤波器参数 = C_in × K × K
(加偏置则 +1)
整层参数量 = C_out × (C_in × K × K + 1)例:输入 3 通道、3×3 核,则每个滤波器有 3×3×3 = 27 个参数;滤波器个数 = 输出通道数(题目未给则无法确定)。4步长、填充、空洞卷积与尺寸计算 ⭐
步长卷积(Strided Convolution)
标准卷积保持空间分辨率;步长卷积以步长 S 跳跃扫描,实现下采样 ℝH×W→ℝH/S×W/S。可显著降低算力/内存,但会降低卷积质量("跳跃式扫描"漏细节),DFT 上可见混叠 aliasing 伪影。
输出 = ⌊ (W − F + 2P) / S ⌋ + 1
W=输入尺寸 F=卷积核大小 P=填充 S=步长填充(Padding)
在输入边缘补零(P),可控制输出尺寸(如 same 填充保持尺寸不变)。
空洞卷积(Dilated Convolution)
把卷积核元素在空间上拉开间距(空洞率 d),在不降分辨率、不增参数的前提下指数级扩大感受野。等效核大小:
K_dilated = (K − 1) × d + 1
5池化层(Pooling)
池化是一种降采样层,用某种聚合统计量概括一个图像块内的信息:
| 类型 | 聚合方式 | 作用 |
|---|---|---|
| 最大池化 Max | 取窗口最大值 | 对小平移稳定(不管边缘精确位置都有大响应) |
| 平均池化 Avg | 取窗口平均值 | 平滑、降采样 |
| 跨通道池化 | 在特征通道间池化 | 可实现旋转不变性(总有某角度滤波器响应) |
| 全局池化 Global | 对整张特征图池化 | C×M×N → 长度 C 的向量,常用于输出端 |
此外还有非线性滤波层:与卷积类似在张量上滑窗、相同独立处理,但执行的是局部窗口的非线性函数(如池化即一种)。
61×1 卷积与上下采样
1×1 卷积
- 跨通道信息集成;升维与降维;
- 引入非线性(后接激活函数),让网络更深、学更复杂决策边界;
- 不改变感受野与特征图尺寸,且只增极少参数、计算代价微乎其微。
降采样与上采样
CNN 可构建为分析-合成金字塔:分析时降采样(减空间维度、降算力、扩感受野、提取高级语义),合成时上采样(恢复空间细节)。
| 方向 | 方法 |
|---|---|
| 降采样 | 步长卷积、池化 |
| 上采样 | 反池化 (Unpooling)、插值(最近邻/双线性)、转置卷积(反卷积,先膨胀再卷积) |
7感受野与特征图
感受野(Receptive Field)
一个神经元的感受野是输入信号中它所敏感的区域。MLP 中每个神经元的感受野是整个输入;CNN 中每个神经元只能"看到"输入的一部分(由卷积核大小决定)。网络越深,感受野越大;常希望最后一层感受野覆盖整张图(如全局平均池化天然覆盖全图)。
特征图(Feature Map)
- 特征图既可指卷积层输出的某个通道,也可指某层所有通道的整体堆叠;
- 对图像是 2D 空间数组;对视频是 3D 时空数组;
- 随网络加深:空间分辨率越来越低,通道数越来越多——浅层敏感于边缘/线条,深层组合成角点、纹理乃至高级语义(信息重组)。
从分类到像素级理解:分类输出单个类别向量(全局池化压成一点);稠密预测(如语义分割)需保留空间位置。降采样太多则语义强但位置模糊,太少则位置准但语义弱(感受野太小)。
8编码器-解码器与 U-Net
编码器以图像为输入逐层降采样到低维特征图;解码器以低维特征为输入逐层上采样到图像输出。二者结合即编码器-解码器架构,强制信号通过一个信息瓶颈——迫使网络抽象,同时降采样省内存算力。
9经典网络与 ResNet ⭐
ImageNet 数据集:约 100 万张带标签图像、1000 个类别,是经典网络的试金石(ILSVRC 竞赛)。
| 网络 | 层数 | 特点 |
|---|---|---|
| LeNet | ~7 层 | 最早的卷积网络(手写数字) |
| AlexNet | 8 层 | 2012 ImageNet 突破,ReLU + Dropout |
| VGG | 16 层 | 统一用 3×3 小卷积堆叠 |
| GoogLeNet | 22 层 | Inception 模块 |
| ResNet | 152 层 | 2015 ILSVRC 冠军,错误率 3.57%,引入残差连接 |
⭐重点例题
输出 = (W − F + 2P)/S + 1
= (32 − 5 + 2×2)/1 + 1
= 31/1 + 1 = 32
结论:输出为 32×32(same 填充,尺寸不变)。
每个滤波器 = C_in × K × K = 3 × 3 × 3 = 27(+1 偏置 = 28)
整层 = C_out × (C_in·K·K + 1) = 64 × 28 = 1792
对应课件例题:输入 3 通道、3×3 核,每个滤波器参数 = 3×3×3 = 27(答案 b);滤波器个数 = 输出通道数,题目未给则无法确定。
K_dilated = (3−1)×2 + 1 = 5,等效 5×5 感受野,但参数仍只 9 个。② 残差连接作用:让网络学习残差 h(x)−x 而非直接学 h(x),形成嵌套函数类,缓解深层退化与梯度问题,使极深网络(152 层)可训练。
🎯自测(点击展开)
从全连接层如何一步步得到卷积层?
卷积层为什么参数比全连接少?
写出卷积输出尺寸公式。
最大池化为什么能带来平移稳定性?
1×1 卷积有哪些用途?
残差连接如何表达目标函数?
📝强化题库
选择题点选即时判分;填空题输入后"检查"或"显示答案"。