APP下载

面向图像分类的残差网络进展研究

2020-10-19赵丽萍赵晓琦杨仕虎鲁小丫

计算机工程与应用 2020年20期
关键词:残差卷积准确率

赵丽萍,袁 霄,祝 承,赵晓琦,杨仕虎,梁 平,鲁小丫,谭 颖

1.西南民族大学 计算机系统国家民委重点实验室,成都 610041

2.南京大学 电子科学与工程学院,南京 210093

1 引言

图像分类是计算机视觉领域的重要任务,常用于场景识别、疾病诊断等领域[1]。图像分类算法主要包括特征图像的提取和分类器的设计两个步骤[2]。传统的图像分类往往通过手工提取通用性强但唯一性弱的特征,然后将提取的特征送入传统机器学习方法进行分类。Song等人[3]将支持向量机用于脑肿瘤图像分类,Rajaguru等人[4]将最近邻算法用于乳腺癌的分类。传统机器学习常用于较规范的小数据集,但对于背景复杂、类间差异大、类内差异小的图像,分类准确率不高[5]。

神经网络通过卷积和池化提取特征,通过全连接对得到的特征分类,从而判定图像类别[6]。颜建军等人[7]基于递归图和卷积神经网络对脉象进行分析识别,获得98.14%的准确率;郑茜元等人[8]基于循环神经网络对在线学习者学习行为进行检测,获得97.37%的准确率。神经网络因其良好的性能成为了图像分类领域的主流技 术 。 8 层 的 AlexNet、19 层 的 VGGNet 和 27 层 的GoogLeNet 分别获得了ILSVRC 2012 比赛第一名和ILSVRC 2014 比赛第二名、第一名。深度学习的复杂度和模型的学习能力是相关的,从上述的模型中,可以发现,网络的深度对模型的准确率至关重要,深层网络以端到端的多层方式融合了低/中/高层特征[9],网络越深,能够提取到的特征越丰富,越具有语义信息,获得的准确率越高[10]。

传统神经网络的深度若不断增加,网络模型训练过程中会出现梯度消失、梯度爆炸、模型过拟合等问题[11]。通过用正则化(drop)的方法对大量数据进行训练可以有效地解决过拟合问题[12],通过批标准化(Batch Normalization,BN)能一定程度上缓解浅层网络的梯度消失/梯度爆炸问题,更快地训练稳定的网络[13]。这样数十层的网络能够开始收敛。若网络层数继续简单增加,训练集准确率将不再增加甚至下降,出现网络退化,上百层的传统神经网络将难以训练。

He 等人[10]通过引入恒等映射,实现跳层连接,缓解了深度网络的退化问题,深度残差网络(Deep Residual Networks,ResNet)获得2015年ILSVRC比赛冠军,在接下来四年里,SCI 数据库中可检索的相关文章不断递增,从2016年的17篇增加至2019年的965篇,如图1所示,ResNet成为了图像分类的核心技术。针对残差网络的各个改进变体的内在结构、优缺点和适用场合进行了介绍,并以图表的形式直观地比较了各个变体的性能,讨论了当前残差网络所遇到的挑战和未来发展方向,为面向图像分类的残差网络的发展和应用提供一些参考。变体的改进方向主要分为以下三个部分:

图1 SCI数据库关于ResNet发表论文数量

(1)提高分类准确率;

(2)减少模型参数量;

(3)降低模型计算量。

2 深度残差网络概述

对于传统神经网络,He等人[10]认为在一个已经训练好的网络上,堆叠出一层与原网络相同的层,这至少不会比原网络效果差,但事实上传统神经网络会有退化问题,这说明了传统神经网络很难拟合出恒等映射[14],于是将一个恒等映射传入后一层这个思想便被提出来。

假定某段神经网络的输入是X,期望输出是H(X),将恒等映射传入后一层,于是把网络设计为H(X)=F(X)+X,这样就变成了学习残差函数F(X)=H(X)-X。网络性能在最差的情况下(即F(X)=0),退化为原始的恒等映射,保证了网络不会比原始网络差。这样的残差函数学习性能比原网络大大提高,残差单元强化了对原始特征的复用,从而拥有更好的性能,设计见图2(a)。

