0引言图像分类是计算机视觉基本任务之一。顾名思义,图像分类即给定一幅图像,计算机利用算法找出其所属的类别标签。图像分类的过程主要包括图像的预处理、图像的特征提取以及使用分类器对图像进行分类,其中图像的特征提取是至关重要的一步。传统的图像分类算法提取图像的色彩、纹理和空间等特征(孙君顶和赵珊,2009),其在简单的图像分类任务中表现较好,但在复杂图像分类任务中表现不尽人意。随着智能信息时代的来临,深度学习(LeCun等,2015)应运而生。深度学习作为机器学习的一个分支,旨在模拟人类的神经网络系统构建深度人工神经网络,对输入的数据进行分析和解释,将数据的底层特征组合成抽象的高层特征,其在计算机视觉、自然语言处理等人工智能领域发挥了不可替代的作用。作为深度学习的典型代表,深度卷积神经网络(deep convolutional neural network,DCNN)在计算机视觉任务中大放异彩,与人工提取特征的传统图像分类算法相比,卷积神经网络使用卷积操作对输入图像进行特征提取,有效地从大量样本中学习特征表达,模型泛化能力更强。2012年,AlexNet(Krizhevsky等,2012)大幅提升了图像分类等任务的性能,并取得了ImageNet(Deng等,2009)挑战赛冠军,使深度卷积神经网络逐渐成为计算机视觉领域研究的热点。随着DCNN网络结构越来越深,性能越来越强,过拟合、梯度消失、模型参数量巨大和难以优化等问题也越来越突出,科研人员针对不同的问题提出了不同结构的DCNN模型。现有深度卷积神经网络综述的内容较为宽泛,不聚焦某一特殊任务,往往围绕深度卷积神经网络模型不同方面的优化方法与应用进行综述(林景栋等,2020;Gu等,2018;Khan等,2019;张顺等,2019)。本文以图像分类任务为载体,从经典深度卷积神经网络模型、注意力机制卷积神经网络模型、轻量级卷积神经网络模型以及神经网络架构搜索模型4个方面,综述深度卷积神经网络基础模型近年来的研究进展,分析和对比主要的深度卷积神经网络模型,并对深度卷积神经网络模型设计未来可能的发展方向进行展望。1深度卷积神经网络模型本文根据近年来基于DCNN的图像分类研究发展过程和方向,将深度卷积神经网络模型分为以下4类:经典的深度卷积神经网络;基于注意力机制的深度卷积神经网络模型;轻量级深度卷积神经网络模型;基于神经架构搜索(neural architecture search,NAS)的深度卷积神经网络模型。经典的深度卷积神经网络模型主要是指以增加网络深度、提升网络性能为目标的DCNN模型;基于注意力机制的深度卷积神经网络模型则是建立在经典DCNN模型基础上,采用注意力机制使网络模型更关注感兴趣的区域;随着DCNN模型越来越深,网络结构越来越复杂,网络参数量大的问题越来越突出,轻量级深度卷积神经网络通过改进模型结构降低网络参数量以适应嵌入式、移动式设备的需求;基于神经架构搜索的深度卷积神经网络模型采用神经网络自动设计DCNN模型结构,与人工设计DCNN相比更省时省力,是未来DCNN的发展趋势之一。1.1经典的深度卷积神经网络模型 1.1.1从LeNet到GoogLeNetLeNet模型(LeCun等,1998)是最早提出的卷积神经网络模型,主要用于MNIST(modified NIST)数据集中手写数字识别,模型结构如图 1所示。其包含3个卷积层、2个池化层和2个全连接层,每个卷积层和全连接层均有可训练的参数,为深度卷积神经网络的发展奠定了基础。 图1 LeNet模型结构(LeCun等,1998) Architecture of LeNet(LeCun et al., 1998)Fig 1尽管LeNet在小规模MNIST数据集上取得了不错的效果,但复杂的图像分类任务则需要大规模数据集以及学习能力更强的网络模型。2012年,Krizhevsky等人(2012)提出了AlexNet,网络结构如图 2所示,该网络包含5个卷积层和3个全连接层,输入图像经过卷积操作和全连接层的操作,最后输入具有1 000个节点的Softmax分类器完成图像分类。该网络通过使用线性整流函数(rectifiled linear unit,ReLU)作为激活函数,引入局部响应归一化(local response normalization,LRN)缓解梯度消失问题;使用数据增强和Dropout技术大大缓解了过拟合问题;并采用两个GPU并行计算的方式训练,提高了训练速度。AlexNet在2012年ImageNet比赛中以远超当时亚军的优势获得分类任务冠军。 图2 AlexNet网络结构(Krizhevsky等,2012) Architecture of AlexNet(Krizhevsky et al., 2012)Fig 2早期的深度卷积神经网络,例如AlexNet,其结构首先为卷积层,随后为全连接层,最后为Softmax分类器,网络的参数量很大。Lin等人(2013)对传统的卷积神经网络结构进行改进,提出了NIN(network in network),将卷积层替换为多层感知器卷积,并将全连接层替换为全局平均池化层。NIN能学习到更复杂和有用的特征,而参数量仅为AlexNet的十分之一,在CIFAR-10/100(Krizhevsky,2009)、SVHN(street view house number)数据集上(Netzer等,2011)获得了比AlexNet更高的准确率。尽管AlexNet取得了进步,但对模型如何工作无从知晓,Zeiler和Fergus(2014)对AlexNet进行微调提出了ZFNet。与AlexNet相比,ZFNet使用了反卷积可视化特征图,前部的层使用了更小的卷积核和步长,通过研究遮挡局部图像对图像分类结果的影响获得了决定图像类别的关键部位。Sermanet等人(2014)提出的OverFeat网络实现了利用一种卷积神经网络架构完成图像分类、定位和检测任务,OverFeat网络的前几层采用卷积神经网络在图像的多个位置和多个尺度上以滑动窗口的方式提取特征,改变OverFeat网络的后几层, 实现定位、检测任务。AlexNet初始几层使用较大尺寸卷积核进行卷积,导致参数量较大,Simonyan和Zisserman(2015)提出了VGGNet(Visual Geometry Group),继承了AlexNet和LeNet的框架,主要贡献在于通过堆叠采用3 × 3小卷积核的卷积层,增加了网络深度,提升了网络性能。VGGNet包含5种结构,其中最常用的是VGGNet-19和VGGNet-16。一般来说,提升网络性能最直接的方法是增加网络深度,但随着网络深度的增加,参数量加大,网络更易产生过拟合,同时对计算资源的需求也显著增加。Szegedy等人(2015)提出的GoogLeNet采用了Inception-v1模块,该模块采用稀疏连接降低模型参数量的同时,保证了计算资源的使用效率,在深度达到22层的情况下提升了网络的性能。Inception-v1模块结构如图 3所示,该结构包含4条并行的支路,3 × 3卷积、5 × 5卷积之前的1 × 1卷积和3 × 3最大池化之后的1 × 1卷积用来减少参数量,输入图像进入该模块进行卷积或池化操作,得到4种尺寸相同的特征图,随后在通道维度上相并得到该模块的输出。Inception-v2模块(Ioffe和Szegedy,2015)在Inception-v1模块基础上增加了批量归一化(batch normalization,BN)层和卷积分解,BN算法减少了内部协方差转移,加速了网络的训练且缓解了梯度消失问题,卷积分解将5 × 5卷积分解成两个3×3卷积,从而减少了参数量。Inception-v3模块(Szegedy等,2016a)在Inception-v2模块基础上进行非对称卷积分解,如将$n \times n$大小的卷积分解成1×$n$卷积和$n$×1卷积的串联,且$n$越大,参数量减少得越多。得益于内存优化,Inception-v4(Szegedy等,2016b)相比Inception-v3具有更统一的简化架构、更多的Inception模块,Inception-v4提出的同时,Szegedy等人(2016b)还将Inception模块与残差模块相结合,提出了Inception-ResNet系列结构,其中Inception-ResNet-v1网络在每个Inception-ResNet模块的最后加入了1 × 1卷积,Inception-ResNet-v2网络对残差模块的输出进行了整形。 图3 Inception-v1模块结构(Szegedy等,2015) Architecture of Inception-v1 module (Szegedy et al., 2015)Fig 3深层网络的优化十分困难,Srivastava等人(2015)提出了HN(highway network),该网络使用门控单元调节信息流, 使信息可在多层之间畅通无阻流动,从而有效抑制网络的梯度消失问题。为使网络深度进一步加深,Larsson等人(2017)提出了分形网络(FractalNet),该网络包含不同长度的交互子路径,但不包含残差连接,其通过重复使用简单的扩展规则可以生成极深的网络,并取得了不错的性能。1.1.2ResNet家族深度卷积神经网络不断在图像分类任务上取得突破,网络深度的增加提升了其特征提取能力。然而随着网络深度的增加,梯度消失的问题越来越严重,网络的优化越来越困难。据此,He等人(2016a)提出了残差卷积神经网络(residual networks,ResNet),进一步加深网络的同时提升了图像分类任务的性能。ResNet由堆叠的残差块组成,残差块结构如图 4所示,残差块除了包含权重层,还通过越层连接将输入$\mathit{\boldsymbol{x}}$直接连到输出上,$\mathit{F}\left(\mathit{\boldsymbol{x}} \right)$为残差映射,$\mathit{H}\left(\mathit{\boldsymbol{x}} \right)$为原始映射,残差网络令堆叠的权重层拟合残差映射$\mathit{F}\left(\mathit{\boldsymbol{x}} \right)$而不是原始映射$\mathit{H}\left(\mathit{\boldsymbol{x}} \right)$,则$\mathit{F}\left(\mathit{\boldsymbol{x}} \right) = \mathit{H}\left(\mathit{\boldsymbol{x}} \right) - \mathit{\boldsymbol{x}}$,而学习残差映射较学习原始映射简单。另外,越层连接使得不同层的特征可以互相传递,一定程度上缓解了梯度消失问题。 图4 残差块(He等,2016a) Residul block(He et al., 2016a)Fig 4ResNet通过堆叠残差块使网络深度达到152层,残差网络在图像分类任务中获得了较大的成功。但随着网络的继续加深,梯度消失问题仍然存在,网络的优化越来越困难,为进一步提升残差网络的性能,研究者们提出了一系列残差网络的变体,本文根据这些变体基本思路的不同,将其分为4类:基于深度残差网络优化的残差网络变体、采用新的训练方法的残差网络变体、基于增加宽度的残差网络变体和采用新维度的残差网络变体。基于深度残差网络优化的变体有Pre-ResNet、加权残差网络(weighted residual network,WResNet)、金字塔残差网络(pyramidal residual network,PyramidalNet)、多级残差卷积神经网络(residual networks of residual networks,RoR)、金字塔多级残差卷积神经网络(pyramidal RoR,PRoR)等;采用新的训练方法有随机深度(stochastic depth,SD)网络、Swapout和卷积残差记忆网络(convolutional residual memory networks,CRMN)等;基于增加宽度的残差网络变体包括ResNet in ResNet、宽残差网络(wide residual networks,WRN)和多残差网络(multi-ResNet)等,其中的宽度包括特征图中的通道数、残差块中残差函数的数量等;最后,一些研究者在残差网络的改进中,提出了新的维度,例如基数、尺度和结构多样性等。1) 基于深度残差网络优化的残差网络变体。He等人(2016b)通过研究残差块中信息的传播,提出了一种新的残差单元,该残差单元去除了加法操作之后的ReLU激活函数,而将残差支路的操作改为BN-ReLU-conv-BN-ReLU-conv,因此残差单元之间的信息、整个网络中的信息可以直接传播,使得网络更易训练,性能更好。针对ReLU激活函数和逐元素相加之间的不兼容性,以及深度网络很难使用MSRA初始化器(He等, 2015)使深度网络收敛等问题,Shen等人(2016)提出了加权残差网络(weighted residual network,WResNet),该网络中所有残差权重都初始化为零,并以很小的学习率(0.001)进行优化,这使得所有残差信号逐渐加到直接通路上,这样1 192层的残差网络比100层的残差网络收敛更快, 且从100+层网络增长到1 000+层网络,在准确率上会获得平稳的提升;最终残差权重分布在[-0.5,0.5]间,缓解了ReLU激活函数和逐元素相加之间的不兼容性。在ResNet中,随着特征图通道数的增加而提取到的高级特征对分类任务更有效。Veit等人(2016)研究发现,在ResNet特征图通道数加倍的情况下,删除残差单元中带有下采样的构建块会极大降低模型分类准确率,使用随机深度训练残差网络会缓解以上情况。受此启发,Han等人(2017)提出了金字塔残差网络,该网络中每个残差单元的输出通道数都逐步增加,以将受下采样影响而集中分布在单个残差单元上的压力分布在所有残差单元上。Yamada等人(2016)将SD-ResNet和PyramidalNet合并,提出了基于分离随机深度算法的深度金字塔残差网络模型(deep pyramidal residual networks with separated stochastic depth,PyramidalSepDrop),该网络的残差映射$\mathit{F}\left(\mathit{\boldsymbol{x}} \right)$被分成上下两部分,上部分用来增加通道数,下部分与输入$\mathit{\boldsymbol{x}}$具有相同的通道数,两部分均使用随机深度的随机下降机制。Zhang等人(2018a)假设残差映射易于优化,则残差映射的残差映射更易优化,并据此在ResNet基础上逐级加入越层连接,构建了多级残差卷积神经网络,使得高层特征可以向低层传递,进一步抑制了梯度消失问题。RoR(residual networks for residual networks)结构如图 5(Zhang等,2018a)所示,首先在所有残差块外添加一个越层连接,称为一级越层连接;然后,根据卷积核滤波器的种类将残差块分为若干组,在每组残差块外添加越层连接,称为二级越层连接;随后可将每组残差块再平分,添加越层连接;最后,原始残差块中的越层连接称为末级越层连接。 图5 RoR模型结构(Zhang等人,2018a) The architecture of RoR(Zhang et al., 2018a)Fig 5RoR网络中每组残差块的特征图尺寸和通道数保持不变,下一组残差块开始时,特征图尺寸减半、通道数加倍,这使得网络中特征信息传递不连贯,会损失一些与预测相关的有用信息,限制了网络的分类性能。针对此问题,Zhang等人(2019a)提出了金字塔多级残差卷积神经网络,结构如图 6(Zhang等,2019a)所示,该网络通过线性逐步增加每个残差块的输出通道数,保证高级属性多样性的同时也保证了信息的连续性。 图6 金字塔多级残差卷积神经网络(Zhang等,2019a) Pyramidal RoR(Zhang et al., 2019a)Fig 62) 采用新训练方法的残差网络变体。模型深度是模型表达能力的重要决定因素,然而非常深的网络面临着巨大的挑战:反向传播中的梯度消失问题、前向传播中的特征重用以及网络训练耗时长等问题。针对这些问题,研究者们从训练方法角度提出了一系列残差网络的变体。Huang等人(2016)提出了一种新的随机深度残差网络训练方法,该方法采用了集成学习思想,在模型训练时以一定的概率随机丢弃不同的残差块,在模型训练时每次迭代训练较浅的子网络,网络测试时则采用完整的深网络,模型训练时间缩短的同时获得分类准确率的提升。Singh等人(2016)提出了一种新颖的随机训练方案——Swapout,其将Dropout、随机深度等训练方法结合,从丰富的残差体系结构中取样,提高了残差网络的性能,较宽但较浅的Swapout网络可达到深度残差网络的性能。Moniz和Pal(2016)提出了卷积残差记忆网络,该网络采用深度残差网络作为基础网络,使用长短期记忆(long short-term memory,LSTM)内存操作和算法架构的内存接口对网络进行训练,在CIFAR-100数据集上获得了当时最好的性能。3) 基于增加宽度的残差网络变体。如上所述,为了提高残差网络的模型精度,研究者们主要致力于使ResNet深度更深或者深度残差网络的优化问题。而有些研究者另辟蹊径,他们提出的模型旨在使网络更宽,而不是更深,例如ResNet in ResNet(RiR),WRN和Multi-ResNet。ResNet中的恒等映射导致不同特征的混合连接,然而在深度网络中,前部层学习的特征可能不再对后部层提供有用的信息。针对此问题,Targ等人(2016)提出了一种广义的残差结构,该广义残差结构的模块单元是由残差流和瞬态流组成的并行结构,如图 7所示,其中残差流包含越层连接且与原始残差块相似,瞬态流则是标准的卷积层,另外每个广义残差块中还有额外的两个卷积核滤波器来传递信息。两个连接的广义残差块称为ResNet Init,将原始残差块的两个卷积层用ResNet Init代替,组成的新的结构称为RiR构建块,如图 8(Targ等,2016)所示。RiR网络在CIFAR-10数据集上取得了具有竞争力的结果。 图7 两个广义残差块(Targ等,2016) Two generalized residual blocks (ResNet Init)(Targ et al., 2016)Fig 7 图8 2层的RiR构建块(Targ等,2016) Two-layer RiR block(Targ et al., 2016)Fig 8在ResNet中,存在特征过度重用问题,寻求少量精确度的增加需要将网络层数加倍。针对该问题,Zagoruyko和Komodakis(2016)提出了宽残差网络,WRN在原始残差块的基础上成倍地增加残差块中卷积核的个数,增加了网络的宽度,如图 9所示,变量$k$代表宽网络卷积核较基准网络卷积核的倍数,该网络降低了网络深度,其性能远超相同层数的残差网络。 图9 原始残差块与WRN残差块对比(Zagoruyko和Komodakis,2016) Comparation of basic residual block between WRN residual block(Zagoruyko and Komodakis, 2016)Fig 9实验表明,深度残差网络难以通过在整个网络深度保持梯度来解决梯度消失问题,相反,可通过组合指数分布的、不同深度的网络来解决此问题,即增加网络的多重性。据此,Abdi和Nahavandi(2017)提出了多残差网络(Multi-ResNet),该网络通过增加每个残差块中残差函数的数量,在保持深度不变的情况下,增加了网络的多样性。实验表明,增加残差块中残差函数数量比增加网络深度性能更好,与包含相同数量卷积层的深度残差网络相比,Multi-ResNet能够取得更小的错误率。4) 基于新维度的残差网络变体。基于增加网络深度或增加网络宽度的残差网络变体都取得了很好的效果,一些研究者对残差网络进行深入分析,提出了一系列基于新维度的残差网络变体。Zhang等人(2017)从结构多样性的维度出发,使用Inception模块代替残差单元,并通过多种形式的多项式组合推广了inception residual单元,构建了PolyInception模块,这种新的设计不仅增加了结构的多样性,也增强了残差组件的表达能力。Xie等人(2017)提出了一种简单、高度模块化的网络体系结构——ResNeXt,该模型通过重复聚合一系列具有相同拓扑结构的构建块来构建,该模型提供了一个新维度——基数,相比于增加深度和宽度,增加基数是一种更有效的获取精度提升的方法。多尺度特征表示在分类任务中非常重要,从AlexNet到ResNets,这些骨干卷积神经网络的进展不断展现出多尺度特征表示的重要作用,Gao等人(2021)提出的Res2Net网络在更细粒度层次上提高了多尺度表征能力。该模块以瓶颈块为基础,应用了一个新的维度——尺度(scale),将1 × 1卷积的输出特征图在通道维度上均匀拆分为几个特征图子集,每个特征图子集进行卷积,并将得到的结果进行连接,再经过1 × 1卷积处理。Res2Net在多个数据集上的图像分类任务中表现出更优的性能。1.1.3DenseNet家族Highway Network、残差网络以及随机深度训练方法都有一个共同点,即在网络中从高层到低层创建了越层连接路径。为确保网络中各层之间信息流最大化,Huang等人(2017)提出了密集连接卷积神经网络(densely connected convolutional network,DenseNet),该网络使用了一种简单的连接模式,即将所有层直接相连。为进一步改善网络中的信息流,研究者们研究DenseNet路径连接的方式,提出了一系列DenseNet变体,例如双路径网络(dual path network,DPN)、CliqueNet和ConDenseNet等。DenseNet由密集块组成,密集块结构如图 10所示,密集块采用前馈的方式将所有层(具有相同输出特征图大小)直接相连,每一层都从其前部所有层获得输入并将自己的输出特征图传递到后部层,这种方式增强了特征重用,并可缓解梯度消失问题。与残差网络不同的是,DenseNet将特征图传递到下一层之前没有采用求和而是通过通道的合并来组合特征图。 图10 密集块示意图 Dense blockFig 10对ResNet和DenseNet的拓扑的优点和缺陷进行研究,发现ResNet可增强特征重用,DenseNet支持特征探索,为受益于两种拓扑结构,Chen等人(2017)提出了双路径网络,该网络由类似瓶颈层的小模块组成,每个小模块中首先为1 × 1卷积层,紧接着为3 × 3卷积层,最后为1 × 1卷积层,最后1 × 1卷积层的输出分成两部分,第1部分逐元素相加到残差路径,第2部分连接到密集连接路径,这两部分的结果合并为下一个小模块的输入。DPN具有较高的参数效率、更低的内存消耗,在图像分类和目标检测任务上获得了不错的性能。残差网络和密集连接网络的成功归因于递归结构和迭代细化,然而残差路径和密集连接路径的迭代机制仅仅存在于相邻层或从高层到低层。Yang等人(2018a)提出了CliqueNet网络,该网络将迭代机制发挥到极致,在同组任两层之间都存在正向和反向连接,在传播期间,将前几个层连接起来以更新下一层,然后将更新的层连接起来以重新更新先前层,这些层由此构成一个循环,交替更新,这也意味着CliqueNet比DenseNet连接更密集。CliqueNet在多种图像分类数据集上以较少的参数量获得了优异的性能。DenseNet中每层都与其前部层相连以获得特征重用,但当前层的特征不被后部层所需要时,网络就产生了冗余。针对此,Huang等人(2018)提出了ConDenseNet,该模型将学习分组卷积与密集连接相结合,在训练时,学习分组卷积删除多余特征所对应层间的连接以使网络变得稀疏,在测试时,使用标准的分组卷积来实现。实验表明,CondenseNets比当时最先进的紧凑型卷积网络更有效,可以应用在移动设备中。1.2使用注意力机制的卷积神经网络近年来,注意力机制是卷积神经网络研究又一焦点,人眼观看一幅图像,首先看全局,然后将注意力集中在某个细节,将注意力集中在有价值的部分,忽略价值不大的部分。使用注意力机制的卷积神经网络与人眼类似,强调目标中有用的部分,可以是某些空间、某些通道或某些层等,抑制价值不大的部分。主要的注意力机制可以分为空间域、通道域和层域注意力机制。Wang等人(2017)提出了使用注意力机制的卷积神经网络——残差注意力网络,该网络通过堆叠多个注意力模块来构建,在每个注意力模块中,掩码分支采用自底向上、自顶向下的前馈结构,将前馈和反馈注意过程展开为单个前馈过程,以使网络可进行端到端训练,同时生成特征的软权重。Hu等人(2018)专注于通道关系,提出了挤压激励模块(squeeze-and-excitation block,SE block),如图 11所示,SE block通过显式地建模通道之间的相互依赖性来重新校准通道的特征响应,即选择性地增强有用的通道特征,抑制无用的通道特征。该模块首先将全局空间信息挤压到通道描述符中,再将通道描述符通过门控机制,生成每个通道特征的权重,将权重与模块的输入相乘,完成通道特征重校准。SE block的使用仅轻微增加模型的复杂度和计算量,却取得了较好的效果。Li等人(2019)在SE模块基础上进行改进,提出了SK(selective kernel)模块,与SE模块不同的是,SK模块混合了两种不同大小的卷积核,获得了不同感受野的特征信息。 图11 挤压激励模块(Hu等,2018) SE block(Hu et al., 2018)Fig 11SE block中,并没有考虑空间域特征的相关性。针对此问题,Woo等人(2018)提出了卷积块注意力模块(convolutional block attention module,CBAM),该模块包括通道注意力模块和空间注意力模块两部分,输入特征图首先输入通道注意力模块,分别使用平均池化和最大池化聚集空间信息生成两个空间内容描述符,随后两个空间内容描述符通过一个共享网络生成通道注意力图;通道注意力模块的输出特征图输入空间注意力模块,首先在通道维度上使用平均池化和最大池化操作,随后将两个操作的结果连接起来以生成特征描述符,特征描述符再经过卷积操作生成空间注意力图,空间注意力图与空间注意力模块的输入相乘,得到CBAM模块的输出,即同时考虑了通道域特征相关性和空间域特征相关性。在网络末端插入全局二级池化(global second-order pooling,GSoP)以提高网络的非线性建模能力越来越受到关注,受SE block启发,Gao等人(2019)提出了一种新的GSoP模块,并将其从低层引入到高层,其沿着通道维度或者空间维度捕获全局二阶统计信息,可方便地插入到现有网络中,在较小的开销下进一步提高其性能。卷积操作是局部操作,重复局部操作具有计算效率低、优化困难和多跳依赖性建模困难等限制,针对此问题,Wang等人(2018)提出了Non-local block,利用非局部操作,捕获远程的依赖。该非局部操作将输入特征图的各个位置特征的加权和作为某一位置的响应。Non-local block可以应用于多种神经网络架构。Cao等人(2019)研究发现,Non-local网络中不同查询位置的注意力图几乎相同,基于此发现,Cao等人(2019)通过在所有查询位置使用相同的、独立于查询位置的注意力图,得到了简化的Non-local网络,使得网络计算量大大减小,随后,Cao等人(2019)使用了与简化的Non-local block同样的上下文建模和融合方法、与SE block相同的转换方法,构建了全局上下文模块(global context block,GC block),GC block在多种视觉识别任务中表现优于简化的Non-local block和SE block。Zhang等人(2019b)在DenseNet上进行了注意力机制的探索,首先构建了通道特征重标定密集连接卷积神经网络(channel feature reweight DenseNet,CFR-DenseNet),使用挤压激励模块对通道特征重标定,随后构建了层间特征重标定密集连接卷积神经网络(inter-layer feature reweight DenseNet,ILFR-DenseNet),使用双挤压激励模块对层间特征进行重标定,最后将CFR-DenseNet和ILFR-DenseNet进行融合,构建了多级特征重标定密集连接卷积神经网络模型(multiple feature reweight DenseNet,MFR-DenseNet),MFR-DenseNet网络结构如图 12所示(其中,SEM为squeeze-and-excitation module, DSEM为double squeeze-and-excitation module)。Zhang等人(2019c)在CFR-DenseNet基础上添加了能够建模卷积特征点之间相互依赖关系的特征点重标定模块,构建了一种特征通道及特征点重标定密集连接卷积神经网络模型(channel-wise and feature-points reweight DenseNet,CAPR-DenseNet)。针对MFR-DenseNet无法端到端训练、训练测试耗时长的问题,郭玉荣等人(2020)提出了可端到端学习的双通道特征重标定密集连接卷积神经网络(dual feature reweight DenseNet,DFR-DenseNet),同时实现了DenseNet的通道特征重标定和层间特征重标定。 图12 MFR-DenseNet整体架构(Zhang等,2019b) Structure of MFR-DenseNet(Zhang et al., 2019b)Fig 12最近的多种计算机视觉任务都以ResNet为骨干网络,然而ResNet有限的感受野尺寸和跨通道交互的缺乏使得ResNet在分类以外的任务上表现较差,据此,Zhang等人(2020)提出了Split-Attention模块,该模块沿着通道维度将特征图划分为几个组和更细粒度的分支,每个组的特征表示由其分支表示的加权组合表示,通过堆叠Split-Attention模块得到ResNeSt网络,该网络更易迁移到分类任务之外的其他任务。1.3轻量级网络轻量级网络,顾名思义,即参数量小、计算复杂度低的网络。轻量级网络在训练期间需要较少的跨服务器通信,传输到例如自动驾驶汽车设备上需要更少的传输带宽,在内存小的硬件上也可以存储。典型的轻量级网络有SqueezeNet、Xception、MobileNet系列和ShuffleNet系列等。为了提高内存利用率和运行速度等,Iandola等人(2016)提出了SqueezeNet,该网络由fire module组成。fire module分为挤压卷积层和扩展卷积层两部分,前者仅包含1×1卷积,卷积核滤波器个数为${s_{1 \times 1}}$,后者包含1×1卷积和3×3卷积操作,卷积核滤波器个数分别为${e_{1 \times 1}}$和${e_{3 \times 3}}$,${s_{1 \times 1}}$远小于${e_{1 \times 1}}$与${e_{3 \times 3}}$的和。SqueezeNet在达到与AlexNet同样精度的同时,参数量降低为AlexNet的五十分之一。Inception模块可解释为常规卷积和深度可分离卷积的中间步骤,受此启发,Chollet(2017)提出了Xception模型,该模型将Inception模块替换为深度可分离卷积。深度可分离卷积首先在输入的每个通道上独立执行空间卷积,即深度卷积(depthwise convolution),随后将深度卷积输出的通道投影到新的通道空间,即逐点卷积(pointwise convolution)。Xception模型比具有同样参数量的Inception v3模型在大型数据集上表现更优异,其可以更有效地利用参数。Howard等人(2017)为移动和嵌入式应用提出了一种轻量级网络——MobileNetV1,该网络使用了深度可分离卷积,除此之外,还提出了两个超参数——宽度乘数α和决议乘数ρ,使得其可根据应用的不同选择不同的模型大小。Sandler等人(2019)提出的MobileNetV2继续使用MobileNetV1中的深度可分离卷积,并在此基础上提出了使用倒置残差和线性瓶颈的模块。Howard等人(2019)将神经架构搜素(neural architectre search, NAS)与网络结构的设计结合,提出了MobileNets系列的第3代模型——MobileNetV3,该网络除了使用NAS算法和NetAdapt算法来优化模型,还重新设计了瓶颈模块,并在网络的后半部分使用了新的激活函数h-swish。针对计算能力有限的移动设备,Zhang等人(2018b)使用分组卷积和通道洗牌操作构建了ShufflfleNetV1网络,在保持模型精度的同时大大减少了计算量。评估以上轻量级网络的计算复杂度往往使用间接指标——浮点运算数(floating point operations, FLOPs),但使用间接指标与使用直接指标有差异,Ma等人(2018)通过对使用间接指标和直接指标之间的差异进行实验与分析,提出了4条轻量级网络设计的指导方针:输入输出通道数相同使内存访问成本最小;过多的分组卷积增加内存访问成本;网络碎片降低并行度;应减少逐元素操作。根据4条指导方针,Ma等人(2018)在ShuffleNetV1的基础上,引入通道分离操作,提出了ShuffleNetV2,其不仅有效,而且准确。1.4NAS在过去的几年里,虽然深度卷积神经网络在图像分类、语义分割等领域等取得巨大的成功,但是深度卷积神经网络的结构设计仍需要许多专业知识和大量时间,近年来,神经架构搜索(neural architecture search,NAS)方法逐渐成为研究的热点之一,其采用神经网络自动设计神经网络结构。NAS方法可分为3类: 1) 基于设计不同搜索空间的NAS方法; 2)基于模型优化的NAS方法; 3)其他改进的NAS方法。1) 基于设计不同搜索空间的NAS方法。卷积神经网络的结构和连通性可由可变长度的字符串来指定,据此,Zoph和Le(2016)提出使用循环网络作为控制器来生成这样的字符串,训练这些字符串对应的卷积神经网络得到验证集上的准确率,准确率作为奖励信号,使用策略梯度来优化控制器,以使控制器使用更合适的参数来生成更准确的模型。NAS的搜索方法直接应用在大数据集上,计算量非常大。针对这个问题,Zoph等人(2018)设计了新的搜索空间,搜索空间包括结构相同参数不同的卷积层,搜索最佳单元架构就转变成搜索最佳结构体,在小数据集上搜索网络构建块,然后迁移到大数据集上。搜索最佳结构体比搜索整个网络结构快得多,并且通过简单地改变卷积单元数量和卷积单元中滤波器的数量,可以创建不同计算需求的网络架构。Bello等人(2017)提出神经优化器搜索,搜索空间中为优化器各种因素的组合,得到两个新的更新规则PowerSign和AddSign。Ramachandran等人(2017)使用自动搜索技术发现了新的激活函数Swish,在许多富有挑战性的数据集上,其比使用广泛的ReLU激活函数效果更好。数据增强在图像分类器的准确性中起到至关重要的作用,但是数据增强是手工实现的,Cubuk等人(2019)提出了AutoAugment过程,可以自动搜索改进的数据增强策略。使用传统进化算法设计的分类器尚未达到人类专家设计的分类器的准确性,Real等人(2019)对演进算法进行改进,首次开发出超越手工设计的分类器AmoebaNet-A。改进有两点:1)为每个架构添加年龄属性,倾向于搜索年轻的模型;2)搜索空间为分类器,此搜索空间将卷积神经网络与有向图相关联,顶点表示隐藏状态,标签的边缘表示常见的网络操作,提出的变异规则仅通过将边缘的原点随机重新连接到不同的顶点,并通过随机重新标记边缘(覆盖整个搜索空间)来更改体系结构。2) 基于模型优化的NAS方法。为提高神经架构搜索的有效性,研究者们提出了一系列神经架构搜索的优化方法。Liu等人(2018)提出使用基于序列模型的优化策略,在该策略中,以复杂度递增的顺序搜索模型,同时学习替代模型以指导在结构空间中进行搜索。NAS逐个训练每个子网络以收敛,测量每个子网络的准确率时也丢弃了每个网络的权重,因此NAS的计算量很昂贵。Pham等人(2018)提出的effificient neural architecture search(ENAS)强制所有子网络共享权重,以避免从头到尾地训练每个子网络,与当时某些自动设计的模型相比,使用GPU的时间少得多。针对直接指标和间接指标有差异的问题,以及特定平台网络模型难以迁移到其他平台的问题,Yang等人(2018b)提出了NetAdapt优化算法,贡献主要有两点:该算法在优化循环中加入了直接度量,直接度量是由从目标平台获得的经验度量来评估的,这使得算法可以适应任何平台;该算法为自动约束网络优化算法,在满足约束条件时,使精度最大化。神经架构搜索效率低下的原因可归结为其为一个黑盒在离散的搜索空间中进行优化,Liu等人(2019)提出了可微架构搜索(differentiable architecture search,DARTS),DARTS不再搜索候选的离散模型,而将搜索空间设置为连续且可微的,因此网络在验证集上可使用梯度下降来优化,使用较少的资源能获得不错的性能。为进一步设计出在移动设备应用的卷积神经网络,Tan等人(2019a)提出了移动神经架构搜索(mobile neural architecture search,MNAS),其创新点有两点:将模型的准确率和延迟作为奖励信号,其中延迟通过在真实移动设备上执行模型来直接测量,而不是使用不准确的间接指标,例如FLOPs;提出了新的分解层次搜索空间,避免了之前自动搜索方法中单元类型少的问题。3) 其他NAS方法。在有资源预算的情况下,扩展模型可获得更好的精度,Tan等人(2019b)提出了复合扩展方法,相比于之前的方法,该方法用一组固定的比例系数来均匀地缩放网络的宽度、深度和分辨率。扩展模型的有效性取决于基础模型,Tan等人(2019b)使用神经架构搜索设计出了一种新的基础模型,使用复合扩展方法将该模型扩展,得到一系列模型,即EfficientNets。尽管自动搜索技术很有效,但得到的模型是单个的,并有一定的巧合性,Radosavovic等人(2020)旨在发现模型结构设计规则,提出设计模型的设计空间,其中设计空间是模型结构的参数化表示,得到了由规则、简单、优秀网络组成的RegNet设计空间,RegNet设计空间可以泛化为更大的计算状态、调度长度和网络块类型,在相同训练设置下,RegNet模型比EfficientNets模型快5倍。神经架构搜索除了应用在图像分类任务上,还应用在目标检测任务上,例如Ghiasi等人(2019)提出的NAS-FPN,Zoph等人(2019)提出的基于神经架构搜索的数据增强策略。1.5小结DCNN极大地推进了图像分类任务的进展。DCNN通过多层的非线性变换,在大量图像训练数据中提取特征以代替手工提取的特征,并且深层次的卷积神经网络具有极强的特征学习和表达能力,能够学习到复杂的全局信息和上下文信息。此外,DCNN采用一些手段可达到轻量化的效果,方便应用于移动式设备和嵌入式设备中。还可使用神经网络自动设计和优化DCNN,得到性能较优异的模型的同时节省了人力和时间。除DCNN应用于图像分类外,循环神经网络、图神经网络也可用于图像分类中。CNN更加关注局部特征,若标签之间具有很强的关联性,CNN视野有限,不会很好地处理这类任务。循环神经网络(recurrent neural network,RNN)添加了反馈单元,将模型当前位置的输出反馈给模型,从而帮助下一位置进行决策。LSTM作为RNN的一种,能够解决RNN无法处理长距离的依赖问题,还能够缓解RNN梯度爆炸或消失问题,在处理长序列数据上非常有效。图神经网络(graph neural network,GNN)是一个较新的研究领域,其比CNN更擅于因果推理。图像也可转化成图,对图的分析至关重要,GNN是可直接应用于图的神经网络,对图级进行分类,在图像分类中有一定的应用。2数据集深度卷积神经网络模型在数据集上进行训练和测试,依据在数据集上得到的分类结果来衡量模型的优劣,因此使用好的数据集至关重要。在本文所综述的深度卷积神经网络模型中,只有LeNet-5使用了MNIST数据集,其他模型大多使用了ImageNet数据集、CIFAR-10/100数据集和SVHN数据集,本节介绍MNIST数据集、CIFAR-10数据集、CIFAR-100数据集和SVHN数据集。2.1MNIST数据集MNIST(modified NIST)数据集用来识别手写数字,从NIST数据集的SD-1(special dataset 1)和SD-3 (special dataset 3)构建的,其中包含手写数字的二进制图像。NIST数据集将SD-3作为训练集,将SD-1作为测试集,但SD-3比SD-1更易识别,原因在于SD-3来源于人口调查局雇员,SD-1来源于高中生。以上表明分类结果要独立于完整样本集中训练集和测试集的选择,因此,通过混合NIST数据集来建立新的数据集很有必要。SD-1有58 537幅图像,由500位作者书写,排列混乱,SD-3中图像是顺序的。新的训练集共有60 000幅图像,一部分来源于SD-1中前250位作家所书写,剩余部分来源于SD-3。新的测试集有60 000幅图像,一部分来源于SD-1剩余250位作家所书写,一部分来源于SD-3。新数据集称为MNIST数据集。在LeNet-5实验中,训练集为完整的新训练集,共60 000幅图像,测试集为新测试集的子集,共10 000幅图像。2.2ImageNet数据集ImageNet数据集是具有超过1 500万幅带标签的高分辨率图像的数据集,这些图像大约属于22 000个类别,这些图像从互联网收集并由人工使用亚马逊的机械土耳其众包工具贴上标签。从2010年开始,每年举行一次名为ImageNet大规模视觉识别挑战赛(ImageNet Large Scale Visual Recognition Challenge,ILSVRC)的竞赛,ILSVRC使用ImageNet的子集,共1 000个类别,每个类别大约包含1 000幅图像,总共大约有120万幅训练图像,50 000幅验证图像和150 000幅测试图像。深度卷积神经网络模型在ImageNet数据集上进行训练和测试,衡量模型优劣的指标为top-5错误率和top-1错误率。ImageNet通常有1 000个类别,训练和测试时,对每幅图像同时预测5个标签类别,若预测的5个类别任意之一为该图像的正确标签,则视为预测正确,那么预测错误的概率为top-5错误率;若对图像预测一次,预测错误的概率为top-1错误率。2.3CIFAR-10/100数据集CIFAR-10数据集有60 000幅彩色图像,分辨率大小为32×32像素,共10个类别,每个类别包含6 000幅图像。训练集包含50 000幅彩色图像,测试集包含10 000幅彩色图像。测试集的图像取自10个类别,每个类别分别取1 000幅,剩余的图像构成训练集。CIFAR-100数据集与CIFAR-10数据集类似,不同的是CIFAR-100数据集有100个类别,每个类别包含600幅图像,每个类别有500幅训练图像和100幅测试图像。2.4SVHN数据集SVHN数据集用来检测和识别街景图像中的门牌号,从大量街景图像的剪裁门牌号图像中收集,包含超过600 000幅小图像,这些图像以两种格式呈现:一种是完整的数字,即原始的、分辨率可变的、彩色的门牌号图像,每个图像包括检测到的数字的转录以及字符级边界框;一种是剪裁数字,图像尺寸被调整为固定的32×32像素。SVHN数据集分为3个子集,73 257幅图像用于训练,26 032幅图像用于测试,531 131幅难度稍小的图像作为额外的训练数据。3实验结果分析图像分类模型主要在ImageNet、CIFAR-10、CIFAR-100和SVHN数据集上进行训练和测试,本文整理了各个模型在以上4个数据集上的实验结果(表 1),其中ImageNet数据集为2012年ILSVRC使用的版本。所整理的实验结果来源于相应的参考文献,参考文献中没有相应实验结果的,以“-”表示。表1 基础网络模型在不同数据集上的错误率 模型 数据集 ImageNetCIFAR-10 CIFAR-100 SVHN top-1验证集(测试集)错误率 top-5验证集(测试集)错误率 AlexNet(Krizhevsky等,2012)(单个网络) 40.70(-) 18.20(-) - - - AlexNet(Krizhevsky等,2012)(5个网络) 38.10(-) 16.40(16.40) - - - OverFeat(Sermanet等,2014)(单个网络) 35.74(-) 14.18(-) - - - OverFeat(Sermanet等,2014)(7个网络) 33.96(-) 13.24(13.60) - - - ZFNet(Zeiler和Fergus,2014)(单个网络) 37.50(-) 16.00(16.10) - - - ZFNet(Zeiler和Fergus,2014)(6个网络) 36.00(-) 14.70(14.80) - - - Network in Network(Lin等,2013) - - 8.81 35.68 1.94 GoogLeNet(Szegety等,2015)(单个网络) - 7.90(7.90) - - - GoogLeNet(Szegety等,2015)(7个网络) - 6.67(6.67) - - - VGGNet(Simonyan和Zisserman,2015)(单个网络) 24.40(-) 7.10(7.00) - - - VGGNet(Simonyan和Zisserman,2015)(2个网络) 23.70(-) 6.80(6.80) - - - Inception-v2(Ioffe和Szegedy,2015)(单个网络) 25.20(-) 7.82(-) - - - Inception-v2(Ioffe和Szegedy,2015)(模型融合) 20.10(-) 4.9(4.82) - - - Inception-v3(Szegedy等,2016a)(单个网络) 18.77(-) 4.20(-) - - - Inception-v3(Szegedy等,2016a)(网络融合) 17.20(-) 3.46(3.58) - - - Highway Network(Srivastava等,2015) - - 7.72 32.39 - Inception-v4(Szegedy等,2016b)(单个网络) 17.70(-) 3.80(-) - - - Inception-resnet-v1(Szegedy等,2016b)(单个网络) 18.80(-) 4.30(-) - - - Inception-resnet-v2(Szegedy等,2016b)(单个网络) 17.80(-) 3.70(-) - - - FractalNet(Larsson等,2017) 24.12(-) 7.39(-) 4.59 23.36 1.87 The error rate of the basic DCNNs on different datasets / %Table 1 “-”表示对应文献中无数据。实验结果的描述主要包括图像分类的错误率和模型的参数量。在卷积神经网络发展的初期,研究者们致力于提高网络的分类精度,深度卷积神经网络发展愈发成熟之际,为节约训练测试的时间和内存的使用,不仅要求深度卷积神经网络具有较高的图像分类精度,还要求其具有较小的参数量。衡量轻量级网络优劣的度量除准确率、参数量外,还有浮点运算数(FLOPs)。1) 如表 1所示,基础网络模型中,从LeNet到GoogLeNet,图像分类准确率越来越高,这是因为网络越深,提取的特征越有效。2) 随着网络加深,梯度消失问题越来越严重,ResNet利用越层连接,使网络高层特征向低层传递,缓解梯度消失问题的同时大大提高了分类任务的性能。为进一步提升残差网络的性能,研究者们提出了一系列残差网络的变体。例如,He等人(2016b)改变了残差块中BN、ReLU、Conv的顺序,提出了Pre-ResNet;Han等人(2017)通过线性逐步增加残差块中特征图的通道数,构建了金字塔残差网络;Zhang等人(2018a)在原始残差网络的基础上,逐级加入越层连接,构建了RoR;Zhang等人(2019a)在RoR的基础上,线性逐步增加每个残差块中特征图的通道数,构建了金字塔RoR。这些方法表明改善层与层之间信息的流动非常重要,同时表明了在层与层之间加入短路径的重要性。此外,为使深度残差网络更易优化,研究者们提出了新的训练方法,例如,Huang等人(2016)提出的随机深度以一定概率丢弃不同的残差块,缩短了训练时间,还有Singh等人(2016)提出的随机训练方案Swapout,不难发现,这些训练方法旨在减少训练时模型的复杂度。此外,Zagoruyko和Komodakis(2016)在原始残差块的基础上成倍地增加残差块中卷积核的个数构建了WRN;Abdi和Nahavandi(2017)通过增加每个残差块中残差函数的数量构建了Multi-ResNet,这些方法都增加了网络的宽度,在保持深度不变的同时提升了残差网络的性能, ResNet及其变体在ImageNet,CIFAR, 以及SVHN数据集上的实验结果如表 2和表 3所示。表2 ResNet家族在ImageNet数据集上的错误率和参数量 模型ImageNet参数量/M top-1错误率/% top-5错误率/% ResNet-152(He等,2016a) 19.38 4.49 - Pre-ResNet-200(He等,2016b) 20.10 4.80 64.50 Pyramidal Residual Networks-200(Han等,2017) 19.20 4.70 116.40 RoR-3-152(Zhang等,2018a) 20.55 5.14 - SD-ResNet-152(Huang等,2016) 21.78 - - WRN-50-2(Zagoruyko和Komodakis,2016) 21.90 6.03 68.90 multi-resnet-101(Abdi和Nahavandi,2017) 19.93 - - ResNeXt-101(Xie等,2017) 19.10 4.40 - PolyNet(极深)(Zhang等,2017) 17.36 3.45 - Res2 Net-101(Gao等,2021) 20.81 5.57 - The error rate and parameter amounts of the Residual families on ImageNet datasetsTable 2 仅最后一行20.81和5.57为ImageNet数据集上的测试错误率,其他为在ImageNet验证集上的错误率, “-”表示对应文献中无相关数据。表3 ResNet家族在CIFAR数据集和SVHN数据集上的错误率和参数量 模型 CIFAR-10/% CIFAR-100/% SVHN/% 参数量/M ResNet-110(He等,2016a) 6.43 - - 1.70 Pre-ResNet-1001(He等,2016b) 4.62 22.71 - 10.20 Weighted ResNets-1192(Shen等,2016) 4.70 - - 19.3 Pyramidal Residual Networks-272(Han等,2017) 3.31 16.35 - 26.00 PyramidalSepDrop-182(Yamada等,2016) 3.31 16.18 - - RoR-3-WRN58-4+SD(Zhang等,2018a) 3.77 19.73 1.59 13.30 Pyramidal RoR+(146层)(Zhang等,2019a) 2.96 16.40 1.59 38.00 SD-ResNet-110(Huang等,2016) 5.23 24.58 1.75 1.70 Swapout-32(Singh等,2016) 4.76 22.72 - 7.43 CRMN-32(Moniz和Pal,2016) 4.16 19.79 1.68(16层) 40 WRN-28-10(Zagoruyko和Komodakis,2016) 4.00 19.25 - 36.50 18-layer + wide RiR(Targ等,2016) 5.01 22.90 - 10.30 multi-resnet-200(Abdi和Nahavandi,2017) 4.35 20.42 - 10.20 ResNeXt-29(Xie等,2017) 3.58 17.31 - 68.10 PolyNet(极深)(Zhang等,2017) - - - - Res2 NeXt-29(Gao等,2021) - 16.56 - 36.90 The error rate and parameter amounts of the Residual families on CIFAR and SVHNTable 3 “-”表示对应文献中无相关数据。3) Huang等人(2017)提出的DenseNet进一步提升了深度卷积神经网络的性能,究其原因,在DenseNet的每个密集块中,每层的特征图都与其前部层的特征图直接相连,并将自己的特征图传递给所有的后部层,从而比ResNet进一步改善了层与层之间信息流的传播,再次突出了短路径的重要性。随后,一系列DenseNet变体提出,继续提升了DenseNet的性能。DenseNet家族在不同数据集的实验结果如表 4所示。表4 DenseNet家族在不同数据集上的错误率 模型ImageNetCIFAR-10 CIFAR-100 SVHN top-1错误率 top-5错误率 DenseNet(Huang等,2017) 20.85 5.30 3.46 17.18 1.59 DPN (Chen等,2017) 18.55 4.16 - - - CliqueNet (Yang等,2018a) 24.01 7.15 5.06 23.14 1.51 CondenseNet (Huang等,2018) 26.20 8.30 3.46 17.55 - The error rate of the DenseNet families on different datasets / %Table 4 “-”表示对应文献中无相关数据。4) 采用注意力机制的深度卷积神经网络也取得不错的性能,除了准确率保持甚至超越经典的深度卷积神经网络,参数量也大大减少。使用注意力机制的深度卷积神经网络在CIFAR上的实验结果如表 5所示。例如,Hu等人(2018)提出的SE模块建模通道特征之间的依赖性,Wang等人(2018)提出的non-local block利用非局部操作来构建,捕获远程的依赖,Zhang等人(2019b)提出的MFR-DenseNet首先进行通道特征重标定再进行层间特征重标定,Zhang等人(2019c)构建的CAPR-DenseNet在CFR-DenseNet基础上添加了能够建模卷积特征点之间相互依赖关系的特征点重标定模块,Zhang等人(2020)提出的DFR-DenseNet使通道特征重标定和层间特征重标定同时进行,并且大大减少了参数量。从以上方法可以看出,注意力机制实质强调有用的部分,忽略用处不大的部分,使模型提取的特征更有效。表5 使用注意力机制的深度卷积神经网络在CIFAR数据集上的错误率和参数量 模型ImageNet参数量/M CIFAR-10/% CIFAR-100/% 参数量/M top-1错误率/% top-5错误率/% 残差注意力网络(Wang等, 2017) 19.50 4.80 51.30 3.90 20.45 8.60 SENet(Hu等, 2018) 16.88 3.58 - - - - ResNeXt101+CBAM(Woo等, 2018) 21.07 5.59 48.96 - - - MFR-DenseNet(Zhang等, 2019b) - - - 3.57 18.27 14.20 DFR-DenseNet(郭玉荣等, 2020) - - - 4.29 21.86 2.86 CAPR-DenseNet(Zhang等, 2019c) - - - 3.86 20.16 7.11 skNet(Li等, 2019) 18.40 - 48.90 - - - ResNeSt(Zhang等, 2020) 15.50 - 111.00 - - - GCNet(Cao等, 2019) 24.00 7.66 42.45 - - - GSoP-Net2(Gao等, 2019) 21.19 5.64 58.70 - 18.85 3.60 The error rate and parameter amounts of the DCNNs using attention mechanism on CIFARTable 5 “-”表示对应文献中无相关数据。5) 轻量级网络在ImageNet数据集上的实验结果如表 6所示,由表 6可知,大多数轻量级网络在ImageNet数据集上进行图像分类实验,ShuffleNet取得分类最好的结果,虽然大多数轻量级网络性能不及经典的深度卷积神经网络,但是参数量却大大减少。Chollet(2017)提出的Xception模型使用了深度可分离卷积;MobileNets系列主要使用了深度可分离卷积,MobileNetV1还提出了两个超参数来衡量模型的大小,MobileNetV2提出了倒置残差和线性瓶颈,MobileNetV3使用了NAS和NetAdapt算法来优化模型;Zhang等人(2018b)提出的ShuffleNetV1使用了分组卷积和通道洗牌操作,Ma等人(2018)对描述模型复杂度的直接指标和间接指标之间的差异进行研究,提出了ShuffleNetV2。从以上方法可以看出,使用深度可分离卷积、分组卷积、通道洗牌操作,或者提出新的优化方法,都是为了使参数得到有效的利用。表6 轻量级网络在ImageNet数据集上的错误率、参数量和FLOPs 模型ImageNet参数量/M FLOPS/M top-1错误率/% top-5错误率/% SqueezeNet(Iandola等,2016) 39.60 17.50 - - Xception(Chollet,2017) 21.00 5.50 22.86 - MobileNetV1(Howard等,2017) 29.40 - 4.20 569 MobileNetV2(1.4)(Sandler等,2019) 28.00 - 3.40 300 MobileNetV3(V3-Large 1.0)(Howard等,2019) 24.80 - 5.40 - ShuffleNetV1(Zhang等,2018b) 24.70 4.70 - 527 SE-ShuffleNet v2-164(Ma等,2018) 18.56 - - 12 700 The error rate, parameter amounts and FLOPs of the lightweight DCNNs on ImageNetTable 6 “-”表示所引用文献中无相关数据。6) 利用自动搜索技术设计的深度卷积神经网络逐步超越了人工设计的深度卷积神经网络的性能。NASNet、PNASNet、EfficientNets曾在一些数据集上获得当时最好的图像分类性能,Ramachandran等人(2017)使用神经网络搜索设计出比ReLU性能更好的激活函数。神经架构搜素在不同数据集上的结果如表 7所示。分析神经架构搜索设计的思路,可以发现,模型的自动设计中,可以使用自动搜索技术来搜索模型的构建块、激活函数、分类器、数据增强策略和基础模型,也可使用自动搜索技术搜索模型的优化方法,以提高网络设计的速度。表7 神经架构搜索在不同数据集上的错误率 模型ImageNetCIFAR-10 CIFAR-100 top-1错误率 top-5错误率 NAS(Zoph和Le,2016) - - 3.65 - NASNet(Zoph等,2018) 17.30 3.80 2.40 - AddSign-ld(Bello等,2017) 26.20 8.40 4.50 - PowerSign-cd(Bello等,2017) 26.10 8.10 8.00 - Inception-ResNet-v2(Swish)(Ramachandran等,2017) 19.60 4.80 - - DenseNet(Swish)(Ramachandran等,2017) - - 5.20 16.20 PNASNet(Liu等,2018) 17.10 3.8 3.41 - ENAS(Pham等,2018) - - 2.89 - AmoebaNet-A(Real等,2019) 16.10 3.40 3.40 - MobileNetV2(NetAdapt)(Yang等,2018b) 29.10 - - - AutoAugment(Cubuk等,2019) 16.5 3.50 1.50 10.70 DARTs(Liu等,2019) 26.70 8.70 2.76 - MNASNet(Tan等,2019a) 24.80 7.50 - - EfficientNets(Tan等,2019b) 15.60 2.90 1.10 8.30 RegNet(Radosavovic等,2020) 20.10 - - - The error rate and parameter amounts of the NAS on different datasets /%Table 7 仅DARTs结果中的26. 70和8. 70为ImageNet数据集上的测试错误率, 其他未指明是验证集还是测试集上的结果, “ - ”表示所引用文献中无相关数据。4结语人的神经系统由上亿个神经元构成,人类每天接收无数的视觉、听觉信息,都由神经系统处理并传出。深度卷积神经网络与人的神经系统类似,是一种信息处理系统。作为深度学习的重要方法,深度卷积神经网络广泛应用于计算机视觉任务,尤其图像分类任务中,其使用卷积自动提取特征,判断图像类别。图像分类模型愈发成熟,本文围绕着图像分类的深度卷积神经网络模型结构,首先介绍了从LeNet到GoogLeNet的基础模型、ResNet家族、DenseNet家族、使用注意力机制的深度卷积神经网络模型、轻量级网络和神经架构搜索六个部分,随后介绍了深度卷积神经网络进行图像分类实验常用的数据集,包括ImageNet数据集、CIFAR-10/100数据集、SVHN数据集和MNIST数据集,最后对所有的模型进行了实验结果的总结和分析。深度卷积神经网络在图像分类任务上大放异彩,但其与人类神经系统不可比拟,远远未达到人类的认知水平,存在以下困难和挑战:1) 深度卷积神经网络进行图像分类是监督式学习,即需要给每幅图像贴上标签,“告诉”模型图像的类别,以学习此类别图像的特征,再用学习到的特征判断未知类别的图像。而人类大脑具有思考能力,更加灵活,更多的是无监督式学习,人类视觉系统判断一幅图像之前并不需要被告知几千上万图像的类别。因此,如何使模型可以像人脑具有思考能力也许是未来的研究方向,非监督式学习是未来的发展前景。2) 深度卷积神经网络模型应用于移动式设备具有挑战性,这是因为需要保持模型准确率的同时还要考虑模型的大小以及速度。设计应用于移动设备的深度卷积神经网络模型有待进一步研究。3) 近年来,提升模型的效率成为研究热点,但是多数研究都是基于优化间接度量来简化网络的,例如MACC(memory accesses)值、FLOPs、权重数量,虽然间接指标易于运算且易于集成到优化框架,但间接指标的优化不一定使直接指标减少,例如模型速度和网络资源消耗,直接指标和间接指标的差异与平台也有关系。4) 人工设计网络耗时耗力,近年来神经架构搜索非常流行,是未来网络设计的发展趋势,但是其训练时间长,内存资源耗费非常多,对研究者的实验环境有一定的要求。
使用Chrome浏览器效果最佳,继续浏览,你可能不会看到最佳的展示效果,
确定继续浏览么?
复制成功,请在其他浏览器进行阅读