ModelCube阅读列表 | ImageNet架构和技巧

文摘   科学   2024-08-09 07:45   浙江  

ModelCube(modelcube.cn)是博雅数智自主研发的一站式人工智能科研平台。为全国高校和科研机构的大数据和人工智能科研团队提供一站式科研服务。基于MLOps的实践和企业核心技术,实现了科研场景中全类型数据管理与标注,实验环境快速获取与灵活定制,模型的全生命周期管理,科研成果的管理与发布,以及 AI驱动的论文检索和学习等功能。

1 ImageNet的架构与技巧介绍

ImageNet是机器学习中最著名的数据集之一,是斯坦福大学教授李飞飞为了解决机器学习中过拟合和泛化的问题而牵头构建的数据集。该数据集从2007年开始建立,2009年作为论文的形式在CVPR 2009上面发布。直到现在,该数据集仍然是深度学习领域中图像分类、检测、定位的最常用数据集之一。ImageNet中的类通常由简单的对象类组成,例如“黄瓜”、“杯子”、“台灯”和“小型货车”等。

ImageNet数据集是ImageNet大规模视觉识别竞赛(ILSVRC)的基础,从2010年开始举行,到2017年最后一届结束。该比赛每年举办一次,每次从ImageNet数据集中抽取部分样本作为比赛的数据集。ILSVRC比赛包括:图像分类、目标定位、目标检测、视频目标检测、场景分类。ILSVRC竞赛助力了深度学习革命的开启,在该比赛的历年优胜者中,诞生了AlexNet(2012)、VGG(2014)、GoogLeNet(2014)、ResNet(2015)等耳熟能详的深度学习网络模型。从2012年Alex Krizhevsky提交了当年的获胜模型AlexNet后(神经网络击败以前的非深度方法的第一年),所有提交给ILSVRC的获奖作品都使用深度神经网络,许多在深度学习中广泛使用的架构和技巧最初都是为ILSVRC竞赛开发的。

1.1 架构(Architectures)

指用于处理图像分类任务的特定深度学习架构,如卷积神经网络(CNN)的特定设计结构,包括层次结构、卷积层、池化层、全连接层等。这些架构被设计用来有效地处理图像数据,提取特征并进行分类,以便在大规模图像数据库如ImageNet上取得最佳性能。

1.2 技巧(Tricks)

指在训练深度学习模型时使用的各种技巧和策略,旨在提高模型的性能、收敛速度和泛化能力。这些技巧可能包括数据增强、学习率调整、正则化、批归一化等。这些技巧可以帮助优化模型的训练过程,提高模型对新数据的泛化能力,并防止过拟合现象的发生。

2 常见名词解释

2.1 卷积神经网络(CNN)

典型的 CNN 由3个部分构成:(1)卷积层、(2)池化层(3)全连接层。卷积层负责提取图像中的局部特征;池化层用来大幅降低参数量级(降维);全连接层类似传统神经网络的部分,用来输出想要的结果。

(1)卷积:提取特征

卷积层的运算过程可以理解为使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。如下图,用一个卷积核扫完整张图片:

在具体应用中,往往有多个卷积核,每个卷积核代表了一种图像模式,如果某个图像块与此卷积核卷积出的值大,则认为此图像块十分接近于此卷积核。

(2)池化层(下采样):数据降维,避免过拟合

池化层也为下采样层,可以大大降低数据的维度。由于卷积核比较小,即使做完了卷积,图像仍然很大,所以为了降低数据维度,进行下采样。如下图过程中,原始图片是4×4的,采样窗口为2×2,采用最大池化,取每个窗口中元素的最大值,最终将其下采样成为一个2×2大小的特征图。

池化层相比卷积层可以更有效的降低数据维度,不但可以大大减少运算量,还可以有效的避免过拟合。

(3)全连接层:输出结果

经过卷积层和池化层降维过的数据,全连接层才能”跑得动”,否则数据量太大,计算成本高,效率低下。此时,将经过卷积层和池化层处理过的数据输入到全连接层,得到最终结果。

(4)其他

