论文阅读:ImageNet Classification with Deep Convolutional Neural Networks

2024-05-05 20:17

1. 论文阅读:ImageNet Classification with Deep Convolutional Neural Networks

 此篇文章是AlexNet的产生
                                                                                                                           在2010年的ImageNet LSVRC-2010上,AlexNet在给包含有1000种类别的共120万张高分辨率图片的分类任务中,在测试集上的top-1和top-5错误率为37.5%和17.0%(top-5 错误率:即对一张图像预测5个类别,只要有一个和人工标注类别相同就算对,否则算错。同理top-1对一张图像只预测1个类别),在ImageNet LSVRC-2012的比赛中,取得了top-5错误率为15.3%的成绩。AlexNet有6亿个参数和650,000个神经元,包含5个卷积层,有些层后面跟了max-pooling层,3个全连接层,为了减少过拟合,在全连接层使用了dropout,下面进行更加详细的介绍。
   数据来源于ImageNet,训练集包含120万张图片,验证集包含5万张图片,测试集包含15万张图片,这些图片分为了1000个类别,并且有多种不同的分辨率,但是AlexNet的输入要求是固定的分辨率,为了解决这个问题,Alex的团队采用低采样率把每张图片的分辨率降为256×256,具体方法就是给定一张矩形图像,首先重新缩放图像,使得较短边的长度为256,然后从结果图像的中心裁剪出256×256大小的图片。
   在当时,标准的神经元激活函数是tanh()函数,这种饱和的非线性函数在梯度下降的时候要比非饱和的非线性函数慢得多,因此,在AlexNet中使用ReLU函数作为激活函数。figure1展示了在一个4层的卷积网络中使用ReLU函数在CIFAR-10数据集上达到25%的训练错误率要比在相同网络相同条件下使用tanh函数快6倍。
   AlexNet采用两路GTX 580 3G并行训练,将一半的kernals或neurons放在每个GPU上,且GPU只在特定的层进行通信。
                                           ReLU函数不像tanh和sigmoid一样有一个有限的值域区间,所以在ReLU之后需要进行归一化处理,LRN的思想来源于神经生物学中一个叫做“侧抑制”的概念,指的是被激活的神经元抑制周围的神经元。计算公式:   bi x,y表示第i个卷积核进行卷积计算再通过ReLU之后的输出在位置(x,y)处神经元的激活值   ai x,y表示归一化之后的值   n表示与卷积核i毗邻的k个卷积核,超参数,一般设为5   N表示卷积核的总数   α = 10−4, and β = 0.75 两个超参数
   重叠池化就是指相邻池化窗口之间有重叠部分,更确切地说,池化层可以看作是由间隔为s的池化单元的网格组成,每个池化单元总结了以合并单元的位置为中心的大小为z × z的邻域,即池化大小为z,步长为s,当s < z时就是重叠池化。在整个网络中使用了s = 2, z = 3
   网络的最后一层(Full8)的输出喂给了一个包含1000个单元的softmax层,用来对1000个标签进行预测。 响应归一化层(Response-normalization layers)跟在第1和第2卷积层后面,Max-pooling层跟在Response-normalization层和第5卷积层后面 ,ReLU激活函数应用与所有卷积层和全连接层输出后。
   早期最常见的针对图像数据减少过拟合的方法就是人工地增大数据集,AlexNet中使用了两种增大数据量的方法:   第一,镜像反射和随机剪裁。   先对图像做镜像反射,然后在原图和镜像反射的图(256×256)中随机抽取227×227的块。通过这种方法,使得训练集的大小增大了2048倍,尽管由此产生的训练样例会产生高度的相互依赖。但是不使用这种方法又会导致严重的过拟合,迫使我们使用更小的网络。在测试的时候,AlexNet会抽取测试样本及其镜像反射图各5块(总共10块,四个角和中心位置)来进行预测,预测结果是这10个块的softmax块的平均值。   第二,改变训练图像中RGB通道的强度   对整个ImageNet训练集的RGB像素值集进行PCA(主成分分析),对于每张图片,将找到的主成分的倍数相加,其大小与相应的特征值成比例,乘以均值为0,标准偏差为0.1的高斯分布所绘制的随机变量。   pi和λi分别为RGB像素值的3 × 3协方差矩阵的第i个特征向量和特征值,αi即前面提到的随机变量,对于一个特定训练图像的所有像素,每个αi只绘制一次,直到该图像被再次用于训练,这时它被重新绘制。该方案近似地捕捉到了自然图像的一个重要特性,即物体标识不随光照强度和颜色的变化而变化。
   在AlexNet中设置的失活概率为0.5,在测试的时候,再使用所用的神经元但是要给它们的输出都乘以0.5。
   AlexNet使用随机梯度下降算法,batch大小是128,动量衰减参数设置为0.9,权重衰减参数为0.0005,这里的权重衰减不仅仅是一个正规化器,同时它减少了模型的训练误差,权重 的更新过程变为: 其中, 是迭代次数索引, 是momentum变量, 是学习速率, 是第 个batch中 的梯度的平均值。
   另外,在AlexNet中,所以层的权重 初始化为服从0均值,标准差为0.001的高斯分布,第2、4、5卷积层以及全连接层的偏置量 初始化为1,这样做的好处是它通过给ReLU函数一个正激励从而加速早期学习的速度。其他层的偏置量初始化为0.

