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

本文介绍了GoogLeNet及其Inception架构,一种通过稀疏连接和模块化设计提高深度学习在图像识别任务效率的模型。文章详细阐述了Inception模块如何通过多尺度卷积操作平衡深度和宽度,以及在ImageNet挑战中的成功应用。
摘要由CSDN通过智能技术生成

Going deeper with convolutions

image-20240128203148326

背景

在GoogLeNet之前,深度学习在图像识别方面已经取得了显著的进步,AlexNet等网络在ImageNet挑战赛中取得了很好的成绩。随着数据量和复杂性的增加,所需的神经网络越来越深,参数量越来越多, 面临着过拟合和计算资源限制的问题,因此需要更高效、更精确的模型来处理更复杂的图像识别任务。

动机

提高神经网络性能最直接的方法是增加其规模,包括深度和宽度,但这种简单粗暴的解决办法有两个缺点:容易过拟合和消耗的计算资源增加

解决这两个问题的根本方法是从全连接(每个神经元与下一层的所有神经元相连)转向稀疏连接(神经元只与下一层的一部分神经元相连)的架构,稀疏网络模仿了生物大脑中神经元连接的方式,这种连接方式更为经济,可能更有效率。Arora等人在《Provable bounds for learning some deep representations》中提出,如果一个数据集的概率分布可以被一个大型、非常稀疏的深度神经网络表示,那么可以通过分析最后一层激活的相关统计数据并聚类输出高度相关的神经元,逐层构建出最优的网络拓扑结构。虽然Arora等人的数学证明需要非常严格的条件,但这个观点与著名的赫布理论(Hebbian theory)相呼应。赫布理论简单来说是“如果两个神经元常常同时产生动作电位(fire),这两个神经元之间的连接(wire)就会变强,反之则变弱”,这表明在实践中,即使条件不那么严格,这种基于相关性和稀疏连接的思想也是可行的。

尽管理论上稀疏连接的神经网络可能更高效,但现代计算设备(如CPU和GPU)在处理非均匀稀疏数据时的计算效率并不高。稀疏数据结构在存储和计算上的不规则性导致了大量的内存访问操作和缓存未命中,会带来显著的性能开销。因此需要找到一种方法,既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。

作者将稀疏矩阵分解为密集的子矩阵,加速矩阵乘法,提出了Inception架构。Inception架构的目的是评估一种复杂的网络拓扑结构构建算法,该算法试图逼近由Arora等人提出的视觉网络的稀疏结构,并利用现有的密集组件来覆盖假设的输出。经过几次对拓扑结构的选择和调整,以及学习率、超参数和训练方法的改进,Inception架构在定位和物体检测方面特别有用**。但其质量是否可以归因于构建它的指导原则仍有待进一步分析和验证。

贡献

  1. 文章提出了Inception模型(又被称为GoogLeNet),这是一种创新的深度学习架构,用于提高计算机视觉任务,特别是图像分类和识别的性能。Inception架构通过其独特的模块化设计显著提高了网络效率和准确性。

  2. Inception模型展示了如何有效地增加网络的深度和宽度,同时保持参数数量和计算成本的平衡。这是通过引入多尺度的卷积操作来实现的,这些操作允许网络在不同尺度上捕捉图像特征。

  3. 文章展示了如何构建一个深层但计算上高效的网络。通过优化卷积操作和减少参数数量,Inception网络在增加深度和宽度的同时,有效地控制了模型的复杂度,减少了过拟合的风险,同时提高了模型的训练和推理速度。

  4. Inception模型在2014年的ImageNet大规模视觉识别挑战赛(ILSVRC)中取得了显著的成功,标志着深度学习在图像识别和分类任务中的一个重要进步。

架构细节

Inception架构的主要思想是基于找出卷积视觉网络中的最佳局部稀疏结构如何被可用的密集组件近似和覆盖。假设转换不变性,需要做的是找到最优的局部构造并在空间上重复它。

根据Arora等人的建议,通过逐层分析上一层的激活相关性统计,并将高度相关的单元聚类,可以形成下一层的单元,并与前一层的单元相连。低层的相关单元会集中在局部区域,这可以通过1x1卷积层覆盖。同时,也存在空间上更分散的聚类,可以通过更大尺寸的卷积(如3x3和5x5)覆盖。

由于这些Inception模块一层叠一层,它们输出的相关性统计必然有所不同:更高的层用于提取更抽象的特征,空间上的集中程度应该相应地发生退化。这意味着,更高的层3x3和5x5的卷积核比例就应该更高。该模块(a)存在的一个显著问题是,即使5x5的卷积核数增加不明显,也会导致最高层的卷积核数激增。如果再加上池化单元,问题会更加严重。

为了控制计算复杂度,尤其是使用大量5x5卷积和池化单元时,在需要大量计算的地方谨慎的使用1x1卷积进行降维,压缩信息以聚合。得益于Embedding技术的成功,即使低维度的Embedding也能包含相对大的图像区域中的丰富信息。然而,Embedding将信息表达为稠密压缩的模式,处理起来更困难。作者期望的是在大部分地方保持稀疏,只在需要放大的位置产生稠密信号。于是Inception架构在进行参数量较大的3x3和5x5卷积之前,使用1x1卷积来进行降维并通过ReLU修正线性特征(b)。

image-20240128231932052

Inception网络由上述类型的模块堆叠而成,偶尔使用步长为2的最大池化层来减半网格的分辨率。出于技术原因,低层使用传统的卷积方式,而更高层则使用Inception模块。这种架构允许在每个阶段显著增加单元数量,而不会导致计算复杂度的无控制增长。尺寸缩减的普遍使用有助于减少上一阶段大量输入滤波器对下一层的影响。