典型的CNN并非只是上面提到的3层结构,而是多层结构,包含多个卷积层与池化层。

2.2 数据增强(Data Augmentation)

数据增强是一种在机器学习和深度学习中常用的技术,用于通过对训练数据集进行一系列随机变换来人为地增加数据量,在不实质性的增加数据的情况下,让有限的数据产生等价于更多数据的价值,从而改善模型的泛化能力和鲁棒性。这些变换包括但不限于旋转、翻转、裁剪、缩放、平移、变换色彩空间等操作。

在图像处理任务中,数据增强通常用于扩充训练数据集,尤其是在数据量有限的情况下,可以通过对原始图像进行各种变换生成新的训练样本,使得模型在训练过程中可以更好地学习数据的多样性特征,从而提高模型的泛化能力,减轻过拟合的风险。

2.3 学习率调整(Learning Rate Scheduling)

学习率调整是一种用于优化算法的训练策略,它涉及动态地调整模型训练过程中的学习率。在训练深度学习模型时,学习率是一个非常关键的超参数,它决定了参数更新的步长大小,因此直接影响着模型的收敛速度和最终性能。

学习率调整的目的是在训练的不同阶段动态地调整学习率的大小,以便更好地平衡模型在不同阶段的学习速度和收敛效果。常见的学习率调整方法包括:

(1)固定学习率(Fixed Learning Rate): 训练过程中保持不变的学习率。这是最简单的学习率调整方法,但对于复杂的优化问题可能并不总是最优选择。

(2)学习率衰减(Learning Rate Decay): 随着训练的进行,逐渐减小学习率。衰减可以基于固定的规则,也可以根据训练过程中的性能变化动态调整。

(3)学习率分段调整(Piecewise Constant Scheduling): 在训练过程中根据预先设定的时间段或迭代次数,逐步调整学习率的大小。

(4)指数衰减(Exponential Decay): 按照指数函数衰减学习率,使其随着训练步骤的增加而逐渐减小。

(5)自适应学习率(Adaptive Learning Rate): 根据模型在训练过程中的表现和梯度情况自适应地调整学习率,常见的方法包括 AdaGrad、RMSProp、Adam 等优化算法。

通过合理地调整学习率,可以提高模型的训练效率、加快收敛速度,并有助于避免训练过程中出现震荡和不稳定的情况。

2.4 正则化(Regularization)

正则化是一种在机器学习和深度学习中常用的技术,用于控制模型的复杂度,防止模型在训练数据上过度拟合(模型在训练数据上表现很好,但在新数据上的泛化能力较差)。正则化通常是通过在模型的损失函数中引入额外的惩罚项,以限制模型的复杂度。

常见的正则化方法包括:

(1)L1正则:

L1正则常被用来进行特征选择,主要原因在于L1正则化会使得较多的参数为0,从而产生稀疏解,可以将0对应的特征遗弃,进而用来选择特征。一定程度上L1正则也可以防止模型过拟合。

假设L(W)是未加正则项的损失, 是一个超参,控制正则化项的大小。

对应的损失函数:

(2)L2正则:

主要用来防止模型过拟合,直观上理解就是L2正则化是对于大数值的权重向量进行严厉惩罚。鼓励参数是较小值,如果 小于1,那么 会更小。

对应的损失函数:

3 ImageNet架构与技巧方法总结

3.1 ImageNet Database

ImageNet数据库,是一个建立在WordNet结构主干上的大型图像体。ImageNet的目标是将WordNet的80000个同义词集中的大部分用平均500~1000张全分辨率图像填充,产生数千万个由WordNet的语义层次组织的带注释的图像。ImageNet目前的状态有12个子树,5247个同义词集,320万张图片。ImageNet在规模和多样性上比当前存在的图像数据集要大得多,而且要准确得多,构建如此大规模的数据库是一项具有挑战性的任务。论文用Amazon Mechanical Turk描述了数据收集方案,最后通过三个简单的应用来说明ImageNet在目标识别、图像分类和自动目标聚类方面的有用性。ImageNet的规模、准确性、多样性和层次结构为计算机视觉社区和其他领域的研究人员提供巨大的机会。

