论文泛读 | ImageNet Classification with Deep Convolutional Neural Networks
论文链接:https://papers.nips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf
Q1:解决了什么?
-
目前主要利用机器学习来解决目标识别任务;
机器学习可以通过“扩充数据集”、“强化训练模型”、“充实预防过拟合的手段”等多种技巧去提高训练性能。
-
之前机器学习所使用的数据集太小,只能完成简单的识别任务,但是实际场景中识别任务要复杂得多,因此需要更加大型的数据集去训练;
-
直到最近出现了符合条件的大型数据集(如LabelMe、ImageNet),但是之前的方法都是针对小型数据集的,因此需要更加强大的方法模型来训练大型数据集;
于是,CNN模型闪亮登场!
-
本文提出的AlexNet模型,正是对传统CNN进行改善来训练大型数据集ImageNet,实现将 ImageNet LSVRC-2010 竞赛中的120万张高分辨率图像分为1000个不同的类别,使得深度学习开始在各个领域大显身手,为后续优秀的网络的提出奠定基础(后面的ImageNet冠军都是用CNN来做的)。
Q2:怎么解决的?
1、网络结构
- 5层卷积层+3层全连接层:
- 第2、4、5层卷积层中的内核仅连接到前一层中位于相同GPU上的特征图;
- 第3层卷积层中的内核与前一层中所有的特征图相连接。
- 各卷积层的完整操作:
- 第1层、第2层卷积层的完整操作:Conv→LRN→MaxPooling→ReLU;
- 第3层、第4层卷积层的完整操作:Conv→ReLU;
- 第5层卷积层的完整操作:Conv→MaxPooling→ReLU。
2、创新点
1)非饱和激活函数
使用了非饱和激活函数ReLU,有效防止了梯度消失。
关于非饱和激活函数的解释:https://blog.csdn.net/qq_40824311/article/details/103017760
2)多个GPU并行训练
采用了2块GPU进行训练,每个GPU负责一半的神经元,2个GPU只在第3层卷积层进行通信。有效降低了top-1 error和top-5 error。
3)LRN(局部响应标准化)
采用了LRN(局部相应标准化),使AlexNet的top-1和top-5错误率分别降低了1.4%和1.2%;
局部响应标准化:有助于提升AlexNet的泛化能力,这种方法受真实神经侧抑制(later inhibition)
的启发。
侧抑制:一个细胞分化为不同细胞时,它会对周围
的细胞产生抑制信号,阻止它们向相同方向分化,最终表现为细胞分化命运的不同。
LRN对局部神经元的活动创建竞争机制,使得响应较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。
LRN公式:
注:\(a_{x,y}^{i}\)表示第i个通道第x行,第y列对应像素的具体值
4)带重叠的池化
采用了“带重叠的池化(overlapping pooling)”(即令池化步长<池化窗口边长),不易产生过拟合。
5)数据集增强
利用“图片平移&水平翻转”和“改变RGB色差”,实现数据集增强。
6)引入“Dropout失活”
利用dropout(失活率=0.5),有效预防了过拟合。
Dropout介绍:https://www.jianshu.com/p/21d4c64fb8b5