APP下载

基于3D注意力的MobileNet图像分类算法改进

2023-06-26韩晓良陈佳昌周伟松

关键词:轻量注意力神经元

韩晓良,陈佳昌,周伟松

(重庆邮电大学 复杂系统智能分析与决策重点实验室,重庆 400065)

0 引 言

随着互联网技术的快速发展,人们进入了大数据时代,其中图像作为重要的信息载体,包含大量的信息,是当今主流的信息传播形式之一。如何从大规模图像数据集当中对图像快速分类来提取视觉信息,是当今分类、检测领域不断研究和突破的技术关键点。传统的图像分类算法[1]依赖于先验知识和对分类任务的认知理解,会消耗大量劳动成本,泛化能力差,不适应急剧增长的数据集,无法满足数据时代变革的需求。

近年来人工智能领域快速发展,使得借助计算机模拟人类思考方式以及神经网络的接收和反馈方式对图像进行处理、分析和理解成为可能。深度学习[2]是机器学习的延续并且使其准确度和运行速度达到工程落地的要求。随着GPU在神经网络图形运算的优势得到应用,深度学习进入新的发展阶段。其中卷积神经网络(convolutional neural network system,CNN)快速推进了图像分类的发展。2012年AlexNet[3]使用GPU并行化技术在ImageNet数据集使网络层数达到了8层并在图像分类领域取得了突破。而后发展出更深层次的VGGNet[4]、纵行加宽的GoogleNet[5]、利用残差解决网络退化的ResNet[6]等性能优秀的网络模型。更深的网络意味着更多的计算量、更高的推理延迟。因此,这些网络模型不能部署在计算能力和存储设备有限的移动设备和嵌入式设备。

为了使深度神经网络技术在工程中得到应用,需要借助轻量型的网络架构来减少模型参数的数量。Google提出的MobileNet[7-9]系列是一种小巧而高效的CNN模型。MobileNetV1从标准卷积方面着手,将其分解为深度卷积和逐点卷积,有效降低了常用CNN模型的参数和计算复杂度。MobileNetV2[10-11]中提出倒残差模块替代传统残差模块,实现了网络性能的提升。

在前人工作的基础上,设计一种结合无参3D注意力模块[12-13]与MobileNet相结合的网络结构。其主要思想为①卷积层使用RReLU[14]激活函数保留更多图像特征,通过特征融合层传递到下一层;②倒残差模块的设计会导致信息损失和梯度混淆[15-16],在倒残差模块的基础上提出I-block模块在更高维度上进行恒等映射与空间变换,同时在第二个深度卷积部分加入inception结构[17-19]来获取多尺度特征,有效缓解信息损失与梯度混淆;③受人脑注意力机制启发,利用3D注意力机制结合能量函数计算注意力权值,由于空域抑制现象,能量函数越低,神经元与周围神经元区别越大,重要性越高,能够更好地提取特征信息,将其与I-block模块相结合,以此代替MobileNet中的倒残差模块,在新的网络当中进行有效性的验证。

1 相关工作

1.1 MobileNet网络结构

MobileNet网络作为轻量型网络的代表在移动设备中得到了应用,MobileNet的核心在于将经典的CNN结构上的池化层和部分全连接层用深度可分离卷积层代替。卷积运算是神经网络的主要计算量来源,因此,可从卷积层面着手进行轻量型网络的设计。将标准卷积的过程进行进一步简化,将其拆分为深度卷积和逐点卷积。深度卷积通过使用与输入图像相同深度的卷积核作用于通道,再通过逐点卷积进行信息融合和输出,过程如图1所示。

图1 深度可分离卷积Fig.1 Depthwise separable convolution

图1中,M表示输入通道数量,N表示输出通道数量,深度可分离卷积与普通卷积参数对比如下

(1)

(1)式中:DK×DK表示卷积核的大小;DF×DF表示特征映射图大小。在采用卷积核大小为3×3的深度可分离卷积时,网络各层中卷积核数量N为96~1 280,与所采用的卷积核大小为3×3占普通卷积部分相比影响微乎其微,可以忽略。网络的深度可分离卷积运算量只有原网络模型的1/9,有效降低了网络的参数量。通过深度可分离卷积替代传统卷积,使得其可以进行模型简化,加快移动端设备部署。

1.2 RReLU激活函数

激活函数是CNN中神经元进行非线性学习的关键点,ReLU激活函数一定程度上克服了梯度消失问题和加快了训练速度,但依然存在着弊端,因为ReLU激活函数将所有负值都设为0,随着训练次数的增加,深度部分的卷积核所对应的权重得不到更新,出现大量神经元失活现象。深度卷积过程中有40%的神经元出现失活,失活神经元仍会占用空间对于轻量型网络造成复杂度的增加。这也是轻量型神经网络相比传统大型网络精度较低的原因,因此,采用RReLU激活函数替代ReLU激活函数来解决无法及时更新负特征信息造成的神经元失活,其函数表达式为

