
视频元信息
- 课程来源:吴恩达深度学习专项课程(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]
指定卷积操作的填充方式有三种选择:
- 直接指定 p 的数值;
- Valid 卷积:即 p = 0,不填充;
- 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