ImageNet Classification with Deep Convolutional Neural Networks(AlexNet)
作者以及相关性
- Alex Krizhevsky
- Ilya Sutskever
- Geoffrey E. Hinton
- 本文被认为是这一轮深度学习浪潮的开端
主题
- 将 CNN 技术最先应用到图像识别领域,利用 CNN 参数共享的特性,减少网络的规模
- 解决深度网络难训练(速度慢)以及容易过拟合问题(更多数据或者网络技巧)
数据集与指标
- ImageNet LSVRC-2010 contest: 图片 1000 分类
- top-1 和 top-5 错误率为指标
模型/实验/结论
模型
-
由于当时的 GPU 显存限制,无法将所有的数据加载到单独 GPU 中,作者使用两个 GPU 并行训练。
-
整个模型如下图所示,由 5 个卷积层以及 3 个全连接层组成。其中在 CONV3、FC1、FC2、FC3 层进行两个 GPU 的数据交互。
- [227, 227, 3] INPUT: 原始论文中 224 为笔误。
- [55, 55, 96] CONV1: (11*11*3,96) filters, Stride 4, pad 0
- [27, 27, 96] MAX POOL1: (3*3) filters, Stride 2
- [27, 27, 96] NORM1: Normalization layer
- [27, 27, 256] CONV2: (5*5,256) filters, Stride 1, pad 2
- [13, 13, 256] MAX POOL2: (3*3) filters, Stride 2
- [13, 13, 256] NORM2: Normalization layer
- [13, 13, 384] CONV3: (3*3,384) filters, Stride 1, pad 1
- [13, 13, 384] CONV4: (3*3,384) filters, Stride 1, pad 1
- [13, 13, 384] CONV5: (3*3,256) filters, Stride 1, pad 1
- [6, 6, 256] MAX POOL3: (3*3) filters, Stride 2
- [4096] FC1: 两个 GPU 中的 CONV 层结果进行全连接
- [4096] FC2: FC1 进行全连接
- [1000] FC3: FC2 进行全连接,最后输出分类结果
-
参数数量 60 million
- 使用 ReLU 作为激活函数:比 tanh 计算开销小,以及收敛速度快。根据问题的特点选择激活函数(大模型、大数据集)
- Local Response Normalization(Norm Layers):局部响应归一化层,后来很少使用。
在经过 ReLU 作用之后,对相同空间位置上()的相邻深度( )的卷积结果做归一化。n 指定相邻卷积核数目,N 为该层所有卷积的数目。 都是超参数。本文使用 , 分别降低 top-1 和 top-5 错误 1.4% 和 1.2%
- Pooling:s=2 < z=3,有部分重叠,作者通过实验发现这种方法可以更好地避免过拟合。
- data augmentation:
- 对图像进行裁剪以及翻转,扩大数据。这种策略对测试带来影响,测试时裁剪出图片四个角落以及中间部分,得到 5 张图片,另外翻转得到 5 张图片,最后分类结果又这 10 图片的平均得分确定。
- 利用 PCA 改变 RGB 通道的强度。
- Dropout:每次训练的时候,从模型中 sample 出一个小的模型,减少过拟合。
实验
-
参数:dropout 0.5,batch size 128, SGD Momentum 0.9, Learning rate 1e-2 reduce by 10,L2 weight decay 5e-4
-
测试集上结果
-
取出 CONV1 相关的 filters卷积侧重点不同,GPU1 颜色无关,GPU2 颜色相关。多次实验发现都存在这种现象,说明使用多个 GPU 训练是必要的,模型可以捕捉更多信息。
-
取所有最后一个隐层向量,找到与测试图片欧拉距离最小的训练图片(下图中第一列为测试图片,之后几列是欧拉距离最小的训练集中图片)。肉眼可以发现,同一分类的图片有很大关联性。证明模型能学习图片之间的关系。
结论
- 通过移除 AlexNet 网络中的某几层发现错误率均有提高,这个网络时必要以及有效的。
- 文章中作者通过大量的实验确定模型的细节问题,值得我们学习。
- 当时的 GPU 限制作者的想象力……
ImageNet Classification with Deep Convolutional Neural Networks(AlexNet)