(2)

在训练过程中,a是从[1/8,1/3]中随机抽取的数值。测试过程当中,选取训练过程中a的平均值。RReLU激活函数可以保留提取到的负值特征信息,一定程度上减少神经元失活,从而增强卷积过程中特征提取能力。

1.3 注意力机制

注意力机制本质是对现有资源的一种分配机制,在深度学习网络当中,所分配的资源就是权重。注意力机制最早在自然语言当中得到应用,然后拓展到图像分类领域,由SENet[20-21]提出,将注意力模块加入到CNN支路当中,通过加强各通道之间信息的交换,在增加了小部分参数后,使得网络性能得到提升。对于提取到的特征信息,经过注意力机制的计算,突出其重要的特征,从而更好地将数据进行有效区分。

SE作为CNN中使用最广泛的注意力机制,可以方便地嵌入VGG或者ResNet网络当中,分配特定的通道权重使性能得到提升。但是计算权重需要增加参数计算和运行时间。增加了模型复杂度,不利于移动端设备的使用。因此,寻找更为合适的无参注意力机制与CNN网络结合,对于解决轻量型模型精确度不高的问题尤为重要。

2 改进的卷积神经网络

2.1 神经网络的结构

MobileNet作为轻量型网络的代表得到了广泛应用,但与此同时,也存在着提取特征能力不足的缺点。MobileNetV2网络的倒残差模块采用先升维后降维的结构会削弱梯度跨层传播的能力,通道数先升后降低使高维度特征信息压缩,会造成信息丢失,基于其不足,于是提出I-block模块减少模块提取特征时候的损失,在深度卷积部分加入3D注意力模块,在不增加参数运算的情况下,增强对通道和位置注意力的关注。加入inception结构,提高多尺度特征提取。同时针对负值特征信息,采取RReLU激活函数替代ReLU激活函数,将其作用于I-block模块进行取反层特征融合。经过批量归一化、交叉熵损失函数和全局平均池化层达到分类要求。

将网络各层的参数设置与MobileNetV2网络保持一致,并根据CIFAR数据集中照片的尺寸对步距进行调整。改进后的网络结构流程图如图2所示。其中网络参数设置如表1所示。其中,t是升降部分的倍数因子;c是特征矩阵深度;n是重复次数;s是步距,当且仅当stride=1时,使用残差结构。

表1 网络参数设置Tab.1 Network parameter settings

图2 网络结构流程图Fig.2 Network structure flowchart

2.2 特征信息的提取和融合

网络不断纵向加深不适应于MobileNet这类轻量型网络,会增加网络参数和运算时间。因此,将GoogleNet所提出的inception结构应用到深度可分离卷积当中来,通过3×3和5×5两个深度卷积并行的inception结构来横向加宽该层网络使得其感受野得以扩大,可以提取更多尺寸的特征信息。

深度卷积所包含的局部特征信息大于潜在的局部特征信息。因此,对深度卷积层按照如下规则进行处理并进行特征信息融合。

对输入图像进行深度卷积处理。

(3)

同时对输入图像进行深度卷积取反处理。

(4)

将提取到的特征信息按照如下规则进行特征融合。

(5)

2.3 I-block模块

在卷积神经网络当中,残差网络的设计有利于缓解梯度混淆问题并且提高模型性能。在MobileNetV2中设计的倒残差模块采用先升维后降维的设计如图3所示,会影响梯度回传。I-block模块会保持更多的信息从bottom层传递到top层,有助于梯度回传。同时在第二次深度可分离卷积的时候采取inception结构来获取多尺度信息。该模块可以在执行过程中获取更多的空间信息结构如图4所示。经过I-block模块在更高维度进行空间变换,相比于倒残差模块可以减少信息损失,保留更多特征信息提高网络性能。

图3 倒残差模块Fig.3 Inverted residual module

图4 I-block模块Fig.4 I-block module

2.4 3D注意力机制

SE和CBAM注意力机制都提高了网络准确率,但是都增加了网络参数量,对于MobileNet等轻量型网络的设计不匹配。受人脑2种注意力协同工作机制启发,与现有通道注意力和空间注意力相比,3D注意力为特定层中的特征映射推断三维注意权值。在视觉神经科学当中,信息最丰富的神经元会显示出独特放电形式,激活的神经元对周围神经元具有空域抑制,利用能量函数,找到每个神经元的重要性,推导出能量函数的快速闭环形式的解,来度量神经元之间的线性可分性。

3D注意力机制所采用的能量函数为

(6)

(6)式中:bt表示偏置;M表示通道数;t表示神经元。

