原文地址:VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION
开始
一、NET 设计部分
网络结构:
输入:224 X 224 X 3(RGB)
预处理:减去数据集平均RGB
卷积核:3X3最小感受野,1X1做线性变换,步长1像素
池化:最大池化,2x2 步长为2
全链接:3层
softmax层:1层
激活函数:Relu(Krizhevsky et al., 2012)
- LRN不仅没有使模型能力提高,又增加了计算量
结构图:
ConvNet配置。 配置的深度从左(A)增加到右(E)
参数量:
网络设计思路:
-
2个3X3感受野 相当于一个5X5的感受野,3个3X3的感受野相当于 一个 7X7的感受野
-
3个3X3会比一个7X7具有更多的非线性层,也就更多了判别次数,更具有辨别性
-
3个3X3会比一个7X7 参数量少, 前者:3X3X3 C2 = 27 C2,后者:1X7X7 C2 = 49 C2 (其中 C:通道数)
-
比起7x7相当于一种正则化(恕我知识浅薄,看不出来怎么就正则了)
-
1X1的卷积层,是在不影响感受野的情况下增加函数非线性的方法,校正函数引入的非线性
-
小尺寸卷积器以前曾被使用过Ciresan et al. (2011),但网络较浅,Goodfellow et al. (2014)应用深度卷积网络到街道号码识别,表明更深的网络能具有更强性能
二、网络训练部分
训练
vgg训练是follows Krizhevsky et al. (2012) 的参数
- 优化器:mini-batch 梯度下降 ,momentum = 0.9
- batch size = 256
- 正则:权重衰减 L2 惩罚系数设置为 L 2 = 5 ∗ 1 0 − 5 L2 = 5*10^{-5} L2=5∗10−5
- dropout: 在前两个FC层采用dropout, d r o p o u t = 0.5 dropout = 0.5 dropout=0.5
- 学习率:最初 L r = 1 0 − 2 Lr = 10^{-2} Lr=10−2 ,然后在验证集停止提高时降低10倍,总共降低3次学习率
- epochs : 74 epochs后结束训练
- 初始化:网络权重的初始化是很重要的,因为糟糕的初始化可能会由于深网中梯度的不稳定性而导致学习停滞。采用正态分布~N(0, 1 0 − 2 10^{-2} 10−2),提交论文后,发现可以用 Glorot & Bengio (2010).初始化
- 224×224 随机裁剪,随机水平翻转,随机RGB交换
- 随机裁剪前,将图像下采样(缩)至S大小,对于S = 224 那么直接可以获得全图像的结果,如果S >> 224 那么获得的识别区域将会小很多,设置S=384 先训练,然后用多尺度来微调。
我们考虑了两种设置 training scale S的方法。
第一种是单尺度S,它对应于单尺度训练(注意,采样后的图像内容仍然可以表示多尺度图像统计)。 在我们的实验中,我们评估了在两个固定尺度上训练的模型:最短边 S=256(在现有技术中得到了广泛应用(Krizhevsky等人,2012年;Zeiler&Fergus,2013年;Sermanet等人,2014年)和S=384。 给定ConvNet配置,我们首先使用S=256训练网络。 为了加快S=384网络的训练,它是用S=256预先训练的权重初始化的,我们使用了较小的初始学习率 1 0 − 3 10^{-3} 10−3第二种设置S的方法是多尺度训练,其中每个训练图像通过从一定范围内随机采样 S [ S m i n , S m a x ] S[ Smin,Smax] S[Smin,Smax](我们使用Smin=256和Smax=512)进行单独重标度)。 由于图像中的对象可能大小不同,因此在训练过程中考虑到这一点是有益的。 这也可以看作是通过尺度抖动来增强训练集,其中模型被训练以识别范围广泛的物体。
由于速度的原因,我们通过对具有相同配置的单尺度模型的所有层进行微调来训练多尺度模型,预先用固定的S=384进行训练。
测试
在测试时,给定一个经过训练的ConvNet和一个输入图像,它按以下方式分类。
首先,选择一个测试尺度Q(可以不是S)
然后,网络被密集地应用于重新标尺度的测试图像,其方式类似于(Sermanet et al., 2014)。
也就是说,完全连接的层首先转换为卷积层(第一FC层转换为7×7conv层,最后两个FC层转化为1×1conv层)。如图:
然后将得到的全卷积网应用于整个(uncropped)图像。
我们还通过对图像的水平翻转来增强测试集;
对原始图像和翻转图像的Softmax类后验进行平均,以获得图像的最终分数。
由于全卷积网络应用于整个图像,因此不需要在测试时 multiple crops (Krizhevsky et al., 2012),(效率较低,因为它需要对每个crop进行网络重新计算)
此外,由于不同的卷积边界条件,multi-crop evaluation 与 dense evaluation 是互补的:当将ConvNet应用于 crop 时,卷积特征映射被填充为零,而在 dense evaluation 的情况下,同一 crop 的填充自然来自图像的相邻部分(由于卷积和spatial pooling),这大大增加了整个网络感受野,因此捕获了更多的上下文。 虽然我们认为,在实践中,multi-crop evaluation 的计算时间的增加并不能证明潜在的精度增益是合理的,但作为参考,我们还评估了我们的网络,使用每个尺度的50种 crop (5×5个规则网格,2个翻转),总共有150种3个尺度的 crop ,这相当于Szegedy et al. (2014).使用的4个尺度上的144种 crop 。
细节
框架:caffe
加速:multiple GPUs GPU之间梯度同步
数据:多尺度,全尺寸
时间:训练一个网络需要2-3周
实验
数据集:ILSVRC-2012 训练:1.3M 测试:100K 验证:50K
评价指标:top-1和top-5 error 。前者是多类分类错误,即分类不正确的图像比例;后者是在ILSVRC中使用的主要评估标准,并且被计算 ground-truth 类别在 top-5 预测类别之外的比例
单一尺度评估
固定输入尺寸评估
Q = S and Q = 0.5(Smin + Smax) 其中 S ∈ [Smin, Smax]
首先,我们注意到,在没有任何归一化层的情况下,使用本地响应归一化(A-LRN网络)不会改善模型A。 因此,我们不在更深的体系结构(B-E)中使用规范化)。
第二,我们观察到分类误差随着Conv网络深度的增加而减小:从A层的11层到E层的19层。值得注意的是,尽管深度相同,配置C(其中包含三个1×1conv层),执行情况比配置D差,它使用3×3Conv。 整个网络的层。 这表明,虽然附加的非线性确实有帮助(C比B更好),但通过使用Conv捕获空间上下文也很重要。 具有特殊感受野的滤波器(D优于C)。 当深度达到19层时,我们的体系结构的错误率就会饱和,但即使是更深的模型也可能有利于更大的数据集。B证实了具有小滤波器的深网优于具有较大滤波器的浅网。
最后,在训练期间的尺度抖动(S∈[256;512])导致明显比在具有固定最小边的图像上进行训练(S=256或S=384)更好的结果,即使在测试时使用单一的尺度。 这证实了通过尺度抖动增强训练集确实有助于捕获多尺度图像统计。
多尺度测试
S :考虑到训练和测试尺度之间的巨大差异导致性能下降,用固定S训练的模型 S ∈ [Smin; Smax]
Q = {S - 32, S, S + 32} 或 Q = {Smin, 0.5(Smin + Smax), Smax}.
表4所示的结果表明:
- 在测试期间的尺度抖动导致更好的性能(与在单个尺度上评估相同的模型相比,如表3所示)。 最深的配置(D和E)表现最好
- 尺度抖动优于固定最小侧S的训练
- 我们在验证集上的最佳单网络性能是24.8%/7.5%top-1/top-5错误(在表4中以粗体突出显示)。
在测试集上,配置E达到7.3%top-5错误
MULTI-CROP 评估
S : [256; 512]
Q :{256, 384, 512}
在表5中,我们比较了 dense 的ConvNet 评估和mult-crop 评估。 我们还通过平均它们的Softmax输出来评估这两种评估技术的互补性。 可以看出,使用mult-crop 比dense 评价表现略好,这两种方法确实是互补的,因为它们的组合优于每一种。 如上所述,我们假设这是由于卷积边界条件的不同处理。
ILSVRC-2014挑战
深度有利于分类精度
三、目标检测部分
模型:deep convnet 去掉最后一层全链接,换上预测框位置
bounding box: 中心坐标、宽度和高度
bounding box 共享:SCR(4-D) 或 PCR (4 X classNumber - D)
训练
类似分类训练
我们用欧氏损失代替Logistic回归目标,这惩罚了预测的 bounding box 参数与 ground-truth 的偏差。
我们训练了两个目标检测模型,每个模型都是一个尺度:S=256和S=384(由于时间限制,我们没有使用培训规模抖动为我们的ILSVRC-2014提交)。 用相应的分类模型(在相同的尺度上训练)初始化训练,初始学习率设置为 1 0 − 3 10^{-3} 10−3。
我们探索了:
- 微调所有层和微调只有前两个完全连接的层,如 (Sermanet et al., 2014)。
- 最后一个完全连接的层是随机初始化的
- 从零开始训练
测试
贪婪合并: Sermanet et al. (2014),
我们没有使用 Sermanet et al. (2014)的 multiple pooling 偏移技术,该技术提高了bounding box 预测的空间分辨率,并可以进一步改善结果。
实验一(bounding box 预测方法 及 fine-tune)
SCR: single-class regression 多种类别共享一个检测框
PCR: per-class regression 每类都有自己的检测框
从表中可以看出,PCR比较好,并且全部fine-tune 比只fine-tune 全链接层要好
实验二
数据集: ILSVRC(选择小数据集容易过拟合,所以选择它)
实验三
预训练:在ILSVRC上预先训练的ConvNets
模型:预训练模型去掉最后一个全链接,并在倒数第二层采用4096-D激活,结果采用L2归一化与线性SVM结合
训练:预训练参数冻结,不参加微调