AlexNet: ImageNet Classification with Deep Convolutional Neural Networks
基于深度卷积神经网络的图像分类
-
在12年左右作为基于深度学习图像分类的开山之作,在当时看来网络是比较深的,但是现在看这个网络是很浅的
-
ILSVRC:大规模图像识别挑战赛
-
TOP 5 error:在分类任务中,如果预测结果概率前五的类中成功命中,就算做成功
意义
- 拉开了卷积神经网络统治计算机的序幕
- 加速了计算机视觉应用的落地
摘要
- 1.在ILSVRC-2010的120万张图片上训练深度卷积神经网络,获得最优结果,top-1和top-5 error分别为37.5%,17%
- 2.该网络(AlexNet)由5个卷积层和3个全连接层构成,共计6000万参数,65万个神经元
- 3.为加快训练,采用非饱和激活函数——ReLU,采用GPU训练
- 4.为减轻过拟合,采用Dropout
- 5.基于以上模型及技巧,在ILSVRC-2012以超出第二名10.9个百分点成绩夺冠
AlexNet结构
- 主要由五个卷积层和三个全连接层构成
- Conv1 -> ReLU激活函数 -> MaxPooling -> LRN
- Conv2 -> ReLU激活函数 -> MaxPooling -> LRN
- Conv3 -> ReLU激活函数
- Conv4 -> ReLU激活函数
- Conv5 -> ReLU激活函数 -> MaxPooling
- CNN步长卷积计算公式Fout = (Fin + 2p - k)/s + 1 其中,k为卷积核大小,p为padding,s为stride 如第一层:(224 + (1+2) -11)/4 + 1= 55
结构特点
- ReLU激活函数
梯度消失:network叠得很深的时候,在靠近input的地方,这些参数的gradient(即对最后loss function的微分)是比较小的;而在比较靠近output的地方,它对loss的微分值会是比较大的
由作者本人所作实验可知,在使用ReLU激活函数时,训练达到0.25的错误率所需的epochs仅为6次,而使用Sigmod激活函数所需的epochs为36次
- Local Response Normalization LRN 局部响应标准化,有助于AlexNet泛化能力的提升,受真实神经元侧抑制(lateral inhibition)启发 侧抑制:细胞分化变为不同时,它会对周围细胞产生抑制信号,阻止它们向相同方向分化,最终表现为细胞命运的不同
在VGG论文中证明了LRN并没有什么用
- Overlapping Pooling(带有重叠的池化层)
一般使用的Pooling层为2*2 步距也为2的,而本论文采用了3 * 3步距为2的Pooling
Reducing Overfitting
Data Augmentation
- 针对位置
在训练阶段,将图片统一缩放至256 * 256,我们对他进行224*224的随机裁剪并翻转,然后在进行一次水平翻转,一共可以得到2048(32 * 32 *2)个不同的图片来进行输入
在测试阶段,我们只对图片的四个角以及中心做一个224*224的裁剪,并获得他们的水平翻转即一共十张图片,将这十张图片输入到训练好的网络中,对得到结果做一个平均,作为其最终的预测值
- 色彩扰动
通过PCA方法修改RGB通道的像素值,实现颜色扰动,效果有限
Dropout
在training的时候,每次update参数之前,我们对每一个neuron(也包括input layer的“neuron”)做sampling(抽样) ,每个neuron都有p%的几率会被丢掉,如果某个neuron被丢掉的话,跟它相连的weight也都要被丢掉
每次update参数之前都通过抽样只保留network中的一部分neuron来做训练
注意:训练完应用到测试集时,weight需要*p%
AlexNet的实验结果
SIFT+FVS: ILSVRC-2012分类任务第二名
1CNN:训练一个AlexNet
5CNNs:训练五个AlexNet取平均值
1CNN* 在最后一个池化层之后,额外添加第六个卷积层并使用lmageNet 2011(秋)数据集上预训练
7CNNs* 两个预训练微调,与5CNNs取平均值
卷积核可视化
-
卷积核呈现出不同的频率、方向和颜色
-
两个GPU呈现分工学习
-
即使对所有参数都采用随机初始化,得到的结果也与上图差别不大
相似图片的第二个全连接层输出的特征向量的欧式距离相近
对于一个224*224 *3的RGB图像,经过AlexNet到达第二个全连接层时,其仅有4096个维度的特征,相较于初始图象大大减少,所以可以利用AlexNet提取高级特征进行图像检索
论文总结
AlexNet网络特点
- 采用ReLu激活函数加快大型神经网络训练 *
- 采用LRN提升大型网络泛化能力
- 采用Overlapping Pooling提升指标
- 采用随机裁剪翻转及色彩扰动增加数据多样性 Date Augmention*
- 在全连接层采用Drpout减轻过拟合 *