视频封面

视频元信息

  • 课程:吴恩达深度学习专项课程(Deep Learning Specialization)—— 卷积神经网络(CNN)第 1 周
  • 本集主题:卷积网络的一层(One Layer of a Convolutional Network)
  • 时长:约 7 分钟(视频正文结束于约 [07:00] 附近)

内容摘要(TL;DR)

本视频讲解卷积神经网络中单个卷积层的完整计算流程:从输入体积经过卷积核(滤波器)的线性运算、加上偏置、再经过非线性激活(如 ReLU),最终得到输出激活体积。视频还通过参数数量计算示例(10 个 3×3×3 滤波器共 280 个参数)说明 CNN 参数共享带来的抗过拟合优势,并系统总结了卷积层的标准记号体系。


一、卷积层的计算流程:从输入到输出 [00:03]

视频开头部分语音识别质量较差(转录为乱码),但结合上下文可判断此段在承接上一节内容,说明卷积层的基本运算逻辑。

卷积层的一层计算可以拆解为以下几个步骤:

  1. 线性运算(卷积):用多个滤波器(filter)对输入体积做卷积操作,每个滤波器产生一个二维的特征图(feature map)。
  2. 加偏置(bias):对每个特征图中的所有 16 个元素加上同一个实数偏置。
  3. 非线性激活:对加偏置后的结果应用非线性函数(视频中以 ReLU 为例说明)。
  4. 堆叠(stack):将多个滤波器的输出沿通道维度堆叠,形成多通道输出体积。

易错点:偏置是每个滤波器一个实数,该滤波器的整个特征图上所有元素共享同一个偏置值,而不是每个元素一个偏置。

理解:这就像标准神经网络中每个神经元有一个偏置 b,只不过在卷积层中,一个滤波器对应一个"神经元"(在空间上共享权重),所以一个滤波器只有一个偏置。


二、具体数值示例:6×6×3 → 4×4×2 [01:05]

以视频中的例子说明:

  • 输入:6×6×3 的图像(高 6、宽 6、3 个通道)
  • 滤波器:2 个 3×3×3 的滤波器
  • 卷积结果:每个滤波器产生一个 4×4 的特征图
  • 加偏置:对第一个 4×4 特征图的所有 16 个元素加同一个偏置,然后应用 ReLU,得到 4×4 输出
  • 第二个滤波器:加另一个不同的偏置,应用 ReLU,得到另一个 4×4 输出
  • 堆叠:将两个 4×4 输出堆叠,得到 4×4×2 的输出体积

视频中提到的 "4 by 4 by 4" 是口误或识别错误,实际输出为 4×4×2(因为只有 2 个滤波器)。

关键结论:从 6×6×3 到 4×4×2 的这一整套计算,就是卷积神经网络的一层。


三、与标准神经网络层的类比 [02:11]

视频将卷积层与标准全连接层进行类比,帮助理解:

标准神经网络 卷积神经网络
输入 A⁰ = X 输入体积 A⁰(如 6×6×3)
权重 W¹ 滤波器(如 2 个 3×3×3 滤波器)
Z¹ = W¹·A⁰ + B¹ 卷积运算 + 偏置
A¹ = g(Z¹) 应用 ReLU 等非线性激活
输出 A¹ 输出体积 A¹(如 4×4×2)
  • 滤波器扮演 W¹ 的角色:卷积操作本质上是把 27 个(3×3×3)数字与输入对应位置相乘再求和,是一个线性函数。
  • 偏置扮演 B¹ 的角色:在应用非线性之前加上。
  • 非线性激活后得到 A¹:即下一层的激活值。

推导:6×6×3 的 A⁰ 经过一层神经网络,映射为 4×4×2 的 A¹。这就是卷积层的前向传播。


四、滤波器数量对输出的影响 [04:32]

  • 如果使用 2 个滤波器,输出为 4×4×2
  • 如果使用 10 个滤波器,输出为 4×4×10

规律:输出体积的通道数(深度)等于该层滤波器的数量。

考点:输出通道数 = 滤波器个数。这是 CNN 维度计算中最常考的结论之一。


五、参数数量计算与抗过拟合优势 [05:09]

练习题:假设有 10 个 3×3×3 的滤波器,这一层有多少参数?

计算过程:

  1. 每个滤波器是 3×3×3 的体积 → 27 个参数(27 个需要学习的数字)
  2. 加上 1 个偏置 → 每个滤波器共 28 个参数
  3. 10 个滤波器 → 28 × 10 = 280 个参数

