googlenet,14年比赛冠军的model,这个model证明了一件事:用更多的卷积,更深的层次可以得到更好的结构。
GoogLeNet提出了Inception新模块,以增加网络的宽度
Inception结构:
========================================================================================
一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,但一味地增加,会带来诸多问题:
1)参数太多,如果训练数据集有限,很容易产生过拟合;
2)网络越大、参数越多,计算复杂度越大,难以应用;
3)网络越深,容易出现梯度弥散问题(梯度越往后穿越容易消失),难以优化模型。
我们希望在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。
稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。在这种需求和形势下,Google研究人员提出了Inception的方法。
Inception就是把多个卷积或池化操作,放在一起组装成一个网络模块,设计神经网络时以模块为单位去组装整个网络结构。(block?)
一个Inception模块中并列提供多种卷积核的操作,网络在训练的过程中通过调节参数自己去选择使用,同时,由于网络中都需要池化操作,所以此处也把池化层并列加入网络中。
https://zhuanlan.zhihu.com/p/73857137
2014年,GoogLeNet和VGG是当年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名
虽然深度只有22层,但大小却比AlexNet和VGG小很多,GoogleNet参数为500万个,AlexNet参数个数是GoogleNet的12倍,VGGNet参数又是AlexNet的3倍
网络中的亮点:
引入了Inception结构(融合不同尺度的特征信息)
使用1x1的卷积核进行降维以及映射处理
添加两个辅助分类器帮助训练
丢弃全连接层,使用平均池化层(大大减少模型 参数)
pytorch代码
https://zhuanlan.zhihu.com/p/185025947