大家好!今天我们要聊一个在深度学习领域掀起革命的经典网络——GoogLeNet(又称Inception v1)。这个由Google团队在2014年提出的模型,不仅拿下了ImageNet竞赛冠军,更用"网络中的网络"设计理念彻底改变了卷积神经网络(CNN)的架构思路。
一、为什么需要GoogLeNet?
在GoogLeNet之前,主流思路是不断增加网络深度(层数)来提升性能。AlexNet(8层)、VGG(16-19层)都是这一思路的代表。但层数增加带来三大问题:
- 1.计算量爆炸 💥 - 参数过多导致训练和推理速度慢
- 2.梯度消失 📉 - 深层网络难以训练,梯度反向传播时逐渐衰减
- 3.过拟合风险 🎯 - 模型复杂度过高,容易记住训练数据而非学习泛化特征
GoogLeNet的解决之道是:“宽”而非“深”。它通过Inception模块在同一层级上并行提取多尺度特征,大幅提升特征表达能力而不显著增加计算量。

二、Inception模块:GoogLeNet的心脏
1. 原始构想:多尺度特征融合
GoogLeNet中的基础卷积块叫作Inception块,得名于同名电影《盗梦空间》(Inception)。
Inception块在结构比较复杂。如下图:

Inception块里有4条并行线路。
前3条线路使用窗口大小分别为1×1 、3×3 和5×5 的卷积层来抽取不同空间尺寸下的信息,其中中间2个线路会对输入先做 1×1卷积来减少输入通道数,以降低模型复杂度。
第4条线路则使用 3×3最大池化层,后接1×1 卷积层来改变通道数。
4条线路都使用了合适的填充来使输入与输出的高和宽一致。最后我们将每条线路的输出在通道
维上连结,并向后进行传输。
2. 致命问题:计算量爆炸!
😱 问题来了:5×5卷积的计算量是3×3的2.78倍!直接并行会导致计算成本剧增。
3. 神来之笔:1×1卷积降维
GoogLeNet的解决方案是在大卷积前插入1×1卷积进行降维:
# 改进后的Inception分支
branch3 = sequential(
conv1x1(in_channels, ch5x5red), # 降维:减少通道数
conv5x5(ch5x5red, ch5x5) # 正常卷积
)
1×1卷积的三大作用:
- 1.通道降维:减少后续卷积的输入通道数,降低计算量
- 2.增加非线性:配合ReLU激活函数提升模型表达能力
- 3.跨通道信息整合:融合不同通道的特征信息

最低0.47元/天 解锁文章
1231

被折叠的 条评论
为什么被折叠?



