
视频元信息
- 课程:吴恩达深度学习专项课程 · 卷积神经网络(CNN)
- 章节:1.9 池化层(Pooling Layers)
- 时长:约 10 分钟(视频内容以英文原声为主,含中英字幕)
内容摘要(TL;DR)
本节讲解卷积神经网络中的池化层,重点介绍最大池化(Max Pooling)的计算方式、超参数(f、s)、直觉解释,以及与平均池化(Average Pooling)的对比。核心要点:池化层没有需要学习的参数,只做固定运算,且通常不使用 padding。
一、最大池化(Max Pooling)的基本计算 [00:53]
1.1 一个 4×4 输入的示例
视频以一个 4×4 的输入矩阵为例,演示最大池化的运算过程:
- 超参数设定:过滤器大小 f = 2,步长 s = 2
- 将输入划分为 2×2 的区域(不重叠)
- 每个区域取最大值作为输出
具体计算:
- 左上区域四个数(1, 3, 2, 9)→ 最大值 9
- 右上区域蓝色数字 → 最大值 2
- 左下区域 → 最大值 6
- 右下区域 → 最大值 3
理解:这就是为什么叫"最大"池化——在每个窗口内取最大值,相当于对特征做"最强响应"的提取。
1.2 输出尺寸计算
输出为 2×2,计算方式与卷积层输出尺寸公式一致:
输出尺寸 = (n + 2p − f) / s + 1
本例中:(4 + 0 − 2) / 2 + 1 = 2
考点:池化层的输出尺寸公式与卷积层完全相同,务必记住这个通用公式。
二、最大池化的直觉解释 [02:00]
2.1 特征保留的直觉
如果把 4×4 输入看作某层神经网络的激活值(特征图):
- 数值大 → 表示某个特征被检测到(如垂直边缘、眼睛、球体等)
- 最大池化的作用:只要某个特征在窗口内任意位置被检测到,就会在输出中被保留(保持高数值)
- 如果特征不存在,输出值仍然很小
理解:最大池化相当于给网络提供了一定的"平移不变性"——特征在窗口内稍微移动,输出仍然是同一个最大值,因此网络对位置的微小变化更鲁棒。
2.2 吴恩达的重要提醒
注意:吴恩达坦承,上述直觉解释虽然被广泛引用,但并没有人真正完全确定这就是最大池化有效的根本原因。 他认为人们使用最大池化的主要原因是:大量实验证明它在实践中效果很好。
易错点:不要把"直觉解释"当成严格的理论证明。深度学习中很多设计是经验驱动的,理解其工程价值比纠结理论更实际。
三、池化层的关键特性:无参数 [03:38]
3.1 没有需要学习的参数
这是池化层最重要的特性之一:
- 池化层有一组超参数(f、s)
- 但没有任何参数需要通过梯度下降来学习
- 一旦确定了 f 和 s,就只是一个固定的计算函数
- 梯度下降不会改变池化层的任何东西
思考:这与卷积层形成鲜明对比——卷积层有可学习的权重 W 和偏置 b。池化层只做固定的下采样操作,因此可以显著减少计算量和参数量。
考点:池化层没有参数可学习,只有超参数需要人工设定。这是卷积层与池化层最本质的区别之一。
四、不同超参数的示例(5×5 输入,f=3,s=1)[03:57]
视频演示了另一组超参数:
- 输入:5×5
- 过滤器大小 f = 3
- 步长 s = 1
- 输出尺寸:(5 + 0 − 3) / 1 + 1 = 3×3
逐个位置计算最大值,得到 3×3 的输出矩阵。
易错点:当 s < f 时,窗口之间会重叠,这与 f=s 时不重叠的情况不同,但公式依然适用。
五、三维输入的最大池化 [05:39]
5.1 多通道处理方式
如果输入是三维的(如 5×5×2):
- 输出为 3×3×2
- 计算方式:对每个通道独立进行最大池化
- 通道数保持不变:输入通道数 = 输出通道数
更一般地:
- 输入:n_H × n_W × n_C
- 输出:(n_H − f)/s + 1 × (n_W − f)/s + 1 × n_C
理解:池化只改变空间维度(高和宽),不改变通道维度。这与卷积层不同——卷积层可以改变通道数(通过多个过滤器)。
考点:池化操作在每个通道上独立进行,输入通道数等于输出通道数。这是与卷积层的重要区别。
六、平均池化(Average Pooling) [06:47]
6.1 基本概念
除了最大池化,还有一种不常用的池化方式——平均池化:
- 不做取最大值,而是取窗口内所有数的平均值
- 示例(f=2, s=2):
- 紫色区域平均值 = 3.75
- 另一个区域 = 1.25
- 其他区域 = 4 和 2
6.2 最大池化 vs 平均池化
| 对比项 | 最大池化 | 平均池化 |
|---|---|---|
| 使用频率 | 非常常用 | 较少使用 |
| 操作 | 取窗口最大值 | 取窗口平均值 |
| 典型场景 | 大多数 CNN | 深层网络中压缩表示 |
6.3 平均池化的特殊用途
例外情况: 在非常深的神经网络中,有时会用平均池化将 7×7×1000 的表示压缩为 1×1×1000,即对所有空间位置取平均。
理解:这种用法类似于全局平均池化(Global Average Pooling),常用于网络末端替代全连接层,减少参数量。
七、池化层超参数总结 [07:54]
7.1 常用超参数
- f(过滤器大小):常用 f = 2
- s(步长):常用 s = 2
- f=2, s=2 的效果:将高度和宽度大致缩小为原来的 1/2
- 也见过 f=3, s=2 的组合
- 池化类型:最大池化 or 平均池化(二选一)
7.2 关于 padding
注意:池化层通常不使用 padding,最常见的是 p = 0。 虽然理论上可以加 padding,但实际中极少使用(有一个例外将在下周课程中介绍)。
7.3 输入输出尺寸总结
假设无 padding:
- 输入:n_H × n_W × n_C
- 输出:⌊(n_H − f)/s + 1⌋ × ⌊(n_W − f)/s + 1⌋ × n_C
考点:池化层输入通道数 = 输出通道数,因为池化对每个通道独立进行。
八、本节核心结论 [09:41]
- 池化层没有需要学习的参数,只有超参数(f、s、池化类型)
- 超参数通常手动设定或通过交叉验证选择
- 池化层就是一个固定函数,神经网络中的一层,无需学习
- 现在你已经知道如何构建卷积层和池化层
- 下一节将介绍更复杂的例子,并引入全连接层
关键标签 / 关键词
池化层 #Pooling #最大池化 #MaxPooling #平均池化 #AveragePooling #卷积神经网络 #CNN #吴恩达 #深度学习 #超参数 #无参数层 #下采样 #平移不变性 #特征提取 #输出尺寸公式
生成时间:2026-10-10 22:54:11 生成平台:VideoNote www.xygy.top