ImageNet Classification with Deep Convolutional Neural Networks 论文学习

Alex-net是CNN的开山之作,拜读一下大作,自己总结下记得请~

摘要

        在ImageNet上训练了一个大型深度卷积神经网络,将120万高分辨率的图像分成1000类,在测试集上取得了TOP1(37.5%) TOP5(17.0%)的好成绩。Alex-net中有650K个神经元,60M个参数,5个卷积层,3个全连接层,1000维的softmax。为了训练得更快,我们采用非饱和神经元进行卷积以及高效的GPU工具。采用了dropout的方法减少过拟合。Alex-net的变种参加了ILSCRC-2O12的竞赛,成绩更好了。

1 简介

       背景:现有成果的不足,数据集不够大,新出现的LabelMe---包含了数十万张完全分割的图像和ImageNet---包含了22000个类别上的超过1500万张标注的高分辨率的图像。为了从ImageNet的大量数据中分出很多对象,引入卷积神经网络(CNN)进行预处理,CNN可以对学习图像本质提供强有力的依据,通过改变depth和breadth的参数可以控制其性能。与标准前馈网络比,CNN连接数和参数少,性能虽稍差但更适宜训练。

       本文贡献:

  1.        在ImageNet上训练了迄今为止最大的神经网络之一,并且取得了前所未有的性能
  2.        编写了深度优化的2D卷积神经网络在GPU上的应用,并公开其内部结构
  3.        新网络有全新的特性,提高性能,减少训练时间,见第三节
  4.        采用有效的预防过拟合技术,见第四节
  5.        最终网络结构为:5个卷积层+3个全连接层,大部分参数都是在全连接层,每一个卷积层包含不到1%的参数,去掉任何一层都会降低模型的性能

2 数据集

        使用ImageNet,使用时下采样到256*256的大小,除了下采样外不做其他预处理,对原始图像的RGB像素进行网络训练。

3 结构

       包含8个学习层,5个卷积层和3个全连接层。由于当时的显卡容量问题,AlexNet 的60M个参数无法全部放在一张显卡上操作,所以采用了两张显卡分开操作的形式,其中在C3,R1,R2,R3层上出现交互,所谓的交互就是通道的合并,是一种串接操作。论文中给出的结构图:

                  

             论文中maxpooling部分被比较简略,下图细化分解各个过程:

                      

卷积计算公式为:

                    \frac{(N - n + 2*padding))}{stride}+1    (原图大小N×N,卷积核大小n×n,卷积步长stride,边界填充padding)

卷积层1:输入图像224 × 224 × 3,使用96个大小为11 × 11 × 3的卷积核,步长4像素,第一层中feature map输出大小为  \frac{(227 - 11 + 2*0))}{4}+1       = 55,进行步长为2的max-pool,最终得到96个27×27的feature map

卷积层2:使用256个5 × 5 × 48的卷积核,步长1像素,边界填充为2,使用两个GPU进行运算,每个GPU上有128个卷积核,卷积核的大小为:5×5×48 ,进行步长为2的max-pool,最终得到256个13*13的feature map

卷积层3:使用384个3 × 3 × 256的卷积核,步长1像素,边界填充为1,最终得到384个13*13的feature map

卷积层4:使用384个3 × 3 的卷积核,步长1像素,边界填充为1,最终得到384个13*13的feature map

卷积层5:使用256个3 × 3 的卷积核,步长1像素,边界填充为1,最终得到256个13*13的feature map

全连接层6,7,8:卷积层5输出进行max-pooling后作为输入,每一层的神经元的个数为4096,最终输出softmax为1000

 3.1非线性ReLU

        非饱和的非线性函数f(x)=max(0,x)比饱和的非线性函数f(x)=tanh(x)在收敛的快,因此,采用ReLU函数作为激活函数。在CIFAR-10数据集上,在一个4层的卷积网络中使用ReLU函数达到25%的训练错误率要比在相同网络相同条件下使用tanh函数快6倍。

                                       preview

                                f(x)=max(0,x)用于增加非线性

                                                 

在全连接层中的激活过程就很好理解了,因为全连接层内所有的神经元的输出都是一个数,只要这个数x>0,则x=x;x<0,则x=0。
在卷积层中的激活针对的是每一个像素值,比如某卷积层输出中某个通道中i行j列像素值为x,只要这个数x>0,则x=x;x<0,则x=0。

3.2 多GPU训练

          网络太大因此我们将网络分布在两个GPU上,每个GPU放置一半的核(或神经元),还有一个额外的技巧:只在某些特定的层上进行GPU通信。第3层的卷积会将第2层的所有输出作为输入,第4层的卷积只将位于相同GPU上的第3层的核映射作为输入。这种训练方法使top-1和top-5错误率和使用一个GPU训练一半的kernels相比分别降低了1.7%和1.2%,同时缩短了训练时间。

preview

3.3 局部响应归一化

             ReLU不需要通过输入归一化来防止饱和,但是我们发现局部响应归一化有助于泛化(???),公式如下:

                                            

         a_{x,y}^{i}表示神经元激活,在(x,y)位置使用核ib_{x,y}^{i}表示响应归一化结果,N是卷积核数目,k,n,α,β是超参数,给定值为:k=2,n=5,α=0.0001,β=0.75。

这部分再看一下这里:

https://blog.csdn.net/luoluonuoyasuolong/article/details/81750190

3.4 重叠池化层

      CNN中通常采用局部池化,即pool_size = stride,如果 stride < pool_size, 那么就会产生覆盖的池化操作,Alexnet中使用重叠池化的方法,设置stride =2,pool_size=3,在top-1,和top-5中使用重叠池化分别将top-1和top-5错误率降低了0.4%和0.3%。

4 减少过拟合

      论文说Alexnet虽然只有8层,但有6000万个参数,可以算一下,参数大部分在全连接层。参数量巨大容易导致过拟合,论文采用下面两种方法避免过拟合

è¿éåå¾çæè¿°

4.1 数据增强

采用了两种方法进行数据增强:

  1. 产生图像变换和水平翻转
  2. 改变训练图像的RGB通道的强度

4.2 随机失活 Dropout

     随机将隐层神经元的输出置0,概率为0.5。失活的的神经元不再参与前向传播何后向传播。每次输入,神经网络都是不同的架结构,但是各个结构的权重是一样的。使用dropout正则化后,每个神经元都有失活的可能,对于单个神经元来说,输入的特征量存在被清除的可能,这就使得神经元不会依赖于任何一个特征。

5 学习细节

     AlexNet使用随机梯度下降算法,batch大小是128,动量衰减参数设置为0.9,权重衰减参数为0.0005,这里的权重衰减不仅仅是一个正规化器,同时它减少了模型的训练误差,权重 的更新过程变为:

                                      

其中, 是i迭代次数索引, v是动量变量, \varepsilon是学习速率, 是第 i个batch中 的梯度的平均值。(???不太懂),网络参数的初始化方式为权重初始化方式是均值为0,标准差为0.01。第2、4、5和全连接层的偏置为1,这样可以使得神经元在初始阶段为正值,因为ReLU的负数部分激活值为0。其它层的偏置初始化为0。120万张图像在两块GTX580上训练了6天时间。

 

 参考:论文原文

            从AlexNet理解卷积神经网络的一般结构

           深入理解AlexNet网络

           深度学习卷积神经网络-AlexNet

          《深度学习》课程总结-深度学习的实用层面 dropout 看看这里

          《ImageNet Classification with Deep Convolutional Neural Network》

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值