ImageNet的两个从根到叶的分支样例图如下:上面一行来自哺乳动物子树;下面一行来自车辆子树。对于每个同义词集,给出9个随机采样的图像。

ImageNet: A large-scale hierarchical image database[1]. Jia Deng, Wei Dong, Richard Socher, Li-jia Li, Kai Li, Fei-fei Li. CVPR 2009.

3.2 ImageNet相关模型架构

3.2.1 AlexNet

AlexNet训练了一个大型的深度卷积神经网络,将ImageNet LSVRC-2010竞赛中的120万张高分辨率图像分为1000个不同的类别。在测试数据上,实现了前1和前5的错误率分别为37.5%和17.0%,大大优于之前的先进技术。这个神经网络有6000万个参数和65万个神经元,由5个卷积层组成,其中一些是最大池化层,还有3个完全连接的层,最后是1000路softmax。为了使训练更快,使用了非饱和神经元和一个非常高效的GPU实现卷积操作。为了减少全连接层的过拟合,采用了“dropout”的正则化方法,该方法被证明非常有效。论文还在ILSVRC-2012比赛中输入了该模型的一个变体,并获得了前5名的15.3%的测试错误率,而第二名的错误率为26.2%。

ImageNet Classification with Deep Convolutional Neural Networks[2]. Alex Krizhevsky, Ilya Sutskever, Geoffrey E. Hinton. NIPS 2012.

3.2.2 GoogLeNet

本文提出了一个代号为Inception的深度卷积神经网络架构,负责在2014年ImageNet大规模视觉识别挑战赛(ILSVRC14)中设置分类和检测的新技术。这种体系结构的主要特点是提高了网络内计算资源的利用率。这是通过精心设计来实现的,该设计允许增加网络的深度和宽度,同时保持计算预算不变。为了优化质量,架构决策基于Hebbian原则和多尺度处理的直觉。在提交的ILSVRC14中,论文使用了一个名为GoogLeNet的特殊化身,这是一个22层的深度网络,其质量是在分类和检测的背景下评估的。

Going Deeper with Convolutions[3]. Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, Andrew Rabinovich. CVPR 2015.

3.2.3 ResNet

残差学习框架ResNet,简化训练比先前使用的网络深得多的网络。论文明确地将层重新表述为相对于层输入的残差函数学习,而不是学习无参考函数。并提供了全面的实证证据,表明这些残差网络更容易优化,并且可以从明显增加的深度中获得准确性。在ImageNet数据集上,论文评估了具有152层深度的残差网络,比VGG网络深8倍,但复杂度仍较低。这些残差网络的集合在ImageNet测试集上实现了3.57%的错误率。其结果赢得了ILSVRC 2015分类任务的第一名,并在CIFAR-10数据集上进行了100层和1000层的分析。对于许多视觉识别任务来说,表示的深度至关重要,由于本架构表示非常深,在COCO目标检测数据集上获得了28%的相对提升。深度残差网络是提交到ILSVRC和COCO 2015比赛的基础,还在ImageNet检测、ImageNet定位、COCO检测和COCO分割任务中获得了第一名。

Deep Residual Learning for Image Recognition[4]. Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. CVPR 2016.

3.2.4 VGG

VGG是一种经典的卷积神经网络架构,由牛津大学视觉几何组(Visual Geometry Group)的研究团队于2014年提出。这项工作调查了卷积网络深度对其在大规模图像识别设置中准确性的影响。VGG架构的主要特点是将卷积层和池化层堆叠在一起,构建了更深的网络结构。它以简洁明了而著称,由一系列具有相同卷积核尺寸(3x3)和最大池化层的卷积层堆叠而成。VGG网络深度可以灵活调整,最有名的是VGG16和VGG19,分别具有16个和19个权重层。VGG通过不断增加网络深度来提高性能,但也因此导致了更多的计算成本和参数数量。这些发现是在ImageNet Challenge 2014提交的基础,其团队分别在定位和分类赛道中获得了第一和第二名。该表示方法在其他数据集上具有很好的泛化性能,可以达到最先进的结果。已经公开发布了表现最佳的两个卷积神经网络模型,以促进进一步研究深度视觉表示在计算机视觉中的应用。

