博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AlexNet到底是什么?
阅读量:5786 次
发布时间:2019-06-18

本文共 3069 字,大约阅读时间需要 10 分钟。

投资家兼企业家Peter Thiel最喜欢的问题是:很少人赞同你的重要事实有哪些?

如果你在2010年向Geoffrey Hinton教授提出这个问题,他会回答道,卷积神经网络(CNN)有可能在解决图像分类问题上发挥巨大的作用当时,该领域的研究人员并不重视这一言论因为深度学习太平淡无奇了。

2010ImageNet项目的大规模视觉识别挑战(ILSVRC)启动。

随后的两年时间里,Alex KrizhevskyIlya SutskeverGeoffrey E. Hinton的论文发表,这是前所未有的震撼!这篇论文以一种巧妙的手法打破了旧观念,开创了计算机视觉的新局面。

在接下来的几年里,多个团队将构建CNN体系结构期望超越人类层面的准确性。2012年论文中使用的架构通常被称为AlexNet第一作者Alex Krizhevsky的名字命名。本文将回顾AlexNet的架构并讨论它的主要贡献。

输入

AlexNet2012ImageNet项目的大规模视觉识别挑战(ILSVRC)中的胜出者AlexNet解决了图像分类的问题,输入是1000个不同类型图像(如猫、狗等)中的一个图像,输出是1000个数字的矢量。输出向量的第i元素即为输入图像属于第i图像的概率。因此,输出向量的所有元素之和为1

AlexNet的输入是一个大小为256×256RGB图像。因此所有的训练集图像和测试图像的大小都要为256×256

如果输入图像的大小不是256×256那么用它来训练神经网络之前需要将其转换成256×256的大小。为了实现这一转换将图像尺寸缩小成256,最终剪裁获得一个大小为256×256图像。下图显示了一个示例

a30d752652138dca9f45b8cc59c872622fe4836b

如果输入图像为灰度图像,可以通过复制单个通道将其转换成一个3通道的RGB图像。由256×256的图像可产生随机大小的图像,其中大小为227×227图像来填充AlexNet的第一层。

AlexNet架构

与用于计算机视觉设计的CNN相比,AlexNet要大得多。AlexNet6000万个参数和65万个神经元,并且花了五到六天的时间来训练两个GTX 580。现在有很多更复杂的CNNs即使是在非常大的数据集中,也可以高效地运行在更快的GPUs上。

AlexNet架构如下图所示:

50406bc5020b03655e525f64df06c75b8e1aab57

AlexNet5个卷积层和3个全连接层组成

多个卷积内核(a.k.a过滤器)可以提取图像中有趣的特征。通常,同一卷积层中内核的大小是相同的。例如,AlexNet的第一个Conv层包含96个大小为11x11x3的内核。值得注意的是,内核的宽度和高度通常是相同的,深度与通道的数量是相同的。

前两个卷积层后面是重叠的最大池层第三、第四和第五个卷积层都是直接相连的。第5个卷积层后面是一个重叠的最大池层,它的输出进入两个全连接层。第二个全连接层可以给softmax分类器提供1000类标签。

在所有的卷积和全连接层之后,应用ReLU非线性函数首先第一和第二个卷积层都应用ReLU非线性函数,然后进行局部标准化,最后执行pooling操作方法。但后来研究人员发现标准化并不是很有用所以这里不详细论述

重叠最大池化

通常使用最大池化层来对张量的宽度和高度进行采样,保持深度不变。重叠的最大池层与最大池层类似,除了重叠最大池层的相邻窗口是相互重叠的。作者使用口是大小3×3,相邻窗口步幅2窗口。在输出尺寸相同的情况下,与使用大小为2×2,相邻窗口步幅为2的非重叠池化窗口相比,重叠池化窗口能够分别将第一名的错误率降低0.4%,第5名的错误率降低0.3%

ReLU非线性

AlexNet一个重要特性是使用ReLU(整流线性单元)非线性。Tanhsigmoid激活函数曾是训练神经网络模型的常用方法。与使用tanhsigmoid这样的饱和激活函数相比,使用ReLU非线性可以使深度CNNs训练更快。本文的下图显示,使用tanh(点线)的等效网络相比,使用ReLUs(solid曲线)AlexNet能以6倍快的速度到达25%的训练错误率CIFAR-10数据集中完成的测试。

bfcaf2488f837f81ebcc29b97b6b4620b4d5686a

为什么ReLUs训练得更快ReLU函数f(x)= max(0,x)

a8f1d26be4824db9b562ffaf8dffab8a2985aa65

