精读【2012_NIPS】AlexNet

admin 771 0
摘要

我们训练了一个大型的深度卷积神经网络,将ImageNet ILSVRC -2010竞赛中的120万幅高分辨率图像分类为1000个不同的类。在测试数据上,我们的分别top-1和top-5错误率分别为37.5%和17.0%,比之前的水平有了很大的提高。

该神经网络有6000万个参数和65万个神经元,由5个卷积层(其中一些是Max pooling池化层)和3个全连接层(最后的1000路softmax层)组成。为了使训练更快,我们使用了非饱和神经元和一个非常高效的GPU卷积运算方式(p.s.使用了Relu和双路GPU)。为了减少全连通层的过拟合,我们采用了一种最近开发的正则化方法“Dropout”,该方法被证明是非常有效的。

我们还在ILSVRC-2012比赛中加入了该模型的一个变体,并以top-5测试错误率15.3%获胜,而第二名则是26.2%。

Intro

大数据集,训练一个大模型,使用了GPU(GTX580*2)。

5个卷积层,3个全连接层,深度很重要。

数据集

ImageNet:ImageNet (image-net.org)

首先重新缩放图像,使短边的长度为256,裁剪成256*256的图片。

结构

ReLU

使用ReLUs进行深度卷积神经网络训练的速度比使用tanh训练的速度快几倍。

GPU*2并行计算

没办法的操作,当时一块GPU带不动。

LRN

采用LRN局部响应正则化可以提高模型的泛化能力。

重叠池化

传统池化时卷积核提取的每一小块特征不会发生重合,譬如kernel size记为z×z,步长stride记为s,当z = s时,就不会发生重合,当z > s时,就会发生重合,即重叠池化。AlexNet训练中的stride为2,kernel size为z = 3,使用的就是重叠池化。

总体架构

整个AlexNet网络共12层,包括输入层×1、卷积层×5、池化层×3、全连接层×3,示意图中隐藏了池化层。

图中保留了GPU0的下半部分和完整的GPU1的全部,给GPU0切掉了一半就很无语。

精读【2012_NIPS】AlexNet

降低过拟合

过拟合:也称为过学习,它的直观表现是算法在训练集上表现好,但在测试集上表现不好,泛化性能差。过拟合是在模型参数拟合过程中由于训练数据包含抽样误差,在训练时复杂的模型将抽样误差也进行了拟合导致的。所谓抽样误差,是指抽样得到的样本集和整体数据集之间的偏差。

本文的两种方法

  1. 生成图像平移和水平反射
  2. 改变了训练图像中RGB通道的强度

Dropout

训练采用了0.5丢弃率的传统Dropout。

Dropout说的简单一点就是:我们在前向传播的时候,让某个神经元的激活值以一定的概率p停止工作,这样可以使模型泛化性更强,因为它不会太依赖某些局部的特征。

训练

随机梯度下降!

所有层采用了相同的初始化为0.01的学习率,不过可以手动调整。

weight deay对模型的学习很重要。

结果

精读【2012_NIPS】AlexNet

讨论

一个大型的、深度的卷积神经网络能够在一个高度挑战的数据集上使用纯监督学习获得破纪录的结果。如果去掉AlexNet网络中的任意个卷积层,整体性能就会下降约2%,可见,网络的深度很重要。

发表评论 取消回复
表情 图片 链接 代码

分享