视频封面

视频元信息

  • 课程来源:吴恩达深度学习专项课程(Deep Learning Specialization)
  • 所属章节:卷积神经网络(CNN)第一周 1.4 填充(Padding)
  • 视频时长:约 9 分 50 秒
  • 讲师:吴恩达(Andrew Ng)

内容摘要(TL;DR)

本视频讲解卷积神经网络中填充(Padding) 的概念与作用。通过给输入图像边缘补零,解决两个问题:一是卷积操作导致图像逐层缩小,二是边缘像素信息被利用不足。介绍了Valid 卷积(无填充)和 Same 卷积(输出与输入同尺寸)两种常见模式,并推导出 Same 卷积所需的填充量公式 P = (F-1)/2,同时说明计算机视觉中滤波器尺寸通常取奇数的原因。


1. 卷积操作导致输出缩小的基本问题 [00:02]

1.1 基本卷积回顾

  • 输入一张 6×6 的图像,用一个 3×3 的滤波器做卷积,输出结果是 4×4 的矩阵。
  • 原因:3×3 滤波器在 6×6 图像上只有 4×4 个可放置的位置。

1.2 输出尺寸通用公式

如果输入是 n×n 图像,滤波器是 f×f,则输出维度为:(n - f + 1) × (n - f + 1)

  • 本例验证:6 - 3 + 1 = 4,所以输出是 4×4。

理解:这个公式的本质是「滑动窗口能放多少个位置」,横向和纵向各有 n-f+1 个有效起始位置。


2. 不做填充的两个缺点 [01:07]

缺点一:图像每经过一次卷积就缩小

  • 每次卷积操作,图像都会从 6×6 缩小到 4×4。
  • 如果构建很深的网络(比如 100 层),每层都缩小一点,最终图像会变得非常小(甚至到 1×1)。
  • 这限制了网络的深度和表达能力。

缺点二:边缘像素信息被丢弃

  • 图像角落的像素只会被一个 3×3 区域覆盖,因此它只影响输出的一个格子。
  • 而图像中间的像素会被很多个 3×3 区域覆盖,影响输出的多个格子。
  • 结论:边缘信息在输出中被利用得很少,相当于丢弃了图像边缘的大量信息。

考点:这两个缺点是填充(Padding)存在的根本动机——既要保持图像尺寸不缩小,又要让边缘像素获得更多参与机会。


3. 填充(Padding)的解决方案 [02:37]

3.1 具体做法

  • 在卷积操作之前,给图像边缘补一圈像素(通常补 0,即 zero-padding)。
  • 例如:给 6×6 图像补 1 圈,变成 8×8 图像。
  • 用 3×3 滤波器对 8×8 图像卷积:8 - 3 + 1 = 6,输出又变回 6×6,与原始输入尺寸一致。

3.2 填充量 p 的通用公式

如果填充量为 p,则输出维度为:(n + 2p - f + 1) × (n + 2p - f + 1)

  • 本例验证:6 + 2×1 - 3 + 1 = 6,输出为 6×6。

3.3 填充带来的好处

  • 原来处于角落的像素,现在能影响输出的多个格子,边缘信息被更充分利用。
  • 可以按需填充更多圈,比如 p = 2。

思考:填充本质上是「人为扩大感受野的边界覆盖」,让边缘像素从"只被看一次"变成"被看多次"。


4. 两种常见填充模式:Valid 与 Same [05:00]

4.1 Valid 卷积(Valid Convolution)

  • 含义:不做任何填充,即 p = 0。
  • 输出尺寸:(n - f + 1) × (n - f + 1)。
  • 这是之前视频中一直使用的模式(6×6 卷 3×3 得 4×4)。

4.2 Same 卷积(Same Convolution)

  • 含义:通过填充使输出尺寸与输入尺寸相同。
  • 即要求:n + 2p - f + 1 = n。
  • 解方程:
    • n 两边消掉,得 2p - f + 1 = 0
    • 即 2p = f - 1
    • 所以 p = (f - 1) / 2

