1. 简介

自从2012年AlexNet发布之后,各种CNN网络如雨后春笋般冒出,这才有了近十年深度学习飞速的发展,因此可以说AlexNet是一个卷积神经网络中的里程碑,本文将从Alex,Hinton等人发表的《ImageNet Classification with Deep Convolutional Neural Networks》这篇论文出发对这个网络进行详细介绍。

https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

2.整体流程

首先是网络的具体结构和训练的整体流程。根据第4.1节和图2的内容可知,将ImageNet上的图片裁切为256x256,然后随机从中选取224x224大小的部分加入训练。整个网络共分为5个卷积层和3个全连接层,当时由于GPU硬件限制,分为两个GPU并行训练分组卷积,除了第三层的卷积结果会交叉影响另一个GPU训练的第四层卷积外,其它的卷积层都是相互独立的。其中,每一层使用的卷积核分别是11x11,5x5,3x3,3x3,3x3,从底层到顶层卷积核逐渐减小;第二层,第三层,第五层卷积层之后都增加了max pooling池化层,这相较于之前主流的平均池化层做出了创新。在卷积层工作完成后,两个GPU所得的结果分别进行全连接,这里比较创新的地方是加入了dropout方法,即每个节点设置一定概率,随机让某些节点消除掉达到正则化的效果。最后两个GPU一共4096个神经元通过SoftMax激活函数全连接生成1000个节点,对应着1000个类别的预测概率(AlexNet将ImageNet中的图片作为数据集,ImageNet共有120万张图片,1000个类别)。在第5节训练细节中提到使用了SGD随机梯度下降法训练。同时将初始学习率设置为0.1,每次遇到验证性错误的时候就降低十倍。

3. 性能

从性能的角度来说,最直接的证明就是当时AlexNet夺得了2012年ImageNet冠军,Top5误差率为15.4%,相较于第二名明显的低了10.9%,这在当时是非常令人震惊且先进的技术,在后来几年的同一竞赛中,各种CNN网络不断刷榜,2015年夺冠的ResNet Top5误差率只有3.57%,如今的图像识别准确率甚至高于人眼。因此,从今天的角度来看AlexNet准确率和速度显然较差,早已被其它网络架构所替代,但在当时性能非常优秀且具有创新性,因此可以被称为卷积神经网络的一个里程碑。

4. 创新点

传统的CNN网络结构为多个卷积、池化层,全连接层,因此,AlexNet与传统CNN从结构方面来说没有什么本质的区别,只是多加了几层卷积层,整个模型更深。AlexNet的创新点其一在LRN层局部归一化避免饱和。其二是抛弃了原有的sigmoid激活函数,转而采用了ReLU激活函数(除了最后的全连接),这样做梯度更大对于更深的模型来说容易训练。其三是采用了上文提到的dropout方法以及数据增强的方式有效的防止模型过拟合。数据增强的方式包括上文提到随机裁切224x224大小的图片来训练,一定程度上增加了训练样本数;以及主成分分析减少噪声影响。其四也是上文提到的采用Max Pooling池化层让梯度更大便于训练,采用overlapping pooling重叠池化减少过拟合。

然而即使有了以上几个创新点,最多只能称其为加强版CNN或者加强版LeNet,因为他们的结构还是基本类似的,我认为AlexNet能够成为近十年深度学习图像识别的鼻祖的原因还是在于它改变了研究人员的研究方向。在2010年的时候,主流的技术还是通过SIFT模型提取图片特征,使用SVM算法进行机器学习与预测,属于无监督算法,因为在当时无监督学习的效率与准确率明显比有监督学习要好。但突然AlexNet利用卷积神经网络,采用了有监督学习在ImageNet竞赛上取得如此优异的成绩,让研究者们意识到卷积神经网络的性能也可以达到很好,转头开始研究神经网络,在此基础上有了GoogLeNet,ResNet等一系列在CNN基础上建立的不同的、更加高效的架构,这才造就了近十年以来深度学习图像识别的飞速发展。

5. 意义

此外,论文中还花费不少篇幅来讲述训练所用到的硬件,作者使用了两块NVIDIA GTX 580 3GB GPU,这是第一次使用GPU来对神经网络进行训练,开启了之后GPU训练神经网络的风潮,而且当时python或者Matlab也没有如今那么多库和包,例如现在有高度封装的keras库,pytorch、tensorflow等框架,只需要几行代码就可以完成非常多繁琐的任务,这也非常考验当时作者的工程能力。由于当时显卡显存问题,AlexNet使用两块显卡也开创性的提出并实践了分组卷积(group convolution),这对于现在乃至未来的研究者们都具有参考意义。

AlexNet提出了很多开创性的成果,也给后人留下了许多优化的空间。例如全连接有4096维过于庞大,计算起来需要消耗较大性能。LRN层相比于之后提出的归一化方法来说性能也差非常多。但是瑕不掩瑜,我们依然能看出Alex和Hinton等人在深度学习领域中独到的眼光与创新的能力,只有当我们不断尝试并进行创新,才能在现有技术的基础上找到突破口继续进步。

6.部分论文研读

image-20240222145538341

之前使用的都是tanh或者sigmoid作为激活函数,AlexNet成功在CNN中使用ReLU函数作为激活函数,将其发扬光大。

image-20240222212648248

AlexNet开创性的使用GPU进行神经网络训练(之前都是CPU)。但由于当时硬件限制,AlexNet还是使用了两块GPU增强效果。但这也开创并实践了分组卷积的可能性。

image-20240222212725748

LRN层(局部响应归一化)。对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力。

(但是不多,因此之后的网络基本不再使用)

image-20240222212753281

AlexNet提出了Overlapping pooling重叠池化方法。相对于传统的no-overlapping pooling,采用Overlapping Pooling不仅可以提升预测精度,同时一定程度上可以减缓过拟合。

正常池化(步长s=2,窗口z=2) 重叠池化(步长s=2,窗口z=3) 。

image-20240222212827689

AlexNet使用了Dropout方法,即在全连接层以一定概率忽略一些神经元,防止模型的过拟合。

image-20240222212908673

最后修改:2024 年 02 月 22 日
如果觉得我的文章对你有用,请随意赞赏