图2 不同残差网络单元

图中右侧的曲线为简单的跳层连接,它没有带入任何参数,也没有增加任何的计算复杂性,将上一层或几层的特征信息直接与本层处理后的特征信息进行相加,然后进行线性激活,其数学表达式为:

式中,Xl是第l个残差单元的输入特征。Wl是一组与第l个残差单元相关的权重,F(∗)代表残差函数,F(∗)为线性整流函数(Rectified Linear Unit,ReLU)。残差网络同时采用了维度变化、预激活单元、瓶颈单元等方法来提升网络性能,减少参数量,防止退化从而加深网络的深度。

2.1 维度变换

由于ResNet使用步长为2的卷积做下采样,会引起特征维度的变化,不同维度的特征无法直接融合,导致F(Xl,Wl)与Xl不能直接相加,这时可通过以下方式解决:

(1)采用零填充法增加维度,这样不会增加参数和计算复杂度。

(2)采用1×1 的卷积,在跳层连接部分给输入X加上一个线性映射Ws,即:

式中,Ws为线性映射矩阵。

2.2 瓶颈单元

He 等人[10]考虑到深层网络的 2 个 3×3 的卷积参数量较大,于是引入瓶颈结构,将标准残差单元的3×3-3×3卷积替换为1×1-3×3-1×1 卷积的瓶颈结构。首先通过1×1 卷积减小维度,以低维度进行3×3 卷积,最后通过1×1卷积恢复特征维度,极大地减少了深度网络的参数量和计算量,设计见图2(b)。

2.3 预激活单元

通过引入恒等映射和瓶颈结构,虽然能将网络深度从22提升到152并取得较好的图像分类效果,但当网络深度到达200层后,网络开始退化。在标准的残差单元中,虽然BN对残差函数F(X)进行了标准化,但输出特征H(X)没有被标准化,当网络深度继续加深时,依旧会出现网络退化问题。

He等人[15]提出将BN和Relu移动到了卷积之前,提升模型的正则化,同时每个残差单元的输出不再通过Relu激活,直接传递给下层网络,加快模型训练速度,网络更易于优化,设计见图2(c)。

2.4 优缺点及其适用场合

ResNet 引入恒等映射,实现跳层连接,前向和后向信号可以从一个单元直接传播到任何其他单元,训练更容易,提高了泛化能力,缓解了深度网络的退化问题,是一类具有高度精确性和良好收敛性的超深网络结构[16],ResNet 成功地将神经网络深度拓展到1 001 层,并首次在CIFAR-10 取得4.62%的错误率。然而超深网络在具有强大特征表征能力的同时,超深网络会出现在反向传播中梯度消失,在正向传播中特征重用减少、训练时间长、网络冗余性、规模庞大、小数据集上表现差、计算机性能要求高等问题[17],表现为分类准确率、模型参数量、模型计算量还有可改善的空间。ResNet 广泛应用于图像分类与生成,最近在自然语言处理中也有被使用到,ResNet的信息复用思想,对深度学习有深远影响。

3 提高分类准确率

分类准确率为分类器预测正确类别的图像数与整体图像数的比值,是分类器性能的一个直观评价指标[18]。获得好的分类准确率是所有网络模型的共同目标,ResNet 通过预激活单元和恒等映射结构获得ILSVRC 2015分类比赛的冠军,但仍有可提升空间。本章将介绍随机深度网络(Deep Network with Stochastic Depth,SD)、宽残差网络(Wide Residual Networks,WRN)、ResNeXt、SE-Res-Net、Res2Net 通过引入压缩剪枝、宽度、基数、通道注意力机制和多尺度进行分类准确率的提升。

3.1 随机深度网络

3.1.1 内在结构

ResNet的提出让网络深度突破千层,非常深的神经网络带来新的挑战:梯度消失、特征重用减少以及训练时间长。Huang等人[19]提出一种基于压缩剪枝的深度残差网络的训练方式,希望通过消除冗余特征来提升模型的准确率,设计见图3,SD随机地舍弃掉某些残差单元,使得特征直接传到下一层,能有效地降低网络的冗余性。

