121|计算机视觉领域的深度学习模型(一):AlexNet
2018-09-07洪亮劼来自北京
《AI技术内参》
我们继续来讨论基于深度学习的计算机视觉技术。从今天开始,我们进入一个新的模块,我会
结合几篇经典的论文,给你介绍几个专门为计算机视觉而提出来的深度学习模型。这些模型都
在最近几年的深度学习发展中,起到了至关重要的作用。
我们这个系列要分享的第一篇论文题目是《基于深度卷积神经网络的图像网络分类》
(ImageNetClassificationwithDeepConvolutionalNeuralNetwork)[1]。因为这篇文
章的第一作者名字叫Alex,所以文章提出的模型也经常被称为AlexNet。
那接下来我们就先介绍一下这篇论文的作者群。
第一作者就是亚力克斯·克里切夫斯基(AlexKrizhevsky)。发表这篇论文的时候他在多伦多
大学计算机系攻读博士学位;之后的2013~2017年间在谷歌任职,继续从事深度学习的研
究。
第二作者叫伊利亚·苏兹克维(IlyaSutskever)。发表这篇论文的时候,苏兹克维也在多伦多
大学计算机系攻读博士学位;之后到斯坦福大学跟随吴恩达做博士后研究。2013~2015年
间,他在谷歌担任研究科学家一职。2016年之后,他参与共同创立了OpenAI并且担任研究
总监这一职位。苏兹克维在深度学习方面已经发表了很多篇论文,目前论文的引用数已经超过
7万次。
最后一位作者是杰弗里·辛顿(GeoffreyHinton)。对于辛顿,我们就比较熟悉了,他是多伦
多大学计算机系的教授,是机器学习,特别是深度学习的学术权威。可以说,几十年来,辛顿
都在以神经网络为代表的深度学习领域深耕,即便是在其他学术思潮涌动的时候,他都能够坚
持在深度学习这一领域继续钻研,这种精神让我们钦佩。
论文的主要贡献
如何来描述这篇论文的主要贡献呢?简而言之,这篇论文开启了深度学习在计算机视觉领域广
泛应用的大门。通过这篇论文,我们看到了深度学习模型在重要的计算机视觉任务上取得了非
常显著的效果。
具体来说,在ImageNet2012年的比赛中,文章提到的模型比第二名方法的准确度要高出十
多个百分点。能够达到这个效果,得益于在模型训练时的一系列重要技巧。这篇论文训练了到
当时为止最大的卷积神经网络,而这些技巧使得训练大规模实用级别的神经网络成为可能。
论文的核心方法
要了解AlexNet的一些核心方法,我们就需要简单提一下ImageNet竞赛的数据集。这个数
据集在当时有大约120万张训练图片,5万张验证图片和15万张测试图片。这些图片属于
1000个类别。这个数据集在当时来说应该算是无可争议的大型数据集。为了能够方便地处理
这些图片,作者们把所有图片的分辨率都重新调整到了“256*256”。AlexNet直接在这些图
片的RGB像素点上进行建模。
整个模型的架构是怎样的呢?AlexNet一共包含8层网络结构,5层全联通层(也就是前馈神
经网络)。这8层网络架构总体来说是逐渐变小的一个趋势,也就是说每一层提取的信息越来
越呈现高度的概括性。
那么在整个架构中,这篇文章提出的模型有哪些独到之处呢?
第一,AlexNet采用了“线性整流函数”(ReLu)来作为激活函数。虽然这个选择在今天看
来可以说是非常平常,甚至已经成为了神经网络建模的默认选项。但这个选择在当时还是很大
胆的一种创新。这个创新带来了训练时间的大幅度减少,同时还能保持,甚至提升了模型性
能。
第二,整个模型的训练大量采用了GPU,并且使用了多个GPU来进行计算。这一点就在速
度上和模型的大小上彻底解放了模型的选择。以前仅仅利用单个GPU的方式,没办法把所有
的训练数据都放入一个GPU上。
第三,作者们介绍了一种叫作“局部响应归一化”(LocalResponseNormalization)的方
法来对每层之间的单元进行归一。
如何进行最有效的归一,以及这些归一化有什么作用,这些问题一直都是深度学习研究面临的
重要课题。从实际的使用上来看,这种局部响应归一化的方法在几年之后让位给了其他更为主
流的归一方法。但是从这一个技术要点来看,我们要想把深度学习模型真正应用到实际场景任
务中,归一化是一个必不可少的组件。
第四,作者们在AlexNet里面使用了所谓的“重叠池化”(OverlappingPooling)这种方
法。在普通的卷积神经网络中,“池化”的作用是从周围的单元中总结出必要的信息。一般来
说,池化的过程中,并不重复覆