本文对Hindon等在2012年取得ImageNet计算机视觉分类比赛中取得冠军的论文做一个简单的总结。
一、摘要
略。
二、背景
略。
三、数据集
由于ImageNet中的图片大小不一,但是模型需要输入固定大小的图片,因此对图片进行了下采样,得到尺寸为的图片。具体做法是:首先缩放图片,使得较短的边的长度是256,然后从缩放的图片中裁剪出中间部分的
的图像块。之后,对
的图片中的每个像素,减去所有训练图片中的像素均值(相当于做了一次0均值中心化,使得所有像素值的均值变为0)。
四、架构
3.1、ReLU非线性激活函数
用具有饱和区域的tanh训练神经网络的速度远不及使用ReLU,下图是证据之一。如图,到达0.25的错误率需要的训练时间,使用ReLU所需的时间大约是使用tanh的15%。
3.2、多GPU训练
由于模型太大,单个GPU无法加载,故将模型近似划分到了两个GPU上。主要是一些提速技巧,不多做介绍。关于GPU和CPU的一些性能参数和技术要点,需要了解才能体会该节的训练加速技巧。
3.3、局部相应正则化
据一些文献说,该正则化效果不是特别突出,而且短时间也没有理解这种正则化,在此略过。
3.4、重叠池化
这一部分比较重要。引入了重叠池化的概念,我们画个图便知。
如图,上半部分池化核尺寸为,步长为1,进行池化处理时,由于步长小于池化核尺寸,所以池化的区域有重叠;下半部分池化核尺寸同上,但是步长为2,池化区域没有重叠。文章指出,使用重叠的池化可以减少top5和top1错误率。这可能是因为重叠池化保留了更多的信息,使得池化后的输出特征更加丰富。提取的特征越丰富,卷积部分的表示能力越强,对后面全连接层进行更高层次的特征组合有利,一定程度上提高了准确率。
3.5、整体架构
整体架构如下图。
其中,第2、4、5个卷积层的卷积核仅与其在同一个GPU的上一层的核映射相连,没有跨GPU通信,第3个卷积层的核连接到第二层中的所有核映射。全连接层中的神经元连接到上一层中的所有神经元。第一个卷积层有96个 的核,对大小为
的输入图像进行卷积,步长是4。第二个卷积层有256个
的核,第三、第四和第五卷积层相互连接,没有任何中间的池层或归一化层。第三卷积层有384个大小为3×3×256的核,连接到第二卷积层的(经过归一化且池化)输出。第四卷积层有384个大小为3×3×192的核,第五卷积层有256个大小为3×3×192的核,全连接层各有4096个神经元。
总结:随着卷积层深度增加,卷积核的数量有逐渐增多的大趋势,我的观点是浅层卷积需要提取的特征都是相对简单的,比如点、线,角度等,深层卷积需要提取由简单特征复合成的高级特征,复合的高级特征比简单的特征数目要多很多,所以需要更多的卷积核来提取特征;而卷积核的大小却呈现由大到小的趋势,且尺寸由11,5变为3,尺寸逐渐减半,这个是不言而喻的,浅层卷积的输入是像素值,所以感受野可以大一些,毕竟11个像素表示的特征还是很模糊的,但是深层卷积就不同了,这些卷层的输入是前面卷积得到的特征映射,特征映射中每个元素可能表示的特征已经很具体了,比如鼻孔,鼻梁等,这个时候核尺寸不能太大了,太大了提取不到有效的特征。
四、减少过拟合
4.1、数据增强
数据增强在CPU上进行,训练在GPU上进行,并行执行,效率不受影响。
第一种数据增强形式包括生成图像平移和水平反射。我们通过在256×256的图像中随机提取224×224的图像块(以及它们的水平镜像),并在这些提取的图像块上训练我们的网络。在测试时,网络通过提取5个224×224个图像块(四个角和中心)以及它们的水平镜像(因此总共有10个图像块)来进行预测,并对10个图像块在softmax层的预测进行平均。
第二种形式的数据增强包括改变训练图像中RGB通道的强度。具体来说,我们在整个ImageNet训练集中对RGB像素值的集合执行PCA。到每个训练图片,添加找到的主成分的倍数。具体的,就是对于RGB图像中的每个像素 (因为是彩色图像,所以一个像素由三个通道值组成),加上向量
。其中,
和
分别是RGB像素值的
协方差矩阵的特征向量和特征值,
是一个从均值为0且标准差为0.1的高斯随机分布产生的随机变量。每个训练图片,在参与训练之前,
的值仅采样一次,直到下一次参与训练时为止,也就是每训练一次,产生一次采样值,该图片所有像素在处理时共享这个值。该方案近似地捕捉了自然图像的一个重要特性,也就是说,对象标识对光照强度和颜色的变化是不变的。该方案减少了top1错误率1%。
4.2、dropout
略。
五、学习的细节
我们使用随机梯度下降训练我们的模型,批处理大小为128个例子,动量为0.9,学习衰减率为0.0005。我们发现,这种少量的重量衰减对于模型的学习是很重要的。换句话说,这里的重量衰减不仅仅是一个正则化:它减少了模型的训练误差。权重 的更新规则如下:
其中, 是迭代轮数,
表示动量,梯度项表示在 第
轮迭代所有样本的均值。我们用标准差0.01从零均值高斯分布初始化了每个层中的权重。 我们用常数1初始化了第二、第四和第五卷积层以及全连接的隐藏层中的偏差。这种初始化通过向ReLU提供正的输入来加速早期的学习阶段。我们用常数0初始化其它层中的偏差。
我们对所有层使用了相同的学习速率,在整个训练过程中,我们手动调整了学习速率。 当验证错误率不再下降时,我们遵循的启发式方法是将学习率除以10。
六、实验结果
6.1、定性评价
图3显示了由网络的两个数据连接层学习的卷积核。 这些卷积核已经学习了各种频率和方向,以及各种彩色斑点。
在图4的左面板中,我们通过计算8个测试图像的前5个预测来定性地评估网络所学到的东西。请注意,即使是远离中心的对象,如左上方的小虫,也可以被网络识出来。大多数前5名的标签似乎是合理的。例如,只有其他类型的猫被认为是豹的合理标签。在某些情况下(格栅,樱桃),照片的焦点或意图是模糊的或有歧义的,如左面板第二行第三列狗和樱桃的照片,即便是人也无法判断它的真实标签是什么。
另一种探测网络视觉知识的方法是考虑图像在最后4096维隐藏层引起的特征激活。如果两幅图像产生的激活向量有比较小的欧几里德距离,则神经网络有较高可能性认为它们是相似的。请注意,在像素级别上,检索到的训练图像的欧式距离通常不接近第一列中的查询图像。例如,检索到的狗和大象以各种姿势出现。
利用两个4096维实值向量之间的欧氏距离计算相似性是低效的,但通过训练自动编码器将这些向量压缩为短的二进制码可以使其有效。