以残差块作为网络的构件,引入满足伯努利分布(0-1分布)的随机变量b表征该层F(∗)是否被激活。训练时,若残差块被激活,跳层连接和F(∗)同时参与训练,否则只跳层连接参与训练。其数学表达式为:

3.1.2 优缺点及其适用场合

SD 在训练时对很深的ResNet 做压缩和剪枝,增强反向传播梯度,使网络深度达到1 202 层的同时缩减了训练时间[20]。压缩操作集合不同的训练深度,提高了泛化能力,显著改善了常用数据集的分类准确率。实验表明,最后一层的生存概率为0.5时,较之ResNet,SD的训练时间稳定减少25%左右,在深度为1 202时,准确率提高1.76%。然而SD并没有针对ResNet的单元结构或网络结构进行改进,也没有将其思想融合于其他深度网络,仅仅通过压缩操作优化ResNet训练过程,应用范围较窄。其压缩过程在减小一定规模的同时,也减小了特征重用,不利于信息流的传递。建议尝试将SD 用作大规模的深度神经网络的训练方法。

图3 随机深度网络

3.2 宽残差网络

3.2.1 内在结构

SD通过随机舍弃让网络加深从而提升网络的准确率。通过增加模型深度来加强模型的表达能力从LeNet、AlexNet、VGGNet 到 ResNet 都有体现。然而训练深度神经网络有很多的难点,并且网络层数成倍增加仅能减少1%的分类错误率,同时网络训练变得很慢,在超过1 000层后,网络也出现了退化[21]。

Zagoruyko等人[21]通过对残差单元的层结构、层数、层宽等进行了广泛的实验,提出了宽残差网络,减小残差网络的深度,增大网络的宽度,即增加特征映射的通道数,在加宽后的3×3 卷积之间引入Dropout 层缓解方差偏移,设计见图4。

图4 宽残差单元

3.2.2 优缺点

WRN减少网络深度,增加网络宽度,特征重复利用增加,更易训练,计算效率提高,分类精度和准确率提升。实验表明,16层深的WRN网络以更快的训练速度取得了比1 000 层的传统残差网络更好的精度和准确率[22]。神经网络的参数量由带参数的层贡献,包括卷积层、BN层和全连接层。其中卷积层贡献主要的参数量,根据参数量计算公式,卷积层的参数量主要由卷积核大小、输入通道数、输出通道数贡献,其公式如下:

其中,Y代表参数量,K代表卷积核大小,代表输入通道数,Co代表输出通道数,增加通道数会同时增加输入通道数和输出通道数的大小,导致训练参数平方级的增加,如40层厚度的WRN通道数扩大比例为1和2时,参数量分别为0.6 MB和2.2 MB,参数量近似为平方关系,参数量平方级的增加对数据集和计算机性能的要求更高。

3.3 ResNeXt

3.3.1 内在结构

SD通过增加深度来提升网络的准确率,WRN通过提升宽度来增加准确率,加宽和加深神经网络是提高准确率的有效方法。然而网络深度的增加带来的准确率的提升越来越少,网络宽度的增加往往会伴随着指数级的参数规模提升,Xie 等人[23]脱离加深和加宽网络层次来提升网络性能的固定思维模式,提出了ResNeXt,ResNeXt是ResNet和Inception的结合体,Inception系列已经证明拆分-转换-合并的拓扑策略能获得分类精度的提升[24],不同于Inception,ResNext不需要人工复杂的Inception细节设计,而是增加具有相同拓扑结构的路径数量。以简单、可扩展的方式利用拆分-转换-合并策略进行分组卷积,见图5。

图5 聚合残差变换单元

特征信息进入ResNeXt 单元后,拆分为c个分支(图中为32)进行相同的转换,将c个分支的输出特征进行求和合并后再与转换前的信息进行融合,其数学表达式如下:

其中,c为基数,表示相同拓扑分支的数量,Ti()表示具有相同拓扑结构的每个分支的变换(这里指1×1-3×3-1×1堆叠卷积)。

3.3.2 优缺点及其适用场合

