第十八讲 · 池化、感受野与 CNN 整体结构
卷积把一张图变成多张特征图,但若一直保持原分辨率,显存和计算量会很快增长。池化(Pooling)在局部窗口中汇总特征,让表示变小,并保留最显著或平均的响应。
一、最大池化与平均池化
对窗口 ,最大池化与平均池化分别为
池化通常独立作用于每个通道,不把不同特征图相加。它没有卷积核那样的可学习权重。
课件 算例
输入为
使用 窗口、步幅 ,最大池化得到
平均池化得到
课件第 79 页把左上角写成了 ,但该窗口元素和为 ,所以应为 。这是一个可用手算快速发现的算术笔误。
二、最大值和平均值分别保留什么
- 最大池化保留“这个局部是否出现强特征”,适合边缘或局部模式激活;
- 平均池化保留局部整体强度,结果更平滑;
- 全局平均池化把每张特征图压成一个数,常用于分类器末端替代大规模全连接层。
池化不可逆:只看最大值无法知道其余元素,也通常不知道最大值原本具体在窗口哪一格。训练时框架会保存最大值索引,使梯度只传回被选中的位置;平均池化则把上游梯度均分给窗口内元素。
三、完整 CNN 怎样组装
课件给出的典型图像分类网络可以写成
各模块分工如下:
- 卷积:在局部搜索可学习特征;
- 激活函数:加入非线性;
- 池化或步幅卷积:降低空间分辨率;
- 深层卷积:把低级特征组合成高级语义;
- 全连接或全局平均池化:汇总空间信息并完成分类。
LeNet-5 是早期“卷积/采样 + 全连接”的代表;AlexNet 用更深的卷积、ReLU 与大规模数据和计算推动了现代 CNN。这里重点不是背层数,而是看懂特征图的形状怎样沿网络变化。
四、感受野怎样逐层扩大
某层一个神经元在原图上依赖的区域称为感受野。令第 层感受野大小为 ,相邻特征位置在原图上的间隔为 ;第 层核大小和步幅为 ,则
从 开始:
| 模块 | 感受野 | 原图步距 | ||
|---|---|---|---|---|
| 卷积 | 3 | 1 | 3 | 1 |
| 卷积 | 3 | 1 | 5 | 1 |
| 池化 | 2 | 2 | 6 | 2 |
| 卷积 | 3 | 1 | 10 | 2 |
池化后特征图虽然更小,后续一个卷积位置却能覆盖原图更大区域。深层单元因此能从边缘逐渐看到部件和整体物体。
五、等变性与不变性不要混为一谈
课件把检测与分类分别关联到等变性和不变性,可以这样理解。
卷积在理想边界条件下对平移近似等变:输入向右移动,特征图也相应向右移动,内容没有凭空消失。这对目标检测和分割很重要,因为输出位置应该跟着物体位置变化。
分类更希望对小幅平移稳定甚至不变:物体挪几格,类别仍是同一个。局部池化降低了对窗口内精确位置的敏感性,全局汇总进一步增强分类不变性。
不过最大池化不是严格的任意平移不变:若特征跨过池化窗口边界,输出仍可能变化。更准确的说法是它带来局部平移稳定性,而不是保证全局不变。
六、训练仍然依靠同一套反向传播
CNN 看起来模块更多,训练流程仍是梯度下降与反向传播:
- 卷积、激活、池化逐层前向;
- 由任务输出计算损失;
- 梯度穿过全连接、池化、激活和卷积层反向传播;
- 更新卷积核与其他可学习参数。
池化没有参数,但仍要把梯度传给上一层;“没有参数”不等于“不参与反向传播”。
七、特征可视化与对抗样例
特征图可视化能显示某个卷积核在图像哪些位置响应最强,帮助理解浅层边缘与深层语义。但单张激活图只说明相关性,不能自动解释模型的完整决策原因。
课件再次展示对抗样例:给输入加人眼难以觉察的小扰动,分类结果却可能改变。这说明 CNN 的局部稳定性不是绝对鲁棒性;池化也不能替代针对噪声、分布变化和攻击的专门训练。
八、常见误区与 sanity check
- 、步幅 的池化只把宽高各减半,通道数保持不变。
- 池化窗口通常没有参数,但其大小、步幅和填充仍是超参数。
- 平均池化要除以窗口元素个数;课件算例左上角正确值是 。
- 卷积等变不等于分类不变;池化只提供有限的局部稳定性。
- 感受野计算要同时跟踪 与原图步距 ,池化之后不能继续简单地每层只加 。
- 下采样过早或过强会丢失小目标和边界细节,检测、分割任务尤其要谨慎。