Alex-Net

论文评价

2012年,Geoffrey E. Hinton 和他的学生Alex在ILSVRC竞赛中使用Alex-Net刷新了Image Classification记录,Top-5错误率15.3%,比上一年冠军下降了10个百分点。

Alex-Net的创新点

  1. RELU、局部响应归一化、重叠池化和整体架构 ,是论文创新之处;
  2. 给出了两个减少过拟合的有效技巧:Dropout数据增强
  3. 数据增强 的两种方式:生成图像翻译和水平反射(扩大训练集)改变训练图像中RGB通道的强度
  4. Dropout是 以0.5的概率使每个隐层神经元的输出为0。训练时最后几个全连接层中,使用Dropout正则化随机忽略一部分神经单元,以避免过拟合;
  5. CNN学习策略:初始化,权重衰减,带动量的小批量随机梯度下降法[^1] ,学习率的启发式策略;双GPU实现卷积操作,训练速度加快。
  6. 使用 ReLU(整流线性单元) 作为CNN的激活函数,并证明就梯度下降法的训练时间而言,ReLU比饱和非线性函数(tanh, sigmoid)快很多倍;
  7. 使用了 重叠的最大池化, 避免了CNN中普遍使用的平均池化的模糊化效果,且Alex-Net中步长比池化核的尺寸小,使池化层的输出有重叠和覆盖,提升了特征的丰富性;
  8. 提出了 LRN(局部响应归一化) 层,对局部神经元的活动创建竞争机制,使其中响应比较大的值变得更大,并抑制了其他反馈较小的神经元,增强了模型的泛化能力。

论文链接: [https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf)].

Introduction

  1. 与相同大小的标准前馈神经网络相比,CNN有更少的连接和参数,更易训练,其容量可通过改变深度和宽度来控制,对图像的性质(统计的平稳性像素依赖性的局部性 )作了多数正确的假设;
  2. 当前的 **GPU(图像处理单元 )**与高度优化的二维卷积实现配合使用,有助于大型CNN的训练;
  3. CNN的深度很重要,移除Alex-Net的任何一个卷积层都会使性能变差;
  4. 实验结果表明,更快的GPU和用更大的数据集可改善结果。
  5. Alex-Net架构:60 million parameters and 650,000 neurons; 五层卷积层(有些后面有池化层)+三层全连接层+ 1000路softmax层。

The Dataset— ImageNet

  1. ImageNet is a dataset of over 15 million labeled high-resolution images belonging to roughly 22,000 categories.图片源于网络并通过众包人工添加标签。
  2. Starting in 2010, as part of the Pascal Visual Object Challenge, an annual competition called the ImageNet Large-Scale Visual Recognition Challenge (ILSVRC) has been held. ILSVRC uses a subset of ImageNet with roughly 1000 images in each of 1000 categories. In all, there are roughly 1.2 million training images, 50,000 validation images, and 150,000 testing images.
  3. 2012年的ILSVRC中没有提供测试集的标签。在ImageNet通常报告两个错误:top1和top5****,the top-5 error rate is the fraction of test images for which the correct label is not among the five labels considered most probable by the model。正确的标签不在模型认为最可能的五个标签之中。

数据集预处理

  1. Alex-net为了方便,固定了原始图像的尺寸为256*256。所以对于给定的图片,第一个处理是将短边rescale到256的长度,然后修剪长边的两侧,取中间的256*256。
  2. 第二个处理是对图像的每一个像素进行中心化处理(减去均值),除此之外,没有再做其他的处理。
  3. 注意:网络输入数据是224 * 224,而不是256 * 256。
    从 256 * 256到224 * 224的过程是在data augmentation中做的:The first form of data augmentation consists of generating image translations and horizontal reflections. We do this by extracting random 224 * 224 patches (and their horizontal reflections) from the 256 * 256 images and training our network on these extracted patches.

ReLU Nonlinearity

  1. 用ReLU代替Sigmoid和tanh,是因为ReLU得到SGD的收敛速度比sigmoid or tanh快很多。主要原因是ReLU是非饱和的,对于大于零的任何地方都有很大的梯度,而sigmoid或tanh激活函数只有在零附近的梯度很大,距离零很远的地方梯度基本为零,达到了饱和状态。
  2. Figure 1 shows the number of iterations required to reach 25% training error on the CIFAR-10 dataset for a particular four-layer convolutional network. 在CIFAR-10 数据集上达到25%的训练误差所需的迭代次数。
    图1

Training on Multiple GPUs

  1. 模型并行:单个GTX 580 GPU只有3GB的显存。放不下整个Alex-net网络,所以实现上把模型分开放在了两个GPU上,并且只在特定层进行通信。两个GPU直接通信而不用通过主机内存。比起在一个GPU上训练的每个卷积层只有一半kernels的方案,将Top-1和Top-5的错误率分别降低了1.7%和1.2%,且双GPU net训练比one-GPU net训练时间略短。
  2. 具体做法如下: 用并行化方案将每半个核(神经元)放在每个GPU上,with one additional trick: the GPUs communicate only in certain layers。This means that, for example, the kernels of layer 3 take input from all kernel maps in layer 2. However, kernels in layer 4 take input only from those kernel maps in layer 3 which reside on the same GPU. Choosing the pattern of connectivity is a problem for cross-validation, but this allows us to precisely tune the amount of communication until it is an acceptable fraction of the amount of computation.

Local Response Normalization

  1. 局部响应归一化的表达式:归一化的目的是为了“抑制”。
    LRN表达式
  2. LRN reduces our top-1 and top-5 error rates by 1.4% and 1.2%, Respectively。在使用ReLU(整流线性单元)作为激活函数时, lateral Inhibition(侧抑制)有利于增强泛化能力(但是后期有一些争议,在2015年 Very Deep Convolutional Networks for Large-Scale Image Recognition(VGG)论文中提到LRN基本没用 )。其中核映射顺序任意并在训练开始之前确定。k,n,α, β 是超参数,其值由所使用的验证集决定,常取 k = 2, n = 5, α = 10−4, β = 0.75。