ResNeXt 用一种相同拓扑结构多分支架构代替原来ResNet的单一分支,只有几个超参数设置,高度模块化,减小了网络设计的难度和计算开销,便于模型移植,在整体复杂度相同时,分组卷积将每个小网络的参数量降低为原来的1/C,过拟合风险降低,模型准确率提升[25],ResNeXt-101(64×4d)获得 ILSVRC 2016 分类任务的第二名,根据式(4)可以计算得深度为50的ResNet和ResNeXt 的参数量大体一致。ResNeXt 虽能在相同复杂度情况下取得高分类准确率,然而组卷积的存在,若通过继续提高卷积组的数量以提高分类准确率,将会带来参数量的大增,ResNeXt-101(64×4d)的参数量为83.7 MB,比ResNeXt-101(32×4d)、WRN-40、ResNet-152、分别多了39.4 MB、14.8 MB、23.5 MB。因为ResNeXt的相同拓扑结构的分支的设计符合GPU的硬件设计原则,ResNeXt运行速度会更快。

3.4 SE-ResNet

3.4.1 内在结构

ResNet、ResNeXt 等神经网络主要将重点集中在卷积上而忽略了通道维度,卷积算子将各层局部感受野中的空间上和通道间信息进行融合[26],但卷积操作对输入特征图的所有通道进行融合,这明显是有待改进的。Hu 等人[27]提出压缩激励网络(Squeeze-and-Excitation Networks,SENet)建模特征通道之间的依赖关系,通过学习的方式自动获取每个特征通道的重要程度,从而实现提升有用特征,抑制无效特征。SENet 灵活性好,常直接应用于现有的网络结构中[28],与ResNet、ResNeXt、Inception等网络融合分别得到SE-ResNet、SE-ResNeXt、SE-Inception-ResNet-V2。SE-ResNet设计见图6。

图6 压缩激励残差网络单元

该单元架构分为压缩和激发两个步骤。首先在特征映射上执行全局平均池化,将特征顺着空间维度进行压缩,每个二维特征通道得到一个实数,然后通过两个全连接层和Sigmoid激活函数,融合各通道的特征映射,学习各通道间的关系,得到各通道的归一化权重图,该权重图与原来的特征图经过点积运算后得到SENet。SENet融合残差连接方式得到SE-ResNet。

3.4.2 优缺点及其适用场合

压缩操作得到某个通道当前特征映射的全局压缩特征向量,将感受野扩展到全局,提取的特征语义层次更高;激励操作采用两个连续的全连接,具有更多的非线性,更好地拟合通道间复杂的相关性。压缩激励操作能使SENet获得更好的收敛精度[29],该模型常与残差网络系列结合,采用残差连接方式,易于收敛。实验表明,SENet加入原模型后,新旧模型的收敛趋势和收敛速度大体一致,在相同训练条件下,新模型的收敛精度稳定高于原模型[27]。SE-ResNeXt在ILSVRC 2017获得分类冠军。然而SENet中神经元感受野的大小单一化、感受野不能根据不同尺寸的输入信息进行自适应调整、没有空间注意力的应用。建议将SENet用于图像背景复杂、类内差异小、目标在图像中不均匀分布且不需要空间转换的数据集。

3.5 Res2Net

3.5.1 内在结构

深度神经网络能在多个尺度上表示特征并在图像分类中得到了广泛的应用[30],深度神经网络的最新进展展示出更强的多尺度表示能力。目前现有的特征提取方式大多是通过分层表示多尺度特征,通常是使用多个尺度的卷积核对每一层进行特征提取[31],或是融合每一层所提取的特征[32]。Gao等人[33]提出Res2Net,从增加块内感受野的角度出发,重建普通的ResNet的单元架构,用4尺度3×3卷积核的残差分层架构取代了1×1-3×3-1×1的标准卷积,中间的卷积结构从单分支变为多分支,设计见图7。

图7 Res2Net单元

输入特征首先经过1×1卷积后按通道数均分为s个特征子集,特征子集Xi与经过Ki-1()转换后的Xi-1相加,然后送Ki()得到输出yi(Ki()表示3×3 卷积)。最后,所有分块拼接后送入1×1卷积,其数学表达式如下:

这样的结构设计使得相同的特征经过不同的卷积核后具有不同的特征尺寸。

3.5.2 优缺点及其适用场合

