您的位置:首页 > 其它

ImageNet Classification with Deep Convolutional Neural Networks泛读总结

2016-03-22 16:51 417 查看
摘要
这个神经网络有60 million 个参数,650000个神经元,5个卷积层,3个全连接层,最后一个全连接层输入到一个1000waysoftmax分类器中,产生1000个分类类别。
为了加快训练速度,使用了非饱和神经元和两个GPU。
为了减少过度拟合,在全连接层中使用 dropout。
CNNs架构
(1)非线性的ReLU



采用非线性的非饱和ReLU激活函数

来代替传统的饱和神经元激活函数tanh(x),

表示当输入x小于等于0时,强制x为0,当x大于0时,不做改变。

(2)多个GPUs
(补充:GPU是显卡的心脏,相当与CPU在电脑中的作用,它决定了显卡的档次和绝大多数性能)
在本实验中,使用2个GPU。
(3)局部相应正则化




表示规范后的激活,


表示神经元在(x,y)处的激活函数值,N表示在这一层中所有核数。这个表达式是表示在同层相邻节点进行的局部正则化。
(4)重叠下采样层
(补充:下采样层一般放在卷积层后面,因为下采样就是为了减少卷积过后产生的特征向量,而重叠下采样层就是相邻下采样窗口之间会有重叠区域。此时要求size
X> stride )。在本实验中下采样窗口大小size为3*3,相邻下采样窗口的水平位移/垂直位移stride为2。
重叠下采样层,有利于减少过度拟合。
(5)CNNs总体结构框架(重头戏来了)



(在对这个有名的网络结构分析之前,我先给大家科普一下convolution过程:
假设有一个r*c大小的输入图像,然后从中抽取了a*b大小的图像样本,其实这也相当于我们卷积层里卷积核的大小,然后呢,让这个图像样本去卷积这个输入图像,假设这里存在k个特征,也就相当于k个卷积核个数,那么卷积过后得到的特征矩阵大小就为(r-a+1)*(c-b+1)*k,如果在卷积层后面还加了pooling层,那最终得到的特征矩阵大小另当别论。这跟pooling的层数有关。)

存在两个GPUs,一个负责图中的上一层,另一个负责图中的下一层。整个CNN有8层,5个卷积层,3个全连接层,下面对每层单独分析:

(1)前五层卷积层
第一层: 与224*224的输入图像连接,3个通道。96个卷积核,每个GPU上48个,卷积核大小为11*11*3,滑动窗口滑动位移为4个像素,采用ReLU激活函数进行卷积,卷积后进行重叠下采样处理,最后还要局部正则化。
第二层:第一层的输出作为第二层的输入,(卷积时,只卷积同一个GPU的前一层的48个特征映射层)256个卷积核,每个GPU上128个,卷积窗口大小为5*5*48,采用ReLU激活函数进行卷积,卷积后进行重叠下采样处理,最后还要局部正则化。
第三层:第二层的输出作为第三层的输入,(卷积时,卷积前一层两个GPU上所有256个特征映射层)384个卷积核,每个GPU上192个,卷积窗口大小为(3*3*128)*2,采用ReLU激活函数进行卷积.
第四层:(卷积时,只卷积同一个GPU的前一层的192个特征映射层)384个卷积核,每个GPU上192个,卷积窗口大小为3*3*192,采用ReLU激活函数进行卷积。
第五层:(卷积时,只卷积同一个GPU的前一层的192个特征映射层)256个卷积核,卷积窗口大小为3*3*192,采用ReLU激活函数进行卷积,后面重叠下采样处理。
(2)下面进入全连接层
第六层,第五层下采样处理后的输出作为第六层的输入,4096个神经元。
第七层:与第六层所有的神经元相连,4096个神经元。
第八层:与第七层所有的神经元相连,输入到一个1000way-softmax分类器中,产生1000个分类类别。

减少拟合
(1)数据扩充
水平对称变换,将原来256*256的输入图像变成224*224的三张一样大小的图像补丁(这也就是为什么DS-CNN总体结构框架图中输入图像的大小是224*224*3的原因)。
对RGB像素值进行PCA处理,对每张训练图像加上一个服从均值为0,标准差为0.1的高斯正态分布的随机变量。也就是说,将每张RGB图像像素

加上

,其中,Pi和

是RGB像素值第i个3*3的协方差矩阵的特征向量和特征值。

就是随机变量。
(2)Dropout
(补充:Dropout就是在训练过程中以一定概率将隐藏节点的输出值清0)
本实验中,就是以0.5的概率,将每个隐藏节点设为0。只有全连接层中的第一,第二层使用,也就是网络中第六,第七层。
训练细节
在训练这个CNNs时,采用随机梯度下降法进行更新优化。(梯度下降也就是通寻找合适的权值和偏置使得代价函数最小),每一批训练128个样例,动量项参数大小为0.9,权重衰减系数大小为0.0005,学习率为0.01(对所有层使用相同的学习率,如果这个值在训练时无法使误差收敛,那么就将学习率除以10作为新的学习率)。下面是网络中权值更新的规则。




表示动量值,

是学习率,网络中,所有权值初值为一个服从均值为0,标准差为0.01的正态分布随机数。在第二,第四,第五层卷积层还有全连接隐藏层初始化神经元偏置为1,其他偏置初值为0。
简而言之, ImageNet网络的独到之处是:
1.使用了新的激活函数ReLU(Rectified
Linear Units)。
2.下采样层采用最大下采样代替平均下采样,并且是重叠下采样。
3.使用了局部响应归一化(Local Response Normalization)。
4.输出层使用softmax
分类器。
5.在训练中采用了dropout
技术。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: