基于权重和BN层剪枝的晶界检测模型压缩算法探析

2022-07-29 03:20卯福启
北京工业职业技术学院学报 2022年3期
关键词:剪枝正则晶界

李 静 卯福启,2

(1.北方工业大学,北京 100144;2.中国地质大学(北京),北京 100083)

0 引言

晶界属于晶体缺陷的面缺陷之一,它是结构相同而取向不同的晶粒之间的界面,晶界面上的原子排列处于2个取向之间的过渡状态。晶界的存在会严重影响晶体材料的强度、塑性和抗拉程度等性能指标。高分辨率电子显微镜(High Resolution Transmission Electron Microscope,HRTEM)的出现为晶界提供了纳米级别下原子排布的清晰图像,也为晶体缺陷的智能化检测奠定了基础。随着计算机视觉的发展,基于图像处理的深度学习技术推动了晶体缺陷高分辨率图像的研究。目标检测网络EfficientDet模型[1]5在通用大型目标检测数据集上获得了优异的检测精度和速度性能,笔者将其作为晶界缺陷检测的基础模型,但由于EfficientDet网络结构具有模型缩放等特征,导致模型结构存在冗余、参数量大等问题,若通过神经网络芯片对专用硬件加速,则会带来高昂费用的应用成本负担。模型压缩技术能够通过对原有模型进行参数压缩、维度缩减和重新设计简单网络结构等操作来加快网络训练和推理时间,有效降低结构和参数冗余,从而减少空间存储占用和计算复杂度,有助于深度学习技术的应用和部署。这种技术不仅应用成本低,而且可以与硬件加速方法相互加成。

目前,在模型压缩和加速方面大致分为剪枝与量化、低秩因子分解、迁移或压缩卷积滤波器、蒸馏学习等4类方法[2]。其中,网络剪枝主要指在网络训练过程中寻求一种评判重要性的机制,剔除不重要的连接、节点甚至是卷积核,达到精简网络结构的目的。相比于其他模型压缩的方法,网络剪枝算法不仅原理简单且操作方便,还可以在不影响性能的前提下,通过设定恰当的剪枝准则去除网络中对输出特征贡献小的无用部分。笔者旨在通过寻找合适的剪枝策略机制对晶界检测EfficientDet网络进行模型压缩,采用权重剪枝和BN层通道剪枝的方法,使网络模型结构更加精简,参数量减少,加快运行速度,达到实时应用的标准。

1 神经网络剪枝算法相关研究

随着搜索算法中剪枝策略的广泛应用,剪枝算法也逐步应用到深度神经网络中。许多学者对神经网络中不重要的连接权重进行剪枝操作。如2015年SONG H.等[3]先通过训练网络确定重要连接,然后修剪不重要连接,最后重新训练并微调剩余网络连接的权重,实现了将经典网络AlexNet和VGG等模型参数压缩几十倍。SONG H.等[4]提出了用EIE方法将压缩模型与硬件加速结合,实现了CPU和GPU的速率及功耗性能的大幅改善。LI H.等[5]通过对卷积核中权值绝对值之和进行排序,裁剪重要性低的卷积层,减少卷积神经网络的计算成本,这种方法不需要使用稀疏库或专用硬件加速。WEI W.等[6]采用一种类似于L1正则化的Group Lasso方式,在不损失精度的前提下将网络学习的参数尽可能地结构化稀疏。SONG H.等[7]则混合使用了剪枝、量化和编码3种压缩技巧,将经过剪枝后的模型进行量化操作再整合霍夫曼编码,使网络在保持相同准确率的基础上达到最高49倍的压缩比。