Res2Net使用了分块结构,块编号越靠后,经过的卷积核越多,感受野越大,特征提取能力越强[34]。多个块结构以更细粒度表示多尺度特征,对不同大小图像的检测和管理能力增强。Res2Net-101在ImageNet数据集取得的最低分类准确率较ResNet-101、DenseNet-161相应提升1.82%、1.54%。Res2Net 模块也常集成到ResNeXt和SENet等优秀模型中,并取得分类准确率的提升。然而由于Res2Net单元内的多层次卷积操作,较之相应的ResNet,运行速度约慢20%左右,应用范围不如ResNet、ResNeXt等网络宽泛,目前只在物体分类和分割类型的任务上获得较好的性能。建议将Res2Net 用于数据集中有不同大小的目标或目标的需检测信息大于它本身所占的区域等情况。

图8 密卷积网络

4 减少参数量

参数量即网络模型所有带参数的层的权重参数总量,指网络模型的空间复杂度。网络参数量越大,空间复杂度越大,对计算机的显存大小要求越高[35]。第2 章所述网络模型在提高分类准确率的同时,也带来了参数量的大增,本章将介绍密集卷积网络(Densely Connected Convolutional Networks,DenseNet)、双路径网络(Dual Path Networks,DPN)、MobileNetV2 分别通过引入密卷积、双路径、线性瓶颈倒置残差结构在保持分类准确率的同时降低参数量,提升网络性能。

4.1 DenseNet

4.1.1 内在结构

ResNet通过构造恒等映射设,进一步缓解网络退化问题[10],SD通过随机丢失网络中一些层,证明了深度网络的冗余性[19],以上研究表明,如果卷积网络在输入和输出层之间包含跳层连接,那么该网络可以更好训练,增加深度,提高精度和准确率。Huang 等人[36]提出DenseNet,在每个密集单元中,以恒等映射的方式将每一层与其他所有层相连,前面所有层输出特征融合为该层的输入特征,该层的输出特征传递给所有后续层,设计见图8。

在每个密集单元中,每层的输出特征通道数一样,第l层的输入由之前所有层的特征映射按通道组合在一起然后进行非线性变化,其数学表达式为:

式中,H[∗]表示BN-Relu-conv(1×1),BN-Relu-conv(3×3)非线性变换过程,[∗]表示对前面各层输出的特征映射通道合并操作,得到第l层的输入通道数。

4.1.2 优缺点

DenseNet通过每层直接相连的旁路设置,进行特征重用,不需要重新学习冗余的特征映射,大幅减少了网络的参数量[37];每一层直接从损失函数和原始输入信号中获取梯度后改进了整个网络的信息流和梯度,加强了特征传播,在一定程度上缓解了梯度消失问题,易于训练;每一层的输入经过通道合并,不是对前面特征的简单复用,获得了全新的特征,提升了特征挖掘能力,实现分类准确率的提升[38]。DenseNet-100 以0.8 MB 的参数量在 CIFAR-10 数据集上较 SD-110、ResNet-110 分类准确率分别提升5.74%、7.71%。然而DenseNet 存在后层提取的特征前层已经获得,造成特征上的冗余、频繁的通道合并操作对计算机性能要求高等缺点。

4.2 DPN

4.2.1 内在结构

ResNet 通过旁路共享特征和保留中间特征的残差结构,可以有效降低特征冗余度,但难以实现高层对低层新特征的挖掘。DenseNet通过密集连接通路,可以有效地实现对底层新特征的挖掘,但却存在特征上的冗余。基于此,Chen 等人[39]结合 ResNet 与 DenseNet 的核心内容,提出成双路径网络DPN,设计见图9。

图9 双路径网络单元

DPN单元由残差路径和密集连接路径组成,特征信息经过1×1卷积、3×3组卷积、1×1卷积的瓶颈结构后输出分为两部分,一部分与原残差路径的特征信息通过相加融合,另一部分的信息与原密集连接路径的特征信息进行通道合并。

4.2.2 优缺点及其适用场合

