【论文阅读】从经典网络结构理解图像分类模型的发展(一)——AlexNet

ImageNet Classification with Deep Convolutional Neural Networks

image-20240126211250907

背景

当前的图像识别数据集相对较小,只能解决较为简单的识别任务,如果要识别更为复杂的现实环境中的物体,需要更大的训练集。但传统的图像识别基本上都使用了机器学习方法,模型容量小,且容易过拟合,无法处理ImageNet这种巨大数据集。因此需要一个具有强大学习能力的模型来处理像ImageNet这样的复杂任务。

而卷积神经网络(CNN)可以通过调节深度和宽度来控制模型的容量,充分利用了自然图像的局部空间相关性的特性,且连接和参数要少得多,更加容易训练。GPU 等硬件以及高度优化的2D卷积运算的实现发展成熟,可用于训练较大的 CNNs,结合如今的大数据集,不用过分担心过拟合。

贡献

  1. AlexNet的设计包含了五个卷积层和三个全连接层,是当时最深的网络之一。这种深层结构允许网络学习更复杂、更抽象的特征表示。

  2. AlexNet采用了线性修正单元(ReLU)作为其激活函数,而不是传统的Sigmoid或Tanh函数。ReLU能够加快网络的训练速度,同时减少梯度消失问题。

  3. AlexNet引入了局部响应归一化(LRN),这种技术在某种程度上模仿了生物神经系统中的“侧抑制”机制,可以增强模型的泛化能力。

  4. AlexNet使用的池化层不是传统的非重叠池化,而是采用重叠池化,有助于避免过度拟合,并且保持了特征的更多信息。

  5. 为了减少过拟合,AlexNet使用了数据增强技术(例如图像平移、旋转和水平翻转)和Dropout(在全连接层随机丢弃节点)。

  6. AlexNet利用GPU进行深度学习训练,显著加快了训练过程。这是第一次在大规模视觉识别任务中成功地使用GPU。由于当时的GPU内存限制,AlexNet的设计将其网络分布在两个GPU上,这是首次在深度学习中采用这种方法。

模型架构

模型包含五个卷积层和三个全连接层,结构如下图所示

image-20240126211502913

每层的配置如下:

AlexNet architecture

ReLU 非线性

在此之前,激活函数主要使用f(x)=tanh(x)​以及f(x)=(1-e^{-x})^{-1},这种饱和非线形计算非常慢,因此作者提出了整流线性单元(ReLU):,f(x)=max(0,x)​,训练速度比使用Tanh快几倍,下图显示了特定四层卷积网络在CIFAR-10数据集上达到25%训练误差所需的迭代次数,实线表示使用ReLU,虚线表示使用tanh。

image-20240126215654340

在多个GPU上进行训练

将网络分布在两个GPU上进行训练。前几个卷积层被分割成两组,每组在不同的GPU上独立运行,(这种设计可以理解为一种早期的“分组卷积”)每个GPU处理一半的卷积核和相应的输入数据部分。虽然前几个卷积层在两个GPU上独立运行,但在某些层(如归一化层和全连接层)中,两个GPU需要交换信息。这种通信确保了网络各部分的学习是协调一致的。与在一个GPU上训练的每个卷积层中有一半内核的网络相比,该方案将top-1和top-5错误率分别降低了1.7%和1.2%。

局部响应归一化(LRN)

虽然ReLU激活函数本身不需要输入归一化来防止饱和,但是LRN仍然被发现有助于提高模型的泛化性能。

局部响应归一化的基本思想是基于一个给定神经元在当前层中相邻神经元的活动,对该神经元的活动进行归一化。对于使用卷积核i在位置(x, y)计算出的神经元输出aix,y​,经过ReLU非线性激活后,其LRN后的输出bix,y​可以通过以下公式表示:

image-20240126233928068

其中:

  • N​ 是该层的卷积核总数。

  • n​ 是在同一空间位置参与归一化计算的相邻卷积核数,文中n = 5。

  • k,α,β​是超参数,文中k = 2、α = 10−4​、β = 0.75。

  • 求和运算是在空间位置(x, y)上相邻的n个卷积核映射上进行的。

LRN通过这种方式实现了类似生物神经元中发现的侧抑制效应,促使不同卷积核输出的神经元输出之间产生竞争。这种归一化在某些层的ReLU非线性激活之后应用,有助于降低网络的错误率。LRN将top-1和top-5的错误率分别降低了1.4%和1.2%。在CIFAR-10上将错误率从13%降低到了11%

重叠池化

传统的池化层可以被认为是由间隔s个像素的池化单元组成的网格,每个池化单元总结了以池化单元的位置为中心的大小为z × z的邻域。当s=z时,就是CNN中常用的不重叠的局部池化。当s < z时,就是本文提出的重叠池化,作者将s设置为2,z设置为3,与s=2,z=3的传统池化相比,top-1和top-5的错误率分别降低了0.4%和0.3%,具有重叠池化的模型更难发生过拟合。

整体架构

AlexNet包括八个带权重的层,前五个是卷积层,后三个是全连接层,最后一个全连接层的输出被馈送到1000路softmax,以生成在1000个类标签上的概率分布。第二、第四和第五个卷积层不进行跨GPU的信息交换,仅接受单GPU上前一层的输出。第三卷积层的内核连接到第二层中的所有核映射。全连接层中的神经元连接到前一层中的所有神经元。在第一和第二个卷积层后进行LRN。LRN和第五个卷积层后进行重叠最大池化。

