论文阅读(一)AlexNet(ImageNet Classification with Deep Convolutional Neural Networks)笔记

摘要

工作内容

在ImageNet LSVRC-2010比赛中,训练了一个大且深的卷积神经网络,将120万幅高分辨率的图像分成了1000种不同的类别。

实验结果

在ImageNet数据集上取得了当时最好的结果,分别是37.5%top-1错误率和17.0%top-5错误率。

神经网络架构

  • 有6000万个参数和65万个神经元;
  • 5个卷积层(某些卷积层后面有池化层);
  • 三个全连接层;
  • 最后是一个1000维的softmax。

创新内容

  • 为了使训练更快: 使用了非饱和神经元,并对卷积操作进行了非常有效的GPU实现;
  • 为了减少过拟合: 在全连接层使用非常有效的正则化方法dropout。

其他工作

使用该模型的变种参加了LSVRC-2012比赛,并以15.3%的top-5错误率取得了冠军(第二名是26.2%)。

1 引言

当前的目标识别方法基本都使用了机器学习方法。

如何提高目标识别的性能

可以收集更大的数据集,学习更强大的模型,使用更好的技术来防止过拟合。

小数据集

直到最近,标注图像的数据集都相对较小--大约几万张图像。

使用这种规模的数据集可以很好的解决简单的模式识别任务,特别是如果使用标签保留变换进行数据增强。

例如,目前,在MNIST数字识别任务的最低错误率(<0.3%)已经接近人类水平。

小图像数据集的缺点

识别对象在真实环境表现出相当大的可变性,所以要学习去识别他们有必要使用更大的训练集。

事实上,小图像数据集的缺点早就已经被广泛的认识到,但直到最近收集到百万标注数据集才成为可能。

新的大型数据集

  • LabelMe[23]:包含数十万张完全分割的图像;
  • ImageNet[6]:在超过2.2万个类别上,有超过1500万张标注的高分辨率图像。

--------------------------------------

目标识别任务的巨大复杂性引起的问题

要从百万张图像中学习几千个对象,我们需要一个学习能力很强的模型。

然而目标识别任务的巨大复杂性意味着,即使像ImageNet这样大的数据集也不能完美的解决这个问题。

所以模型需要大量的先验知识来弥补欠缺的数据。

卷积神经网络(CNNs)

  • 卷积神经网络构成了一个这样的模型:[16,11,13,18,15,22,26];
  • 通过改变它们的广度和深度可以控制它们的能力;
  • 可以对图像的本质做强大且通常正确的假设(也就是说,统计的稳定性和像素依赖的局部性)。
CNNs优点

与层次大小相似的标准前馈神经网络相比:

  • CNNs具有更少的连接和参数,所以更容易训练;
  • CNNs理论上的最佳性能可能仅比标准前馈神经网络差一点。

--------------------------------------
尽管CNNs具有引人注目的质量,尽管它们的局部架构非常有效,将它们大规模应用在高分辨率图像上时仍然极其昂贵。

幸运的是,当前的GPU搭配了高度优化的2D卷积实现,强大到足够促进有趣的大量CNNs训练,最近像ImageNet这样的数据集包含足够的标注样本来训练这样的模型而没有严重的过拟合。

本文的具体贡献

  • 在ILSVRC-2010和ILSVRC-2012比赛上所使用的ImageNet子集上,训练了到目前为止最大的神经网络之一,并取得了迄今为止在这些数据集报道过的最好的结果;
  • 编写了高度优化的2D卷积GPU实现,以及训练卷积神经网络的其他内部操作,并且公开了。
  • 即便使用了120万个标注的训练样本,我们的网络规模仍然使过拟合成为了一个明显的问题,所以使用一些有效的技术来防止过拟合。
  • 最终的网络包含5个卷积层和3个全连接层,深度似乎很重要:发现移除任何卷积层(每一个卷积层包含的参数不超过模型的1%)都会导致更差的性能。
网络优点

包含了许多新的不寻常的特性,这些特性

  • 能够提高神经网络的性能
  • 能够减少训练时间
网络尺寸受限于
  • 目前GPU的内存容量
  • 我们能够容忍的训练时间
如何提高实验结果
  • 等待更快的GPU和可用数据集

2 数据集

ILSVRC使用ImageNet的一个子集,1000个类别每个类别大约1000张图像。总计,大约120万张训练图像,5万张验证图像。

top-5错误率

在ImageNet上,按照惯例报告两个错误率:top-1和top-5错误率。
top-5错误率是指:测试图像的正确标签不在模型认为的五个最可能的标签之中的概率。

图像处理

ImageNet包含各种分辨率的图像,而我们的系统要求不变的输入维度。因此,我们将图像进行下采样到固定的256*256分辨率。给定一个矩形图像,进行如下操作:

  • 首先缩放图像短边长度为256;
  • 然后从结果图像中裁剪中心的256*256大小的图像块。

除了在训练集上对每一个像素减去平均活跃度外,不对图像做任何其他的预处理。所以我们在(中心的)原始的RGB像素值上训练网络。

3 架构

网络包含八个学习层--5个卷积层和3个全连接层。下面将描述网络结构中一些新奇的不寻常的特性,以下介绍按重要性排序,最重要的最优先。

3.1 线性修正单元(ReLU)非线性

主要的关注点是:拟合数据集时梯度下降的训练时间

  • 非饱和非线性函数ReLU训练时间传统的饱和非线性神经元tanh(x)要快几倍
  • ReLU可以在很大的网络上进行训练,tanh不能
  • 更快的学习对大型数据集上的大型模型的性能有很大影响

3.2 多GPU训练

为什么用双GPU?
  • 单个GTX 580 GPU的3GB内存限制了能在GPU上训练的网络的最大尺寸
  • 120万个训练样本足以来训练网络,但网络太大不能在单个GPU上进行训练
  • 现在的GPU非常适合跨GPU并行,因为GPU之间可以直接互相读写内存,而不需要通过主机内存。
本文的双GPU方案
  • 基本上在每个GPU上放置一半的核(或神经元);
  • 只在某些特定的层上进行GPU通信;

未完待续。。。

猜你喜欢

转载自blog.csdn.net/weixin_45700507/article/details/102299804