DPN 有效融合了 ResNet 和 DenseNet 模型思想,实现优势互补,在共享特征的时候保持双路径架构挖掘新特征的灵活性[40];同时采用组卷积和普通卷积操作,在保证提取丰富特征的同时大量降低模型参数量[41]。DPN具有分类精度高、参数效率高、计算成本低、内存消耗少、便于优化等优点。DPN-98 较ResNeXt-101(64×4d)的参数量减少了26%,显存占用减少9%,训练速度快15%。然而DPN 主要是将已有的网络结构融合,创新性还有可提升空间。DPN广泛用于图像分类,目标检测和语义分割,在多目标、小目标上也有较好的表现。

4.3 MobileNetV2

4.3.1 内在结构

依靠强大的计算能力作为支撑,深度神经网络能很好解决部分图像分类问题,但在计算资源和存储空间有限的移动端部署困难,Sandler 等人[42]提出轻量级神MobileNetV2,构建具有线性瓶颈的倒置残差结构,设计见图10。

图10 MobileNetV2单元

该模块采用低维压缩数据作为输入,首先采用1×1卷积将其扩展为高维,然后用轻量级的3×3深度可分离卷积进行滤波,再通过1×1 卷积把特征再映射到低维,形成倒置残差结构。Relu会使负值置零,当通道数压缩到较少时进行Relu 激活,会对信息张量造成较大的损失,第二个1×1 线性卷积的输出特征不再经过Relu,直接与恒等映射特征进行融合,得到输出特征。

4.3.2 优缺点及其适用场合

深度可分离卷积,每个通道先各自进行卷积操作实现特征提取,通道数不变,再通过1×1 卷积实现跨通道卷积操作实现特征组合,可大幅减少模型参数量,降低内存占用[43]。经计算,当卷积核尺寸为3时,参数量大约会减少到原来的1/9。通道数较多时进行Relu,信息张量的损失较少,MobileNetV2 使用线性瓶颈倒置残差结构,扩张深度可分离卷积的通道数,在大幅减少模型参数量的同时,获得较高的分类准确率[44]。3.4 MB的MobileNetV2在ImageNet获得28%的分类准确率,加速深度网络在移动端的应用。然而较低的参数量使其准确率无法与常规的深层网络相比,建议将MobileNetV2用于分类精度要求不高、计算力受限的移动设备。

5 降低计算量

计算量即网络执行时间的长短,指网络模型的时间复杂度,网络计算量越大,时间复杂度越高,GPU的运算能力要求越高,训练时间越长[45]。网络在提升分类准确率的同时往往伴随着计算量的增加。本章将介绍残差注意力网络和ShuffleNet通过引入混合注意力机制和通道洗牌操作降低网络计算量,提升网络性能。

5.1 残差注意力网络

5.1.1 内在结构

深度学习发展到现在,很多工作开始转向通过融合注意力机制进行性能提升[46]。Mnih 等人[47]率先将注意力机制引入循环神经网络模型进行图像分类,并在公开数据集上将图像分类错误率降低了4%。Wang 等人[48]首次成功将深度残差网络与混合注意力机制进行有效结合,提出残差注意力网络。通过对每个注意力模块设置主干分支和掩膜分支,将运算聚焦于特定区域并使该部分区域特征得到增强,设计见图11。

图11 残差注意力网络单元

主干分支由现有网络模型构成,如ResNet、ResNeXt等,负责提取特征。掩膜分支形成通道域和空间域的注意力机制,主要包含前向的降采样和上采样过程,前者快速收集整个图像的全局信息,后者将全局特征信息与原始特征图相结合,学习到主干输出特征的归一化权重图。采用残差学习方式,将该权重图与主干输出特征图点积后与主干输出特征求和,其数学表达式如下:

式中,x为输入信息,i是像素点的位置,c是对应的通道位置Mi,c(x)为掩膜分支的输出,取值在[0,1]区间,Fi,c(x)为主干分支的输出。

5.1.2 优缺点及其适用场合

残差注意力网络将残差连接方式与混合注意力模块相融合,能使模型在增强重要特征的同时不破坏原始特征的特性。不同模块的注意感知特征随着层数的加深而自适应变化,浅层注意力模块主要集中于图像背景,深层注意力模块则聚焦于待分类的图像,深浅层多注意力模块相结合,特征表达能力增强[49]。Attention-92在ImageNet 数据集获得最低分类精度为19.5%,较ResNet-200,分类准确率提升0.6%的同时计算量降低31%左右。残差注意力网络通常用于图像背景遮挡、类内差异小、目标在图像中不均匀分布且需要空间转换的数据集。