Very Deep Convolutional Networks for Large-Scale Image Recognition[5]. Karen Simonyan, Andrew Zisserman. ICLR 2015.

3.2.5 Inception-v2/v3

Inception-v2和Inception-v3是谷歌公司在深度学习领域的重要贡献,是对Inception架构的后续改进版本。它们是为了解决深度神经网络中计算复杂度和计算资源消耗的问题而提出的。这些架构的设计旨在提高网络在图像分类和识别任务中的性能,同时降低计算成本。Inception-v2是Inception-v1的改进版本,它引入了一些新的特性和调整,如使用分解卷积来减少参数数量,使用均值池化层来代替最大池化层以增强鲁棒性,并增加了标签平滑和精细化格点化策略,以改善模型的泛化能力。Inception-v3是Inception-v2的进一步改进,它在结构上进行了进一步优化,引入了一些新的特性和策略,如引入了残差连接、优化了网络的过滤器设计以及进一步降低了计算成本。这些改进使得Inception-v3在图像识别和分类任务中取得了更好的性能,并且在计算资源消耗方面有所改善。这些改进使得Inception-v2和Inception-v3成为图像识别领域的重要里程碑,并为深度学习研究和实际应用提供了有价值的经验和启发。它们的成功也推动了后续更加复杂的神经网络架构的发展。

Rethinking the Inception Architecture for Computer Vision[6]. Christian Szegedy, Vincent Vanhoucke, Sergey Ioffe, Jonathon Shlens, Zbigniew Wojna. CVPR 2016.

3.2.6 ResNet-v2

ResNet-v2是Residual Network(残差网络)的一种改进版本,旨在解决原始ResNet架构中存在的一些问题,并进一步提高网络性能。它是对原始ResNet的一种优化和调整,其中包括一些关键的改变,以应对深度网络训练中的一些挑战。ResNet-v2引入了一种修正方案来解决原始ResNet中的梯度消失问题,这有助于更有效地训练深层网络。此外,ResNet-v2还采用了一种新的残差块设计,使其更加高效和可靠。通过引入批量归一化和修正线性单元(ReLU)的改进版本,ResNet-v2在训练深层网络时能够更好地保持梯度的稳定性,从而加快训练速度并提高性能。

Identity Mappings in Deep Residual Networks[7]. Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun. ECCV 2016.

3.2.7 ResNeXt

ResNeXt是一个简单的、高度模块化的图像分类网络体系结构。该网络通过重复构建块来构建,该构建块聚合了具有相同拓扑结构的一组转换。论文简单设计产生了一个同质的、多分支的体系结构,只需设置少量超参数。这种策略展示了一个新的维度,称之为“基数”(即转换操作的数量),除了深度和宽度的维度外的一个重要因素。在ImageNet-1K数据集上,经验表明即使在维持复杂性的限制条件下,增加基数也能够提高分类精度。此外,当增加容量时,增加基数比深入或扩大基数更有效。模型ResNeXt是进入ILSVRC 2016分类任务的基础,在ImageNet-5K集和COCO检测集上进一步研究了ResNeXt,也显示出比ResNet更好的结果。

Aggregated Residual Transformations for Deep Neural Networks[8]. Saining Xie, Ross Girshick, Piotr Dollár, Zhuowen Tu, Kaiming He. CVPR 2017.

3.2.8 EfficientNet

EfficientNet是由谷歌公司提出的一种高效的卷积神经网络架构,旨在在保持模型准确性的同时降低计算和参数复杂度。该架构通过对网络深度、宽度和分辨率进行统一的缩放来实现高效的模型设计。具体来说,它利用了复合缩放方法,通过对网络的深度、宽度和分辨率进行均衡的缩放来提高模型的效率和准确性。EfficientNet的设计理念是在不增加额外复杂性的前提下,最大限度地提高模型的性能。它采用了一种名为Compound Scaling的方法,通过对网络的不同维度进行均衡的放大,从而在保持模型复杂度相对较低的情况下,获得更好的性能。EfficientNet在许多视觉识别任务中取得了显著的成果,成为了在计算资源有限的情况下实现高效的图像识别的有力工具。其高效性使其成为了许多实际应用中的首选模型,尤其是在移动设备和边缘计算等资源受限的场景中。

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks[9]. Mingxing Tan, Quoc V. Le. ICML 2019.

