VGG网络分析

在图像分类和目标检测任务中都表现出非常好的结果。

VGG最大的贡献就是证明了卷积神经网络的深度增加小卷积核的使用对网络的最终分类识别效果有很大的作用。

论文中,作者指出,虽然LRN(Local Response Normalisation)在AlexNet对最终结果起到了作用,但在VGG网络中没有效果,并且该操作会增加内存和计算,从而作者在更深的网络结构中,没有使用该操作。

VGG网络参数

Q1: 为什么3个3x3的卷积可以代替7x7的卷积?

1、3个3x3的卷积,使用了3个非线性激活函数,增加了非线性表达能力,使得分割平面更具有可分性
2、减少参数个数。对于C个通道的卷积核,7x7含有参数49,3个3x3的参数个数为27,参数大大减少

Q2: 1x1卷积核的作用

1、在不影响感受野的情况下,增加模型的非线性性
2、1x1卷机相当于线性变换,非线性激活函数起到非线性作用

Q3: 网络深度对结果的影响(同年google也独立发布了深度为22层的网络GoogleNet)

1、VGG与GoogleNet模型都很深
2、都采用了小卷积
3、VGG只采用3x3,而GoogleNet采用1x1, 3x3, 5x5,模型更加复杂(模型开始采用了很大的卷积核,来降低后面卷机层的计算)

正则化方法:

1、增加了对权重的正则化,5∗10^−4 *||W||L2
2、对FC全连接层进行dropout,dropout ratio = 0.5
说明:虽然模型的参数和深度相比AlexNetyou 了很大的增加,但是模型的训练迭代次数却要求更少:
a)正则化+小卷积核
b)特定层的预初始化

初始化策略:

1、首先,随机初始化网络结构A(A的深度较浅)
2、利用A的网络参数,给其他的模型进行初始化(初始化前4层卷积+全连接层,其他的层采用正态分布随机初始化,mean=0,var=10−210−2, biases = 0)最后证明,即使随机初始化所有的层,模型也能训练的很好。

训练输入:

采用随机裁剪的方式,获取固定大小224x224的输入图像。并且采用了随机水平镜像和随机平移图像通道来丰富数据。

Training image size: 令S为图像的最小边,如果最小边S=224S=224,则直接在图像上进行224x224区域随机裁剪,这时相当于裁剪后的图像能够几乎覆盖全部的图像信息;如果最小边S>>224S>>224,那么做完224x224区域随机裁剪后,每张裁剪图,只能覆盖原图的一小部分内容。
注:因为训练数据的输入为224x224,从而图像的最小边S,不应该小于224

数据生成方式:首先对图像进行放缩变换,将图像的最小边缩放到S大小,然后

方法1: 在S=224和S=384的尺度下,对图像进行224x224区域随机裁剪
方法2: 令S随机的在[Smin,Smax][Smin,Smax]区间内值,放缩完图像后,再进行随机裁剪(其中Smin=256,Smax=512Smin=256,Smax=512)

预测方式:
作者考虑了两种预测方式:
方法1: multi-crop,即对图像进行多样本的随机裁剪,然后通过网络预测每一个样本的结构,最终对所有结果平均
方法2: densely, 利用FCN的思想,将原图直接送到网络进行预测,将最后的全连接层改为1x1的卷积,这样最后可以得出一个预测的score map,再对结果求平均

上述两种方法分析:

1、Szegedy et al.在2014年得出multi-crops相对于FCN效果要好
2、multi-crops相当于对于dense evaluatio的补充,原因在于,两者在边界的处理方式不同:multi-crop相当于padding补充0值,而dense evaluation相当于padding补充了相邻的像素值,并且增大了感受野
3、multi-crop存在重复计算带来的效率的问题

原文:https://blog.csdn.net/whz1861/article/details/78111606

猜你喜欢

转载自blog.csdn.net/weixin_42764391/article/details/89675354