AlexNet理解

       最近在看论文,想把我学习的东西记录和整理。 《ImageNet classification with Deep Convolutional Neural Networks》在我研一的时候已经读过一遍,过了小半年温习一下。论文下载地址:https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

       作者在摘要的部分就已经很清楚的告诉我们次篇论文的网络模型结构和模型训练的最后精度效果。下面就作者主要介绍了ReLU,LPN,Overlapping Pooling,总体架构,减少过度拟合,这也是本文的创新点。

一、Rectified Linear Unit nonlinearity (ReLU)

       论文主要讲了为什么激活函数要用ReLU。在训练的过程中,非线性饱和函数(sigmoid和tanh)比非线性不饱和函数(ReLU)慢,深度卷积神经网络训练中使用ReLUs的速度是使用tanh的数倍,如下图实线是ReLU,虚线是tanh,在训练误差达到25%时两种激活函数迭代的次数比较。

                                                    

二、GPUs

         此论文用的GTX580GPU,3GB,为了提高运算,采用了双GPU,训练了5—6天,相比一个GPU,两个GPU准确度上提高了1.7%的top-1和1.2%的top-5。

三、Local Response Normalization  (局部响应归一化)

              公式:               

局部响应归一化可以提高网络泛化性能,其灵感来自于在真实神经元中发现的类型,形成了一种横向抑制机制。a代表在feature map中第i个卷积核(x,y)坐标经过了ReLU激活函数的输出,n表示相邻的几个卷积核,N表示这一层总的卷积核数量。

四、Overlapping pooling  (重叠池化层)

       池化层是由空间距离s个像素的池单元网格的组成,以大小为步长对前面卷积层的结果进行分块提取特征,在本论文中使用的是有重叠部分的池化层,实验表示使用 有重叠的池化效果比的传统要好,在top-1和top-5上分别提高了0.4%和0.3%,在训练阶段有避免过拟合的作用。

五、Overall architecture  (总体结构)

         总体结构:总共八层,前五层为卷积层,后三层为全连接层。其中第2,4,5层均是前一层自己GPU内连接,第3层是与前面两层全连接,全连接是2个GPU全连接(看图可以明白),ReLU在每个卷积层以及全连接层后。

卷积操作可以看做输入样本和卷积内核的内积运算,卷积层中使用同一卷积核对每一个输入样本进行卷积操作;池化层的作用是减小卷积层产生的特征图的尺寸。

输入层:图像大小为224*224*3

第一层:过滤后尺寸55*55*48(两个) (96个核:11*11*3(RGB=3),步长4)(48是因为采用双GPU);这些像素层经过relu1单元的处理,生成激活像素层,尺寸仍为2组55*55*48的像素层数据;再经过重叠池化层,过滤后尺寸27*27*48 (3*3,步长2)。

第二层:第一层输入数据尺寸为27*27*48(两个),在这里要注意,便于后续处理,作者在每幅像素层的左右两边和上下两边都要填充2个像素,经过卷积核处理后的尺寸为27*27*128(双GPU) (256个核:5*5*48,步长1);这些像素层经过relu2单元的处理,生成激活像素层,尺寸仍为两组27*27*128的像素层;再经过重叠池化层,过滤后尺寸13*13*128(3*3,步长2)。

第三、第四和第五卷积层相互连接,其后没有连接池化或标准化层。

第三层:第二层输入数据为13*13*128(两个),每幅像素层的左右两边和上下两边都要填充1个像素,经过卷积核处理后的尺寸为13*13*192(双GPU) (196个核:3*3*256,步长1);这些像素层经过relu3单元的处理,生成激活像素层,尺寸仍为13*13*192像素层,共13*13*384个像素层。

第四层:第三层输入数据为13*13*192(两个),每幅像素层的左右两边和上下两边都要填充1个像素;经过卷积核处理后的尺寸为13*13*192(双GPU) (196个核:3*3*192,步长1);这些像素层经过relu4单元的处理,生成激活像素层,尺寸仍为13*13*192像素层,共13*13*384个像素层。

第五层:第四层输入数据为13*13*192(两个),每幅像素层的左右两边和上下两边都要填充1个像素;经过卷积核处理后的尺寸为13*13*128(双GPU) (128个核:3*3*192,步长1);这些像素层经过relu5单元的处理,生成激活像素层,尺寸仍为2组13*13*128像素层,共13*13*256个像素层;再经过重叠池化层,过滤后尺寸6*6*256(3*3,步长2)。

第六层(全连接):第五层输入数据为6*6*256(两个),4096个6*6*256的滤波器对输入数据进行卷积运算,通过4096个神经元输出运算4096个结果;再通过relu激活函数生成4096个值;并通过drop运算后输出4096个本层的输出结果值。

第七层:第六层输出的4096个数据与第七层的4096个神经元进行全连接,再通过ReLU和Dropout进行处理后生成4096个数据。

第八层:第七层输入的4096个数据与第八层的1000个神经元进行全连接,经过训练后输出被训练的数值。

六、Reducing Overfitting 

此论文主要介绍了两种方法防止过拟合。

1)数据扩充

       使用了两种不同的数据扩充形式,这两种方法都允许从原始图像生成转换后的图像,并且计算量少,因此转换后的图像不需要存储在磁盘上。转换后的图像是在CPU上用Python代码生成的,而GPU对前一批图像进行训练。

(1)图像平移动和水平映射:我们通过从256*256幅图像中随机抽取224 *224的图像,并用来训练我们的网络,将训练集的大小增加了2048倍。

(2)改变训练图像中RGB通道的强度,每个RGB图像像素Ixy =[Ixy R ; Ixy G ; Ixy B ]T,其增量

    p是主成分,lamda是特征值,alpha是N(0,0.1)高斯分布中采样得到的随机值。得到自然图像的重要特性,目标是不随着光照强度和颜色而改变的。此方法降低top-1错误率1%。

2)Dropout

dropout减少了过拟合,也使收敛迭代次数增加一倍。

七、Details of learning

本文使用随机梯度下降训练我们的模型,批量大小为128个例子,动量为0.9,权重衰减为0.0005,权重值的更新公式:

                                           

       i是迭代指数,v是动力变量,ε是学习率,是目标关于w、对求值的导数在第i批样例上的平均值。用一个均值为0、标准差为0.01的高斯分布初始化了每一层的权重。

       1998年出现LeNet-5网络一直占据图片识别的领头地位,直到AlexNet出现,拿下2012年ILSVRC比赛的冠军,AlexNet打破了沉寂多年的图片识别领域,给神经网络领域带来了新的发展前景。

读大神的论文能学到很多东西,并且有新的想法想去尝试。记录点滴,记录学习。

ChenQidan,加油!

猜你喜欢

转载自blog.csdn.net/qq_41120234/article/details/88805846
今日推荐