3.3 ImageNet相关模型技巧

3.3.1 Dropout

Dropout是一种在神经网络训练中常用的正则化技术,旨在减少过拟合并提高模型的泛化能力。它的原理是在训练过程中随机地让一部分神经元以一定的概率不参与前向传播和反向传播,从而强制网络去学习更加鲁棒和健壮的特征,减少对特定神经元的依赖。具体来说,Dropout会随机地将一定比例的神经元的输出置为零,这样可以防止网络过度依赖某些特定的神经元,使得网络的学习变得更加鲁棒。通过在训练过程中随机地“丢弃”一些神经元,Dropout可以有效地降低模型在训练数据上的过拟合程度,提高模型的泛化能力,使其能够更好地适应未见过的数据。Dropout技术在训练深度神经网络时具有广泛的应用,特别是在处理大规模数据和复杂任务时,可以有效地提高模型的鲁棒性和可靠性。

Dropout: A Simple Way to Prevent Neural Networks from Overfitting[10]. Nitish Srivastava, Geoffrey E. Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov. JMLR 2014.

3.3.2 Batch Norm

Batch Normalization(批量归一化)是一种用于深度神经网络训练中的技术,旨在加速神经网络的收敛速度并提高模型的稳定性。它通过对每个小批量的数据进行归一化处理来规范化神经网络层的输入,以及对每个中间层的输出进行归一化处理,从而有助于解决深层网络训练过程中的梯度消失和梯度爆炸等问题。具体来说,Batch Normalization通过对每个神经元的输入进行规范化处理,使得其均值接近于0,标准差接近于1。这有助于提高网络的稳定性,并且使得网络对参数初始化的选择不那么敏感。此外,Batch Normalization还可以作为一种正则化方法,有助于减少模型的过拟合。

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift[11]. Sergey Ioffe, Christian Szegedy. ICML 2015.

3.3.3 LayerNorm

Layer Normalization(层归一化)是一种归一化技术,类似于批量归一化(Batch Normalization),但它对单个样本的数据进行归一化处理,而不是像批量归一化那样对一个批次的数据进行处理。它的主要目的是减少深度神经网络训练中层与层之间的协变量转移(covariate shift),从而提高模型的训练速度和稳定性。在Layer Normalization中,针对每个样本,对同一层的所有神经元的输入进行归一化处理,即对每个神经元在同一层的所有输入进行规范化,使得均值接近于0,标准差接近于1。这有助于降低训练过程中的梯度消失问题,并提高模型在各种数据分布下的稳定性。相对于批量归一化,Layer Normalization更适用于序列数据或者小批量数据的训练,它不依赖于批量数据的大小和分布,因此更适用于循环神经网络等模型,能够提高模型在处理序列数据时的效果和稳定性。

Layer Normalization[12]. Jimmy Lei Ba, Jamie Ryan Kiros, Geoffrey E. Hinton. arXiv 2016.

3.3.4 Xception

Xception是一种基于Inception架构的卷积神经网络,其名称来自于“Extreme Inception”。它在Inception的基础上引入了深度可分离卷积(Depthwise Separable Convolution)的概念,旨在进一步提高模型的性能和效率。深度可分离卷积将标准卷积操作分解为两个步骤:深度卷积和逐点卷积,从而大大减少了参数数量和计算成本。Xception旨在提高模型对特征的学习能力,同时尽可能减少模型的计算负担。它的设计理念是通过增加网络的宽度和深度,以及引入深度可分离卷积来提高模型的表达能力,使得模型能够更好地学习复杂的特征表示。Xception在图像识别和计算机视觉任务中取得了显著的成果,成为了高性能图像分类和特征提取的重要工具之一。Xception的成功体现了深度学习领域对于高效和精确计算的追求,并且对于解决计算资源受限的应用场景具有重要意义。

