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**函数,饱和**函数比不饱和训练的慢。
因为本文主要是减少过拟合,所以没有展开讨论传统变体**函数和ReLU的好坏。ReLU**函数不需要对输入进行标准化来防止它到饱和区域,因为只要有正的输入就可以训练神经元。但是局部归一化LRU可以增加泛化能力。
参数解释:,x,y是位置,i是卷积核编号,a是**函数的输出。相当于在同一个位置(x, y),不同的map上的**进行了平滑。n是计算前后多少个卷积的,N是卷积核总数。LRN降低了top-1和top-5,在CIFAR-10上也降低了测试误差。
重叠池化Overlapping Pooling,池化步长为2,池化面积为3x3,效果有少许提升,更不容易过拟合。。自己实现的深度学习操作,在2块GPU上跑程序。
整体结构图,5层卷积3层全连接,最后一层全连接是1000softmax用于一千分类。损失是最小化多项式逻辑回归(交叉熵?),和最大化预测的对数概率等价。
LRU和重叠池化的位置,先通过LRU,再通过重叠池化:
减小过拟合
1. 数据扩增
水平垂直翻转,255图片中随机裁剪出224,预测的时候在255图片中4个角和中间取5张,加上水平翻转的5张,平均10张的概率作为最后的结果。
PCA,RGB是图片的3个特征,p是协方差矩阵的特征向量,λ是特征值,把计算出来的上式的值加到原像素值上面去。
2. Dropout
通过概率关闭神经元,形成不同的网络结构(参数共享),有模型集成的作用;因为不能依靠所有的神经元特征,减小了模型复杂度,迫使神经元学习更稳定的特征。测试的时候乘上保留概率。在全连接层的第一、二层使用了dropout。
学习细节
batch大小为128,使用动量法,动量因子为0.9,L2正则化方法,权重衰减为0.0005。
初始化:用(0,1)的高斯分布来初始化每一层的权重,第2、4、5卷积层的偏置和全连接层隐藏层的参数初始化为1,其他的初始化为0。学习率:初始学习率为0.01,训练过程中手动调整学习率,在验证集错误率不再提升的时候乘上0.1,减小过3次,在1.2百万的训练集上训练了90个cycles。
结果
ILSVRC-2010的结果:
ILSVRC-2012的结果:
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上的卷积核学到了很多颜色信息。
另一种探测网络可视化知识的方式是看最后一层4096维的隐藏层,下图展示了该层向量相近(欧氏距离小)的几组图片。直接计算4096维向量效率太低,可以训练一个自编码器来压缩提高效率。
讨论
去掉一层卷积结果会变差,说明深度很重要。为了简化实验,没有使用预训练模型和为了增加网络规模节省了数据集大小。最终目的是使用很大的卷积网络来处理图片序列,而不是单一的图片。