通道剪枝也是模型压缩和加速领域的一个重要分支。通道剪枝同权重剪枝相似,在保证网络的剪枝率和剪枝结构确定的前提下,对每个通道的重要性进行评估,剪掉重要性排序最低的通道,并使得剪枝后网络模型的精度损失最小。HE Y.H.等[8]首先用通道选择机制添加L1范数,约束权重,使权重更加稀疏,并把稀疏的通道裁减掉,然后基于最小二乘法约束剪枝前后输出的特征图。LIU Z.等[9]提出一种针对BN层通道剪枝的方法,该方法利用BN层的权重评估输入通道的重要性分数,过滤掉分数低的通道,在通道裁剪的同时,减少网络对应的卷积核以及卷积通道个数,逐层剪枝达到压缩效果。LI B.等[10]采用了自适应批量归一化的简单有效的评估技术方法,揭示不同剪枝子网络与其微调收敛精度之间的强相关性,该方法不需要对子网络进行实际微调,就能在候选子网络中快速找到具有最高潜在准确率的网络。GUO S.等[11]提出DMCP方法,该方法通过交叉熵损失和预算正则化的梯度下降直接优化网络,搜索最优通道子结构。LIU N.等[12]提出基于神经网络自动化结构剪枝的框架,使用混合型的结构化剪枝维度和高效的交替乘子优化算法对训练过程中的正则项动态更新,利用启发式搜索方式进行抽样。

2 EfficientDet算法

2020年,在EfficientNet分类网络的基础上[13],Google Brain团队提出了一种结合新型双向特征金字塔网络(Bidirectional Feature Pyramid Network,BiFPN)和缩放原理的EfficientDet目标检测网络。该网络共有8个不同版本,从EfficientDet-D0到EfficientDet-D7。其中,EfficientDet-D7在COCO数据集上的mAP(mean Average Precision)高达51%,超过了现有大部分目标检测网络的性能,网络的模型框架如图1所示。

图1 EfficientDet网络

EfficientDet网络是兼备检测精度和速度的优秀目标检测算法,该网络利用对骨干网络和特征金字塔网络结构的缩放原理,增加特征提取网络的深度,并结合注意力机制原理,考虑不同特征层的重要程度,以实现优异的检测效果。但是由于模型缩放的特征,网络存在一定的结构复杂性,使得模型参数量不断增加。为减少缺陷检测模型的冗余参数量,提高模型检测速度,同时确保网络性能,可对EfficientDet网络进行必要的剪枝操作,以降低模型参数量和计算复杂度,提高模型运行速度,缩短运行时间,便于晶界检测模型的应用和部署。

2.1 非结构化权重剪枝

由EfficientDet网络中BiFPN结构可知,由于不同分辨率的输入特征对融合输出特征的贡献不同,因此该网络采用了一种类似于计算机视觉领域注意力机制结构的加权双向特征金字塔网络BiFPN结构。该结构在融合不同层输入特征的过程中采用了大量权重参数,这无疑会带来权重参数的冗余,因此剪枝网络权重是必要的。BiFPN结构采用的快速归一化加权融合策略如式(1)[1]4:

(1)

式(1)中,O为输出特征;∑i,∑j分别为第i层和第j层求和;ωi,ωj分别为第i层和第j层的权重参数,用来作为判断输入到下一层网络的特征重要程度的标准;ε为一个极小的值,用来避免数值不稳定,ε=0.000 1;Ii为第i层的输入特征。

通过网络参数自动学习以后,根据权重值的大小进行排序,然后对应剪枝比例确定权重阈值,便可以进行EfficientDet模型的权重剪枝。

此外,由于L1正则化倾向于产生更少的特征,使得网络部分冗余参数在训练过程中尽可能变为0,从而生成一个稀疏化的网络模型。L2正则化在权重更新过程中使参数尽可能小,使网络模型结构更加简单,泛化能力更强。在网络剪枝过程中,引入L1正则化和L2正则化,促使网络中冗余参数趋近很小的数,可以提升权重剪枝的推理速度,同时降低误剪枝的风险。因此,笔者通过L1正则化和L2正则化的方法对权重和通道参数矩阵进行选择。

L1范数是向量中各个元素绝对值之和,可以进行特征选择,即让特征的系数变为0。L1正则化方法如式(2)所示[14]252,它相对要比 L2 正则化更容易产生稀疏解。

(2)

式(2)中,C为正则化后的损失函数;Co为神经网络原来的损失函数,在原始损失代价后面加入一个L1正则化项,即所有权重ω的绝对值之和;n为训练集的样本大小;λ是正则项系数,用来权衡正则项与Co项的比重。

