姚亮亮,张太红*,张洋宁,温钊发
(1.新疆农业大学 计算机与信息工程学院,新疆 乌鲁木齐 830052;2.智能农业教育部工程研究中心,新疆 乌鲁木齐 830052;3.新疆农业信息化工程技术研究中心,新疆 乌鲁木齐 830052)
从计算机视觉任务诞生起始,方法从机器学习主导转为深度学习主导,而卷积神经网络也成为计算机视觉中的主要方法。以卷积神经网络为主干模型的任务包括图像分类[1-2]、目标检测[3-4]、图像分割任务[5-6]等。而现存采用较为广泛的主干模型包括ResNet[7]系列、MobileNet[8]系列等。而这些模型的成功离不开卷积神经网络优秀的结构设计。卷积神经网络结构的设计大致分为两方面,一个是模型整体[7-8]的设计,另一个是模型中即插即用[9-10]的模块。因此,网络设计是深度卷积神经网络中一个必不可少的因素。
当前,卷积神经网络的结构变得越来越复杂,模型层数的增加,或者是模型宽度的增加。但是其基本操作都是围绕卷积为核心,归一化和激活函数为辅助构成的。随着网络深度越来越深,宽度越来越宽,深度卷积神经网络的表征能力也越来越强,尤其是在大数据上的表现超乎其想象。但是,在小数据集上越深的网络或越大的网络,对其效果越不好。大网络模型由于其神经元超多,也就是参数超多,对待小数据集就会陷入过拟合。所以,为了减少参数量,避免由于神经元过多而产生过饱和这样的现象,模型的发展往往朝着轻量化发展,同时也是为了适应工业的发展,加快模型的推理速度。伴随着这一需求的出现,卷积神经网络的设计成为一个极具挑战性的问题。
除去卷积神经网络本身发展的更迭,一种方便提升卷积神经网络的表征能力的模块[9-10]也发展得尤为火热,例如通道注意力模块。这种模块独立于卷积神经网络,不受神经网络的约束,可以根据各种神经原理、数学原理方便地计算通道的注意力权重。且这种模块适用范围广,可以方便地应用到计算机视觉的各种任务。
为了更好地改进通道注意力,使之更为精巧,该文主要关注使用一个参数更好地提取到通道的注意力权重。主要贡献如下:
(1)提出一种即插即用的而非卷积神经网络新架构的通道注意力模块(APA)。
(2)在数据集CIFAR-10与CIFAR-100使用该模块在多个流行的卷积神经网络主干上进行图像分类,取得了良好的性能。
在这部分,将叙述卷积神经网络的设计和卷积神经网络中注意力模块的代表性工作。
20世纪60年代,加拿大科学家从猫的视觉中枢发现了感受野、双眼视觉等视觉功能,这是神经网络发展的里程碑事件。1980年左右,出现了类似卷积神经网络的神经认知网络,用于手写字符识别和其他识别任务。1998年,Yann LeCuu等人[11]提出了基于梯度下降的学习算法─LeNet,这是卷积神经网络后续发展的开端。LeNet网络由简单卷积层和全连接层组成。2012年,随着AlexNet[1]的出现,深度卷积神经网络从此主导了计算机视觉任务,当然计算机硬件资源的提升也功不可没。AlexNet的突出特点是采用了非线性激活函数Relu和Dropout层,旨在解决梯度消失问题,防止过拟合。然后在2014年,VGG[2]网络使用了大量的3×3卷积和2×2池来扩展卷积神经网络的感受野。同年出现了GoogLeNet[12],整个卷积神经网络由初始模块组成,其本质是将信道分成几个感受野不同的信道,从而得到不同的感受野。初始模块使用了大量的1×1卷积,其主要作用是降低数据的维数,节省计算量。2015年,ResNet[7]网络的出现,让卷积网络更加深入。ResNet主要利用剩余模块组成整个网络,其跳转连接结构在缓解深度网络梯度消失的同时,极大地提高了网络特征提取的能力。2016年,DenseNet[13]重用了网络中各层的特征图,旨在缓解梯度消失问题,提高网络表示能力,减少网络参数。2018年,MobileNet[8]采用深度可分卷积作为网络的基本模块,减少了参数数量和计算量,使模型更轻便。
在人类的视觉系统中,人眼总是对感兴趣的事物关注度比较高,对不感兴趣的事物关注度低,或完全不关注。例如,在电影院中,为了让观众获得更好的体验,往往采取关灯的方式,让观众只关注电影屏幕。同样在卷积神经网络中,为了让卷积神经网络获得更好的性能,研究者会采用更好的方式去抑制或提高图像特征块中通道的重要性,给每个通道赋予一个注意力权重。在深度卷积神经网络提取特征的过程中,特征图的不同通道和不同空间位置通常是不同的部分。在计算机视觉的任务中,不同部分的相对重要性是不同的。为了使网络更有效地学习特征,注意力机制可以通过自适应学习对不同部分赋予不同的权重,这可以看作是一个特征选择的过程。通道注意力的通用形式可以表述为:
Xo=Xi*f(Xi)
(1)
式中,Xo表示输出特征向量,Xi表示输入特征向量,f(·)表示计算注意力权重的方法。从公式(1)中可以看出计算通道注意力的过程分为两步:
(1)根据输入特征向量利用计算通道注意力的方法计算出通道注意力权重,也就是式中的f(Xi)。
(2)将计算出的通道注意力权重乘到输入特征向量的对应通道中,也就是Xi*f(Xi)。
当前,卷积神经网络中最具有代表性的通道注意力模块当属压缩激励模块(SE)[9]。在压缩激励网络这篇文章中首先提出了通道注意力的概念,压缩激励模块计算通道注意力权重的方式分为两部分:压缩与激励。压缩部分是通过全局平均池化计算通道的全局上下文信息,以获得通道的依赖关系。激励部分是通过全连接层去调整通道的依赖关系,以使获得的通道注意力权重更加准确。至此,每年的计算机视觉顶级会议中都会出现一些通道注意力模块相关的设计,不过大多数都是压缩激励模块方法的改进。其中,最具有吸引力的是有效的注意力模块(ECA)[14],这种模块改进压缩激励模块中的激励部分,认为获得更合适的注意力权重,不应该使用降维的方式,遂采取一维卷积来代替激励部分的全连接层,该模块简单有效,且参数量极少。由Gao等人[15]提出的GSoP-Net在压缩模块中使用全局二阶池(GSoP)来捕获全局信息,以提高其捕获高阶统计信息的能力。Lee等人[16]提出的SRM模块采用与信道宽度相同的style pooling和full connection layer (CFC)分别代替压缩激励模块(SE)中的压缩和激励部分。Yang等人[17]提出的GCT通过范数捕获信道的全局信息,并应用一个可学习的向量(α)来缩放该特征。然后采用通道规范化的竞争机制进行通道间的互动。像其他常见的正常归一化方法一样,可学习的尺度参数(γ)和部分β用于调整归一化。最后,tanh激活用于控制注意力载体。同时国内有很多关于通道注意力的应用,如Jiang等人[18]应用压缩激励模块(SE)进行表情识别。Zhang等人[19]利用通道注意力提升表情识别任务的性能。
在这部分先介绍单参数通道注意力(APA)模块的原理和代码实现,再讨论卷积神经网络中具有代表性的通道注意力模块压缩激励模块(SE)[9]和有效的通道注意力模块(ECA)[14]与APA模块在操作上的差异以及参数量的对比。文中方法和传统的通道注意力模块在计算通道注意力权重的方式上大有不同,但是最终的目的都是为了计算通道注意力权重。
从减少通道注意力模块参数的角度,该文提出了一种只有单参数通道注意力模块(APA)。APA在计算通道注意力权重是基于简单的数学原理。流程如图1所示。
图1 单参数的通道注意力(APA)模块流程
计算通道注意力的方式同传统的通道注意力一样,也分为两部分。设输入特征向量为F[C,H,W],其中C,H,W分别代表输入特征向量的通道数以及高和宽。第一部分如公式(2),先将F[C,H,W]的通道求和,然后在得到的向量上加一个参数(b)得到特征向量(F[1,H,W])。第二部分如公式(3),将第一部分得到的特征向量和输入特征向量的每个通道求取余弦相似度,然后通过Sigmoid激活函数进行非线性激活,最后得到了通道注意力权重。再将得到的通道注意力权重乘到输入通道向量的对应通道中,如公式(4)。
(2)
Attention=Sigmoid(cos(F[1,H,W],F[i,H,W]))=
i=1,2,…,C
(3)
Foutput=Attention×F[C,H,W]
(4)
接下来,解释一下这样做的原因。之所以对通道求和是因为求和这项操作会将通道的依赖关系隐式映射到F[1,H,W]上,而添加b是因为要利用余弦相似度去度量F[C,H,W]与F[1,H,W]的相似度,余弦相似度是为了度量两个向量在方向上的关系。b的改变会导致F[1,H,W]在方向上发生改变,如图2所示,从而达到动态调整通道依赖关系的目的,以使得到的通道注意力权重更加适合各个卷积神经网络以及各类视觉任务。
图2 参数(b)对向量(S)在方向上的影响
为了说明APA的简单性,图3给出了APA模块基于Pytorch框架的实现代码。
图3 “APA代码”形式表现
表1展现了文中模块(APA)和压缩激励(SE)、有效的注意力模块(ECA)在操作上的差异以及参数量的对比。
表1 SE,ECA,APA模块操作以及参数的对比
表2 不同通道注意力模块的实验结果。
APA是一个即插即用的灵活模块,可以插入到当前流行卷积神经网络模型中,以此来增强模型对图像通道特征的表征能力。APA在ResNet系列及其改进系列(PreResNet,WideResNet),插入其卷积网络模块的示意如图4所示。
图4 单参数通道注意力模块(APA)嵌入ResNet系列的示意图
在这部分,先叙述一下实验环境与数据集情况,再讨论一下文中模块在当前流行的卷积神经网络主干上进行图像分类的实验结果。
该文的参数设置遵循所有模型的标准训练流程[20]。具体来说,每张图像进行零填充,每侧4个像素,并从该填充图像或其水平翻转中随机裁剪一个32 ×32的图像供训练使用。评价过程中,所有模型均使用原始测试集图像进行测试。优化通过动量为0.9,批量大小为128,权重衰减为0.000 5的SGD[21]优化器完成。所有网络都在单个GPU上进行训练。学习率以0.1开始,在32 000和48 000次迭代(在64 000次迭代时停止划分)时除以10。
该文使用作者提供的公共代码,因为所有方法具有随机性,所以实验均是进行3次重复后取平均值得出的结果。
实验显卡为一块24G的NVIDIA GeForce RTX 3090。
所采用的数据集是图像分类中的公开数据集CIFAR-10[22]与CIFAR-100[22]。CIFAR-10源自一个共有8 000万张微小图像的数据集。CIFAR-10共有6万张32×32的彩色图像,其中5万张图像用于训练,1万张图像用于测试。
共有10个类别,每个类别6 000张图像。CIFAR-100同CIFAR-10一样是8 000万微小图像微小数据集的子集。CIFAR-100也有6万张32×32的彩色图像,其中5万张用于训练,1万张用于测试,不同的是CIFAR-100有100个类,每个类有600张图像。
实验所采用的评价指标有TOP-1准确率(预测概率排名第一的类别与实际标签相符的准确率)、插入到卷积网络模型的模型参数、相比较基础模型的额外参数、推理速度(FPS)。推理速度(FPS)表示每秒预测图像的张数,实验结果中的推理速度是采用NVIDIA GeForce RTX 3060的6G显存版本在1万张图像上平均所得。
文中模块(APA)在CIFAR-10与CIFAR-100上进行了图像分类任务,并与同类方法压缩激励模块(SE)与有效的通道注意力模块(ECA)进行比较。由于文中方法是卷积神经网络即插即用的模块,所以要嵌入到卷积神经网络主干中进行实验。实验的卷积神经网络主干包括ResNet-20,ResNet-56,ResNet-110,PreResNet-20,PreResNet-56,PreResNet-110,WideResNet-20×10,MobileNet-v2[23]。从实验结果可以看出,APA以绝对的准确率优势战胜基线模块,分别在CIFAR-10与CIFAR-100中以ResNet-20,ResNet-56,ResNet-110,PreResNet-20,PreResNet-56,PreResNet-110,WideResNet-28×10,MobileNet-v2为主干提升了0.3百分点、-0.3百分点、0.57百分点、1.97百分点、0.3百分点、0.21百分点、0.15百分点、0.06百分点、0.26百分点、2.28百分点、0.65百分点、0.65百分点、0.31百分点、-0.64百分点、0.36百分点、1.83百分点,表明注意力模块在卷积神经网络中是非常可取的。且与同类方法相比,该文以绝对的参数优势取得了较好的精确率,较基线只有9,18,36,9,18,36,25,19的额外参数,也说明了文中模块是简单且有用的通道注意力模块。从推理速度(FPS)上看APA模块的推理速度和SE模块相近,略低于ECA模块。但是,SE模块和ECA模块具有复杂的超参数设置,需要经过大量的实验去寻找相对于各类任务的最优超参数。而APA模块没有额外的超参数需要设置,不需要大量时间调优去适应视觉任务。
该文提出了一种只有单参数注意力模块(APA),相比较同类模块,模块参数量极少,例如在ResNet-20上只有9个额外参数、mobileNet-v2上只有19个附加参数,而在更深的网络ResNet-110上也只有36个额外参数。且APA模块在准确率上和同类方法相比也有绝对的优势。综上所述,APA是一个在结构上简单、在模型上有效的通道注意力模块,且该模块有更多的机会应用到更多的计算机视觉任务中,如目标检测、图像分割。