对能量函数采用二值标签并增加正则项,求得最小能量函数为

(7)

通过对该能量函数的快速闭环形式的解来获取神经元的重要性,属于无参注意力机制,使得改进后的网络在不增加网络参数的情况下准确率得到提升。

2.5 算法步骤

设置网络结构的初始学习率为0.05,采用学习率衰减方法训练,当训练到60个epoch时,降为初始学习率的1/10,90个epoch降为1/100,算法步骤如下。

Step1对训练集和验证集进行划分,对数据集进行数据扩充,转换为与网络相匹配的数组。

Step2初始化网络权重,超参数宽度系数设置为1。

Step3对网络进行训练利用AverageMeter函数输出Time、Loss、Acc参数。

Step4利用SGD更新网络的权重和偏置。

Step5判断每个epoch下的精度Acc,保留最好结果,训练结束时将参数写入文件。

3 实验结果与分析

3.1 实验数据集

本实验采用CIFAR-10和CIFAR-100 数据集。CIFAR-10数据集中的10类图片相互排斥,且没有重叠。CIFAR-100是100分类下的复杂数据集。数据集都采用5/6作为训练集,1/6作为验证集。选取验证集的精度作为网络分类的评价指标。数据集部分样本如图5所示。

3.2 实验仿真环境

实验仿真环境采用Pytorch1.7.1框架,编程语言为Python3.8。IDE为PyCharm2021.2.1.操作系统为Windows10 64位,CPU使用AMD 5800H,GPU使用NVIDIA GTX3050,内存为16 GByte,以实现所有实验。

3.3 训练过程及实验对比

将32×32的图片输入网络,采用随机旋转、随机裁剪等数据扩充方式,batch-size采用256,深度卷积采取3×3卷积核,I-block的分支部分卷积核采用相同数量的3×3和5×5,对每次卷积所得到结果采用RReLU激活函数进行非线性特征提取和负特征信息融合,利用能量函数中所提供的通道和位置权重,将其作用于深度卷积部分,能量越低,神经元与周围神经元区别也大,其重要性越高。将inception结构作用于第二个深度卷积部分,采用SGD优化策略。

为了评价该改进方法在 MobileNetV2上的分类效果,在相同参数设置的情况下对MobileNetV2、MobileNetV2+SE、MobileNetV2+3D这3种网络对数据集进行训练150个epoch,确保网络达到收敛。将数据集中验证集的精度记录下来进行对比,结果如图6和图7所示,比较3种网络的精度。

图6 CIFAR-10准确率变化曲线Fig.6 CIFAR-10 accuracy change curve

图7 CIFAR-100准确率变化曲线Fig.7 CIFAR-100 accuracy change curve

3.4 训练结果分析

图6和图7分别是MobileNet原网络、SE模块、3D注意力模块3种情况在CIFAR-10和CIFAR-100的准确率变化。表2为实验精度和参数对比,从表2的实验精度对比中表明,RReLU激活函数可以一定程度缓解神经元失活带来的精度降低,3D注意力与MobileNet结合的网络模型准确率明显高于SE和CBAM注意力机制。同轻量型模型ShuffleNetV2和GhostNet相比,网络参数更少,精度更高。在CIFAR-10的实验数据当中,相比基础网络MobileNetV2,注意力机制都得以提升了准确率,但3D注意力机制相比SE注意力机制提升更为明显,提升了1.5%的精度。在更复杂的百分类数据集CIFAR-100当中,3D无参注意力结合能量函数所提供的权重使得相比初始网络和其他注意力机制取得了更明显的提升,相比初始网络,准确率得到了2.22%的提升。

表2 实验精度和参数对比Tab.2 Experimental accuracy and parameter comparison

4 结束语

深度可分离卷积可以有效地降低网络的参数量,在保证精度的情况下,使轻量型网络模型得到应用。MobileNet结合3D注意力机制,相比于SENet通过增加网络参数的注意力机制,从人脑注意力机制着手,采用无参3D注意力,在未增加网络参数的情况下取得更好的准确率提升,特别是在CIFAR-100更多分类的复杂情况下取得更大的提升。表明该轻量型网络可以胜任复杂的分类任务。未来工作内容是进一步优化I-block模块,使之可以胜任更多分类任务。

猜你喜欢

轻量注意力神经元
并继竿之我见(四)
——轻量竿只有新手才用?
让注意力“飞”回来
《从光子到神经元》书评
轻量新能源汽车应用开关磁阻电机系统匹配的研究
我对轻量型并继竿的看法
跃动的神经元——波兰Brain Embassy联合办公
“扬眼”APP:让注意力“变现”
A Beautiful Way Of Looking At Things
基于二次型单神经元PID的MPPT控制
毫米波导引头预定回路改进单神经元控制