论文链接:http://arxiv.org/pdf/1409.4842v1.pdf
1、简介
GoogleNet V1作为ILSVRC2014比赛的冠军,一经问世便受到了广泛的关注,并且也得益于其独特的网络设计,相比较于同期的VGG,GoogleNet使得网络的深度得到了进一步的增加,网络宽度更宽,卷积层数量更多。之后又在V1的基础上发展出了V2-V4版本,使得识别准确率进一步提升。
2、GoogleNet精华之Inception模块设计
1、最直接提高深度神经网络性能的方法是增加其规模。
- 增加神经网络的深度(增加层数)。
- 增加神经网络的宽度(增加每层单元数)。
2、大规模带来的两个问题:
- 网络太大,参数太大,容易过拟合,需要更多的数据。
- 计算资源的需求量增加。
3、如何解决这两个问题?
将全连接与卷积层变换为稀疏的。
- 如果数据集的概率分布可以被一个大型的稀疏神经网络所表示,那么最优的网络拓扑结构可以通过分析前面层的激活值的统计关联性,并将具有高相关性输出的神经元进行聚类,而将网络一层一层地搭建起来。
- 但是稀疏矩阵计算资源消耗较大。
- 将稀疏矩阵聚类到相对密集的子矩阵上能够让稀疏矩阵相乘的性能达到实用水平。可以解决稀疏矩阵计算资源消耗较大的问题。
4、Inception结构
通过以上分析,作者设计出来Inception结构,Inception的做法就是将卷积层的完全连接变成稀疏连接,利用多个大小不一致的滤波器,在多个尺度上来提取特征,然后再连接到一个共同的输出,这样一方面在不增加参数量的前提下增加了网络的宽度,另一方面也增加了网络对多个尺度的适应性。
- 为了方便卷积核对其,卷积核尺寸取 1*1、3*3、5*5。
- 考虑到pooling对于卷积神经网络的重要性,增加pooling层。
- 1*1卷积被用于在3×3和5×5卷积之前,降维,减少参数量。
原始的Inception模型:
增加了1*1卷积进行降维的模型:
3、GoogleNet
- 输入数据: 224 * 224 RGB彩色图像,减均值。
所有的Conv层后使用Relu激活函数。
- average pooling 5*5,stride 3 。
- 128个 1*1 filters
- 1024个FCs
- dropout 70%
- softmax
模型参数:
模型结构:
4、GoogleNet分类表现
训练7个GoogleNet模型,ensemble
测试时候采用更多的裁剪方法。
- resize 4 scale: 256、288、320、352。
- left center right or top center bottom。
- 4 corners and center and square resizes 共得到:4*3*6*2 = 144 crops per image.
googleNet分类结果:
5、GoogleNet目标检测
1、region proposal提取方式修改:
- combining the selective search and approach with multibox
检测结果: