赞
踩
VGG
全称是Visual Geometry Group
,因为是由Oxford
的Visual Geometry Group
提出的。AlexNet
问世之后,很多学者通过改进AlexNet
的网络结构来提高自己的准确率,主要有两个方向:小卷积核和多尺度。而VGG
的作者们则选择了另外一个方向,即加深网络深度。
卷积网络的输入是224 * 224
的RGB
图像,整个网络的组成是非常格式化的,基本上都用的是3 * 3
的卷积核以及 2 * 2
的max pooling
,少部分网络加入了1 * 1
的卷积核。因为想要体现出“上下左右中”的概念,3*3
的卷积核已经是最小的尺寸了。
解释两个关键问题:
3 * 3
卷积叠加,而不是例如7 * 7
、11 * 11
的单个卷积,原因如下:
3 * 3
卷积叠加得到的理论感受野和一个7 * 7
卷积的理论感受野是相同的。详细解释可以参考深度学习面试题-感受野ReLU
,3个3 * 3
卷积就会有3个ReLU
,但是一个7 * 7
卷积只有一个,所以这么做可以使得模型的非线性拟合能力更强。3*3
卷积的输入和输出都是C
个通道,那么参数数量为
3
(
3
∗
3
∗
C
∗
C
)
=
27
C
2
3(3 * 3 * C * C) = 27C^2
3(3∗3∗C∗C)=27C2,而7 * 7
卷积的参数数量为
7
∗
7
∗
C
∗
C
=
49
C
2
7 * 7 *C * C = 49 C^2
7∗7∗C∗C=49C2。1 * 1
卷积的作用是什么?
mobilenet
使用1 * 1
卷积核来扩维,resnet
用其降维。不过这一条不是vgg
提出的。下图是VGG16
的网络架构:
首先放上作者用来做对比实验的六组网络。
简单介绍一下各组的区别:
LRN
,这是AlexNet
里提出来的,不需要怎么了解,基本很少使用了。1 * 1
的kernel
。1 * 1
的卷积核替换成了3 * 3
的,即VGG16
。3*3
卷积层,即VGG19
。首先说明一下训练集里图像短边长度S
的设置,设置方式分为两种:
S
:针对单尺寸图片进行训练。Scale jittering
:即对图片采用不同的Scale
进行缩放,文中S
在
[
S
m
i
n
,
S
m
a
x
]
[S_{min}, S_{max}]
[Smin,Smax]之间随机选择,
S
m
i
n
=
256
,
S
m
a
x
=
512
S_{min} = 256, S_{max} = 512
Smin=256,Smax=512。然后图片进行各向同性缩放(后面有解释),并裁剪出224 * 224
的区域。注意,这些是针对训练集图片的,但是Single Scale Evalution
是针对测试集图像的,测试集图像的短边被固定为单一尺寸Q
,比如Q = 256或者384
。
实验结果分析:
LRN
对网络性能提升没有帮助。1 * 1
卷积层可以提高网络精度。Scale jittering
也可以提升网络精度。这里Multi-Scale
是指采用多个尺寸的测试图像,可以把这个表格和前面Single Scale
的表格进行对比,可以发现测试时对测试集的图像采用Scale jittering
也可以获得更好的精度。
首先解释一下dense evalution
和multi-crop
:
dense evalution
:用卷积层代替全连接层,那么卷积网络就可以接受任意大小的图像作为输入。
以上图为例,假设输入图片大小是14 * 14
,最后输出有C
个通道(等同于类别数),经过第一阶段的卷积和池化之后得到了5 * 5
的特征图。如果我们用传统的CNN
,那么这时候我们需要将特征图展平为一维向量,大小为(1, 25)
,然后加上一个全连接层(权重w
的大小为(25, C)
),就可以得到属于各类别的概率。但是我们可以用一个5 * 5
的卷积层来代替,得到输出为(1, 1, C)
,然后降维得到分类概率。
如果将全卷积网络的输入换成16 * 16
的图像,结果如下图所示:
那么最后会得到2 * 2 * C
的输出,把每个通道里2 * 2
的特征图的每一点相加求平均(sum pooling
),就是图片属于某一类别的概率。看不懂的话可以去了解一下FCN
。
multi-crop
:这一种方式是将测试图片的短边缩放到不同大小Q
,然后在Q * Q
的图像上裁剪出多个图像,将这些图像作为CNN
(没有将全连接转化为卷积)的输入,经过网络计算之后得到每个裁剪图像的分类概率,相加取平均之后作为原始图像的分类概率。按我的理解,这种方式其实和上面的dense
很类似,上面输入任意大小的图像,不经过裁剪直接放到卷积层里,卷积核在原图或者特征图上的滑动就好像是在Crop
,只是更加密集(dense
)。
按照作者的观点,这两种方法的差别在于convolution boundary condition
不同:dense
由于不限制图片大小,可以利用像素点及其周围像素的信息(来自于卷积和池化),包含了一些上下文信息,增大了感受野,因此提高分类的准确度;而multi-crop
由于从图片上裁剪再输网络,需要对图像进行零填充,因此增加了噪声。
实验表明,两种方式结合在一起更好。然而我也不懂怎么把它们结合在一起。
这个融合貌似意思是分别跑了各个网络之后,得到各自每张图片的softmax
分类概率,然后取平均作为最后的结果,作者说因为不同网络的互补性,所以分类效果有提升。不太清楚这种测试思路在后面提出的网络中应用得怎么样了。
各向同性缩放:也称为“等比缩放”,图像长边和短边缩放比例相同,这样就不会破坏原图的比例,便于对物体精准定位,对应图中上边的路线。Smin
被设置为256
,假设短边缩放了2倍到Smin
,那么长边也对应缩放两倍。
各向异性缩放:不考虑物体是否会发生形变,直接对图片进行暴力resize
,使得图像变为我们想要的尺寸,对应图中下边的路线。如图所示,直接将图片先放缩到256 * 256
,发生了肉眼可见的形变。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。