视频封面

视频元信息

  • 所属课程:吴恩达深度学习专项课程 · 卷积神经网络(CNN)· 第 2 周
  • 本讲主题:Inception 网络(Inception Network / GoogLeNet)
  • 时长:约 8 分 43 秒
  • 前置知识:Inception 模块(1×1 卷积、瓶颈层/bottleneck layer、same padding 池化、通道拼接)

内容摘要(TL;DR)

本讲把上一节的 Inception 模块"积木"拼装成完整的 Inception 网络。核心要点:一个 Inception 模块由 1×1、3×3、5×5 卷积与 3×3 池化四条并行分支组成,最后做通道拼接(channel concatenation)输出 28×28×256。Inception 网络本质就是把这些模块反复堆叠,并加入辅助分类器(side branches / auxiliary classifiers)起正则化作用。该网络由 Google 团队提出,命名为 GoogLeNet 以致敬 LeNet。


一、回顾与引入:从积木到网络 [00:00]

上一讲已经介绍了 Inception 网络的所有基本构建模块(building blocks)。本讲的目标是把这些积木拼装起来,搭建属于自己的 Inception 网络。

关键前提:Inception 模块的输入是前一层输出的激活值(activation)。本讲沿用上一讲的例子,设输入为 28×28×192。

理解:Inception 模块的设计初衷是——与其让网络自己决定用 3×3 还是 5×5 卷积,不如"全都做一遍再拼接",把选择权交给网络本身。


二、单个 Inception 模块的四条并行分支 [00:13]

输入张量:28×28×192。模块内部同时执行四条分支:

分支 1:1×1 卷积 → 5×5 卷积 [00:28]

  • 先用 1×1 卷积做降维(瓶颈层),设输出 16 个通道;
  • 再接入 5×5 卷积,输出 28×28×2(示例中设为 2 通道,实际论文中通常更多)。

要点:这正是上一讲最后一页深入推导过的例子。

理解:1×1 卷积在这里的作用是"压缩计算量"。若直接对 192 通道做 5×5 卷积,参数量与计算量都极大;先降到 16 通道再卷积,可大幅降低开销。

分支 2:1×1 卷积 → 3×3 卷积 [00:54]

  • 同样先用 1×1 卷积降维以节省计算;
  • 3×3 卷积输出 28×28×128。

要点:与分支 1 结构对称,只是把 5×5 换成了 3×3。

分支 3:单独的 1×1 卷积 [01:09]

  • 只做一次 1×1 卷积,输出 28×28×64。

易错点:不需要做"1×1 卷积再接一个 1×1 卷积"。这里只有一步 1×1 卷积。因为 1×1 卷积本身不改变空间尺寸,连续两个 1×1 卷积在结构上是冗余的(可被一个等效卷积替代)。

分支 4:3×3 最大池化 + 1×1 卷积 [01:29]

这是最"巧妙"的一条分支,分两步:

第一步:same padding 的 3×3 最大池化

  • 为了让池化输出能与其它分支拼接,必须使用 same padding,使输出的高宽仍保持 28×28;
  • 但注意:3×3 池化(stride=1)即使加了 same padding,通道数不变,输出仍是 28×28×192。

第二步:追加 1×1 卷积降通道

  • 若不做处理,池化分支会带来 192 个通道,在最终拼接中占比过大;
  • 因此再加一个 1×1 卷积,使用 32 个 1×1×192 的滤波器,把通道数压缩到 28×28×32。

考点:为什么池化分支后面要加 1×1 卷积? 因为池化不改变通道数,会保留输入的 192 个通道,导致该分支在拼接结果中"喧宾夺主"。用 1×1 卷积降维可控制该分支的通道占比。

理解:这一步体现了 Inception 模块的通用思想——凡是通道数过多的地方,都可以用 1×1 卷积(瓶颈层)来压缩,从而控制计算量与通道配比。


三、通道拼接与模块输出 [03:01]

四条分支的输出在通道维度上做拼接(channel concatenation):

分支 输出通道数
1×1 → 5×5 2(示例值)
1×1 → 3×3 128
1×1 64
池化 → 1×1 32
拼接后合计 256
  • 拼接方式:64 + 128 + 32 + 32 = 256(此处视频口播顺序与各分支顺序略有出入,但合计一致);
  • 最终输出:28×28×256。

考点:通道拼接(channel concatenation) 指把多个分支的输出在深度(通道)方向上堆叠起来,高宽必须一致才能拼接。这正是池化分支必须用 same padding 的原因。

至此,一个完整的 Inception 模块构建完毕。


四、Inception 网络:模块的堆叠 [03:37]

Inception 网络做的事情,本质上就是把大量 Inception 模块拼在一起。

  • 视频展示了 Zegdiel(即 Szegedy 等,Inception 论文作者)论文中的网络结构图;
  • 图中看起来非常复杂,但其中大量是重复的模块;
  • 你已经理解的那一个模块,就是图中反复出现的 Inception 模块;
  • 图中还夹着一些额外的最大池化层,用于改变特征图的高宽尺寸;
  • 结构规律:Inception 模块 → 最大池化降尺寸 → 再 Inception 模块 → 再池化……