5.2 ShuffleNet

5.2.1 内在结构

大多数神经网络模型的发展方向是通过变得更大更深来提高准确率[50],但会造成模型参数巨大,现在的深度神经网络通常有数百层和数千个信道,需要以数十亿次的浮点运算,难以运行在移动设备上,Zhang等人[51]Zhang 等人[32]提出 ShuffleNet,基于残差连接方式,对ResNet单元引入逐点组卷积和通道洗牌的操作,得到轻量级的神经网络模型,设计见图12。

图12 ShuffleNet单元

相对于ResNet的1×1-3×3-1×1标准卷积,输入特征在进入ShuffleNet单元时,先进行1×1逐点组卷积,然后将此时的特征映射进行通道洗牌后进行3×3 的深度可分离卷积,为了与恒等映射做通道融合,最后将特征映射送入1×1逐点组卷积。

5.2.2 优缺点及其适用场合

小型网络中大量的逐点卷积会造成有限通道之间约束性过强,从而损失精度,同时若多个逐点组卷积堆叠在一起,某个通道输出仅从一小部分输入通道中导出,会降低通道组之间信息的流通[52]。ShuffleNet 将逐点组卷积和通道洗牌相结合有效解决以上两个问题,在保证精度的同时,计算量大大降低[53]。ShuffleNet-50 在ImageNet获得25.2%的最低分类准确率的同时,计算量降至2.3 GFLOPS,是一个典型的轻量化神经网络模型。然而ShuffleNet中大量使用1×1组卷积和瓶颈结构使得网络在实现时需要大量的指针跳转,运行速度还可以继续提高。建议将ShuffleNet应用于分类精度要求不高且计算力受限的移动设备。

6 主流数据集、性能对比与应用研究

残差网络及其变体为上百层深度神经网络,参数量和计算量都较大,在进行图像分类时,需要大量的数据拟合网络模型,需要高性能的计算机设备[54],选择合适的数据集并优化网络模型的参数量和计算量是提升网络性能的重要途经。残差网络及其变体已在MNIST、SVHN、CIFAR、ImageNet等主流数据集上得到了充分的验证,具有高度的准确性、稳定性和推广性,近年来,残差网络因其良好的性能已在国内外取得了广泛的应用。

6.1 常用数据集

MNIST:60 000个训练集,10 000个测试集,每张图片由0~9单个手写数字组成。

SVHN:73 257 个训练集,26 032 个测试集,531 131个附加样本,每张图片来自真实世界的门牌号。

CIFAR-10:10 个完全互斥的类,50 000 个训练集,10 000个测试集,每张图片均为RGB彩色图像。

CIFAR-100:20 个大类,100 个小类,每个小类 600张图像,其中500个训练集,100个测试集。

ImageNet:2.2 万类,1 500 万张图像,是目前世界上图像分类最大的数据库。

6.2 性能对比

小参数量、低复杂度、高分类准确率是网络模型追求的共同目标,然而高准确率往往伴随着庞大的网络规模,这会引起计算量和参数量的提高[55]。以网络模型的理论参数量和计算量为横坐标,以该网络在224×224大小的ImageNet数据集取得的top-1分类错误率为纵坐标得到图13,以网络模型为横坐标,参数准确率密度和计算量准确率密度为纵坐标,得到图14。图13、图14反应了各变体的性能及未来优化方向,attition网络提升混合注意力,SENet 提升通道注意力,它们都拥有较高的分类准确率,说明了注意力机制在计算机视觉领域的巨大潜力,但两者的信息密度较低,每个参数和计算量贡献的分类准确率较少,其潜在的学习能力没有得到充分的利用;MobileNet 和ShuffleNet 为轻量化网络模型,分类准确率略低于其他网络,但大大缩减了网络模型的参数量和计算量,信息密度较高,降低了对计算机性能的要求,使其能够应用于简单的移动设备。未来网络性能的提升的重点方向可能是各变体间进行融合,实现优势互补,特别是注意力机制与轻量化网络模型的融合,同时获得较好的分类准确率与信息密度。