Inception的设计与直觉相符,视觉信息应在不同尺度上处理,然后聚合,以便下一阶段可以同时从不同尺度抽象特征。

改进的计算资源使用允许增加每个阶段的宽度和阶段数量,而不会遇到计算困难。Inception架构也可以用来创建性能略逊但计算成本更低的网络版本。通过精心的手动设计,可以实现计算资源的平衡,从而创建出比非Inception架构的类似性能网络快2到3倍的模型。

GoogLeNet

GoogLeNet这个名字是对LeNet 5网络的致敬。GoogLeNet的网络结构如下:

Image

在AlexNet和VGGNet中,全连接层占据了90%的参数量,而且容易引起过拟合;而GoogLeNet在最后一个 inception 模块处使用全局平均池化,用全局平均池化取代全连接层,借鉴了NIN(Network in Network)。

  • NIN

    NIN(Network in Network)的一个动机是,在传统的CNN中卷积层实质上是一种广义的线性模型,其表达和抽象能力不足,能否使用一种表达能力更强当然也更复杂的子网络代替卷积操作,从而提升传统CNN的表达能力。一种比较简单的子网络就是多层感知机(MLP)网络,MLP由多个全连接层和非线性激活函数组成,如下图所示:

    image-20240129000449583

    相比普通的卷积网络,MLP网络能够更好地拟合局部特征,也就是增强了输入局部的表达能力。在此基础上,NIN不再像卷积一样在分层之前采用全连接网络,而是采用全局平均池化,这种全局平均池化比全连接层更具可解释性,同时不容易过拟合。

由于GoogLeNet很深,会遇到梯度消失的问题,于是作者引入了两个辅助分类器(下图紫色框)来提高稳定性和收敛速度:

image-20240129002730632

通过添加连接到这些中间层的辅助分类器,可以鼓励分类器中较低层的特征进行分类,增加传播回来的梯度信号,并提供额外的正则化。在训练过程中,它们的损失加权0.3加入到总损失中,在推理时不使用辅助分类器。

训练策略

使用DistBelief 分布式机器学习系统进行训练,使用异步随机梯度下降,动量为0.9,每8个epoch将学习率降低4%。使用Polyak平均方法来创建最终用于推理的模型。这种方法通过对历史模型状态的平均来平滑训练过程中的波动。模型的训练使用了不同大小的图像裁剪,这些裁剪的大小在图像面积的8%到100%之间均匀分布,且它们的纵横比随机选择在3/4到4/3之间。使用Andrew Howard提出的光度扭曲方法,有助于缓解过拟合。在训练的后期,开始使用随机插值方法(包括双线性、面积、最近邻和立方插值,概率相等)进行大小调整,但由于同时进行了其他超参数的改变,因此无法明确判断这些插值方法对最终结果的积极影响。

实验

ILSVRC 2014分类挑战设置和结果

  1. 独立训练了同一个GoogLeNet模型的7个版本(包括一个更宽的版本),并使用它们进行了集成预测。这些模型是用相同的初始化和学习率策略训练的,只是在采样方法和它们看到输入图像的随机顺序上有所不同。

  2. 将图像调整为4个比例,其中较短的尺寸分别为256,288,320和352,取这些调整大小的图像的左侧,中心和右侧正方形(对于肖像图像,我们取顶部,中心和底部正方形),对于每个正方形,我们将4个角和中心224×224裁剪,以及调整为224×224的正方形,以及它们的镜像版本。每个图像生成 4×3×6×2 = 144 个裁剪。

  3. softmax概率在多个剪裁和所有分类器上进行平均,以获得最终预测。

image-20240129005353576

ILSVRC 2014检测挑战设置和结果

GoogLeNet用于检测的方法类似于的R-CNN,但使用Inception模型作为区域分类器进行了增强。

image-20240129005718563

总结

GoogleNet及其Inception系列模型在深度学习领域是非常重要的里程碑,它们推动了网络架构的创新,并对后续的网络设计产生了深远影响。然而,随着深度学习技术的不断进步,一些特性被新的设计理念所取代,而其他一些特性则被保留并进一步发展。

被淘汰的特性:

  1. 5x5 卷积:随着Inception模型的发展,大尺寸的卷积核(如5x5)被逐渐淘汰,因为它们计算成本高,效率低下。在后续版本中,更多地使用了分解卷积的策略,例如使用一系列较小的卷积核(如3x3 或 1x1)来替代。

  2. 辅助分类器:虽然在GoogleNet中使用了辅助分类器来帮助训练和正则化,但在后续的Inception版本中,这个概念被逐渐淡化,因为发现它对最终模型性能的提升不是决定性的。

保留并强化的特性:

  1. 小尺寸卷积和深度分离卷积:1x1卷积以及深度分离卷积(将空间卷积和深度卷积分离)在后续的Inception版本中得到了保留和强化,因为它们能有效减少参数数量和计算负担。

  2. 模块化和并行结构:Inception模块的核心设计思想,即在同一层内并行不同尺寸的卷积和池化操作,被继续保留和发展。

GoogLeNet的缺点:

  1. 复杂性:尽管Inception模型在性能上非常出色,但它的结构相对复杂,使得理解和修改模型变得更加困难。

  2. 资源需求:虽然比起早期的一些深度学习模型,Inception模型更加高效,但它仍然需要相对较多的计算资源,特别是在训练阶段。

  3. 超参数调优:由于模型的复杂性,找到最佳的超参数设置(如学习率、dropout率等)可能需要大量的实验和调整。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值