减少过拟合

数据增强

图像平移和水平翻转:网络对每个256 × 256的图像提取五个224 × 224的补丁(四个角落补丁和中心补丁)以及它们的水平翻转(总共十个补丁),然后平均网络的softmax层对十个补丁的预测来得到最终预测。

改变训练图像中RGB通道的强度:在整个ImageNet训练集的RGB像素值集合上执行主成分分析。对于每个训练图像,在原有的像素值加上找到的主成分 × 倍数,倍数的大小从均值为零,标准差为0.1的高斯分布中随机抽取。这模拟了自然图像中由于光照强度和颜色变化而引起的变化。这样的数据增强有助于模型学习到更为泛化的特征,使模型对于光照和颜色的变化更加鲁棒。

数据增加将top-1错误率降低了1%以上。

Dropout

结合许多不同模型的预测可以减少测试误差,但对于大型神经网络来说,计算成本过高。而dropout可以起到与模型组合相同的效果,且在训练过程中只花费大约两倍的成本。作者以0.5的概率将神经元的输出设置为0,以这种方式“退出”的神经元不会对前向传递做出贡献,也不会参与反向传播。因此,每次输入时,神经网络都会对不同的架构进行采样,但所有这些架构都共享权重。在测试时,使用所有的神经元,将它们的输出乘以0.5,这是一个合理的近似值,近似于取指数多dropout网络产生的预测分布的几何平均值。Dropout大约使收敛所需的迭代次数加倍。

训练细节

使用随机梯度下降来训练模型,Batchsize为128,动量为0.9,权重衰减为0.0005。权重更新规则如下:

image-20240127004709192

其中i是迭代指数,v是动量变量,\epsilon是学习率,

image-20240127005136552

在当前权重w_i下,损失函数L对于权重w的梯度。这个导数是在当前迭代中选取的数据批次D_i上平均得到的。

从标准差为0.01的零均值高斯分布初始化每层中的权重。用常数1初始化第二、第四和第五卷积层以及全连接隐藏层中的神经元偏置。这种初始化通过为ReLU提供积极的输入来加速学习的早期阶段。剩余层中的神经元偏置初始化为常量0。对所有层使用相同的学习率,并在整个训练过程中手动调整。当验证错误率停止随着当前学习率的提高而提高时,将学习率除以10。学习率初始化为0.01,并在结束前降低三次。通过120万张图像的训练集对网络进行了大约90个周期的训练,在两个NVIDIA GTX 580 3GB GPU上花费了五到六天的时间。

结果

结果对比

ILSVRC-2010:

image-20240127012056726

ILSVRC-2012,带有星号 * 的模型是使用ImageNet 2011秋季版本预训练的模型。

image-20240127012225191

定性分析

image-20240127012416493

两个GPU上的特征图表现出了专业化,GPU 1上的卷积核在很大程度上与颜色无关,而GPU 2上的卷积核在很大程度上与颜色相关。

image-20240127012748940

偏离中心的对象,如左上角的螨,也可以被网络识别。

image-20240127012901084

每行表示最后一个4096维隐藏层的特征激活欧氏距离较小的图像,神经网络的高层认为它们是相似的,虽然这些图像主体的形态不同,但主体是相同的,说明网络可以辨别主体的类别。

总结

AlexNet在2012年的ImageNet挑战赛中取得突破性成功后,对深度学习和计算机视觉领域产生了深远的影响。许多它的特点和创新点在之后的研究和实践中被广泛采用,而有些则随着技术的发展逐渐被新方法所取代。

沿用至今的特点和创新

  1. ReLU激活函数:ReLU 现在仍是大多数深度学习架构的标准激活函数,它有助于解决梯度消失问题,并加速神经网络的训练。

  2. 使用GPU进行训练:利用GPU的并行计算能力大幅提高训练速度是现代深度学习实践的标准。

  3. 多层结构:AlexNet使用了多个卷积层和池化层的结构,这种深层架构成为后来深度学习模型的基础。

  4. 数据增强:通过图像平移、裁剪和翻转等手段增加数据集的大小和多样性,提高模型的泛化能力,这些方法现在是训练深度网络的常用策略。

  5. Dropout:这是一种正则化技术,用于减少复杂网络中的过拟合,现在仍然是许多网络训练的一部分。

逐渐被新方法取代的特点

  1. 局部响应归一化(LRN):虽然LRN在当时被认为有助于模型性能,但后续的研究表明,在使用ReLU激活函数的网络中,LRN的效果不如预期,并且计算成本较高。现代架构通常使用批量归一化(Batch Normalization)或其他归一化技术代替LRN。

  2. 重叠池化:AlexNet中使用的重叠池化比传统的池化技术有更好的性能,但现在非重叠池化更为常见。非重叠池化由于没有重叠,每个输出元素都是独立计算的,可以减少计算量。重叠池化可能有助于模型捕捉更细粒度的特征,但它也可能增加模型的复杂度,从而增加过拟合的风险,非重叠池化因为特征抽象程度更高,可能更有利于泛化。深度学习领域快速发展,研究人员发现小步长的卷积层(如1或2像素)可以更好地控制信息的流动,而池化层更多地被用作减少维度和参数数量的手段

  3. 第一层的大型卷积核(11x11):随着时间的推移,更小的卷积核(如3x3)成为了首选,小核需要的参数更少,并且可以通过堆叠多个小卷积核层来捕捉更复杂的特征。

  • 27
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值