文章目录
- 前言
- AlexNet
- 一、网络的背景
- 二、网络结构
- 三、网络的创新
- 3.1 首次使用GPU训练网络
- 3.2 使用Relu激活函数
- 3.2.1 sigmoid激活函数和tanh激活函数
- 3.2.1.1 sigmoid激活函数
- 3.2.1.2 tanh激活函数
- 3.3 Relu激活函数
- 3.4 使用LRN局部响应归一化(已弃用)
- 3.4.1 LRN的定义与起源
- 3.4.2 局部归一化的动机——侧抑制思想
- 3.4.3 LRN的主要思想及操作过程
- 3.4.4 LRN的公式及参数说明
- 3.4.5 LRN的现状
- 3.5 在全连接层加入Dropout
- 3.5.1 AlexNet中Dropout的使用情况
- 3.5.2 Dropout解决过拟合的原因
- 四、代码示例
- 总结
前言
在当今蓬勃发展的图像分类领域,深度学习正以前所未有的速度推动着技术的进步。而在众多深度学习网络中,AlexNet宛如一颗璀璨的明星,闪耀着里程碑式的光芒。ImageNet大规模视觉挑战赛(ILSVRC)作为该领域研究进展的重要标杆,见证了无数网络的角逐与竞争。2012年,AlexNet凭借其卓越的性能在ILSVRC大赛中脱颖而出,以高出第二名10%的显著优势夺冠,将图像分类的准确率从传统的70%多大幅提升到80%多,引发了深度学习的浪潮。本文将深入剖析AlexNet网络,从其诞生背景入手,详细介绍其网络结构,并着重探讨它在多个方面的创新之处,带您领略这一经典网络的独特魅力和深远影响。
AlexNet
一、网络的背景
在图像分类领域,ImageNet大规模视觉挑战赛(ILSVRC,即 ImageNet Large Scale Visual Recognition Challenge)是深度学习在图像分类任务研究方面进展的标杆。
AlexNet网络参加了 ILSVRC 2012 年大赛,以高出第二名 10% 的性能优势取得冠军,将传统 70% 多的准确率提升到 80% 多。它由 2012 年 ImageNet 竞赛冠军获得者 Hinton 和他的学生 Alex Krizhevsky 设计。之后,更多更深的神经网络被提出,掀起了一波深度学习的浪潮,是一个具有里程碑意义的网络。
论文地址:
NIPS-2012-imagenet-classification-with-deep-convolutional-neural-networks-Paper.pdf
二、网络结构
网络结构的图,如下图所示:
三、网络的创新
3.1 首次使用GPU训练网络
AlexNet首次运用CUDA加速深度卷积网络训练,借助GPU强大的并行计算能力处理神经网络训练中的大量矩阵运算。训练采用两块GTX 580 GPU,但单块GTX 580仅有3GB显存,限制了可训练网络的最大规模。为此,作者将AlexNet分布于两个GPU上,让每个GPU显存存储一半神经元的参数。
由于GPU之间通信便捷,可直接互相访问显存,无需经过主机内存,因此多块GPU同时使用十分高效。此外,AlexNet在设计上使GPU之间仅在网络的部分层进行通信,从而控制了通信带来的性能损耗。
3.2 使用Relu激活函数
在Relu激活函数被提出前,非线性激活函数主要是sigmoid激活函数和tanh激活函数。因此,在介绍Relu激活函数的优势前,需要先了解这两种激活函数。
3.2.1 sigmoid激活函数和tanh激活函数
3.2.1.1 sigmoid激活函数
sigmoid激活函数是一种非常受欢迎的神经网络激活函数,它将函数的输入转换成介于0.0和1.0之间的值,大于1.0的输入被转换为1.0,小于0.0的值被截断为0.0。所有可能输入对应的函数形状呈现从0到0.5再到1.0的S形。在很长一段时间里,直到20世纪90年代早期,它是神经网络的默认激活方式。其表达式为:
s i g m o i d ( x ) = 1 1 + e − x sigmoid(x)=\frac{1}{1 + e^{-x}} sigmoid(x)=1+e−x1
sigmoid激活函数的输出不是零中心的(Zero - centered),这会导致优化的效率十分低下。不过,它天然适合做概率值处理,例如用于LSTM中的门控制。
3.2.1.2 tanh激活函数
tanh激活函数是一种形状类似的非线性激活函数,输出值介于 - 1.0和1.0之间。在20世纪90年代后期和21世纪初期,由于使用tanh函数的模型更容易训练,而且往往具有更好的预测性能,因此tanh函数比sigmoid激活函数更受青睐。其表达式为:
t a n h ( x ) = s i n h x c o s h x = e x − e − x e x + e − x tanh(x)=\frac{sinhx}{coshx}=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} tanh(x)=coshxsinhx=ex+e−xex−e−x
3.3 Relu激活函数
Relu激活函数相较于sigmoid激活函数和tanh激活函数具有显著优势:
- 计算效率高:sigmoid等函数在计算激活值时需进行指数运算,计算量较大;在反向传播求误差梯度时,求导涉及除法,计算量也相对大。而Relu激活函数能大幅节省整个过程的计算量。
- 避免信息丢失:sigmoid激活函数和tanh激活函数在接近饱和区时,函数变换缓慢,导数趋于0,会造成信息丢失,进而无法完成深层网络的训练。Relu激活函数则不存在这一问题。
在AlexNet神经网络中,全部使用Relu作为激活函数。
3.4 使用LRN局部响应归一化(已弃用)
3.4.1 LRN的定义与起源
LRN(局部响应归一化)最早在AlexNet中被提出,其目的是对卷积(即ReLU激活函数输出)的值进行局部归一化。
3.4.2 局部归一化的动机——侧抑制思想
在神经生物学中,存在“侧抑制(lateral inhibition)”的概念,即被激活的神经元会抑制其周围的神经元。而归一化的目的也是“抑制”,LRN正是借鉴了“侧抑制”的思想来实现局部抑制。当使用ReLU激活函数时,这种局部抑制效果显著。
3.4.3 LRN的主要思想及操作过程
LRN的主要思想是在神经元输出的局部范围内进行归一化操作。通过这种方式,降低激活值较大的神经元对后续神经元的影响,进而减少梯度消失和梯度爆炸的问题。
具体操作如下:对于每个神经元,LRN会先将其输出在局部范围内进行加权平均,接着将加权平均值除以一个尺度因子(通常为2),最后对结果取平方根并减去均值,从而得到归一化后的输出。
3.4.4 LRN的公式及参数说明
LRN的公式中涉及以下参数:
- x i , j , k , l x_{i,j,k,l} xi,j,k,l:输入张量的元素。
- N N N:通道数。
- n n n:LRN的窗口大小。
- α \alpha α、 β \beta β、 k k k:超参数,用于调整归一化的强度。
3.4.5 LRN的现状
由于在2015年,“Very Deep Convolutional Networks for Large - Scale Image Recognition”指出LRN方法作用不大,因此这里不再对其参数进行详细介绍和举例,仅需了解它是早期用于归一化的一种解决方案。目前,后续提出的批量归一化(Batch Normalization)概念更具说服力,归一化几乎都采用BatchNorm方法来实现。
3.5 在全连接层加入Dropout
3.5.1 AlexNet中Dropout的使用情况
- 使用位置:在AlexNet中,最后2个全连接层使用了Dropout。原因是全连接层容易过拟合,而卷积层不容易过拟合。需要注意的是,Dropout并非本论文首次提出。
- 参数设置与实现方式:AlexNet设置的dropout参数为0.5,采用的是 Scale at Training 的 Dropout 实现方式。
- 训练阶段:在前向传播过程中,随机将一部分神经元的输出置为零,以此实现Dropout。
- 测试阶段:不再使用Dropout,而是在训练时的基础上将权重按照训练时的概率进行缩放,以保证一致性。
3.5.2 Dropout解决过拟合的原因
- 减少过拟合:在标准神经网络中,网络可能过度依赖特定神经元,从而导致对训练数据的过拟合。Dropout通过随机丢弃神经元,迫使网络学习对任何单个神经元变化都更具鲁棒性的特征表示,进而减少对训练数据的过度拟合。
- 取平均的作用:训练过程中,每次丢弃随机的神经元,使得每次前向传播相当于训练不同的子网络。测试阶段不再进行Dropout,保留所有权重,网络结构变得完整。这相当于在多个不同子网络中进行训练,最终的预测结果是对这些子网络输出的平均。这种“综合取平均”的策略有助于减轻过拟合,因为一些互为反向的拟合会相互抵消。
四、代码示例
代码下载:AlexNet.7z
总结
本文围绕AlexNet这一在图像分类领域具有里程碑意义的网络展开了全面且深入的分析。首先介绍了AlexNet的诞生背景,它在2012年ILSVRC大赛中的优异表现为深度学习的发展拉开了新的序幕。接着展示了其网络结构,让读者对该网络有直观的认识。随后重点阐述了AlexNet的创新之处,包括首次使用GPU训练网络,借助GPU的并行计算能力高效处理矩阵运算;采用Relu激活函数,克服了传统sigmoid和tanh激活函数的不足,提高了计算效率并避免信息丢失;提出LRN局部响应归一化(虽已弃用,但为后续归一化方法提供了思路);在全连接层加入Dropout,有效解决了过拟合问题。尽管随着技术的发展,一些方法已被更先进的技术所取代,但AlexNet的创新理念和方法为后续深度学习网络的发展奠定了坚实的基础,其在图像分类领域的贡献不可磨灭。