论文阅读:ImageNet Classification with Deep Convolutional Neural Networks

2. [论文阅读-1]ImageNet Classification with Deep Convolutional Neural Networks

  Abstract 
   我们训练了一个大型的深度卷积神经网络,将ImageNet lsvprc -2010竞赛中的120万幅高分辨率图像分类为1000个不同的类。在测试数据上,我们实现了top-1和top-5的错误率,分别为37.5%和17.0%,这与前的最高水平相比有了很大的提高。该神经网络有6000万个参数和65万个神经元,由5个卷积层(其中一些后面接了最大池化层)和3个全连接层(最后的1000路softmax)组成。为了使训练更快,我们使用了非饱和神经元和一个非常高效的GPU实现卷积运算。为了减少全连通层的过拟合,我们采用了一种最近发展起来的正则化方法——dropout,结果显示它非常有效。我们还在ILSVRC-2012比赛中输入了该模型的一个变体,并获得了15.3%的top-5测试错误率,而第二名获得了26.2%的错误率.
    1 Introduction 
   当前的物体识别方法主要利用机器学习方法。为了提高它们的性能,我们可以收集更大的数据集,学习更强大的模型,并使用更好的技术来防止过度拟合。直到最近,标记图像的数据集在成千上万的图像(例如,NORB [16], Caltech-101/256 [8,9], CIFAR-10/100[12])中相对较小。使用这种大小的数据集可以很好地解决简单的识别任务,特别是如果使用保存标签的转换来扩展它们。例如,MNIST数字识别任务的当前最佳错误率(<0.3%)接近人类性能[4]。但是现实环境中的物体表现出相当大的可变性,所以为了学会识别它们,有必要使用更大的训练集。的确,小图像数据集的缺点已经被广泛认识(例如,Pinto等人的[21]),但直到最近才有可能收集数百万张图像的标记数据集。新的更大的数据集包括LabelMe[23],它由成千上万的全分段图像组成,和ImageNet[6],它由超过22000个类别的超过1500万标记的高分辨率图像组成。
   要从数百万张图像中了解数千个物体,我们需要一个具有巨大学习能力的模型。   然而,对象识别任务的巨大复杂性意味着即使像ImageNet这样大的数据集也无法指定这个问题,因此我们的模型也应该具有大量的先验知识来补偿我们没有的所有数据。卷积神经网络(Convolutional neural networks, CNNs)就是这样一类模型[16,11,13,18,15,22,26]。它们的能力可以通过改变深度和宽度来控制,而且它们还对图像的性质(即统计的平稳性和像素依赖的局部性)做出了强有力且最正确的假设。   因此,与具有相似大小层的标准前馈神经网络相比,CNNs具有更少的连接和参数,因此更容易训练,而其理论上最好的性能可能只会稍微差一些。
   尽管CNNs的质量很吸引人,尽管它们的本地架构相对高效,但在高分辨率图像上大规模应用仍然非常昂贵。幸运的是,当前的gpu与高度优化的2D卷积实现相结合,已经足够强大,可以方便地训练有趣的大型CNNs,而最近的数据集(如ImageNet)包含了足够多的标记示例,可以在不严重过拟合的情况下训练此类模型。
   本文的具体贡献如下:
   最后,网络的大小主要受到当前gpu上可用内存的大小和我们愿意忍受的训练时间的大小的限制。我们的网络需要5到6天的时间来训练两个GTX 580 3GB GPU。我们所有的实验都表明,只要等待更快的gpu和更大的数据集可用,我们的结果就可以得到改善。
    2 The Dataset 
   ImageNet是一个包含超过1500万张高分辨率图像的数据集,属于大约22000个类别。这些图片是从网上收集来的,并由人工贴标签者使用亚马逊的土耳其机械众包工具进行标记。从2010年开始,作为Pascal视觉对象挑战赛的一部分,每年都会举办一场名为ImageNet大型视觉识别挑战赛(ILSVRC)的比赛。ILSVRC使用ImageNet的一个子集,每个类别大约有1000张图片。总共大约有120万张训练图像、5万张验证图像和15万张测试图像。
   ILSVRC-2010 是唯一可用测试集标签的 ILSVRC 版本,因此这是我们进行大多数实验的版本。由于我们也在 ILSVRC-2012 竞赛中加入了我们的模型,在第6节中,我们也报告了我们在这个版本的数据集上的结果,对于这个版本的数据集,测试集标签是不可用的。在 ImageNet 上,通常报告两个错误率:top-1 和 top-5,其中 top-5 错误率是测试图像的一部分,其中正确的标签不在模型认为最可能的五个标签中。
   ImageNet由可变分辨率的图像组成,而我们的系统需要一个恒定的输入维数。   因此,我们将图像降采样到256 * 256的固定分辨率。给定一个矩形图像,我们首先重新调整图像的大小,使其短边长度为256,然后从结果图像中裁剪出中心的256%256块。除了从每个像素中减去训练集上的平均活动外,我们没有以任何其他方式对图像进行预处理。因此,我们将网络训练成像素的原始RGB值(居中)。
    3 The Architecture 
    3.1 ReLU Nonlinearity 
    3.2 Training on Multiple GPUs 
    3.3 Local Response Normalization 
    3.4 Overlapping Pooling 
   Pooling layers in CNNs summarize the outputs of neighboring groups of neurons in the same kernel map. Traditionally, the neighborhoods summarized by adjacent pooling units do not overlap (e.g.,[17, 11, 4]). To be more precise, a pooling layer can be thought of as consisting of a grid of pooling units spaced s pixels apart, each summarizing a neighborhood of size z  z centered at the location of the pooling unit. If we set s = z, we obtain traditional local pooling as commonly employed in CNNs. If we set s < z, we obtain overlapping pooling. This is what we use throughout our network, with s = 2 and z = 3. This scheme reduces the top-1 and top-5 error rates by 0.4% and 0.3%, respectively, as compared with the non-overlapping scheme s = 2; z = 2, which produces output of equivalent dimensions. We generally observe during training that models with overlapping pooling find it slightly more difficult to overfit.
    3.5 Overall Architecture 
   Now we are ready to describe the overall architecture of our CNN. As depicted in Figure 2, the net contains eight layers with weights; the first five are convolutional and the remaining three are fully-connected. The output of the last fully-connected layer is fed to a 1000-way softmax which produces a distribution over the 1000 class labels. Our network maximizes the multinomial logistic regression objective, which is equivalent to maximizing the average across training cases of the log-probability of the correct label under the prediction distribution.
    4 Reducing Overfitting 
    4.1 Data Augmentation 
    4.2 Dropout 
   结合许多不同模型的预测是减少测试错误的一种非常成功的方法[1,3],但是对于已经需要几天训练的大型神经网络来说,这似乎太昂贵了。然而,有一个非常有效的模型组合版本,它在训练期间只花费大约2倍的成本。最近介绍的技术称为dropout[10],它将每个隐藏神经元的输出设置为0,概率为0.5。以这种方式丢弃的神经元不参与正向传递,也不参与反向传播。所以每次输入时,神经网络都会对不同的结构进行采样,但是所有这些结构都共享权重。这种技术减少了神经元之间复杂的相互适应,因为神经元不能依赖于特定的其他神经元的存在。因此,它被迫学习与其他神经元的许多不同随机子集结合使用的更健壮的特征。在测试时,我们使用所有的神经元,但将它们的输出乘以0.5,这是一个合理的近似值,近似于取由指数型多退出网络产生的预测分布的几何平均值。
   我们在图2的前两个完全连接的层中使用了dropout。没有dropout,我们的网络显示出大量的过拟合。Dropout使收敛所需的迭代次数增加了一倍。
    5 Details of learning 
    7 Discussion