ImageNet Classification with Deep Convolutional Neural Networks

                                                             Abstract

我们训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010比赛中的120万个高分辨率图像分类为1000个不同的类别。在测试数据上,我们实现了前三和前五的错误率分别为37.5%和17.0%,这比以前的最新技术水平要好得多。具有6000万个参数和650,000个神经元的神经网络由五个卷积层组成,其中一些随后是最大池层,三个完全连接的层具有最终的1000路softmax。为了加快训练速度,我们使用了非饱和神经元和卷积运算的高效GPU实现。为了减少完全连接层中的过度拟合,我们采用了最近开发的称为“dropout”的正则化方法,该方法被证明是非常有效的。我们还在ILSVRC-2012竞赛中输入了该模型的变体,并获得了15.3%的前5个测试错误率,而第二好的错误率则达到了26.2%。

......

                                                  1.Introduction

本文的特殊贡献如下:迄今为止,我们在ILSVRC-2010和ILSVRC-2012竞赛中使用的ImageNet子集中训练了最大的卷积神经网络之一并取得了迄今为止报道的最佳结果。这些数据集。我们编写了一个高度优化的2D卷积GPU实现以及训练卷积神经网络中固有的所有其他操作,我们公开提供这些操作。我们的网络包含许多新的和不寻常的功能,可以改善其性能并减少其训练时间,详见第3节。我们的网络规模过大,即使有120万个标记的训练样本,我们也使用了几个防止过度拟合的有效技术,见第4节。我们的最终网络包含五个卷积层和三个完全连接层,这个深度似乎很重要:我们发现去除任何卷积层(每个卷积层不超过%1的模型参数)导致性能较差。

最后,网络的大小主要受当前GPU可用内存量以及我们愿意容忍的训练时间限制。 我们的网络需要五到六天才能在两台GTX 580 3GB GPU上进行训练。 我们所有的实验都表明,只需等待更快的GPU和更大的数据集可用,我们的结果就可以得到改善。

                                                   2.The Dataset

ImageNet由可变分辨率图像组成,而我们的系统需要固定的输入维度。 因此,我们将图像下采样到256X256的固定分辨率。给定一个矩形图像,我们首先重新缩放图像,使得短边长度为256,然后从结果图像中裁剪出中心256X256图片。 我们没有以任何其他方式预处理图像,除了在训练集上每个像素减去均值的操作。 因此,我们在像素的(居中)原始RGB值上训练我们的网络。

                                                   3.Architecture

网络结构如下图:包括5个conv layers和3个fc layers。3.1-3.4是根据我们对他们重要性的估计来排序的,最重要的最先。

3.1 ReLU 非线性

将神经元输出f建模为其输入x的函数的标准方法是f(x)= tanh(x)或f(x)=1/(1 +e^x)。 就具有梯度下降的训练时间而言,这些饱和非线性比非饱和非线性f(x)= max(0; x)慢得多。 继Nair和Hinton之后,我们将具有这种非线性的神经元称为整流线性单位(ReLUs)。 具有ReLU的深度卷积神经网络比具有tanh单位的等效物快几倍。 图1展示了这一点,图1显示了特定四层卷积网络在CIFAR-10数据集上达到25%训练误差所需的迭代次数。 该图显示,如果我们使用传统的饱和神经元模型,我们就无法用这种大型神经网络进行实验。

我们不是第一个考虑CNN中传统神经元模型替代品的。 例如,Jarrett等人声称非线性f(x)= |tanh(x)|特别适用于它们的对比度归一化类型,然后是Caltech-101数据集上的局部平均汇集。 但是,在此数据集上,主要关注的是防止过度拟合,因此他们观察到的效果与我们在使用ReLU时报告的训练集的加速能力不同。 更快的学习对在大型数据集上训练的大型模型的性能有很大影响。 

3.2 Training on Multiple GPUs

单个GTX 580 GPU只有3GB内存,这限制了可以在其上训练的网络的最大尺寸。事实证明,120万个训练样例足以训练但是太大而无法放在一个GPU上的网络。因此,我们将网络分布在两个GPU上。当前的GPU特别适合跨GPU并行化,因为它们能够直接读取和写入彼此的内存,而无需通过主机内存。我们采用的并行化方案基本上将一半内核(或神经元)放在每个GPU上,还有一个额外的技巧:GPU只在某些层中进行通信。这意味着,例如,第3层的内核从第2层中的所有内核映射获取输入。但是,第4层中的内核仅从位于同一GPU上的第3层中的那些内核映射获取输入。选择连通模式是交叉验证的一个问题,但这使我们能够精确调整通信量,直到它是可接受的计算量的一小部分。

由此产生的结构有点类似于Ciresan等人使用的“columnar” CNN。除了我们的列不是独立的(见图2)。 与在一个GPU上训练的每个卷积层中具有一半内核的网络相比,该方案将我们的前1和前5错误率分别降低了1.7%和1.2%。 two-GPU 网络比one-GPU网络花费更少的时间来训练。

3.3 Local Response Normalization

3.4 Overlapping Pooling

3.5 Overall Architecture

现在我们准备描述CNN的整体架构。 如图2所示,网包含八层带权重的层; 前五个是卷积的,其余三个是完全连接的。 最后一个完全连接的层的输出被馈送到1000路softmax,其产生1000个类别标签上的分布。 我们的网络最大化多项逻辑回归目标,这相当于在预测分布下最大化训练案例中正确标签的对数概率的平均值。

第二,第四和第五卷积层的内核仅连接到位于同一GPU上的前一层中的那些内核映射(参见图2)。 第三卷积层的内核连接到第二层中的所有内核映射。 完全连接层中的神经元连接到前一层中的所有神经元。 响应标准化层遵循第一和第二卷积层。 第3.4节中描述的最大池化层遵循响应标准化层和第五卷积层。 ReLU非线性应用于每个卷积和完全连接层的输出。

第一个卷积层用224个大小为11X11X3的内核过滤224X224X3输入图像,步长为4个像素(这是内核图中相邻神经元的感受野中心之间的距离)。 第二个卷积层将第一个卷积层的(响应标准化和合并)输出作为输入,并用256个大小为5X5X3的内核对其进行过滤。第三,第四和第五卷积层彼此连接,没有任何中间汇集或归一化层。 第三个卷积层有384个大小为3X3X256的内核连接到第二卷积层的(标准化的,合并的)输出。 第四个卷积层有384个大小为3的内核3X3X192,第五个卷积层有256个大小为3X3X192的内核。完全连接的层各有4096个神经元。

4.Reducing Overfitting

4.1Data Augmentation

4.2Dropout

 

展开阅读全文

没有更多推荐了,返回首页