一种嵌入并行通道蓝图分离卷积的图像分类算法

2021-12-08 07:05邱飞岳孔德伟张志勇章国道
小型微型计算机系统 2021年12期
关键词:网络结构残差嵌入式

邱飞岳,孔德伟,张志勇,章国道

1(浙江工业大学 教育科学与技术学院,杭州 310023) 2(浙江工业大学 计算机科学与技术学院,杭州 310023) 3(东华理工大学 信息工程学院,南昌 330013) E-mail:david_kong860@163.com

1 引 言

卷积神经网络在当前最先进的图像分类、目标检测[1]、语义分割[2,3]、语音识别[4]等领域下都有非常出色的表现.早在1998年,Lecun[5]等设计最原始的卷积神经网络结构LeNet-5对手写数字进行识别.2012年Krizhevsky[6]等在ImageNet图像分类竞赛凭借60M参数量模型获胜.2014年Deepface[7]使用9层卷积神经网络构建120M参数模型进行人脸分类.2015年Gong[8]等人将ImageNet模型参数大小从200M压缩至10M.2016年Mohammad[9]等人提出基于二元权值和XNOR网络结构,使用二进制值作为滤波器输入能节省近32倍内存消耗,在XNOR网络中,使用二进制值作为滤波器和卷积层的输入,卷积运算速度提高了近58倍,且内存消耗减少近32倍.2017年Zhou[10]等人通过引入权值划分、分组量化、重训练方式将预训练卷积网络每一层权值划分为两个不相交的组,通过迭代训练将所有权值转位低精度的权值,最终将预训练的卷积网络模型转换为权值约束为0或2的低精度模型进而应用与嵌入式设备.2020年Li[11]等提出一种全卷积多并联残差神经网络,将每一层的特征信息同时传输到池化层,取得较好分类效果.应用于图像分类[12]、人脸识别[13]、超分辨率算法[14]等大型神经网络结构识别每年都有突破,但是模型的大小对于嵌入式移动设备来说,是一种相当大的存储占用以及计算资源消耗使得很多优秀的网络框架难以应用于实际场景中.

本文针对以上研究问题,提出了一种基于改进适配并行通道蓝图分离卷积算法,本文算法主要有以下特点:

1)使用卷积神经网络构建端到端训练映射模型,无需特征工程.

2)采用残差网络结构,使用改进适配的BS层作为卷积操作,大幅减少模型参数以及模型复杂度.

3)借助SE模块中通道权重自适应的思想,设计网络结构B2SE,使用并行SE通道,修改SE通道中全连接卷积层,减少全连接层参数,降低模型训练成本.

4)在嵌入式设备的轻量级网络结构上表现出色,算法性能提升效果明显.

本文提出基于改进适配并行通道蓝图分离卷积网络层结构模型如图1所示.

图1 改进适配并行通道蓝图分离卷积层结构模型Fig.1 Model of blueprint separation convolution is embedded in parallel channels

2 相关工作

2.1 模型剪枝

一般来说,模型剪枝首先构建一个基本的神经网络模型,然后依据一定标准对构建模型进行剪枝操作,最后对剪枝后的神经网络模型进行参数微调从而恢复剪枝过程中损耗的性能.早在1993年,Hassibi等人[15]提出了一种OBS方法,使用误差函数的二阶导数对网络剪枝,通过训练数据和网络结构信息计算逆Hessian矩阵,对于Thrun[16]提出的3个MONK基准,在反向传播过程中分别允许90%、76%、62%的权重减少.对比Sejnowski等人[17],Hassibi等人提出的OBS方法对模型更好泛化前提下将NET talk网络权重从18000减少至1560.Han等人[18]针对嵌入式系统的轻量化网络结构,设计网络自训练连接层的重要性,通过修剪冗余连接,自我重新训练,微调剩余网络连接层的权重,将AlexNet[6]的网络层参数降低90%,VGG-16[19]的网络层参数降低92.5%,而不增加误差率.Li等人[20]对于模型剪枝过程中,卷积层的权值剪枝由于减少了全连接网络层的大量参数容易导致剪枝网络出现不规则稀疏性的问题.提出一种加速卷积网络训练的方法,删除对模型精度影响小的卷积操作,不同于删除权重连接层导致的稀疏连接性问题,在VGG-16[19]上的计算成本减少34.2%,110的残差网络[21]上计算成本减少38.6%.通常来说修剪结构和权值赋予是构建最终模型的关键,然而现在多数的修剪方式不是从头开始训练一个模型,而是选择去微调一个修剪模型[20],但是从一个修剪模型中继承权值不一定是最优的,从而导致使得修剪后的模型陷入局部最优问题出现.

