一种基于相似度正则的神经网络剪枝方法

文档序号:33479246发布日期:2023-03-15 11:33阅读:45来源:国知局
一种基于相似度正则的神经网络剪枝方法

1.本发明属于人工智能领域,是一种通过引入相似度正则化来获得改进的神经网络剪枝方法。


背景技术:

2.作为人工智能领域的一个分支,神经网络已经在计算机视觉、自然语言处理等领域得到了广泛应用,然而一个神经网络往往由上千万的参数构成,这为模型的训练与推理都带来了巨大的开销。因此,研究者们提出了许多模型压缩方法。在这些方法中,神经网络剪枝通过直接移除冗余权重来减少参数量,这种将预训练的密集网络经过剪枝所获得的模型被称为稀疏网络,而被移除的权重占原始权重数量的比值被标记为稀疏度。网络的稀疏度越高则参数量越小,尽管其性能也会受到一定的影响,但所需要的计算和存储开销大幅降低。因此,业内经常在算力孱弱的边缘设备上部署极稀疏网络,以提高响应速度。
3.为了提高稀疏网络的精度,han等人首先在neurips 2015中提出在预训练阶段应用l2正则项来简化密集网络,之后liu等人在iccv 2017中发现l1正则项的效果更好。一般来说,在网络剪枝前的预训练过程中应用较高的惩罚权重可以提升正则项的作用,从而使后续获得的稀疏网络表现更好,但过高的惩罚权重本身就会干扰训练过程,因此以往的工作只能设置很小的惩罚权重,导致最终对稀疏网络所产生的性能提升十分有限。


技术实现要素:

4.针对现有技术中存在的问题,本发明的目的在于提供一种基于相似度正则的神经网络剪枝方法,旨在为神经网络训练中引入强力的正则化效果,从而简化后续的剪枝流程。与之前的基于范数的正则项使权重在数值上接近于0不同,本发明使权重在统计上相似于零。具体来说,通过提高网络权重矩阵与0矩阵的余弦相似度来降低输出对输入的依赖,从而提高预测的鲁棒性,这样只有少部分输入参与最终的计算,而大部分输入都被抛弃。对应的,被抛弃输入的权重也可以被安全地剪除。因此,不仅稀疏网络的预测性能获得了提升,神经网络也可以实现更高的稀疏度。
5.本发明的技术方案为:
6.一种基于相似度正则的神经网络剪枝方法,其步骤包括:
7.1)对待处理的神经网络进行预训练:
8.11)为了计算神经网络第i层的权重wi与0矩阵的相似度,首先对其wi进行标准化以消除量纲,得到标准化权重计算标准化权重与0.5矩阵(即经过正则化的0矩阵)的余弦相似度γ(wi),所述神经网络的层数为n层,i=1~n,n为大于1的自然数;所述神经网络为压缩特征在内部进行单项传递的神经网络;
9.12)将所述神经网络中所有层的余弦相似度取平均,得到所述神经网络与0矩阵的整体相似度γ(w);然后将整体相似度γ(w)加入所述神经网络的损失函数中,得到损失函
数其中,m为训练样本集x中的训练样本总数,yj为第j个训练样本xj的标签,ce代表交叉熵函数,λ是惩罚权重,fw(xj)为神经网络fw对输入训练样本xj的预测输出结果;
10.13)利用所述神经网络对应的训练样本集x训练所述神经网络,利用所得损失值生成梯度对所述神经网络的参数进行优化;
11.14)重复步骤11-13)多次完成对所述神经网络的预训练;
12.2)对预训练后的神经网络进行剪枝:首先设定神经网络的稀疏度为s%;然后计算神经网络参数的第s分位数,将参数绝对值小于该第s分位数的参数全局置零,得掩码m;根据所得掩码m更新所述神经网络的权重矩阵w;
13.3)对剪枝后的神经网络进行微调:
14.31)将神经网络的损失函数更新为
15.32)利用所述训练样本集x训练所述神经网络,利用所得损失值生成梯度,然后利用掩码m对所得梯度进行置零后对所述神经网络的参数进行优化;
16.33)重复步骤32)多次完成对所述神经网络的微调。
17.进一步的,所述神经网络为前馈神经网络或卷积神经网络。
18.进一步的,利用公式w=w

