GoogLeNet
前言
Inception V1(也称为GoogLeNet,命名致敬Google和LeNet),是2014年由Christian Szegedy提出的一种全新的深度神经网络,该网络结构获得2014年ImageNet大赛的冠军。前面两篇文章介绍了AlexNet和VGGNet,这两种网络结构都是通过增大网络的深度来获得更好的效果,但是深度的加深会带来一些副作用,比如过拟合、梯度消失、计算太复杂等,Inception提供了另外一种思路,增强卷积模块功能,可以在增加网络深度和宽度的同时减少参数。
1. GoogLeNet的Inception模块
图1: 原始的Inception模块图2: 优化后的Inception模块
1.1 1x1卷积的使用
解释图1
① 采用不同大小的卷积核意味着不同大小的感受野;
②采用1x1,3x3,5x5的conv,主要是方便对齐。设定步长stride=1后,只需要分别设定padding=2,1,0,就能得到相同的尺寸,这样可以得到相同维度的特征,然后可以将特征拼接到一起;
③pooling在多处表明有效,于是也嵌入了pooling;
④网络越到后面特征越抽象,且每个特征涉及的感受野也更大,随着层数的增加,3x3和5x5卷积的比例也要增加;
优点
代替人工确定卷积层中的过滤器类型或者确定是否需要创建卷积层和池化层,即:不需要人为的决定使用哪个过滤器,是否需要池化层等,由网络自行决定这些参数,可以给网络添加所有可能值,将输出连接起来,网络自己学习它需要什么样的参数。
缺点
由于所有的卷积核都是在上一层的输出情况下去做,那么5x5的卷积核所需计算量就会非常大,特征图的厚度很大。
解释图2
在3x3、5x5的conv前,max pooling后分别加上1x1的卷积核,进行通道数的降维,减少网络参数。例如输入的feature map是28x28x192时,1x1卷积通道是64,3x3卷积通道为128,5x5卷积通道为32,图1的结构卷积核参数总数为:1x1x192x64+3x3x192x128+5x5x192x32;图2的结构卷积核参数总数为:1x1x192x64+(1x1x192x96+3x3x96x128)+(1x1x192x16+5x5x16x32),参数大约减少到原来的三分之一。同时并行pooling层后面也加入1x1卷积层后也可以降低输出的feature map数量。
网友评论