VGG
摘要
VGG通过使用3*3的卷积核增加了网络的深度到16-19,与之前大的卷积核相比,多个小的卷积核叠加,有着相同的感受野,却大大减少了参数的数目。比在2014 ImageNet Challenge比赛中取得了localizations(定位)第一名和classification(分类)第二名的好成绩。分类第一名是alexnet.另外,vgg在其他数据集上表现也很好。
1.简介
近年来,为了增加准确率,人们使用了多个方法:
1)使用更小的感受窗口和第一个卷积层使用小的步长
2)在整张图片和多尺度(multiple scales)上对网络进行密集训练和测试。
3)增加深度:使用3*3卷积核(vgg net)
2.网络配置
2.1结构
1)数据的预处理:图片大小为224*224,同alexnet中,每个像素减去整个训练集上RGB的均值
2)使用3*3卷积核,卷积步长为1
3)在其中一种网络配置中使用1*1卷积核,对输入进行线性变换,使得输入和输出具有相同的维度,增加了网络的学习能力。
4)使用5个池化层(max-pool),池化核为2*2,且步长为2
5)三个全连接层,
6)使用relu激活函数,不具有LRN
2.2配置
卷积核从64,没经过一个max-pool,增加两部,直到512
2.3讨论
VGG16 全部使用3*3的感受野,步长为1,两个3*3卷积的堆叠相当与5*5的有效感受野,三个3*3卷积堆叠相当于7*7有效感受野。使用多个3*3感受野的叠加,可以使得决策函数更具有判别性,而且可以减少参数。其次对于配置C使用了1*1的卷积核,不仅仅增加了非线性而不改变卷积层的感受野,但减少或保持了输入层的信道。1*1卷积首次使用在network in network
gooleNet在2014ILSVRC分类任务中取得了第一名,共有22层,它使用了3*3,1*1,5*5这些小的卷积核,此外,它在第一层中特征图的空间分辨率减少的更多,以减少计算量。
3.分类框架
3.1.训练
使用momentum梯度下降法,batch-size为256,在最后的全连接层使用dropout(dropout ratio=0.5),学习率初始设为0.01,当验证集的正确率停止改善时,学习率减少10倍,学习率共减少3次。
初始化神经网络的权重特别重要,我们先训练浅层的神经网络配置A,当训练深层网络时,我们使用配置A的前四个卷积层和后三个全连接层,中间层随机初始化,从均值为0和方差为10−210−2的正态分布中采样权重,偏置初始化为零。
使用两种方法来设置训练尺度S,第一是固定S,S有两种尺度,S=256,384,首先训练S=256,为了加速S=384的训练,我们使用S=256的权重用于S=384的初始化,并把学习率设为0.001。第二种方法是多尺度(multiple scale)的训练尺度S,使用变长的输入尺寸S,其中S是一个区间[Smin,Smax]
3.2测试
测试时,我们最后的全连接层变成卷积层,也就是一个全卷积网络,然后把全卷积网络应用于整张图片上。我们使用水平翻转做图像增强,同时依旧是对多个输入在softmax层做平均输出 。
4.分类实验
4.1单尺度评估
当训练尺度S固定:测试尺度Q=S;;当训练尺度S不固定,即S是一个区间[Smin,Smax],Q=0.5*(Smin+Smax)。
实验表明LRN层并没有改善正确率。其次配置C中使用了1*1卷积,配置D实验3*3,但配置C结果并没有D号,表明更大的感受野可以很好的捕捉上下文。但C又优于B,表明额外的非线性确实有帮助。最后训练尺度S抖动取得了更好的效果。
4.2多尺度评估
对于固定的训练尺度S,使用Q=S-32,S,S+32三个尺度评估,对于S在[Smin,Smax]之间,采用Q = {Smin, 0.5(Smin + Smax), Smax}.实验表明尺寸抖动的模型是要优于不带抖动的。
4.3多裁剪图像评估
实验表明多裁剪评估(multiple crop evaluation)比密集评估(dense ConvNet evaluation)效果更好,密集评估即在整张图片上,使用全卷积网络评估。而且这两种方法确实是互补的,因为它们的组合优于其中的每一种。