AlexNet

Imagenet classification with deep convolutional neural networks

AlexNet

Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in neural information processing systems. 2012: 1097-1105.

总结

网络结构是5层卷积和3层全连接,使用不饱和**函数ReLU加快训练速度,局部响应标准化LRU可以加快训练速度增加模型泛化能力,因为用了不饱和**函数ReLU,所以不能再加快速度了。重叠池化,不容易过拟合,提升少许性能。本文的减少过拟合是一个重点,使用了随机裁剪和翻转,以及PCA改变图片像素值来作为数据扩增手段,另外还用了Dropout来减少过拟合。在预测方面,一张256图片,4角中心取5张,翻转后变成10张,取模型结果的平均作为最后的结果。结果在LSVRC-2010和2012上测评,单模型,集成5个模型和预训练模型。


摘要

ImageNet是一个数据集,有1500万标记过的高分辨率图片,22000个类别。

ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)是用ImageNet部分数据集(1000个类别)举办的比赛,训练集120万张,验证机5000张,测试集15万张。有两个评价指标,top-1,top-5指预测出来概率前5的结果中包括了正确标签。

ImageNet图片大小不一,中心裁剪到256大小,使用训练集的均值对图片去均值。

引言

现有的方法是用机器学习做目标识别。因为数据集少,机器学习足够了,但是现实中的图片就不一样了。出现了大规模标注的数据集,LabelMe、ImageNet。

需要有足够学习能力的模型来学习这么多图片的目标。然而现实中那么多图片,不都包含在ImageNet中,所以需要学习先验知识。CNN可以通过改变深度和宽度来增加学习能力,和普通的机器学习神经网络相比可以学习到图片的本质,也就是统计的平稳性和像素相关性的局部性,而且参数更少,更容易训练。

CNN效果好,效率也比较高,但是还是不能用在高分辨率的图片上。使用高度优化的二维卷积,现在的GPU可以放两张像ImageNet的图片。有足够的图片可以防止严重的过拟合。

在ImageNet子集ILSVRC2010和2012的数据集上训练模型,在GPU上实现卷积和其他训练操作。在第3节介绍了一些方法来提高模型性能,减少训练时间。第4节介绍了一些有效的防止过拟合的方法。

模型受限于GPU,可以通过提高GPU和数据集来获得更好的效果。

数据集

ImageNet是一个数据集,有1500万标记过的高分辨率图片,22000个类别。

ImageNet Large-Scale Visual Recognition Challenge(ILSVRC)是用ImageNet部分数据集(1000个类别)举办的比赛,训练集120万张,验证机5000张,测试集15万张。有两个评价指标,top-1,top-5指预测出来概率前5的结果中包括了正确标签。

ImageNet图片大小不一,中心裁剪到256大小,使用训练集的均值对图片去均值。

网络结构

先介绍一些除了卷积以外的其他特殊的操作。ReLU**函数,饱和**函数比不饱和训练的慢。

AlexNet

因为本文主要是减少过拟合,所以没有展开讨论传统变体**函数和ReLU的好坏。ReLU**函数不需要对输入进行标准化来防止它到饱和区域,因为只要有正的输入就可以训练神经元。但是局部归一化LRU可以增加泛化能力。

bx,yi=ax,yi/(k+αj=max0,in/2minN1,i+n/2(ax,yj)2)

参数解释:ax,yi,x,y是位置,i是卷积核编号,a是**函数的输出。相当于在同一个位置(x, y),不同的map上的**进行了平滑。n是计算前后多少个卷积的,N是卷积核总数。LRN降低了top-1和top-5,在CIFAR-10上也降低了测试误差。

AlexNet

重叠池化Overlapping Pooling,池化步长为2,池化面积为3x3,效果有少许提升,更不容易过拟合。。自己实现的深度学习操作,在2块GPU上跑程序。

整体结构图,5层卷积3层全连接,最后一层全连接是1000softmax用于一千分类。损失是最小化多项式逻辑回归(交叉熵?),和最大化预测的对数概率等价。

AlexNet

LRU和重叠池化的位置,先通过LRU,再通过重叠池化:

AlexNet

减小过拟合

1. 数据扩增

水平垂直翻转,255图片中随机裁剪出224,预测的时候在255图片中4个角和中间取5张,加上水平翻转的5张,平均10张的概率作为最后的结果。

[p1,p2,p3][α1λ1,α2λ2,α3λ3]

PCA,RGB是图片的3个特征,p是协方差矩阵的特征向量,λ是特征值,把计算出来的上式的值加到原像素值上面去。

2. Dropout

通过概率关闭神经元,形成不同的网络结构(参数共享),有模型集成的作用;因为不能依靠所有的神经元特征,减小了模型复杂度,迫使神经元学习更稳定的特征。测试的时候乘上保留概率。在全连接层的第一、二层使用了dropout。

学习细节

batch大小为128,使用动量法,动量因子为0.9,L2正则化方法,权重衰减为0.0005。

vi+1:=0.9vi0.0005ϵwiϵ(Lw|wi)Di

wi+1:=wi+vi+1

初始化:用(0,1)的高斯分布来初始化每一层的权重,第2、4、5卷积层的偏置和全连接层隐藏层的参数初始化为1,其他的初始化为0。学习率:初始学习率为0.01,训练过程中手动调整学习率,在验证集错误率不再提升的时候乘上0.1,减小过3次,在1.2百万的训练集上训练了90个cycles。

结果

ILSVRC-2010的结果:

AlexNet

ILSVRC-2012的结果:

AlexNet

1 CNN是base-line模型,5 CNN是单独训练了5个base-line,然后平均测试结果的概率得到的结果。* 是在ImageNet 2011的数据集(15M图片,22K类别)上训练一个6层卷积的CNN,然后finetune到ILSVRC-2012,最后一个是平均2个CNN*和5个CNN得到的结果。

定性评估

从第一层的卷积核可视化中可以看到网络学到一些特征,GPU 1上的卷积核在很大程度上与颜色无关,而GPU 2上的卷积核学到了很多颜色信息。

AlexNet

另一种探测网络可视化知识的方式是看最后一层4096维的隐藏层,下图展示了该层向量相近(欧氏距离小)的几组图片。直接计算4096维向量效率太低,可以训练一个自编码器来压缩提高效率。

AlexNet

讨论

去掉一层卷积结果会变差,说明深度很重要。为了简化实验,没有使用预训练模型和为了增加网络规模节省了数据集大小。最终目的是使用很大的卷积网络来处理图片序列,而不是单一的图片。

参考资料

  1. 饱和神经元和不饱和神经元
  2. AlexNet讲解的****博客
  3. 局部响应标准化local response normalization
  4. weight decay