2.2 权重压缩

对于嵌入式设备的有限资源,通常卷积神经网络涉及很多层以及数百万个参数,从而导致很难在手机或者嵌入式设备中使用训练完的模型.2015年Gong等人[8]提出一种通过向量化的方式压缩CNN参数方式,且实验结果向量化方法明显优于矩阵分解方法.在嵌入式设备上,将ImageNet模型大小从200MB压缩至10MB,验证了Denil等人[22]提出的卷积参数实际有效率仅5%.2016年Han等人[23]设计一种具有“修剪、量化训练、霍夫曼编码”的深度压缩方式,在不影响精度前提下,将模型存储减小35-49倍.在ImageNet数据上,将AlexNet[6]网络模型存储减少35倍,从240MB减少至6.9MB,VGG-16[19]的模型减小49倍,从552MB减少至11.3MB.Tan等人[24]提出一种自动化可移动神经网络结构搜索模型MNASNet,将模型延迟性纳入主要目标中,以便搜索能够识别在准确性和延迟性之间一个平衡的模型,在ImageNet分类中,MNASNet能在移动嵌入式设备上实现75.2%的top-1准确率,比MobileNetV2[25]高0.5%,速度快1.8倍,比NASNet[26]高1.2%,快2.3倍.嵌入式设备资源通常作为瓶颈限制,具体表现在DRAM中操作权重模型比在ALU中,资金的消耗贵两个数量级以上,且电量的消耗也是一笔巨大的开支.所以设计一种体积小、速度快、准确率高的移动设备模型是非常有必要的.

2.3 多通道卷积

Srivastava等人[27]早在2015年提出一种使用门禁单元的双分支架构调整网络信息流,从而缓解随机梯度的深层网络训练.提出了一种基于决策森林的深度神经网络,通过引入一种随机可微决策树模型,联合全局优化的分裂叶节点参数,构建具有学习分裂功能的多分支树状结构.Szegedy等人[27]提出了一个基于Inception的深度卷积神经网络架构GoogLeNet,通过设计基于Hebbian原则和多尺度直觉处理,扩大神经网络宽度,提高对网络内部计算资源的利用.Gastaldi等人[28]通过构建三分支正则化残差网络结构,使用随机仿射组合替换平行分支的标准总和用来解决模型过拟合问题.Abdi等人[29]则提出一种多残差块的卷积神经网络架构,使用模型并行化技术处理残差块,使得计算复杂度降低15%.一般来说,通过增加网络深度来提高模型的能力是非常有效的一种方式,但是网络深度的提高会导致梯度消失和梯度爆炸[30,31]等问题,2015年He等人提出的残差网络[32]结构通过跳跃式传递解决了数千层网络的训练难题,但是残差网络结构明显的缺点是随着深度增加,计算和内存开销成线性增加,1001层的计算复杂度是164层的6倍.

基于深度卷积神经网络的模型,可以通过卷积核学习到输入图像的不同特征,并且能够促进特征的重复利用,大多数深度神经网络依靠其纵向的网络深度收敛模型,但是随着深度递增,模型容易出现退化现象[3,33],Zhang等人[34]提出的RL模型在深度网络中有效降低网络复杂度,加快网络收敛,有效解决了网络退化现象.受到以上问题的启发,本文设计了一种并行通道的残差结构,通过聚合并行通道的信息,增强特征图全局感受野,有效获取对梯度更新有重大贡献的信息,使用适配蓝图可分离卷积降低计算和运行成本,并且在并行通道融合过程中引入注意力机制,获取通道权重系数,强化模型对特征的自适应性.

3 并行通道蓝图分离卷积

传统的基于残差结构网络一般是通过一个7 ×7卷积对输入图片降采样提取特征,然后使用3×3池化下采样降低特征维度,再经过残差块,最后通过7×7全局平均池化、全连接、softmax激活进行分类.针对相关工作所述问题,通过研究,本文提出基于嵌入并行通道蓝图可分离卷积的图像分类算法(The parallel channel blueprint separates the convolutional network,简称B2SE),主要改进在残差块的设计上,在残差块的内部保留1×1卷积层,使用改进适配B2SE卷积块取代原始3×3卷积层,B2SE与传统残差网络框架对比如图2所示.