L2范数是向量各元素的平方和再求平方根,它可以使网络在再训练过程中保留下来的参数数值逐渐减小,以防止网络过拟合,提升模型的泛化能力,也有利于模型保持原有精度。L2正则化方法如式(3)所示[14]253。

(3)

式(3)中,C为正则化后的损失函数;Co代表神经网络原来的损失函数,在原始损失代价后面加入一个L2正则化项,即所有权重ω的平方之和;n为训练集的样本大小,为使求导方便增加系数1/2;λ是正则项系数,用来权衡正则项与Co项的比重。

然而,权重剪枝标准在非结构化剪枝的情况下,通常仅将不重要的特征权重置0,生成的权重张量可以稀疏,但却保持其原始形状,因而得到的只是稀疏化网络。虽然通过减小权重张量的尺寸能减少浮点运算的数量,但非结构化修剪会产生许多带有0的权重张量,且不会自动减小此类张量的大小。非结构化剪枝最主要的缺点是数据结构的加速稀疏需要硬件设备支持额外的存储开销,但目前对于稀疏操作进行加速支持的库非常有限,大多数框架和硬件无法加速稀疏矩阵的计算,这就意味着无论用多少0填充参数张量,都不会对实际训练成本产生实质的影响,仅仅是一种直接改变网络架构进行剪枝的方式,而不是对任何框架都适用的方法,在应用上效果不尽人意。因此,人们开始尝试将不重要的权重对应的特征层直接进行剪枝,通过改变网络架构方式的修剪方法,真正达到网络模型压缩的目的,降低模型结构的冗余,实现参数量和计算力的减少,这种方法称为结构化剪枝。

2.2 结构化BN层通道剪枝

笔者使用的网络模型中特征提取部分采用了多尺度缩放原理,通过结合残差网络增加神经网络的深度,通过改变特征提取的层数和提高输入图像分辨率,使网络能够学习和表达更丰富的特征。因此,特征矩阵的通道数量相较于其他网络更多,剪枝网络通道数对于该网络模型的压缩也是必要的。在结构化通道剪枝算法中,最常用的一种算法是BN(Batch Normalization)层通道剪枝算法。BN层[15]2指批量归一化层,在神经网络中通常位于卷积层和激活函数之间,它的作用是在网络中按照输出通道的数目对同一批次训练的数据样本进行归一化的操作,使输入数据符合同一分布。在网络中增加BN层已经成为目前卷积神经网络广泛使用的一种加速网络收敛,以获得更好的泛化性能和鲁棒性的方法。具体见式(4)[15]3:

(4)

针对在卷积层后的批量归一化层中的缩放系数γ进行L1正则化,即通过训练BN层的γ参数,使其作为每一层的稀疏因子,在训练完成之后对所有的BN层通道的该系数进行排序,然后通过预先设置的剪枝比例确定γ系数的阈值,再将阈值以下的对应通道剪掉。由于每个缩放系数对应于特定的卷积通道或全连接层中的神经元,为了保持通道数匹配,相应的卷积层和线性层也对应裁剪,达到更高的通道级别剪枝。由于额外的正则化方法很少会使性能有所损失,相反某些情况下会导致更高的泛化精度,修剪不重要的通道可能会暂时降低性能,但这种影响可以通过在修剪网络后进行微调来补偿。

由于EfficientNet网络中的MBConvBlock结构卷积层、深度可分离卷积层、残差连接层和BiFPN结构都采用了BN层结构,因此对EfficientDet网络进行BN层通道结构化剪枝具有可行性。假设模型中BN层结构共有L层,通过剪枝不重要的BN层通道,实现模型压缩的目标。基于BN层通道剪枝的EfficientDet模型压缩算法如表1所示。

表1 基于BN层通道剪枝的EfficientDet模型压缩算法

3 实验与分析

3.1 实验数据与评价标准

