本篇主要介绍GoogLeNet,其被改进并应用在了YOLOV1目标检测算法中。
GoogLeNet是google推出的基于Inception模块的深度神经网络模型,在2014年的ImageNet竞赛中夺得了冠军,在随后的两年中一直在改进,形成了Inception V2、Inception V3、Inception V4等版本。
在了解GoogleNet之前,我们首先需要了解一下Inception
为何需要Inception,有何作用?
一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,但一味地增加,会带来诸多问题:
1)参数太多,如果训练数据集有限,很容易产生过拟合;
2)网络越大、参数越多,计算复杂度越大,难以应用;
3)网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型。
我们希望在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。但是在实现上,全连接变成稀疏连接后实际计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。在这种需求和形势下,Google研究人员提出了Inception的方法。
当然之后出现了ResNet,Inception也在后来的改进中应用到了ResNet
什么是Inception?
Inception就是把多个卷积或池化操作,放在一起组装成一个网络模块,设计神经网络时以模块为单位去组装整个网络结构。模块如下图所示:

在未使用这种方式的网络里,我们一层往往只使用一种操作,比如卷积或者池化,而且卷积操作的卷积核尺寸也是固定大小的。但是,在实际情况下,在不同尺度的图片里,需要不同大小的卷积核,这样才能使性能最好,或者说,对于同一张图片,不同尺寸的卷积核的表现效果是不一样的,因为他

本文详细介绍了GoogLeNet及其核心组件Inception模块的设计理念与结构。GoogLeNet通过引入Inception模块有效解决了网络深度与宽度增加带来的参数过多问题,并在2014年ImageNet竞赛中取得优异成绩。
最低0.47元/天 解锁文章
9297

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



