因为GoogLeNet网络结构借鉴了NiN网络,所以前提知识储备还得学习下NiN网络。
GoogLeNet网络在2014年的ImageNet图像识别挑战赛中获得冠军。
GoogLeNet又叫inception网络。本篇学习的是inception v1网络结构。
1 相关介绍文章
https://blog.csdn.net/weixin_44772440/article/details/122943095
【GoogLeNet模型及其参数解析】https://blog.csdn.net/weixin_34456923/article/details/148266693
2 卷积层玩的花啊(inception模块)
VGGNet提出了卷积块概念(由一个或多个卷积层组成的,由池化层作为分割线)后,传统的卷积层就此进化成了卷积块的组成部分!因此,神经网络结构组成就重新调整变成了"卷积块+池化层"的范式。
GoogLeNet的inception模块的出现更是对传统CNN卷积层的超级进化,它前面的网络结构(Lenet到NiN)的卷积块都是由1层或多层连续的顺序的卷积层且只用同一个尺寸的卷积核进行卷积操作,而inception模块对输入并行接不同尺寸的卷积核,最后把特征图合并,这个是新的创新、新的尝试,如李沐等人写的《动手学深度学习》书中的图,如下所示。

至此,inception模块是传统卷积层的超级进化 ,inception模块 自然也就成了卷积块的组成部分(类比于以前的卷积层)。
也就是说从传统CNN的"卷积层+池化层"的网络结构范式,进化到VGGNet网络提出的"卷积块+池化层"网络结构范式后,这个网络结构范式(范式就是风格、风向、潮流的意思)就稳固了。哪怕GoogLeNet的inception模块也只是传统卷积层的超级进化,它自然属于卷积层,而卷积层是构成卷积块的基本单位,所以你从GoogLeNet网络结构中可以看到inception模块就是被当成卷积层来使用的。
3 网络结构分析
https://blog.csdn.net/weixin_44772440/article/details/122943095文章中的图如下

注:图中LocalResNorm已经不用了,可以忽略。
3.1 网络结构组成
你看inception的3a、3b为啥叫3的a和b?还有4abcde,5ab,可以观察网络,每个池化层(最大池化,平均池化等)前面和后面的inception才会有的数值迭代------inception3、inception4、inception5),那么在池化层与池化层之间的inception就区分为abcde等,其实它也在告诉我们,GoogLeNet网络也是把inception当成传统卷积层来搞的,就是inception模块替代的就是传统的卷积层,而传统卷积层又是卷积块的组成部分。(inception是部电影名字翻译为《盗梦空间》,你看在这个网络结构中inception也是可以串联,像不像一层又一层的梦境??------其实不止GoogLeNet网络,是从VGG提出"卷积块+池化层"这个标准范式后才发现lenet,Alexnet等都具备这样的inception梦中梦串联,只不过它们是传统卷积层,的,而Googlenet是叫inception)
因此,它的组成是:5个卷积块+GAP全局平均池化层+2个辅助分类器。
第1个卷积块是由1层传统卷积层组成。
第2个卷积层由2个传统卷积层组成。
第3个卷积块由2个inception组成。
第4个卷积块由5个inception组成。
第5个卷积块由2个inception组成。
外加两个辅助分类器。
inception模块也是卷积操,只是并行的不同尺寸的卷积操作,是传统卷积层的超级进化!
因此,你只要把它当成超级卷积层来看就行了!
3.2 网络层数统计(22层)
22层 = 基础卷积层(2) + Inception模块(9×2) + 辅助分类器(2)
统计规则:仅计算带可训练参数的操作(卷积、全连接),忽略池化、LRN、激活函数等无参数层,inception模块视为2层。
差异说明:部分资料可能将Inception模块内部路径拆解为更多层,但原始论文采用合并统计