上面是tanhReLU两个函数的图。tanh函数在z值很高或很低时饱和,函数的斜率接近于0,有助于减缓梯度下降。另一方面,z为较大的正值时ReLU函数的斜率不接近于零,有助于优化收敛得更快。z为负值时斜率为零,但是神经网络中的大多数神经元最终都具有正值。sigmoid函数也因为同样的原因,稍逊于ReLU

减少过度拟合

什么是拟合?

还记得你的中学同学他在考试中表现得很好,但是当考试的问题需要有创造性的思考时,他却表现得很差。为什么他在遇到以前从未遇到过的问题时表现得如此糟糕因为他记住了课堂上所涉及的问题的答案,而没有理解潜在的概念。

类似地,神经网络的大小就是它的学习能力。一不小心,它会在不理解概念的情况下记住训练数据中的例子。虽然神经网络在训练数据上表现得格外的好,但是他们没有学习到真正的概念。在面对新的、未见过的测试数据时,的表现就没有那么好了。这就是所谓的过度拟合。

AlexNet使用了几种不同的方法来减少过拟合。

数据增强

神经网络中涉及到同一图像的不同变化时有助于防止过拟合。强迫神经网络不去记忆通常从现有数据中生成额外的数据以下是AlexNet团队使用的一些技巧。

通过镜像实现数据增强

如果训练集中有一只猫的图像,那么它的镜像也是一只猫。请参见下图中的示例。通过垂直轴简单地翻转图像,训练数据集可变为原来的两倍

ce727dcf30e04dfd538a006706612fb208c0f050

通过随机裁剪实现数据增强

此外,随机裁剪原始图像也会导致额外的数据,即原始数据的移位版本。

AlexNet的作者从大小为256×256的图像中随机裁剪出大小227×227图像,并作为网络的输入。使用这种方法将数据的大小变为原来的2048倍。

a1f5e8973551ada7934788577e9901490215892d

值得注意的是,这四个随机裁剪的图像看起来非常相似,但它们并不完全相同。神经网络来说虽然像素微小移动,但图像仍然是一只猫。如果没有数据增强,作者会因为严重的过度拟合而无法使用如此庞大的网络

Dropout

对大约60000000参数的训练,作者也尝试过用其他方法来减少过度拟合。其中采用了一种叫做dropout的技术,G.E. Hinton2012年的另一篇论文中介绍了该技术。在丢弃过程中,一个神经元被从网络中丢弃的概率为0.5。当一个神经元被丢弃时,并不影响正向传播和反向传播。如下面的动画所示每个输入都经过不同的网络架构因此,所学习的权重参数更可靠不易被装配。在测试过程中,全网络参与没有遗漏,但是由于神经元丢失输出变为原来的一半丢弃技术使迭代次数收敛到2如果没有使用丢弃技术AlexNet的过拟合会更加严重

987f69f31e791db5b3f75c14282c4d2693846e54

参考文献:

1.利用深度卷积神经网络对图像进行分类.Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton, 2012;

2.Coursera课程的卷积神经网络,也Andrew Ng深度学习专业课程的一部分。

本文由组织翻译。

文章原标题《understanding-alexnet

作者:snayak 译者:吴兆青,审校:袁虎。

文章为简译,更为详细的内容,请查看

转载地址:http://bptyx.baihongyu.com/

你可能感兴趣的文章
大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(四)高效的后台权限判断处理...
查看>>
信号量实现进程同步
查看>>
Spring4-自动装配Beans-通过构造函数参数的数据类型按属性自动装配Bean
查看>>
win10.64位wnmp-nginx1.14.0 + PHP 5. 6.36 + MySQL 5.5.59 环境配置搭建 结合Thinkphp3.2.3
查看>>
如何查看python selenium的api
查看>>
Python_Mix*random模块,time模块,sys模块,os模块
查看>>
iframe刷新问题
查看>>
数据解码互联网行业职位
查看>>
我所见的讲的最容易理解,逻辑最强的五层网络模型,来自大神阮一峰
查看>>
vue-cli项目打包需要修改的路径问题
查看>>
js实现复选框的操作-------Day41
查看>>
数据结构化与保存
查看>>
[SpringBoot] - 配置文件的多种形式及优先级
查看>>
chrome浏览器开发者工具之同步修改至本地
查看>>
debian7 + wheezy + chromium + flashplayer
查看>>
AOP
查看>>
进阶开发——文档,缓存,ip限速
查看>>
vue中子组件需调用父组件通过异步获取的数据
查看>>
uva 11468 - Substring(AC自己主动机+概率)
查看>>
Mysql 数据备份与恢复,用户创建,授权
查看>>