2023/9/17周报 CNN

摘要

本周阅读了Alex Krizhevsky、Ilya Sutskever、Geoffrey E. Hinton三人2012年在《Advances in neural information processing systems》上发表的关于CNN的经典论文。文中使用了很多在当时来说十分先进的方法,例如使用Relu激活函数代替tanh函数、sigmoid函数,采用Dropout正则化可以减少过拟合等等。

Abstract

This week, I read the classic paper on CNN published by Alex Krizhevsky, Ilya Sutskever and Geoffrey E. Hinton in Advance in Neural Information Processing Systems in 2012. In this paper, many advanced methods were used, such as using Relu activation function instead of tanh function and sigmoid function, and using Dropout regularization can reduce over-fitting.

文献阅读

1.题目

ImageNet Classification with Deep Convolutional Neural Networks

2.问题

1)训练具有强大学习能力的深度卷积神经网络模型。
2)提高训练速度。
3)面对更大规模的数据集,如何有效避免过拟合。

3.解决方案

1)现实环境中的物体可能表现出相当大的变化性,要学会识别这些物体就必须使用更大的训练集,也就更需要一个更大更复杂的、学习能力更强的模型。本文训练了一个庞大的深度卷积神经网络AlexNet,将ImageNet LSVRC-2010竞赛中的120万张高分辨率图像分类为1000个不同的类别。
2)采用ReLU非线性单元替代原来的tanh激活函数,训练速度提高好几倍;
采用两个GPU并行化操作而不是单个CPU,降低了错误率且减少了训练时间。
3)使用数据增强(平移图像和水平映射、改变训练图像中RGB通道的灰度)和Dropout正则化方法,选择在前两个全连接层使用dropout以避免过拟合。

4.贡献

针对ImageNet这样一个较大较复杂的数据集,提出并搭建一个大型且复杂的深度卷积神经网络AlexNet来更好地实现识别和分类任务,并且突破了当时的记录,有效地解决了过拟合的问题。整合了各种技巧,对CNN的一些改进成为以后CNN网络通用的结构。当GPU的速度更快,数据集更大时,模型可以进一步优化,获得更好的结果。

5.方法

5.1 ReLU非线性单元
AlexNet使用的神经元激活函数是ReLU激活函数 f(x)=max(0,x) ,相比于饱和非线性函数如Sigmoid和tanh函数,不饱和非线性函数如ReLU在梯度下降时具有更快的收敛速度,更快地学习,在大型网络中训练大量数据具有非常好的效果。(注:ReLU是本文作者Hinton在2010年提出来改善RBM性能的,把ReLU引入深度CNN中,使得ReLU成为以后深度网络普遍使用的非线性函数,从而在这个领域替代经典的sigmoid、tanh函数。)
如下图,实线表示使用ReLUs的CNN,虚线表示使用tanh函数的CNN,可以看出使用ReLUs的CNN能更快把训练集错误率降到25%以下。
在这里插入图片描述

5.2 跨GPU并行化操作
当时所使用的GTX580只有3GB的内存,限制了可以在GPU上训练的最大网络,通过跨GPU并行化操作,作者把网络一分为二,分配到2个GPU上,通过并行计算来解决。
5.3 局部响应归一化
LRN(Local Response Normalization)层是用来做归一化的, 文中作者提到Relu本不需要输入归一化来防止饱和,即对于很大的输入x,ReLU仍然可以有效的学习。仍然使用归一化,可以增强模型的泛化能力,对学习有帮助。
局部响应归一化公式:
在这里插入图片描述

5.4 重叠池化
正常池化是步长 = 窗口尺寸,重叠池化是指步长<窗口尺寸,如步长s=2、窗口z=3。该方案将前1和前5错误率分别降低了0.4%和0.3%。
5.5 Dropout
文中采用Dropout技术,在每次训练网络时,每个神经元都会以0.5的概率“丢失”,丢失的神经元不参与前向传播和反向传播,但是神经元的权值在每次训练时都是共享的。这个技术降低了神经元之间的联合适应性,从而学习更具鲁棒性的特征。在测试阶段,神经网络会使用所有的神经元,但每个神经元的输出会乘以0.5。Dropout技术用在前两个全连接层中,会减少过拟合但有个缺点,就是会使最终网络收敛所需要的迭代次数翻倍。(Dropout是Hinton在2012年提出以改善深度网络泛化能力的。)

6.实验设计

整体模型结构设计:
在这里插入图片描述

针对ImageNet这一大型数据集,构建深度卷积神经网络AlexNet,其中含有6000万个参数、650000神经元。
训练细节:
本文使用带动量项的梯度下降法SGD来训练模型。
batch size=128,动量项v=0.9,权值衰减(weight decay) wd=0.0005,W服从均值为0、标准差为0.01的高斯分布。
偏置项:第2、4、5卷积层和全连接层的b=1(促进最初阶段ReLU的学习);其它层b=0。学习率:初始为0.01,当验证集的错误率停止降低时,手动缩减学习率(除以10)。

7.实验结果

错误率比较:
本文的网络在ILSVRC-2010上的结果及对比如下表所示,第一行的算法是ILSVRC-2010比赛中的第一名,第二行的算法是在FVs上训练两个分类器,并求其预测的平均值;第三行即是本文的算法,可以看到本文的算法错误率明显比前两个算法低。
在这里插入图片描述

接着,在ILSVRC-2012上的结果如下表所示(Table 2)。由于当时未公布2012的测试集,所以作者将验证误差当作测试误差,实际上这样的结果并不会差太多,如下表右边第一列就是真正的测试误差,前两列是作者的验证误差。
在这里插入图片描述

定性评估:
在这里插入图片描述
作者展示了8张图片的预测结果来说明网络在预测top-5时都从测试图片中学到了什么,然后对比了测试集中的五张图片和在训练集中与之最相似的6张图片,通过两张图片产生的特征激活向量(即CNN的输出结果)的欧几里得距离来确定两张图片的相似程度,对于高维的向量欧几里得距离很难计算,故作者又提出训练一个自动编码器来压缩这些向量成二进制编码。

总结

本周对CNN的一篇开山之作论文进行学习,该文中运用了很多当时非常先进的技术,突破了当时的记录,有效地解决了过拟合的问题。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值