核心结论:如果理解了上一页的 Inception 模块,就理解了整个 Inception 网络。网络 = 模块的多次重复 + 少量池化层调整尺寸。


五、辅助分类器(Side Branches / Auxiliary Classifiers) [04:47]

原始 Inception 论文中有一个容易被忽略的细节:网络中加入了若干额外的旁支分支(side branches)。

结构

  • 主网络末端:全连接层 + softmax 层做预测;
  • 旁支分支:从某个隐藏层引出 → 经过几层全连接层 → softmax 做预测。

作用

  • 确保即使在中间层(intermediate layers),隐藏单元计算出的特征也"不太差",足以用于预测图像类别;
  • 这起到了正则化(regularizing)效果,帮助防止网络过拟合(overfitting)。

考点:辅助分类器的作用 ① 正则化;② 缓解梯度消失(深层网络训练更稳定);③ 让中间层特征也具备判别能力。 注意:推理/测试阶段通常不使用这些旁支,只保留主输出。

思考:辅助分类器可以理解为"多任务学习"的一种变体——让网络在多个深度上都尝试完成任务,从而约束中间特征的质量。


六、命名由来:GoogLeNet [06:02]

  • 这个 Inception 网络由 Google 的作者团队提出;
  • 命名为 GoogLeNet(注意拼写),是对早期经典网络 LeNet 的致敬;
  • 吴恩达借此感叹深度学习社区非常协作、彼此尊重。

易错点:GoogLeNet 的拼写 是 "GoogLeNet"(Google + LeNet),不是 "GoogleNet"。这是对 Yann LeCun 的 LeNet 的致敬。


七、趣味彩蛋:Inception 名字的由来 [06:35]

  • Inception 论文中引用了一个网络迷因(meme):"we need to go deeper";
  • 论文中给出了一个真实 URL,指向该图片;
  • 看过电影《盗梦空间》(Inception)的人会理解这个梗;
  • 作者以此作为"需要构建更深神经网络"的动机,从而得名 Inception 架构。

思考:"go deeper" 既是电影台词,也是深度学习的核心追求——加深网络层数。这个命名双关非常巧妙。


八、后续版本与总结 [07:23]

后续版本

原始 Inception 模块提出后,作者及其他人不断改进,衍生出多个版本:

  • Inception V2
  • Inception V3
  • Inception V4
  • Inception + ResNet 思想:结合残差跳连接(skip connections),有时效果更好。

考点:所有变体的共同基础 都建立在"设计 Inception 模块 → 堆叠多个模块"这一基本思想上。

本讲总结

  • 理解了 Inception 模块,就理解了 Inception 网络;
  • Inception 网络 = Inception 模块在网络中反复堆叠;
  • 学完本讲后,应具备阅读并理解 Inception 原始论文及后续变体论文的能力。

下讲预告 [08:34]

下一讲将从"专用网络架构"转向实用建议:如何真正使用这些算法构建自己的计算机视觉系统。


九、拓展补充【拓展】

1. 为什么 Inception 模块要用多尺度并行?

单一卷积核尺寸(如只用 3×3)只能捕捉一种感受野的特征。Inception 用 1×1、3×3、5×5 并行,相当于让网络同时观察不同尺度的模式(细节纹理 vs 大范围结构),再让后续层自行选择有用特征。

2. 1×1 卷积的三重作用

  • 降维:减少通道数,降低后续卷积计算量;
  • 升维:增加非线性(配合 ReLU);
  • 跨通道信息整合:在通道维度做线性组合。

推导:若输入 28×28×192,直接做 5×5 卷积输出 32 通道,参数量 = 5×5×192×32 ≈ 153,600;若先用 1×1 降到 16 通道,则参数量 = 1×1×192×16 + 5×5×16×32 ≈ 3,072 + 12,800 ≈ 15,872,减少约 90%。

3. 容易踩坑的点

  • 拼接前尺寸必须一致:所有分支的高宽必须相同,否则无法 concatenate;这就是池化分支要用 same padding 的原因。
  • 参数配置要平衡:若某分支通道数过大,会主导拼接结果,影响网络学习;实践中各分支通道数需精心设计。
  • 辅助分类器不是越多越好:过多旁支会增加训练复杂度,现代实现中常简化或去掉。

4. 与 ResNet 的对比

  • Inception:加宽网络(同一层内多分支并行),强调多尺度特征;
  • ResNet:加深网络(跳连接缓解梯度消失);
  • 两者结合(Inception-ResNet)可兼得宽度与深度优势。

关键标签 / 关键词

吴恩达深度学习 #卷积神经网络 #Inception网络 #GoogLeNet #Inception模块 #1x1卷积 #瓶颈层 #通道拼接 #辅助分类器 #正则化 #过拟合 #InceptionV2 #InceptionV3 #InceptionV4 #ResNet #计算机视觉 #CNN架构


生成时间:2026-10-10 23:00:24 生成平台:VideoNote www.xygy.top