AlexNet--ImageNet Classification with Deep Convolutional Neural Networks
AlexNet 和 其导师Geoffrey E. Hinton,2010年训练了一个大型深度卷积神经网络,在ImageNet LSVRC-2010竞赛中,对包含120万个高分辨率的图像和1000不同的类别的分类预测中,在测试数据上,取得了top-1 37.5%, top-5 17.0%的错误率,远高于其他的模型。
AlexNet有6000多万个参数和650000多个神经元,包含5个卷积层(某些卷积层后面带有池化层)和3个全连接层,最后是一个1000维的softmax分类。
同时为了训练的更快,他们使用了非饱和激活函数,使用GPU进行了训练。
为了减少全连接层的过拟合,AlexNet采用了dropout的正则化方法,结果证明是非常有效的。
2012年他们使用这个模型的一个变种参加了ILSVRC-2012竞赛,赢得了冠军。与第二名 top-5 26.2%的错误率相比,取得了top-5 15.3%的错误率,极大的降低了错误率。
ImageNet数据集与ILSVRC之间的关系:
ILSVRC(ImageNet Large Scale Visual Recognition Challenge) 是斯坦福大学李飞飞教授等人于2010年创办的图像识别挑战赛,自2010起连续举办8年,极大的推动了CV 的发展,比赛项目涵盖:图像分类(Classification)、 目标定位(Object localization)、 目标检测(Object detection)、 视频目标检测(Object detection from video)、 场景分类(Scene classification)、 场景解析(Scene parsing),ILSVRC 数据来自于ImageNet 数据集,该数据集为计算机视觉领域提供了一个庞大的算料,其包括21841 个类别,14,197,122张图片,并通过WordNet 对类别进行分组,使数据集的语义信息更合理,非常适合图像识别, ILSVRC-2012挑战赛是从ImageNet中挑选1000类的150,000张作为训练集和测试集。
AlexNet 网络在ILSVRC 的分类任务中在Top-5(Test)指标中取得了15.3 % 的成绩,以超出第二名10.9个百分点夺冠,同时开启了CNN 统治CV 领域的序幕。
论文原图
AlexNet 网络包含包含5个卷积层(某些卷积层后面带有池化层)和3个全连接层,最后是一个1000维的softmax分类器。
conv1 --> ReLU --> Pool -->LRN
96个kernel,11 × 11 × 3,stride=4
conv2 --> ReLU -->Pool --> LRN
conv3 --> ReLU
conv4 --> ReLU
conv5 --> ReLU --> Pool
特征提取部分之后是分类器,包含3个全连接层和1000维的softmax分类器
网络中参数的计算公式:
Fi * (Ks * Ks) * Kn + Kn --> weights + bias
Fi 表示前一层计算公式,Ks 代表kernel 的size , Kn 代表当前kernel 数量,最后一个Kn 可以视为Bias 项
论文中指出AlexNet 网络架构中的特性按照重要程度可以分为四个部分
1.ReLU非线性
作者与传统的激活函数f(x) = tanh(x)或f(x) = (1 + e−x)−1 对比发现 ,他们使用的ReLU(修正线性单元) 的训练速度要快多倍,并且ReLU 能防止梯度弥散,使得网络具有稀疏性
2.多GPU训练
AlexNet 采用了当时性能比较好的 3G内存的GTX580 GPU进行训练,因为网络太大,他们使用的两个GPU 进行并行训练,并且可以直接互相读写内存
3.LRN(Local Response Normalization) :局部响应标准化
LRN受真实神经元侧抑制(lateral inhibition)现象的启发,
局部响应标准化:有助于AlexNet泛化能力的提升
This sort of response normalization implements a form of lateral inhibition
inspired by the type found in real neurons, creating competition for big activities amongst neuron outputs computed using different kernels
侧抑制是指细胞分化成不同细胞时,它会对周围细胞产生抑制信号,阻止它们向相同方向分化,使得不同细胞之间进行竞争,生成的结果就不同。
文中LRN计算公式
k = 2, n = 5, α = 10^−4, and β = 0.75
i:代表通道 channel
j:平方累加索引,代表从j~i的像素值平方求和
x,y:像素的位置
a: 代表feature map里面的 i 对应像素的具体值
N: 每个feature map里面最内层向量的列数
k: 超参数,由原型中的blas指定
α: 超参数,由原型中的alpha指定
n/2: 超参数,由原型中的deepth_radius指定
β: 超参数,
LRN 实际提升的效果并不明显,因此后来的网络中基本都不再使用这个方法了,基本都采用 Batch Normalization 方法
4.重叠池化
Overlapping Pooling 就是指 s < z, s 表示池化的步长,z 则表示pool size, 表示相邻池化操作会有重叠区域
AlexNet网络中的训练技巧包含 数据增强(Data Augmentation)和随机失活(Dropout)
Data Augmentation
AlexNet论文中Data Augmentation训练技巧有两种,第一种是针对位置的(The first form of data augmentation consists of generating image translations and horizontal reflections),
在训练阶段首先将图片统一缩放至256*256,然后在随机位置裁剪224*224区域,最后进行随机的水平翻转,生成图片的数量= (256-224) *(256-224)*2 = 2048 ,256-224 代表不同的像素,有长,宽两个纬度,然后有水平翻转。
在测试阶段首先将图片统一缩放至256*256,然后从左上,左下,右上,右下,中央区域(the four corner patches and the center patch),裁剪出5个224*224区域,最后都进行水平翻转,共得到10张224*224图片。
第二种训练技巧 是针对颜色进行处理(The second form of data augmentation consists of altering the intensities of the RGB channels in training images),在训练阶段通过PCA方法修改RGB通道的像素值,对颜色进行扰动,但这种方法性能提示不明显(This scheme reduces the top-1 error rate by over 1%)
Dropout
随机失活中的随机代表dropout probability,是一个概率值,例如:0.5;失活表示权重为0
传统的的神经网络中每一个神经元都有权重值并与前一层的神经元连接,AlexNet 中在训练阶段使用Dropout 技术中,在一层中会随机的有一半的神经元的权重会变为0,在测试阶段中由于数据尺度与训练阶段发生了变化,神经元的输出值要乘以0.5
AlexNet 使用SGD 进行训练,更新权重,batch size =128,动量为0.9,权重衰减为0.0005,使用均值为0,标准差为0.01的高斯分布对每一层的权重进行初始化。第2,4,5卷积层和全连接隐层将神经元偏置初始化为常量1,在剩下的层将神经元偏置初始化为0。所有的层都使用了相等的学习率,在120万图像的训练数据集上训练了大约90个循环,并且在两个NVIDIA GTX 580 3GB GPU上训练了五到六天。
不同AlexNet 网络结果与ILSVRC-2012 分类任务第二名的对比:
Qualitative Evaluations:
AlexNet网络中学习到了不同频率、方向和颜色的卷积核(The network has learned a variety of frequency- and orientation-selective kernels, as well as various colored blobs);并且在两个GPU上还出现了分工学习现象,
网络学习的特征具有相似性,相似图片的第二个全连接层输出的特征向量的欧式距离十分相近
AlexNet 性能有非常大的提升,对后来的CV 研究提供了极大的借鉴之处。
增加深度与宽度也许能够提高网络能力;
采用高性能GPU并行运算及更多数据可进一步提高模型性能;
为了适应不同分辨率的图片,需要对图片进行缩放,关键是要先对短边缩放,保证图片的比例不改变;
提升大型网络泛化能力可以提升网络性能,如LRN和现在的Batch Normalization;
采用ReLu加快大型神经网络训练,ReLU不需要对输入进行标准化来防止饱和现象,sigmoid/tanh激活函数有必要对输入进行标准化,会存在饱和现象;
采用Overlapping Pooling提升指标;
采用随机裁剪翻转及色彩扰动进行数据增强;
采用Drpout可减轻过拟合;
不同卷积核学习到了不同频率、方向和颜色特征
相似图片具有“相近”的高级特征,可用AlexNet提取高级特征进行图像检索、图像聚类、图像编码;
网络结构具有相关性,移除某一层会导致模型性能下降;