04 卷积操作中的 Padding(填充)
04 卷积操作中的 Padding(填充)
04 卷积操作中的 Padding(填充)
一、问题背景:无填充卷积的两个主要缺点
当我们对一个图像进行卷积操作时,若不使用填充(即“Valid 卷积”),会出现以下问题:
1. 输出尺寸逐层缩小
- 假设输入图像尺寸为 $n \times n$,卷积核(过滤器)尺寸为 $f \times f$,步长为 1。
则输出尺寸为:
\[(n - f + 1) \times (n - f + 1)\]- 例如:$6 \times 6$ 图像 + $3 \times 3$ 卷积核 → 输出为 $4 \times 4$。
- 在深度网络中,多次卷积会导致图像迅速缩小,甚至退化为 $1 \times 1$,丢失大量空间信息。
2. 边缘像素信息利用不足
- 图像角落或边缘的像素只被少数卷积窗口覆盖(如左上角像素仅参与一次卷积)。
- 而中心区域的像素被多个卷积窗口重复使用。
- 导致边缘信息在特征提取中贡献较小,造成信息浪费。
二、解决方案:引入 Padding(填充)
为解决上述问题,可以在输入图像四周添加额外的像素层,称为 padding。
设填充层数为 $p$,则填充后的图像尺寸变为:
\[(n + 2p) \times (n + 2p)\]此时卷积输出尺寸为:
\[(n + 2p - f + 1) \times (n + 2p - f + 1)\]
💡 通常使用 0 填充(zero-padding) ,即在边界补 0。
✅ 示例:
- 原图:$6 \times 6$,卷积核:$3 \times 3$
- 若 $p = 1$,则填充后为 $8 \times 8$
- 输出尺寸:$8 - 3 + 1 = 6$ → 得到 $6 \times 6$ 输出,与输入同尺寸!
三、两种常用 Padding 策略
1. Valid 卷积(无填充)
- 定义:$p = 0$
输出尺寸:
\[n_{\text{out}} = n - f + 1\]- 特点:输出比输入小,不保留边缘信息。
2. Same 卷积(保持尺寸不变)
- 目标:使输出尺寸等于输入尺寸,即 $n_{\text{out}} = n$
由公式:
\[n + 2p - f + 1 = n\]解得所需填充量:
\[p = \frac{f - 1}{2}\]- 要求:$f$ 必须为奇数,才能使 $p$ 为整数。
✅ 常见情况:
- $f = 3$ → $p = 1$
- $f = 5$ → $p = 2$
- $f = 7$ → $p = 3$
四、为什么卷积核尺寸 $f$ 通常是奇数?
在计算机视觉中,几乎总是使用奇数尺寸的卷积核(如 $3 \times 3$、$5 \times 5$),原因如下:
1. 对称填充
- 奇数 $f$ 可以实现四周等量填充(如上下左右各填 $p$ 个像素)。
- 若 $f$ 为偶数,则无法对称填充,可能导致空间偏移或实现复杂。
2. 存在中心像素
- 奇数尺寸的卷积核有明确的中心点(如 $3 \times 3$ 的中心是第 2 行第 2 列)。
- 这在定义卷积操作的位置、设计感受、或结合其他操作(如空洞卷积、注意力机制)时非常方便。
⚠️ 虽然偶数卷积核理论上可行,但不符合主流实践,一般不推荐使用。
五、关键公式汇总(KaTeX 兼容)
| 概念 | 公式 |
|---|---|
| 无填充输出尺寸 | $n_{\text{out}} = n - f + 1$ |
| 有填充输出尺寸 | $n_{\text{out}} = n + 2p - f + 1$ |
| Same 卷积所需填充 | $p = \dfrac{f - 1}{2}$ |
| Same 卷积成立条件 | $f$ 为奇数 |
六、总结要点
✅ Padding 的核心作用:
- 防止图像在深层网络中过度缩小;
- 提升边缘像素的利用率,保留完整空间信息。
✅ Same 卷积是构建深度 CNN 的标准做法,确保每层特征图尺寸可控。
✅ 始终优先使用奇数尺寸卷积核(如 3、5、7),以支持对称填充和中心定位。
✅ Padding 是卷积神经网络设计中的基础技巧,与 stride(步长)、dilation(膨胀)等共同构成卷积操作的核心参数。
本文由作者按照 CC BY 4.0 进行授权