m更新所述神经网络的权重矩阵w。
19.进一步的,|
·
|为l1范数,‖
·
‖为l2范数,w
0.5
为内部元素均为0.5的与w同形的矩阵。
20.进一步的,所述神经网络为边缘设备中用于目标检测任务的faster rcnn网络。
21.进一步的,所述训练样本为人脸图像,所述目标检测任务为人脸识别任务。
22.进一步的,所述训练样本为车辆图像,所述目标检测任务为车牌识别任务。
23.一种图像特征提取方法,其特征在于,将一待处理图像输入上述方法得到的神经网络进行特征提取,得到该待处理图像的特征;其中所述神经网络为cnn骨干网络。
24.一种人脸识别方法,其特征在于,将一待识别的人脸图像输入人脸识别模型,得到匹配的人脸;其中所述人脸识别模型采用上述方法得到的神经网络。
25.一种机器翻译方法,其特征在于,将一待翻译语句输入上述方法得到的神经网络进行翻译,得到该待翻译语句的翻译结果;其中所述神经网络为大规模预训练模型。
26.本发明不仅可以用于人脸识别、车牌识别的边缘计算场景中部署的目标检测任务的神经网络模型,也可以用于简化基于transformer架构的大规模预训练语言模型,来大幅降低模型的部署成本。例如人脸识别与车牌识别系统通常被部署于小区、写字楼的入口处,摄像头、显示屏幕、推理芯片等所有组件都集中于同一套边缘设备内部。一般的,对摄像头采集到的实时图像,首先经过骨干网络进行特征提取,然后经由rpn进行候选框生成,从而实现对目标的实时框选与分类。受制于成本原因,这些边缘设备往往算力有限,但对算法的响应速度与准确率依然有着较高的要求。因此,本发明可应用于对特征提取中的cnn骨干网络进行剪枝操作,通过移除大量的参数从而降低模型部署对设备的算力与存储要求,同时提升响应速度,快速完成人脸的特征提取步骤,将特征图传入后续步骤以加速人脸或车牌信息的识别过程。
27.对大规模预训练模型而言,以机器翻译为例,用户输入的语句经过分词和降维后传入基于编码器-解码器的transformer架构中,而其中每一个注意力模块都存在多层前馈神经网络进行特征对齐。这些前馈网络通常具备大量的冗余参数,其带来的矩阵乘法操作同样为模型部署和在线推理带来大量的计算负担。本发明可应用于对这些前馈神经网络进行稀疏化,使得机器翻译服务的提供者在相同的硬件条件下更快地完成线上推理与翻译结果展示。
28.场景应用举例:
29.本发明主要改变了神经网络训练时的损失函数。对一个n层的神经网络来说,在训练时应用优化目标如下:
[0030][0031][0032]
其中,l代表优化目标,w代表网络中的权重,x表示一个具有m条训练数据的训练集,在人脸识别、车牌识别等计算机视觉应用场景中,xj表示所有组成的一张图片的像素点的三维rgb值。在机器翻译场景中,xj表示组成一条语句的词向量序列。fw(xj)表示模型w对训练集x的第j条训练数据xj进行推理的结果。yj为训练样本xj的标签,ce代表交叉熵函数。λ是惩罚权重,对神经网络的每一层wi来说,ki是当前层的权重数量,通过计算该层权重与0矩阵的余弦相似度,即γ(wi),并将全部n层的相似度进行加权平均后加入训练目标中,即完成本发明。
[0033]
本发明的优点如下:
[0034]
本发明提出一种基于相似度的正则化项,可以在引入强力正则化效应的同时减少对预训练过程的干扰,从而提升极稀疏网络的精度。通过对比分析,可以确定本发明对稀疏网络的精度有着明显的改进,相对于其他方法来说,可以实现更好的精度表现。
附图说明
[0035]
图1是本发明的方法流程图。
具体实施方式
[0036]
下面结合附图对本发明进行进一步详细描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0037]
本发明只可用于压缩特征在内部进行单项传递的神经网络,如前馈神经网络、卷积神经网络等,不适用于输入特征之间存在时序关系的场景,如循环神经网络和图网络。
[0038]
神经网络剪枝分为预训练、剪枝、微调三个步骤,对一个n个卷积层或全连接层的神经网络来说,在指定训练轮数e后,首先执行e轮的预训练,之后对神经网络进行剪枝以删除冗余参数,最后执行e轮微调以恢复精度。本发明主要改变了神经网络在进行预训练时的损失函数,从而简化后期的剪枝,主要包含以下几个步骤:
[0039]
1.预训练
[0040]
1.1对神经网络第i层的权重wi进行如下标准化以消除量纲:
[0041][0042]
其中为元素均为矩阵wi的最小值且与之同形的矩阵,是矩阵wi中的最大值。
[0043]
1.2对第i层来说,计算其与0矩阵的余弦相似度。分别对两个矩阵正则化后,获得与0.5矩阵w
0.5
得到如下式子:
[0044][0045]
其中ki是wi中的元素数量,|
·
|为l1范数,而‖
·
‖为l2范数。
[0046]
1.3将神经网络中所有层的相似度取平均,得到网络整体的相似度如下:
[0047][0048]
1.4将上一步获得的网络整体相似度加入到当前神经网络的训练目标中:
[0049][0050]
其中,l代表优化目标,w代表网络中的权重,x表示一个具有m条数据的训练集,yj为第j个训练样本xj的标签,ce代表交叉熵函数。λ是惩罚权重,需要手工指定。
[0051]
1.5通过求l对权重w的梯度,对神经网络进行梯度下降,如下式对t时刻的第j层网络的第p个参数进行更新:
[0052][0053]
其中α为学习率,需提前手工指定,一般设置为0.1或0.001。而为神经网络在数据集x上的经验损失。
[0054]
1.6重复1.1-1.5步骤共e次以完成预训练。
[0055]
2.剪枝
[0056]
2.1首先手工指定网络稀疏度s%,s为大于零、小于100的自然数,即网络参数中零相对于全局的占比。
[0057]
2.2计算网络参数的第s分位数,将所有参数绝对值小于该分位数的参数全局置零,以获得掩码m。
[0058]
2.3更新网络参数w=w