Xception: Deep Learning with Depthwise Separable Convolutions[13]. François Chollet. CVPR 2016.

3.3.5 Group Normalization

Group Normalization(组归一化)是一种用于深度学习中的归一化技术,类似于批量归一化和层归一化,它可以应用于卷积神经网络和全连接神经网络中。不同于批量归一化和层归一化将整个批次或整个层的数据作为处理对象,Group Normalization将特征图分成多个组,然后对每个组内的数据进行归一化处理。具体来说,Group Normalization首先将通道分成多个组,然后计算每个组的均值和方差,并将其用于归一化操作。这种方法减少对单个样本的依赖性,使得归一化过程更加稳定。Group Normalization在训练过程中可以提高模型的稳定性,并且对小批量数据或没有明显分布特征的数据具有更好的适应性。相比于批量归一化,Group Normalization不受批量大小的限制,更适用于一些样本量较小的任务或者在批量大小较小的情况下训练模型。

Group Normalization[14]. Yuxin Wu, Kaiming He. ECCV 2018.

3.3.6 Squeeze & Excitation

Squeeze-and-Excitation(压缩与激励)是一种用于增强卷积神经网络(CNN)表示能力的注意力机制,通过引入注意力模块来动态地调整不同通道之间的特征响应,以增强有用信息的表示并抑制无用信息,从而提高模型的表征能力和性能。Squeeze-and-Excitation的核心思想是通过两个关键步骤来增强特征的表征能力。首先,通过全局平均池化(global average pooling)来对每个通道的特征图进行压缩,得到通道维度上的特征描述。然后,通过两个全连接层(一个压缩层和一个激励层),对这些压缩后的特征描述进行学习,生成一个通道注意力权重向量。最后,将这个注意力权重向量与原始特征进行元素级别的相乘操作,以增强有用信息并抑制无用信息。Squeeze-and-Excitation模块的引入可以帮助模型更好地学习数据中的重要特征,从而提高模型的表征能力和泛化能力。

Squeeze-and-Excitation Networks[15]. Jie Hu, Li Shen, Gang Sun. CVPR 2018.

参考资料
[1]

ImageNet: A large-scale hierarchical image database: http://modelcube.cn/paper/detail/118

[2]

ImageNet Classification with Deep Convolutional Neural Networks: http://modelcube.cn/paper/detail/2390299

[3]

Going Deeper with Convolutions: http://modelcube.cn/paper/detail/607889

[4]

Deep Residual Learning for Image Recognition: http://modelcube.cn/paper/detail/110

[5]

Very Deep Convolutional Networks for Large-Scale Image Recognition: http://modelcube.cn/paper/detail/2525615

[6]

Rethinking the Inception Architecture for Computer Vision: http://modelcube.cn/paper/detail/109

[7]

Identity Mappings in Deep Residual Networks: http://modelcube.cn/paper/detail/111

[8]

Aggregated Residual Transformations for Deep Neural Networks: http://modelcube.cn/paper/detail/114

[9]

EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks: http://modelcube.cn/paper/detail/21

[10]

Dropout: A Simple Way to Prevent Neural Networks from Overfitting: http://modelcube.cn/paper/detail/119

[11]

Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift: http://modelcube.cn/paper/detail/108

[12]

Layer Normalization: http://modelcube.cn/paper/detail/112

[13]

Xception: Deep Learning with Depthwise Separable Convolutions: http://modelcube.cn/paper/detail/113

[14]

Group Normalization: http://modelcube.cn/paper/detail/116

[15]

Squeeze-and-Excitation Networks: http://modelcube.cn/paper/detail/115


阅读原文,了解更多信息:ModelCube一站式人工智能科研平台

http://modelcube.cn/paper/reading-list-detail/16

数据科学人工智能
聚焦数据科学,大数据,人工智能,区块链和云计算等话题。技术资料分享,院士名家观点分享,前沿资讯分享。
 最新文章