Overlapping Pooling

  1. **重叠池化:相邻池化层之间有重叠部分。**CNN中池化层总结了相同的核映射中相邻神经元组的输出。池化层在卷积层后面,一般通过池化层来降低卷积层输出的特征向量维数,同时改善结果。
  2. a pooling layer 可看作由间隔s 个pixels 的池化单元组成的网格, 每个池化单元总结了以它为中心的大小为z×z的邻域。若 s = z, we obtain traditional local pooling as commonly employed in CNNs. s < z为overlapping pooling.
  3. Alex-Net中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.
    并且重叠池化使模型slightly more difficult to overfit.

Overall Architecture

AlexNet共有8层,包含六百万以上的参数量,65万个神经元。前五层是卷积层,后三层是全连接层,最后一个全连接层是具有1000个输出的softmax。网络最后的优化目标是最大化multinomial logistic regression的均值
图2:AlexNet
Alex-Net Architecture如下图所示:
Alex-Net  Architecture

Reducing Overfitting:Data Augmentation

数据增强方法有两种方式:生成图像翻译和水平反射(扩大训练集);改变训练图像中RGB通道的强度。

  1. 增大数据集:当数据有限时,可以通过从已有的训练数据集中变换生成新的数据,从而进一步扩大训练数据量。

  2. AlexNet模型中使用到的图像数据变换有三种:平移变换(crop)、反射变换(flip)、光照和彩色变换(color jittering)

  3. AlexNet训练数据时,先对图片进行随机平移,然后水平翻转。测试时,先对左上,右上,左下,右下和中间做5次平移变换,然后翻转之后对结果求平均。

  4. The second form of data augmentation consists of altering the intensities of the RGB channels in training images. Specifically, we perform PCA on the set of RGB pixel values throughout the ImageNet training set.

Dropout

setting to zero the output of each hidden neuron with probability 0.5。
使用Dropout训练需要的时间大概是不使用Dropout的两倍,降低误差以更大的模型规模和更多训练算法的迭代次数为代价。

  1. 以这种方式“dropout”的神经元既不参与前向传播,也不参与反向传播。所以每次输入 一个样本,相当于神经网络尝试了一个新的结构,这些结构之间共享权重。
  2. 使用Dropout结构降低了神经元复杂的互适应关系。
  3. At test time, we use all the neurons but multiply their outputs by 0.5, which is a reasonable approximation to taking the geometric mean of the predictive distributions produced by the exponentially-many dropout networks.
  4. We use dropout in the first two fully-connected layers。Without dropout, our network exhibits substantial overfitting.

Details of learning

  1. 使用随机梯度下降(SGD)法,batch size是128个examples,momentum设为0.9,weight decay设为0.0005。
  2. 使用N(0, 0.01)的高斯分布初始化权重w,第二、四、五个卷积层和全连接的所有隐藏层的偏置(bias)初始化为1,其余层的bias初始化为零。这样的初始化能够加速学习的速度,并给ReLU提供正的输入。
  3. 学习率在每一层都相同,采用启发式策略手动调整:初始化为0.01,并且在每次结果不再改变时减小10倍,三次之后终止。 这样的训练方式用NVIDIA GTX 580 3GB GPUs对120万图像训练90个周期需要五到六天。
    带动量的SGD
    带动量的SGD算法

结果

  1. 在ILSVRC 2012的test set上能够达到top1和top5的错误率分别是37.5%和37.5%。
  2. 当时2010年比赛时最好的结果是47.1%和28.2%。
  3. 在ILSVRC2012上test set的top1和top5错误率分别是36.7%和 15.3%。

卷积网络的一些改进

  1. Hinton 等提出的Dropout 通过在训练过程中随机地忽略一定比例的节点响应,减轻了传统全连接神经网络的过拟合问题,有效地提高了网络的泛化性能。但是,Dropout 对于卷积神经网络的性能改善并不明显,其主要原因是卷积神经网络由于卷积核的权值共享特性,相比于全连接的网络大大减少了训练参数的数量,本身就避免了较为严重的过拟合现象。因此,作用于全连接层的Dropout方法对于卷积神经网络整体的去过拟合效果不够理想。
  2. Drop Connect随机地将神经网络卷积层一定比例的连接断开。对于卷积神经网络,作用于卷积层的Drop Connect相比作用于全连接层的Dropout 具有更强的去过拟合能力
  3. 不同于 Drop Connect 的是,作用于卷积层的 Maxout 激活函数只保留神经网络的上一层节点往下一层的激励最大值。并且,Goodfellow 等证明了Maxout 函数可以拟合任意凸函数,在减轻过拟合问题的基础上还具有强大的函数拟合能力。
  4. Dropout、Drop Connect 和 Maxout 三种方法虽然具体实现机制有所差别,但是其根本原理都是通过增加网络连接的稀疏性或者随机性以达到消除过拟合,提高网络泛化能力的目的。
  5. VGG网络基于AlexNet网络,作者证明了网络的深度有助于提高图像分类的准确度。 VGG网络的最佳深度被设定在16-19层。
  6. NIN( Network in Network) 的网络结构放弃了利用全连接网络进行特征图到概率分布的映射,采用了直接针对特征图进行Global average pooling 的方法获取到最终的概率分布,在减少网络中的参数数量的同时也避免了全连接网络的过拟合问题; 另一方面,NIN 使用“微神经网络”( micro neural network) 取代传统的激励函数( 如: Maxout)。

参考文献

AlexNeT结构图

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值