深度神经网络的缺陷
我们知道在设计神经网络时最保险的就是增加网络的深度和宽度,增加深度就是要设计更多的网络层数,增加宽度就是增加卷积核的个数。但是网络越深越宽容易出现两个缺陷:
- 参数太多,在训练数据集有限的情况下容易出现过拟合
- 网络越大,计算复杂度越高
GoogLeNet就是在保证神经网络的深度和宽度的情况下有效的减少参数个数,从而实现一个高效的网络结构。决定其高效性能的重要组成结构有三个,分别是:
- 1x1卷积核
- 初始化模块:赫布规则
- 全局平均汇集
这里只讨论1x1卷积核的作用,其他结构待后续会说明。而要说到1x1卷积核的作用还要从特征图说起。
特征图映射太多的问题
如图,如果使用个的卷积核,可以获得个单独的特征图,而这些特征图的尺寸是,特征图的数据量只跟卷积核的数量有关跟原始图像的通道(channel)无关。
我们知道,在设计神经网络时,卷积核的数量会随着层数的增加会越来越多,这样会导致神经网络的深层原始图像经过大量的卷积核卷积后其特征图数量也会急剧增加。而池化层并不会改变模型中卷积核的数量,也就不会改变输出特征图的数量。所以,需要一种类似池化层的装置来减少特征图的深度(数量)。
1x1卷积核卷积过程
可以由图看到,的卷积核并没有改变原始特征图的长和高,只是改变了特征图的数量,在某种程度上来说如果卷积核的数量少于特征图其卷积相当于降维作用,多于特征图其卷积相当于升维作用。
除了有降维作用还有减少运算量的作用,如图不使用卷积核时的运算量与使用后的运算量的对比。