考点:Same 卷积的填充量公式 P = (F - 1) / 2

  • f = 3 时,p = (3-1)/2 = 1
  • f = 5 时,p = (5-1)/2 = 2
  • f = 7 时,p = (7-1)/2 = 3

推导:Same 卷积要求输出尺寸等于输入尺寸,即 n + 2p - f + 1 = n,移项得 2p = f - 1,故 p = (f-1)/2。


5. 为什么滤波器尺寸通常是奇数 [07:44]

5.1 常见约定

  • 计算机视觉中,f 几乎总是奇数(3×3、5×5、7×7 最常见)。
  • 很少见到偶数尺寸的滤波器。

5.2 两个原因

原因一:Same 卷积需要对称填充

  • 如果 f 是偶数,p = (f-1)/2 不是整数,就需要不对称填充(比如左边多填一点、右边少填一点)。
  • 只有 f 是奇数时,Same 卷积才能给出自然的、四周对称的填充。

原因二:奇数滤波器有中心像素

  • 奇数尺寸(如 3×3、5×5)的滤波器有一个明确的中心位置。
  • 这在计算机视觉中很方便,便于描述滤波器的位置。

思考:吴恩达也坦言这两个理由都不算特别强,但作为行业惯例,建议直接沿用奇数滤波器。使用偶数滤波器性能通常也不会差,只是不符合主流约定。

5.3 补充说明

  • 后续课程还会讲到 1×1 滤波器及其适用场景。
  • 文献中 3×3 最常见,也有 5×5、7×7。

6. 本节小结 [09:22]

指定卷积操作的填充方式有三种选择:

  1. 直接指定 p 的数值;
  2. Valid 卷积:即 p = 0,不填充;
  3. Same 卷积:填充到使输出与输入尺寸相同,即 p = (f-1)/2。

下一节预告:如何实现步长卷积(Strided Convolutions)。


关键要点回顾

概念 公式/说明
无填充输出尺寸 (n - f + 1) × (n - f + 1)
有填充输出尺寸 (n + 2p - f + 1) × (n + 2p - f + 1)
Valid 卷积 p = 0
Same 卷积 p = (f - 1) / 2
滤波器惯例 f 通常取奇数

【拓展】相关背景与踩坑提示

拓展一:填充在框架中的实现

  • 在 TensorFlow / Keras 中,padding='valid' 表示不填充,padding='same' 表示自动计算填充量使输出同尺寸。
  • 在 PyTorch 中,通过 nn.Conv2d(..., padding=p) 手动指定填充量,p 为整数时四周对称填充。

拓展二:Zero-padding 之外的填充方式

  • 除了补零,还有 reflect padding(反射填充)、replicate padding(复制填充) 等。
  • 这些在图像生成、风格迁移等任务中有时效果更好,因为补零会在边缘引入人为的"零边界"。

拓展三:容易踩的坑

  • 易错点:Same 卷积只在 f 为奇数时才有整数解,若强行用偶数滤波器,需要不对称填充,容易在实现时出错。
  • 易错点:混淆 Valid 和 Same 的输出尺寸,写代码时务必核对特征图尺寸,尤其在搭建深层网络时。
  • 提醒:填充量 p 是针对每一侧的量,公式中的 2p 表示上下(或左右)各填 p。

拓展四:1×1 卷积的意义

  • 1×1 卷积看似无意义(不改变空间尺寸),但可用于改变通道数、增加非线性,在 GoogLeNet、ResNet 等网络中广泛使用。

标签 / 关键词

深度学习 #卷积神经网络 #CNN #填充 #Padding #Same卷积 #Valid卷积 #吴恩达 #计算机视觉 #滤波器 #特征图尺寸 #ZeroPadding


生成时间:2026-10-10 22:46:30 生成平台:VideoNote www.xygy.top