图2 并行通道蓝图分离卷积核心层框架结构Fig.2 Core layer framework structure of blueprint separates convolution in parallel channels

3.1 并行通道SE卷积层

双通道SE卷积块对比单通道的SE,输入特征图适应不同卷积核,使得特征图的全局感受野增强,多视野域卷积能使得特征图合并和分离操作后全局感受野自适应调整,双通道SE能对读入特征图各通道之间自适应其卷积核的权重,使得模型的准确率得到更有效的提升.特征图S由不同卷积核操作后的特征图A和B融合、自适应平均池化降采样操作生成,特征图S为1×1尺寸,H、W为输入特征图的高和宽,如公式(1)所示:

(1)

特征图S经过FC全连接层、BN归一化、ReLU激活操作后,得到特征图Z,如公式(2)、公式(3)所示:

s=Fex(Z,W)=σ(g(Z,W))=σ(W2δ(W1Z))

(2)

Z=Ffc(s)=δ(B(Ws))

(3)

特征图Z通过scale变换,对于每个通道的输出特征,借助Channel soft attention机制应用于通道方向,得到对应通道的soft attention向量,然后将对应通道不同attention权重对应特征进行加权后得到特征图V,其中Vc∈RH×W,如公式(4)、公式(5)所示.

(4)

(5)

3.2 蓝图分离卷积层

深度分离卷积层depthwise,卷积核数量为输入特征的通道,卷积核为单通道,每个卷积核与输入特征的一个通道进行卷积操作,输出特征的通道为卷积核的数量,如图3所示.

图3 深度卷积特征Fig.3 Depth convolution feature

点卷积层pointwise,卷积核为1×1,每个卷积核对应通道对输入特征图对应通道进行卷积操作,输入特征在深度方向上进行加权操作得到输出特征,如图4所示.

图4 点卷积特征Fig.4 Point convolution feature

蓝图可分离卷积层由两层点卷积和一层深度卷积构成.使用1×1卷积核对原始输入特征图U先进行点卷积操作,获取到原始特征在深度方向上的加权值,再将获得的加权值U′,作为第2层1×1点卷积的输入特征,经过两层点卷积后,能有效提取对于不同通道在相通空间位置上的特征信息.

将输出特征图V′作为1×1深度卷积的输入,深度卷积负责在深度方向上提取特征信息,输出特征为每个卷积核在输入特征对应通道上的卷积结果,M输入特征通道,N为卷积核数量,Y、X为输入特征大小,如图5所示.

图5 蓝图分离卷积层Fig.5 Blueprint separation convolution layer

3.3 并行通道蓝图可分离卷积结构

原始图特征X在卷积操作之前先经过BN层归一化,BN层公式如下:

(6)

E[x]为均值,Var[x]为方差.

(7)

特征图S经过改进蓝图可分离全连接层提取每个通道的权重系数,卷积神经网络主要通过反向传播算法训练权重和偏置,其次提高不同类别标签间的最小汉明距离[35],反向传播过程中能根据loss能自动学习特征权重,相比一般全连接层,在提升有效特征通道权重大的同时能降低参数值以及计算量.

3.4 改进残差网络层结构

如表1所示,4列分别是基于ResNet-50[21]、BS-ResNet-50[36]、BS-SENet-50[37]、B2SE-RseNet-50网络结构,经过最大3×3卷积的池化操作后,4种网络结构在残差层有所区别,残差块堆叠的数量在最左侧,fc层括号内表示SE块中两个全连接层的输出维数,本文的B2SE块内使用参数M表示并行通道,r表示参数缩减率.

表1 50层残差网络结构对比Table 1 Structure comparison of 50-layer residual network

4 实 验

实验数据集CIFAR-10/100由5万训练样本和1万测试样本组成.另外为了评估本研究提出的模型在大规模图像分类场景中的性能,本文同时在ImageNet 2012数据集上进行了实验,它包含大约128万张用于训练的样本和5万张用于测试的样本.

本文采用一个通用的训练方案,CIFAR数据训练使用300个epoch,batch size设置为128,初始学习率CIFAR-10为0.1,CIFAR-100为0.05,在epoch的50%和75%降低学习率,本文使用SGD优化网络参数,优化器参数momentum设置为0.9,权重衰减系数为1e-4.