晶界缺陷的HRTEM图像数据集从2个金属纳米晶体视频中分解而来[16],由于分解后的图像存在过于相似的问题,若只用这些图像作为网络的训练数据集,实验结果和网络的应用及泛化能力将受到极大影响。为了使模型更好地应用于晶界缺陷的检测,对每个缺陷位置的一些具有代表性的原始图像进行旋转、平移剪切、亮度对比度、椒盐噪声和直方图均衡化等数据扩充操作,形成共2 000 张图像,作为晶界数据集,如图2所示。其中,测试集占10%,共200 张图像用于测试模型的性能;训练和验证集占90%,共1 800 张。在训练和验证集中,验证集占20%,共360张。

(a)晶界原图1 (b)晶界原图2 (c)晶界原图3 (d)晶界原图4

(e)旋转操作 (f)平移剪切操作 (g)亮度对比度色度操作 (h)直方图均衡化操作图2 原始晶界缺陷样本图像和处理后的晶界样本图像

对于检测精度的定义,实验中采用与COCO数据集[17]评价标准相同的AP(Average Precision)指标和AR(Average Recall)指标[18]。AP是阈值为0.5~0.95之间的平均准确率,主要反映预测结果的误检率,AP50和AP75分别指阈值为0.5和0.75时模型的准确率。AR是平均召回率,反映预测结果的漏检率。P是指准确率,即模型正确识别的晶界缺陷个数占模型识别的所有晶界缺陷个数之比;R是召回率,即模型正确识别的晶界缺陷个数占总体晶界缺陷图像个数之比,定义见式(5)式(6)。P-R曲线即准确率-召回率曲线,每个AP计算过程为P-R曲线下的面积,AR计算过程为每个图像中检测到固定数量的最大召回率在类别和交并比上的平均值。

(5)

(6)

式(5)和式(6)中,TP是实际正样本预测为正样本的个数;FP是负样本预测为正样本的个数;TN是负样本预测为负样本的个数;FN是将正样本预测为正样本的个数。

此外,采用参数量和浮点运算数(Floating Point Operations,FLOPs)等指标来衡量算法和模型复杂度。对应于某个卷积层的浮点运算数的计算见式(7):

FLOPsConv=(2×Ci×K2-1)×H×W×Co

(7)

式(7)中,Ci为输入通道数;K为卷积核尺寸;H和W分别为输出特征层的高和宽;Co为输出通道数。对应于全连接层的浮点运算数的计算见式(8):

FLOPsFC=(2×I-1)×O

(8)

式(8)中,I为输入神经元数量;O为输出神经元数量。

3.2 实验结果分析

首先,使用非结构化剪枝的方法对EfficientDet进行剪枝实验,所采用的模型为EfficientDet-D0。在晶界数据集上对未压缩的模型进行完整训练直到收敛,在模型完成完整训练的基础上,将一定数量小于阈值的权重进行置0操作,使权重矩阵稀疏化,对压缩后的模型进行重新训练使权重微调,使其尽量恢复最优性能,降低剪枝对模型精度造成的损失。由于卷积层和全连接层对剪枝的灵敏度反映不同,即卷积层相比全连接层对剪枝有更高的灵敏度,实验采用将所有卷积层和全连接层的权重分别减去20%和40%的L1非结构化剪枝方法,其中正则项系数λ的值采用10-5。剪枝后进行微调迭代训练20,50,100,200个epoch,实验结果如表2所示,不同微调训练epoch数目的实验结果如图3所示。

图3 不同微调训练epoch数目的实验结果图

表2 不同微调程度的EfficientDet模型非结构化剪枝实验结果

由图3可知,不同微调训练epoch数目也对晶界缺陷检测的精度存在影响,当剪枝结束后微调网络模型训练100个epoch时,训练损失已经达到收敛,且压缩后模型的测试平均精度、平均召回率最优,甚至略微超过基础未压缩前模型的精度,测试所用时间耗时最少。因此后续实验均用微调训练100个epoch的结果,作为最终训练模型的参数预测晶界缺陷的位置。

由于L1正则化和L2正则化对网络权重参数具有稀疏的作用,笔者对EfficientDet-D0模型分别进行L1范数和L2范数不同剪枝比例的权重剪枝,具体实验结果如表3所示。

表3 基于权重剪枝的EfficientDet模型非结构化剪枝实验结果

