基于卷积神经网络的多尺度注意力图像分类模型
2021-01-29陈琳琳朱惠娟王晓瞳
陈琳琳,朱惠娟,朱 俊,王晓瞳
(1.南京理工大学紫金学院 计算机学院,江苏 南京 210023;2.南京理工大学 计算机科学与工程学院,江苏 南京 210094)
图像分类研究是定位、检测、识别等计算机视觉领域的其它研究方向的基础。传统的图像分类算法一般由图像数据获取、数据特征提取以及分类选择与设计构成。经典的图像分类算法包括K近邻(K-nearest neighbor,KNN)算法、支持向量机(Supported vector machine,SVM)等。图像分类算法的识别准确率高度依赖于所提取的特征质量。传统的图像分类算法基于一定的先验知识,采用人工提取特征的方式,比较难提取出高质量的图像特征,因而分类效果不尽如人意。
近年来,深度学习逐渐成为机器学习的研究热点,并已成功应用于计算机视觉、图像识别、图像分类等领域[1,2]。在众多深度学习算法中,卷积神经网络(Convolutional neural network,CNN)得到了研究者的广泛关注[3-5]。从早期的LeNet-5[6]、AlexNet[7]、ZF-Net[8]、Visual Geometry Group(VGG)[9]到GoogLeNet[10]、残差网络(Residual network,ResNet)[11]、Squeeze-and-excitation networks(SENet)[12]等,新的基于CNN的网络架构不断涌现,网络的深度和宽度也在不断增加,以便能获得更好的特征表示。但当网络增加到一定深度时,容易产生过拟合,还会带来梯度消失、梯度爆炸等问题。另外,在基于CNN的图像分类过程中,一般使用固定大小的卷积核,这样只能获得局部固定感受野的特征,不能顾及图像全局的特征。
本文提出了一种基于注意力机制的特征提取模块,并基于此提出了一种多尺度图像分类网络,以期通过提取更精确的图像特征来提高图像分类效果。
1 深度学习算法
1.1 CNN
典型的CNN网络包括:输入层(Input layer)、卷积层(Convolutional layer)、池化层(Pooling layer)、全连接层(Fully-connected layer)以及输出层(Output layer)。其中,卷积层是CNN的核心结构,具有稀疏连接和权值共享的特点。卷积层通过固定大小的卷积核进行卷积,获得特征图。通过卷积可以有效增强原始图像的信息并抑制噪声的干扰。池化层将卷积层所提取的图像的高维特征转换为低维特征,保证在图像主要特征不丢失的情况下大幅降低网络计算量,也提高了网络模型泛化能力。常见的池化操作有最大池化(Max pooling)和平均池化(Average pooling)。
神经网络不同层之间的输入与输出都为线性函数,引入非线性的激活函数[12],添加了非线性因素,弥补了神经网络无法解决非线性问题的缺陷。常见的非线性激活函数有Sigmoid函数、Tanh函数、ReLU函数。
1.2 Inception网络
Inception是Google于2014年提出的GoogLeNet中的一种多尺度特征提取模块。通常来说,网络模型的效果会随着网络深度的增加而提高,因此在GoogLeNet之前,神经网络大多是通过加大深度获得更好的训练效果。但当网络增加到一定深度时,性能趋于饱和,简单的网络堆叠会带来相反的效果,而且深度的增加还容易产生过拟合,以及带来梯度消失、爆炸等问题。而Inception模块的设计思路,则是用适当增加网络宽度代替加大网络深度,对输入数据并行提取不同感受野的特征。Inception结构如图1所示。将上一层的输入分别通过3×3和5×5的卷积,以及3×3池化提取不同层次、不同尺度的特征,通过1×1卷积实现特征降维,在降低计算量的同时不降低网络性能,最后将这些特征进行拼接,得到多尺度特征。
1.3 ResNet
2015年何凯明等提出了ResNet,其基本模块如图2所示。一般网络训练多以学习输入x和输出F(x)之间的映射关系为目标,而残差网络则是致力于学习输入和输出之间的残差关系r=F(x)-x,最后将x+r,即得到真实所希望获得的映射关系。原始输入x通过跳跃连接(Skip connection)与输出直接连接,在一定程度上避免了传统神经网络在信息传递时的丢失与损耗,大幅降低了学习难度。
1.4 注意力机制
注意力(Attention)机制是一种模仿人类注意力的机制。因为人类在感知事物的时候有较强的目的性,只会去注意特定的部分。神经网络在训练时需要大量的输入数据,希望从大量数据中快速筛选出最有价值的部分,获得更准确的结果。基于Attention机制,研究者们在各领域开展了相关工作[12-18]。文献[13]首次将Attention引入自然语言处理(Natural language processing,NLP),SENet[12]提出了一种Squeeze-and-Excitation(SE)模块,本质上是一种在通道维进行的Attention操作。该模块对特征先进行Squeeze操作,沿空间维行池化将每个二维特征压缩成1个实数,其次通过Excitation 学习每个通道的对应权重,最后将权重通过乘法加权到先前的特征上。文献[14]在图像标注中同时引入通道和空间注意力,可以更有效地对二维图像特征进行重新标定,使特征更加准确,其权重由多分类函数softmax得到。而文献[15]提出了一种残差注意力网络(Residual attention networks)应用于图像分类,通过掩膜分支计算注意力权重。2018年Sanghyun Woo等人提出了卷积注意力模块(Convolutional block attention module,CBAM)[16]。该模块也是顺序引入通道注意力和空间注意力进行自适应特征优化,通过池化和共享多层感知机得到对应权重, 模块较轻量化,也比较方便与其他网络进行融合。文献[17]在场景分割中引入了并行的通道注意力和空间注意力。因Attention机制能够一次性有效获取数据全局和局部的联系,有效提升训练效果,也是现在的研究热点之一。
2 基于多尺度注意力的图像分类网络
2.1 特征注意力模块FAM
本文提出了一种新的特征提取块——特征注意力模块(Feature attention module,FAM),其结构如图3所示。
在FAM结构中,输入图像I∈Rm×m首先经过卷积层提取出1组图像特征F∈Rm×m×L,如式(1)所示
(1)
式中:Conv2D表示二维卷积操作,下标i表示第i个卷积核,L表示卷积核数量,wi和bi分别表示第i个卷积核的权重和偏置项。
将特征Fi输入通道注意力模块(Channel attention module,CAM),得到其通道权重cw∈R1×1×L,与Fi相乘后得到1组新特征Fcat∈Rm×m×L。接着将Fcat输入空间注意力模块(Spatial attention module,SAM),得到空间权重sw∈Rm×m×1,与Fcat相乘后得到1组新特征Fcsat∈Rm×m×L。CAM和SAM采用文献[16]的计算方法,但将激活函数修改为Relu,如式(2)所示
Relu(x)=max(0,x)
(2)
通道注意力过程和空间注意力过程如算法1和算法2所示。其中Fmax和Favg在多层感知机层共享权重。同时对输入图像I进行1×1卷积,得到另一组特征F′∈Rm×m×L,将F′与Fat相加,经过Relu函数激活,得到FAM模块的最终输出。过程如算法3所示。
2.2 多尺度注意力的图像分类网络MSACNN
基于2.1节所提出的FAM模块,本文提出了一种多尺度注意力卷积神经网络(Multiscale attention convolutional neural network,MSACNN),网络结构如图4所示。
输入原始图像I,先将图像数据统一到区间(0,1),得到预处理后的图像I′。接着,将I′并行输入3个FAM块(FAM1、FAM2、FAM3)。这些FAM块的结构完全一致,但在参数设置上,FAM1的卷积层使用的是3×3卷积核,FAM2使用的是5×5卷积核,FAM3使用的是7×7卷积核。这3个FAM块得到的3组特征拼接后得到1组多尺度Attention特征。经过1次卷积和池化后,将特征转化成向量,送入全连接层,对特征进一步融合。最后由softmax层输出图像分类结果y,分类计算如下
(3)
整个图像分类过程如算法4所示。
除全连接层外,每次卷积后都伴随1个批标准化(Batch normalization,BN)层和1个Relu激活层。
网络的损失函数采用的是交叉熵损失(Cross entropy loss),如下
Lce=-∑yllogy
(4)
3 实验结果与分析
数据集Mixed National Institute of Standards and Technology Database,简称MNIST,是美国国家标准与技术研究所收集整理的大型手写数字数据库,也是图像分类领域常用的标准数据集。该数据集包含60 000个训练样本,10 000个测试样本,数据类别为0~9分别代表数字0~9。在该数据集上对不同的网络模型进行测试。
实验平台采用Tensorflow和Keras。实验前对MNIST数据集进行归一化预处理,将所有数据值限定为0~1。采用Adam优化算法对模型进行训练,并且在训练过程中设置Dropout=0.5。因为Dropout以一定的概率p让网络丢弃一部分结点,可以提高模型的泛化性能[19]。实验相关参数设置如下:输入图像大小为28×28,batchsize=128,学习率=0.001。
3.1 实验结果
选择了3种CNN网络:LeNet-5、AlexNet以及ResNet进行了实验对比。同时,选择将通道注意力模块SE[12]和空间注意力模块SAM[16]分别与ResNet结合,每个Residual模块都嵌入1个SE模块/SAM模块,分别记作ResNet-SE和ResNet-SAM。最终得到如表1所示的实验结果。3种CNN网络的参数设置与原文的设置相同,ResNet设置了3个残差块。
表1 实验结果
从表1中的数据可以看出,跟这3种经典有效的CNN网络,以及嵌入通道注意力的ResNet和嵌入空间注意力的ResNet相比,MSACNN在MNIST上的表现优异,分类准确率达到了99.33%。同时,都是以ResNet为基础结构,嵌入空间注意力的ResNet-SAM比嵌入通道注意力的ResNet-SE获得了更高的分类准确率,而普通ResNet嵌入通道注意力比不嵌入通道注意力时的准确率略有下降。ResNet在Imagenet分类竞赛中取得Top-1的成绩很大程度上得益于其采用了非常深的网络结构。而本文对比时采用的ResNet深度不够深,从而没有充分发挥出通道注意力的作用。随机选择了上述网络10次运行的情况,如图5所示。
从图5的实验结果可以看出,本文提出的MSACNN的分类表现相对比较稳定,ResNet、ResNet-SE、ResNet-SAM和LeNet-5稳定性也较好,AlexNet的分类结果会有1%~2%的浮动。上述6种网络的运行效率对比如图6所示。
从图6可以看出,从运行时间来看,LeNet-5表现最佳,ResNet-SAM最差。LeNet-5网络结构简单,参数量小,所以运行起来时间效率高。ResNet和MSACNN的运行时间相当,相对较快。AlexNet最后包含2个4 096结点的全连接层,训练参数非常多,ResNet-SE和ResNet-SAM分别在嵌入通道注意力和空间注意力后增加了较多乘法运算,所以这3种网络在运行时间方面表现较差,特别是ResNet-SAM,运行时间明显上升。从准确率看,ResNet-SAM和MSACNN分类结果更加准确。综合考虑,MSACNN可以在相对较快的时间下获得最好的分类效果。综上所述,本文MSACNN是一种结构简单,运行时间短,具有较好分类效果且比较稳定的有效的网络模型。
3.2 学习率对实验结果的影响
学习率是影响网络模型性能最重要的超参数之一。在神经网络的训练阶段,调整学习率可以改变网络权重参数的更新幅度。学习率过大,权重参数可能会越过最优值;学习率过小,网络可能需要很长时间进行优化,本文设置了不同的学习率进行实验,分别设定为0.1、0.01、0.001,得到的实验结果如图7所示。
图7(a)中学习率为0.1时,损失率曲线初始时下降,然后很快归于水平。这是因为学习率过大,导致网络无法收敛。图7(b)学习率为0.01时,网络在开始时训练损失率下降较快,10次迭代(epoch)后基本趋于平稳。图7(c)学习率为0.001时,同样在大概10次epoch后,正确率和损失率曲线基本处于平稳状态。而且当学习率为0.001时,在开始时正确率很高,损失率很低,处于一个较为理想的水平,在后续的训练中,损失率没有出现震荡的情况,而是一直保持一个很平稳的状态。因此,本文最终选择学习率设为0.001。
3.3 Batch size对实验结果的影响
批量(Batch size)就是每个Batch中训练样本的数量,也是神经网络训练中的1个重要参数。Batch size虽然没有像学习率那样对模型性能的影响很敏感,但在合理范围内,增大Batch size,训练完一次全数据集所需的迭代次数就会减少,可以加快对数据量的处理速度。但要想达到相同的精度,就需要花费更多时间。而设置过小的Batch size引入数据的随机性更大,不利于收敛。设置了3组不同的Batch size,分别为32、128、512,进行实验对比。实验结果如图8所示。
从图8可以看出,3种Batch size下网络分类的表现比较接近,都可以在较快的时间达到较高的正确率。但Batchsize=512时,在训练完20轮之后的正确率约低1%。本文综合考虑后将Batch size设为128。
4 结束语
卷积神经网络因具备传统分类算法不可比拟的优势,目前已广泛应用于图像分类领域。本文以卷积神经网络为基础,融入了注意力机制,提出了一种获取图像特征的模块FAM,使不同的图像特征具备不同的权重。同时,考虑到固定卷积核提取局部特征的局限性,引入多尺度的思想,以FAM为基础,提出了多尺度下的图像分类网络模型MSACNN。通过实验可以发现:
(1)网络提取出了高质量多尺度的图像特征,兼顾了局部和全部的图像特征相似,进而获得了较高的分类精度;
(2)相比于部分网络模型需要构建数十层乃至上百层才能获得较好分类效果的情况,本文提出的网络模型能够在网络深度较浅、宽度较窄的情况下,达到稳定性较高、正确率较高、运行时间较短的图像分类效果。不过,目前在CAM模块和SAM模块的计算过程中,特征与注意力权重之间的乘法运算相对比较费时,后续研究会考虑进一步优化这个问题。