在ImageNet 2012数据集上我们训练了100个epoch,batch size设置为256,初始学习率为0.1,每30个epoch降低一次学习率,同样本文使用SGD优化网络参数,优化器参数momentum设置为0.9,权重衰减系数为1e-4.

本文设置WarmUp预热学习率为5个epoch,学习率更新分为两个阶段,模型预热阶段和正式训练阶段,使用预热学习率能使得模型收敛速度变得更快.

模型训练预热阶段,学习率更新公式如公式(8)所示:

(8)

模型正式训练阶段,学习率更新规则公式如公式(9)所示:

lr=0.1SUM(f(step))×base_lr

(9)

模型使用交叉熵作为损失函数,在每batch_size样本被训练后,初始化梯度为0,反向传播求得梯度,更新模型参数.

实验环境为Windows 10操作系统,深度学习框架Pytorch 1.6.0版本,该框架支持GPU加速,配置NVIDIA CUDA 10.1+cuDNN-V7.6深度学习库加速GPU,python版本为3.6,用于训练和测试的硬件配置为:NVIDIA RTX 2080Ti显卡,128G内存.

4.1 改进残差网络结构对比

为了评估改进嵌入B2SE块在小规模数据集CIFAR10上收益,本研究训练残差网络(ResNet-20/56/110)不同网络层数表现.CIFAR数据集由32×32像素的彩色图像组成,训练集包含5万张图片,测试集包含1万张图片,CIFAR-10数据包含10个图像类别.

AlexNet[6]和VGG[19]网络框架经常被演示用于模型参数压缩,但是对比残差网络结构以及在残差网络中结合Inception的ResNeXt,全连接层中的参数实测更少,所以如果能使残差网络结构的参数进一步压缩,对于在嵌入式设备中使用的可行性将提高.本研究修改残差结构的卷积层,在每一个Bottleneck中,将卷积核为3×3的层使用B2SE卷积操作,将随后的批处理、归一化的权重删除.

为了获得每个网络的基线精度,本研究对Bottleneck修改后的模型重新开始训练,训练数据预处理增强和超参数设置保持和ResNet[32]一样,而后使用恒定学习率0.001,增加40个epoch[20].

结果如表2所示,ResNet-20、ResNet-56、ResNet-110为原始模型,作为对比不含Pruned参数.可以看出嵌入B2SE块的残差网络在模型复杂度以及模型体积上下降非常明显,并且层数增加的情况下,提升的代价略有提高.

表2 CIFAR10改进残差模型性能对比Table 2 Performance comparison of residual models for CIFAR10

4.2 公开卷积网络模型对比

本文分别在CIFAR-10、CIFAR-100、ImageNet数据集上对比嵌入B2SE块收益效果.CIFAR-100数据集是CIFAR-10数据的扩充版本,在其基础上增加图片类别至100种,样本数量保持不变.ImageNet 2012数据由128万张训练集图片和5万张验证集图片组成,图像类别为1000种,本文基于以上数据集训练网络,并评估top-1 errors指标.通过在小规模数据集CIFAR-10/100上对比了VGG-19[19]、PreResNet-56[34]、DenseNet-BC-100[38,39],可以看出PreResNet-56模型复杂度修剪比收益最大,性能略有提升.在大规模数据集ImageNet上,本研究对比了VGG-16和ResNet50,相比小规模数据集CIFAR-10/100来说,性能收益相当,但是模型本身的复杂度和模型体积收益不如CIFAR数据集,总体来说,B2SE模型提升性能效果稳定,但是在小规模数据集上表现更佳.

通过进一步实验,本文对比了嵌入 B2SE 块在轻量级模型上表现如何,以及设计轻量级卷积模型收益对比实验,实验数据及模型评估如4.3节所示.

表3 CIFAR、ImageNet卷积模型性能对比Table 3 Performance comparison of convolution models for CIFAR and ImageNet

4.3 轻量级卷积网络模型评估

为了评估对比嵌入B2SE块在多类别小规模数据集CIFAR以及单一类别迁移数据集上表现,本研究在实验过程中参考借鉴了Kornblith 和Huang相同的训练超参数设置[40,41].

Standford Dogs[42]、Standford Cars[43]是ImageNet大规模数据集上的子集,分别标记120、196个类别.Oxford Flowers花卉数据集[44]包括102种花,每个类别包括40到258张图像,具体训练样本和测试样本大小如表4所示.