m,即使用哈达玛乘对参数进行置零。
[0059]
3.微调
[0060]
3.1对神经网络计算训练目标:
[0061][0062]
3.2使用训练目标对神经网络生成梯度以进行训练如下,
[0063][0064]
但对生成的梯度使用步骤2中获得的掩码m进行置零,以防止被剪枝的参数进行更新。3.3重复3.1-3.3步骤共e次以完成微调。
[0065]
场景实例
[0066]
以下应用场景以目标检测任务为例,考虑在边缘设备中使用faster rcnn网络的情况。如前所述,这类方法需要首先使用一个卷积神经网络对摄像头采取到的图片进行特征提取,因此使用本发明对此步骤所涉及到的骨干网络进行模型压缩。场景1为人脸识别任务,场景2为车牌识别任务。
[0067]
场景1:对于人脸识别任务,现实中人脸与摄像头的距离往往较为接近,可以提取到更为丰富的特征,因而使用输入尺寸为224*224的imagenet图片集为例验证本发明的效果。具体而言,首先将图片输入经过压缩的骨干网络efficientnet-b2,通过其在验证集上的识别准确率来验证本发明的有效性。同时在另一个coco图片数据集上测试结果,即网络生成的候选框与真实答案的对比,也反映了其在参数量大幅下降的情况下依然保持着较高的性能表现。
[0068]
表1稀疏efficientnet-b2在imagenet上的测试精度(%)
[0069]
λ90%95%99%071.0366.9525.830.00172.0366.8127.050.0170.8666.9928.19
[0070]
表2 faster-rcnn在coco上识别结果map@.5(%)
[0071]
λ90%95%99%038.137.630.80.00140.538.532.60.0142.341.933.1
[0072]
场景2:对于车牌识别任务,摄像头与车辆往往距离较远,且要考虑的条件更为复杂,如光线明暗,可见度等,因此,使用输入为64*64的tiny-imagenet图片数据集来验证效果。通过将图片输入压缩后的resnet-18神经网络,对其输出的分类预测结果与真实标签进行对比,其结果如表3所示。
[0073]
表3 resnet-18在tiny-imagenet上的测试精度(%)
[0074]
λ95%99%99.9%
060.0352.1430.440.160.5453.0230.430.561.0255.1936.90
[0075]
效果分析:
[0076]
表4对比了本发明与其他几种正则化项在不同稀疏度的alexnet中的表现,表5使用的网络则是resnet-20,数据集均为cifar-10。对比方法中,置信惩罚为pereyra等人在iclr 2017的workshop track中提出,而标签平滑是szegedy等人在cvpr 2016中提出的正则化方法,可以看到这两项方法虽然对提升稀疏网络有一定帮助,但效果有限,在极稀疏网络中无法阻止精度的剧烈下滑。l1是liu等人在iccv 2017中提出一种基于1范数正则化的方法,因为能够产生稀疏矩阵,被广泛用于神经网络剪枝中。l1可以在特定的惩罚权重下使神经网络达到更高的稀疏度,但精度下降依然严重。而本发明对稀疏网络的精度有着明显的改进,相对于其他方法来说,可以实现更好的精度表现。
[0077]
从表中可以看到,我们的方法相对于对比方法的提升幅度随着稀疏度的增加而扩大,如果对99.5%稀疏的alexnet来说,l1所能实现的最好表现是67.53%,而本发明的表现是70.09%,另一方面,在极稀疏网络中,置信惩罚和标签平滑所能实现的最高稀疏度是99.5%,我们的方法则可以剪去99.8%的权重,测试精度也显著优于已有的l1正则化项。
[0078]
表4稀疏alexnet在cifar-10的测试精度(%)
[0079][0080][0081]
表5稀疏resnet-20在cifar-10的测试精度(%)
[0082][0083]
尽管为说明目的公开了本发明的具体实施例,其目的在于帮助理解本发明的内容并据以实施,本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1