关键洞察:

  • 无论输入图像多大(1000×1000 甚至 5000×5000),参数数量始终固定为 280。
  • 这 10 个滤波器可以检测垂直边缘、水平边缘等特征,适用于任意大小的图像。
  • 这正是卷积神经网络不易过拟合的重要原因之一。

易错点:参数数量与输入图像尺寸无关,只与滤波器大小、滤波器数量和输入通道数有关。这是 CNN 相对全连接层的核心优势——参数共享(parameter sharing) 和 稀疏连接(sparsity of connections)。

思考:如果换成全连接层,输入 1000×1000×3 的图像连接到 1000 个隐藏单元,参数量会达到 30 亿级别,而卷积层只需几百个参数。这种参数效率是 CNN 能处理大图像的根基。


六、卷积层的记号体系总结 [07:01]

视频最后系统总结了描述卷积层所用的记号(以第 l 层为例):

6.1 超参数记号

记号 含义
f^[l] 第 l 层滤波器的大小(f×f)
p^[l] 第 l 层的 padding 数量(也可用 "valid" 表示无 padding,"same" 表示输出与输入同高宽)
s^[l] 第 l 层的步长(stride)

6.2 输入与输出维度

  • 输入:n_H^[l-1] × n_W^[l-1] × n_C^[l-1]
    • 即上一层激活值的高度、宽度、通道数
  • 输出:n_H^[l] × n_W^[l] × n_C^[l]

6.3 输出维度计算公式

$$n_H^{[l]} = \left\lfloor \frac{n_H^{[l-1]} + 2p^{[l]} - f^{[l]}}{s^{[l]}} + 1 \right\rfloor$$

宽度同理:

$$n_W^{[l]} = \left\lfloor \frac{n_W^{[l-1]} + 2p^{[l]} - f^{[l]}}{s^{[l]}} + 1 \right\rfloor$$

考点:这个公式是 CNN 维度计算的核心,务必牢记。注意向下取整符号 ⌊ ⌋。

6.4 通道数与滤波器维度

  • 输出通道数:n_C^[l] = 该层滤波器个数
  • 每个滤波器的维度:f^[l] × f^[l] × n_C^[l-1]
    • 滤波器的通道数必须与输入通道数匹配

易错点:滤波器是三维的(f×f×通道数),不是二维的。卷积时滤波器在通道维度上完整覆盖输入。

6.5 激活值与参数

  • 激活值 A^[l]:维度为 n_H^[l] × n_W^[l] × n_C^[l]
    • 若使用 批量(batch) 实现,维度为 m × n_H^[l] × n_W^[l] × n_C^[l](m 为样本数)
  • 权重 W^[l]:维度为 f^[l] × f^[l] × n_C^[l-1] × n_C^[l]
    • 即(单个滤波器维度)×(滤波器总数)
  • 偏置 b^[l]:维度为 n_C^[l](每个滤波器一个偏置)
    • 代码中常表示为 1×1×1×n_C^[l] 的四维张量

七、关于记号约定的说明 [06:00]

视频中提到,深度学习领域没有完全统一的记号标准。

  • 有些开源代码使用 (通道数, 高, 宽) 的顺序(channels first)
  • 有些使用 (高, 宽, 通道数) 的顺序(channels last)
  • 部分编程框架甚至将顺序作为可配置参数

吴恩达在本课程中采用的约定:高度 → 宽度 → 通道数(channels last)。

理解:两种约定只要保持一致都能正常工作。TensorFlow 默认 channels last,PyTorch 默认 channels first,这是实际编码时容易踩坑的地方。

实用提醒:不必死记所有记号,通过本周的编程练习会自然熟悉。本视频最核心的收获是理解卷积层如何把上一层的激活值映射到下一层的激活值。


八、本节核心要点回顾

  1. 卷积层 = 卷积(线性运算)+ 偏置 + 非线性激活
  2. 输出通道数 = 滤波器个数
  3. 滤波器通道数必须等于输入通道数
  4. 参数数量与输入图像大小无关(参数共享)
  5. 卷积层通过参数共享降低过拟合风险
  6. 掌握输出维度的计算公式
  7. 下一节将把这些层堆叠起来,构建更深的卷积神经网络

关键标签 / 关键词

深度学习 #卷积神经网络 #CNN #吴恩达 #卷积层 #滤波器 #参数共享 #ReLU #偏置 #通道数 #输出维度计算 #过拟合 #深度学习专项课程 #计算机视觉


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