Reading Report of ImageNet Classification with Deep CNNs


初学CNN,师兄就拿了这篇著名的论文让我学,精读,做笔记,做ppt,花了两天时间读完,收获很大。


一.背景知识介绍

1.      ImageNet

一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库,具有超过22,000个分类的标签化的高分辨率的图片,总计达1千5百多万张。

2.      CNN

深度学习算法在图像处理领域的一个应用,由神经网络模型发展而来,具有两大特征,一是局部感知,即神经元间的非全连接,二是神经元之间连接的权值共享。这两个特点使卷积神经网络类似于生物视觉神经网络,降低了网络模型的复杂度,减少了权值的数量,但仍能达到满意的训练效果。

a.      局部感知

卷积网络通过在相邻两层之间使用局部连接模式来利用图像的空间局部特性。每个神经元,只需要对局部进行感知,然后在更高层将局部的信息综合起来就得到了全局的信息。被连接的局部区域称为接受域,或局部感知野。这一特性使得原来m*m的参数个数减少为了m*n(n<<m)。


b.      权值共享

图像的一部分的统计特性与其他部分是一样的。这也意味着我们在这一部分学习的特征也能用在另一部分上,所以对于这个图像上的所有位置,我们都能使用同样的学习特征。每个特征映射使用相同的权值,使得参数个数从m*n变为了 n。通过增加卷积核可以增加提取特征的数量,n个卷积核能将一张图像生成n个不同的图像通道。


c. 多卷积核

   通过增加卷积核可以增加提取特征的数量,n个卷积核能将一张图像生成n个不同的图像通道。


d.      池化

卷积核的接受域通常比较小,通过多个卷积核卷积或得到大量的学习特征,直接用提取到的大量特征训练来训练分类器会产生很大的计算量和过拟合现象。解决方法是对不同位置的特征进行聚合统计,例如计算图像一个区域上某个特征的平均值或最大值。这种特征聚合的操作叫做池化,它能够降低特征的维度和过拟合的可能性。

二.数据集处理

ImageNet包含不同分辨率的图像,而模型需要固定的输入维度。原始图像需要通过采样的方式修正为256*256分辨率的图像。具体方法是:先将图像的短边缩放到256大小,然后裁出最中央256*256的区域。

三.网络架构

1.      ReLU

传统的输出激活函数:

 sigmoid函数,值域为[0, 1]


双曲正切函数(tanh), 值域为[-1, 1]


 ReLU(线性纠正函数)

f (x) = max(0,x)


在梯度下降训练时间上,饱和的非线性特性比非饱和非线性特性要慢的多。主要原因是sigmoid和tanh函数越接近目标,对应的导数越小。而ReLu的导数对于大于0的部分恒为1。于是ReLU可以在BP的时候能够将梯度很好地传到较前面的网络。


2.      在多GPU上训练

利用多GPU并行化技术,他们等够相互之间直接读写内存,而不需要经过主机内存。每个GPU放一半的神经元,但只在特定层中进行GPU之间的交互,其他层只在相同GPU内部进行映射。

3.      Local Response Normalization(局部响应标准化)

第一句提到,有了ReLUs,不需要再对输入进行标准化操作来防止到达饱和。但也有一些例外的情况。所以就引入了这一算法。在某些层(如第一、第二层之后)运用这一算法,对数值进行正则化微调整。从实验结果上看,这一操作提高了网络的泛化能力,将错误率降低了1点多个百分点。

4.      Overlapping Pooling(重叠采样)

传统的CNN结构中,池化操作不会从上一层重复采样。本文描述的结构中,将上一层看做一个网格,每个网格相同的边的距离为S,每次进行采样以网络中心为中心,采样Z*Z个像素。如果S=Z,则与传统方法相同。此网路令S=2,Z=3,进行重复采样。此举不仅降低了错误率,还增加了过拟合的难度。

5.      总体架构


八层架构。前五层为卷积层,后三层为全连接层。第二、四、五层只与上一层在同一个GPU上的特征图相连接。第三层与第二层的所有特征图连接。全连接层与上一层的所有神经元连接。Response-normalization在第一和第二层之后,最大池化层在Response-normalization和第五层之后。ReLu在每一层都有运用。

第一层:卷积层。用96个大小为11*11*3的卷积核对224*224*3的图像进行步长为4的卷积。维度:(224-7)/ 4 + 1 = 55。神经元个数:55*55*96=290400

第二层:卷积层。将第一层的输出通过Response-normalized处理和池化后的结果作为输入。用256个大小为5*5*48的卷积核做卷积。神经元个数:27*27*256=186624

第三、四、五层没有经过池化和标准化。

最后一层的输出连接一个1000种路径的softmax分类器,来产生类别标签。

四.降低过拟合的方法

1.        数据增强

利用GPU在处理数据的时间,在CPU并行进行数据增强计算,所以不会消耗多余的时间。本文采用的方法是从图像中随机抽取224*224像素和他们的水平翻转,可以将训练数据扩大2048倍。测试中使用的方法是提取图片的5个224*224切片,即中间和四角,和它们的水平翻转来做出预测,以平均值作为预测结果。

第二种方法是运用PCA算法,对图像RGB值进行一定的扰动。

2.        Dropout


   图是标准的含有两个隐层的神经网络模型。

   右图是对左图的模型运用Dropout后的网络架构。含有X的圆点是被dropped的神经元。


以0.5的概率给每个隐藏神经元的输出置为0。这些神经元将不会参加前向传播和反向传播的过程。所以每次输入时,网络都会产生一个随机的结构,但不同结构之间能够共享权值。因为每个神经元不能依赖于其他神经元的存在,该模型也减少了神经元的相互作用,迫使神经元与其他神经元共同学习更多更有用的特征。Dropout能够减低过拟合,但也会使收敛的迭代次数翻倍。

五.学习的细节

在模型中,权值衰减为0.0005,虽然权值衰减值很小,但是对于学习很重要,它减小了模型了训练错误概率。权值w的更新规则为:

    

i是迭代次数,ω是动量变量,ε是学习率。

初始时,每一层的权值设置为均值为0,标准差为0.01的高斯分布。第二、四、五卷积层和全连接的隐藏层的神经元偏置设为1。剩下的层偏置设为0。每一层使用相同的学习率,初始化为0.01,每当验证错误率不能改进当前学习率时,就把学习率除以10。

六.结果

成绩:

   ILSVRC-2010Top-1Top-5的错误率分别为37.5%17%,优于当时最优的水平。

   ILSVRC-2012:以Top-5错误率15.3%遥遥领先亚军的26.2%

讨论:

   该模型未用到任何无监督学习,否则,在更大规模的网络和长训练时间下,实验结果能得到更大的提高。

   用大规模深层的卷积网络模型处理视频序列,来获得静态图片遗漏的信息将会有很大帮助。


参考文献:

http://zhangliliang.com/2014/07/01/paper-note-alexnet-nips2012/

www.gageet.com/2014/09140.php

http://ibillxia.github.io/blog/2013/04/06/Convolutional-Neural-Networks/

http://blog.csdn.net/stdcoutzyx/article/details/41596663

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值