表4 迁移学习数据集Table 4 Transfer learning datasets

在嵌入式设备中一般使用训练好的轻量级卷积网络模型,因此本研究对比轻量级卷积网络上MobileNet的变体上进行实验,结果如表6所示.

表5 轻量级卷积模型ShuffleNetV2变体Table 5 Lightweight ShuffleNetV2 model variant

表6 轻量级卷积模型MobileNet变体Table 6 Lightweight MobileNet model variant

在超参数设置上,本研究对轻量级卷积MobileNetV1[45]和MobileNetV2[25]的Width Multiplier参数分别设置0.5和1,卷积层的子空间压缩比P设置为1/6,标准正交正则化损失加权系数为0.1.从图中可以看出嵌入B2SE的MobileNet变体相比基线模型准确率有一定提升,分析发现,相比CIFAR数据集,单一数据集数据本身模型中正则化影响导致表现没有CIFAR高.

ShuffleNetV2[46]也是最棒的轻量级模型之一,为了评估B2SE在ShuffleNetV2上的泛化能力,本研究同样分别在Width Multiplier设置为0.5和1.0的时候,对比模型复杂度和参数量以及收益效果.

通过表5中不同尺度模型的探究,可以看出轻量级卷积模型ShuffleNetV2嵌入B2SE变体显著提高了基准精度,然而模型性能和参数代价差距不大.本研究将B2SENet取代ShuffleNetV2中卷积操作,使得在低端嵌入式设备中应用改进后的模型可行性更高.

4.4 注意力轮廓聚焦

为了进一步理解本文提出的嵌入式B2SE模型对图像区域注意力分配不同权重,本文使用CAM可视化模型[47]对图像识别的预测,CAM主要用于能直观感受CNN网络特征信息关注区域.如图6所示比较了残差网络的变体以及本文提出的模型在Grad-CAM下的可视化,图像来自于ImageNet数据集,Grad-CAM可视化对类别差异区分较为明显,但是缺乏像梯度可视化方法等那样展示细粒度重要性,所以综合对比Grad-CAM以及Guided Grad-CAM捕捉CNN中更深级别的视觉结构,如图6、图7所示,发现嵌入B2SE的模型更倾向于关注图像与预测对象相关的轮廓和细节,而对比的相关模型在图像轮廓和细节上略有欠缺,并且本文的方法更加关注对象细节区域.

图6 Grad-CAM注意力轮廓聚焦对比Fig.6 Contrast of Grad-CAM attention focused on the outline

图7 Guided Grad-CAM注意力轮廓聚焦对比Fig.7 Contrast of Guided Grad-CAM attention focused on the outline

5 结 论

本文基于ResNet-CNN的网络架构,结合SE、DSCs、蓝图可分离卷积、Soft attention机制等模型提出了一种改进模型B2SE-CNN用于嵌入式设备卷积网络图像分类.本文的主要改进在于使用嵌入适配蓝图分离卷积应用于并行通道SE层,减少SE卷积通道全连接层参数,设计的并行通道SE层能够获取不同路径信息,增强特征图全局感受野,引入Soft attention机制获取通道权重系数.这些改进使得模型在嵌入式设备中卷积层参数更少,在减少参数的同时为了不丢失精度引入并行通道和Soft attention机制,使得模型对重要特征信息学习加强,而弱化无关特征信息,从而加快模型收敛速度,同时使模型鲁棒性更强.实验结果表明本文提出的嵌入并行通道蓝图分离卷积模型对应用于嵌入式设备中轻量级网络模型性能有较大收益,在未来的工作中,我们将继续探索通过迁移学习将嵌入B2SE块应用到行为识别等其他计算机视觉领域.

猜你喜欢
网络结构残差嵌入式
基于IMX6ULL的嵌入式根文件系统构建
基于残差-注意力和LSTM的心律失常心拍分类方法研究
用于处理不努力作答的标准化残差系列方法和混合多层模型法的比较*
融合上下文的残差门卷积实体抽取
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
基于深度残差网络图像分类算法研究综述①
试论分布式计算机网络结构分析与优化
带通信配网故障指示器故障监测方法及安装分析
非常规突发事件跨组织合作网络结构演化机理研究
高校图书馆开展嵌入式信息素质教育的思考