图13 各变体参数量、计算量-准确率散点图

图14 各变体参数准确密度、计算量准确密度柱状图

6.3 应用研究

残差网络及其变体自提出以来,就得到了国内外学者的广泛应用,各变体常常不是单独使用,而是进行多网络模型融合或改进,解决了手势识别、行为识别、遥感图像、高光谱图像、农业病害、疾病诊断等场景问题。

韩文静等人[56]结合SENet与残差块网络,分别构成第一通道提取全局特征、第二通道提取局部特征,新双通道模型获得了99.80%的手势识别率;杨国亮等人[57]结合DenseNet 与MobileNetV2,宋玲等人[58]结合Mask R-CNN[59]与ShuffleNet,在保证精度的前提下,降低参数量与计算量,新模型分别于遥感图像场景分类与人体关键点检测中表现出良好性能;解怀奇等人[60]以ResNeXt为基础提取视频帧时空图,引入注意力机制增强网络表征能力,实现视频人体行为识别;Kang等人[40]结合组成成分分析(Principal Component Analysis,PCA)[61]和DPN,分别用于高光谱图像的特征提取与分类;Yang等人[62]对 GoogLeNet、InceptionV4 和 WRN 等网络进行训练、测试、评价和比较,得出了基于WRN 的农业病害识别方法。

7 总结与展望

本文就面向图像分类的残差网络及其变体进行了深入的分析与综述。从2015 年至今,残差网络及其变体通过引入瓶颈结构、深度、宽度、压缩剪枝、特征重用、基数、注意力机制、深度可分离卷积、尺度等操作,很大程度上降低了复杂度,减少了参数量,提高了分类准确率,在图像分类领域取得了不小的发展与应用,成为了图像分类领域的研究热点。但是目前依然存在许多的缺点:

(1)残差网络的性能极大地依赖于数据集的多少,然而现在很多领域的数据集还不够完善,数据量较少。特别是医学领域,影像诊断急需智能化,但CT、MRI 的数据集很少,很难获得较好的分类准确率。如何在数据量较小的情况下,引入数据扩充、迁移学习和预训练等操作提高分类准确率将是未来的研究方向。

(2)参数量过大,导致收敛速度慢、训练时间长、训练需要较大的硬件资源,在移动端等设备的应用较少。仍然需要进一步研究如何在嵌入式和智能设备中保持图像分类准确率的同时减少网络参数量。

(3)信息流的不对称和网络冗余,由于残差网络的宽度与深度提高了许多,这导致了大量网络路径冗余。同时由于激活函数对底层信息流的筛选导致了信息的不对称,提高对底层信息的利用率以及在不改变性能的情况下减少网络的冗余度值得深入研究。

(4)残差网络的泛化能力仍需继续增强,如今的残差网络依然有较大的图像分类误差率,如何提高泛化能力防止过拟合,将残差网络与注意力机制结合,残差块改进、网络连接改进、压缩剪枝改进等都是可继续深入研究的方向。

(5)实践经验丰富,理论分析不足,大多数网络模型的提出是基于大量的实践,以图像分类效果作为评判的依据,可解释性不强,有时很难对其进行验证。进行理论的拓展与深入将会推进残差网络在图像分类领域的应用。

(6)深度神经网络具有较多的超参数,超参数的选择很大程度上影响分类准确率的高低,人工超参数的调整是一件繁琐困难的事。网格搜索[63]和随机搜索[64]分别同时独立训练所有超参数组合模型、随机超参数组合模型,通过评估各自的性能从而得出最优参数值;遗传算法[65]和贝叶斯优化[66]分别通过交叉和变异、探索和挖掘,自适应地利用先前结果指导搜索的方式自动优化参数。合理地应用现有的自动化调参方法并创新高效调参模型将是未来一大挑战。

猜你喜欢

残差卷积准确率
基于双向GRU与残差拟合的车辆跟驰建模
基于3D-Winograd的快速卷积算法设计及FPGA实现
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
高速公路车牌识别标识站准确率验证法