关于VGG和GoogLenet论文的思考
目录
前言
本周读了VGG和GoogLenet两篇论文,这两篇论文都是2014年的,有一些思考与大家分享,共同探讨。
这两篇论文都是基于Alexnet提出的基本结构进行改进的,但是改进方法完全不同。
VGG
VGG的论文在我看来主要涉及以下关键点:
卷积层堆叠
两个3 × 3的卷积层可以起到一个5 × 5 卷积层的作用
三个3×3的卷积层可以起到一个7 × 7卷积层的作用
多层小卷积核堆叠可以和大卷积核有一样的感受野,但小卷积核的参数和计算量更少,具体的计算待定,合并了三个非线性ReLU层,不是只用一个,使得决策函数更具有判别性。
思考: VGG相对于NIN,发现相同深度的网络上使用1×1卷积,不如3×3的卷积核好,所以并不是越小的卷积核表现效果越好,1×1卷积更多情况下是用来降维,减少参数量的。但是卷积层数加深可能会导致梯度消失。
后面GoogLenet的V2变体就受到该处的影响
全连接层等效替换为卷积层
在测试时,使用全卷积层等效替换为全连接层
卷积层可以让卷积网络在一张更大的输入图片上滑动,得到每个区域的输出,突破了输入尺寸的限制,就获得了目标的位置信息。
可以高效地对测试图像做滑动窗式的预测,可以高效的检测多个目标和给出位置信息
思考:VGG和NIN都在全连接层上进行改进,减少全连接层的参数数量有利于减少训练时间,但是全连接层的大量参数也带来了强大的表征能力,在训练时间和性能中如何做出平衡是值得思考的。
密集评估VS多裁剪图像评估
Dense(密集评估),即指全连接层替换为卷积层,最后得出一个预测的score map,再对结果求平均。
Multi-crop,即对图像进行多样本的随机裁剪,将得到多张裁剪得到的图像输入到网络中,最终对所有结果平均。多裁剪这种测试方法,和训练过程类似,不用将网络转化为全卷积网络,是从Q×Q大小的图中随机裁剪224×224的图作为输入,
文中裁剪了50个图像,而每个图像之前缩放为三个尺寸,所以每个图像的测试图像数目变为150个,最终结果就是在150个结果中取平均。
实验结果表明,这两种方法效果基本持平,互为补充,两种方法的结合效果最好
尺度抖动-训练
在测试时,可以使用多尺度抖动的测试图像,其精度好于固定尺寸的测试集。
思考:这是一种可以适用的测试方法的改良。
GoogLeNet
本文关键点如下:
1×1卷积
这是NIN里提出的想法
1.降维或者升维
2.跨通道信息交融
3.减少参数量
4.增加模型深度,提高非线性表示能力
Inception模块
把前面层的输入复制为四份
四条路的通道数之比为64:128:32:32
将通道数留给更重要的部分
辅助分类器
1.避免梯度消失,用于向前传导梯度。
2.将中间某一层输出用作分类,起到模型融合作用。
实际测试时,这两个辅助softmax分支会被去掉。
全局平均池化层GAP
每一个数据层都是用一个平均值来代表这一层,把一个三维的向量变成了一个一维的向量
大量减少参数量
下期预告:GoogLenet的V2,V3变体论文思考