文章

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 进行授权