通过表3可以看出,随着权重剪枝比例的上升,模型检测效果并没有明显的下降,而是保持在原有的精度性能水平上,这说明模型中存在大量冗余权重,通过修剪冗余权重,使模型学习到较优的网络结构,因此性能有略微的提升。非结构剪枝方法使晶界模型测试时间有明显的缩短,可由原来的23 s降低为12 s,大大缩短了模型运行测试的时间。不同通道剪枝比例和剪枝策略的EfficientDet-D0网络非结构化剪枝模型的AP和AR指标结果图如图4所示。

(a)不同剪枝策略AP指标 (b)不同剪枝策略AR指标图4 不同通道剪枝比例的AP和AR实验结果图

通过图4可以看出,选择不同的正则化对网络修剪后的性能指标存在略微的差异。在剪枝过程的训练中,正则化程度通过影响权值大小来决定剪枝的结构。从图4中不同通道剪枝比例的AP指标和AR指标总体情况来看,L1正则化的剪枝效果比L2正则化优秀,且当权重剪枝比例为30%时,网络模型的性能最优。

结构化剪枝实验采用的算法见表1,采用BN层通道剪枝的方式,将不重要的BN层通道裁剪掉,使网络模型参数量和计算量显著减少。对于BN层通道结构化剪枝分别采取不同剪枝比例的实验,实验结果如表4所示。

表4 基于BN层通道剪枝的EfficientDet模型结构化剪枝实验结果

由表4可知,随着BN层通道的剪枝比例逐渐增加,模型参数量大幅减少,且浮点运算数指标也明显降低。但是与剪枝算法前相比,若BN层通道剪枝达到80%,AP指标也会大幅下降2.4%,仅当BN层通道剪枝比例为40%时,算法模型性能最好。可见,当网络结构裁剪过多时,很有可能造成最优结构的破坏,引起模型精度的下降。因此,并不能用简单地提高剪枝比例去降低模型的复杂度,而应综合评估模型的性能指标。对模型剪枝前后参数量和FLOPs的缩减比例进行计算,不同剪枝比例的模型参数量和FLOPs缩减比例如图5所示。若AP指标下降2.4%,在模型可接受范围内,结构化剪枝可使模型参数量降低达到70%,模型的计算量降低达到60%。

图5 不同BN层通道剪枝率的参数和FLOPs缩减比例

4 结论

针对晶界缺陷检测模型EfficientDet算法推理时间较慢、参数量大以及结构冗余导致模型应用成本高的问题,笔者提出了基于权重剪枝和BN层通道L1正则化剪枝的EfficientDet晶界检测模型压缩算法。非结构化剪枝的稀疏网络虽能较高程度保证网络模型的精度,减少模型推理时间,但是并不能带来参数量和浮点计算量的减少,需要硬件设备支持加速。因此,笔者还采用对BN层的缩放因子重要性排序的方法,确定剪枝网络的结构化通道剪枝,对EfficientDet模型进行了真正意义上的剪枝操作。实验结果表明:通过剪枝方法可以大幅缩减模型的推理时间、参数量和浮点计算量,具有较好的实际应用意义。

然而,笔者仅针对EfficientDet算法深度网络模型采用常规的剪枝操作策略,即根据相关参数的绝对值大小确定是否需要对网络进行权重和BN层通道剪枝,该算法在剪枝比例达到较高后,模型性能会大幅度下降。因此,如何设计更优的剪枝策略,使网络模型在更精简的同时,模型精度不会受到严重影响是后续研究的内容之一。

猜你喜欢
剪枝正则晶界
晶界工程对316L不锈钢晶界形貌影响的三维研究
基于截断球状模型的Fe扭转晶界的能量计算
人到晚年宜“剪枝”
运动晶界与调幅分解相互作用过程的相场法研究*
J-正则模与J-正则环
π-正则半群的全π-正则子半群格
Virtually正则模
基于YOLOv4-Tiny模型剪枝算法
基于激活-熵的分层迭代剪枝策略的CNN模型压缩
剩余有限Minimax可解群的4阶正则自同构