一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于强化学习的卷积网络通道裁剪方法及系统与流程

2022-07-16 22:10:27 来源:中国专利 TAG:


1.本发明涉及人工智能和模型压缩技术领域,特别涉及一种基于强化学习的卷积网络通道裁剪方法及系统。


背景技术:

2.深度学习让人工智能达到了一个前所未有的高度,其可以应用在生活的各个方面,例如:图像、语音、驾驶、情感计算等,这些不同方面的发展给人们生活带来了翻天覆地的变化,极大的提升了一些领域中人们的效率。然而,一个深度学习模型通常包含数以百万计乃至千万计的参数。
3.现有技术的不足之处在于,目前为了模型提高准确率,模型越来越复杂并且需要极大的算力及内存资源。然而,与日益复杂的训练模型不同,在算力不足的边缘设备上,如何部署这些网络或者提高边缘设备使用这些网络推理的速度成为了一个问题,因此,需要一些方法帮助复杂的模型轻量化。


技术实现要素:

4.本发明的目的克服现有技术存在的不足,为实现以上目的,采用一种基于强化学习的卷积网络通道裁剪方法及系统,以解决上述背景技术中提出的问题。
5.本发明采用的第一方面的技术方案:一种基于强化学习的卷积网络通道裁剪方法,具体步骤包括:
6.s1、获取待压缩的网络模型,所述网络模型设置有若干个滤波器,所述滤波器用于对输入至所述网络模型的图像数据进行特征提取;
7.s2、利用自动深度压缩算法基于模型精度的侧重方向进行强化学习裁剪比例,确定裁剪比例;
8.s3、基于链式法则求取所有滤波器的权重一阶泰勒展开的绝对值作为裁剪的重要性指标,判断参数的重要性;
9.s4、对裁剪比例范围内的重量行排行低的滤波器,利用算法进行适应于该网络模型的裁剪,保存修剪前的网络模型;
10.s5、对当前的网络模型的各种状态标志进行判断,若超出裁剪比例或者预设的限定条件,则进行相应的处理操作,得到最终的修剪的网络模型;
11.s6、通过微调恢复网络模型的精度。
12.作为本发明的进一步的方案:所述s2的具体步骤为:通过利用自动深度压缩算法在基于模型精度的方向下设计奖励进行学习,得到每层滤波器的最优裁剪比例。
13.作为本发明的进一步的方案:所述s4的具体步骤为:
14.根据已确定的各层滤波器的裁剪比例,设计逐步步距算法推导出目标裁剪比例;
15.每次通过算法获得当前最优的裁剪比例,并不断与其他模块进行协同,迭代裁剪,最终达到目标裁剪比例;
16.同时,在每次裁剪前,保存未裁剪的网络模型。
17.作为本发明的进一步的方案:所述s5网络模型判断的具体步骤为:
18.若当前情况下,在网络模型经过修剪且微调仍然不满足设定的精度阈值,则输出保存的上一次的网络;
19.若未经过修剪,则将其送入微调单元并记录状态;
20.若达到步骤s2获得的裁剪比例,则输出该网络模型作为最终的压缩结果模型。
21.本发明采用的第二方面的技术方案:一种包括如上述任一项所述的一种基于强化学习的卷积网络通道裁剪方法的系统,包括:
22.裁量计算模块,用于基于强化学习利用自动深度压缩算法获得各层滤波器稀疏比,作为裁剪比例;
23.重要性指标模块,用于对当前未裁剪或已裁剪中的网络模型计算当前各滤波器的损失函数的对其的一阶泰勒展开的绝对值,作为裁剪的重要性指标;
24.裁剪执行模块,用于通过逐步修剪算法,对网络模型中指标单元计算出来的最小比例指标内的待裁剪的滤波器进行裁剪,逐步达到裁剪比例;
25.微调模块,用于将任意修剪后的网络模型进行微调,以提高该网络模型的精度,并将该网络模型送入重要性指标模块;
26.判断控制输出模块:用于判断已裁剪的卷积网络是否满足预设的模型精度阈值或达到裁剪比例,若小于精度阈值,则完成对所述卷积网络的修剪,并将之前一次修剪的卷积网络模型作为最终的压缩结果输出,若达到裁剪比例,则输出当前裁剪结果作为压缩结果,其余情况,则输入微调模块恢复精度。
27.与现有技术相比,本发明存在以下技术效果:
28.采用上述的技术方案,通过强化学习得到卷积网络的各个层的裁剪比例,有效地考虑了不同层的参数的敏感性,通过损失函数对滤波器通道权重的一阶导数的绝对值和作为裁剪的指标,通过自动逐步修剪对网络进行修剪,通过模型精度的阈值进行判断裁剪之后进行下一步的迭代裁剪还是中止裁剪返回上次的结果,得到最终的压缩模型。通过多种方法的组合使用,有效地在保证压缩模型精度地情况下提升了压缩效果。
附图说明
29.下面结合附图,对本发明的具体实施方式进行详细描述:
30.图1为本技术公开的一些实施例的卷积网络通道裁剪方法的步骤示意图;
31.图2为本技术公开的一些实施例的卷积网络压缩方法的步骤流程图;
32.图3为本技术公开的一些实施例的调整裁剪比例的流程图;
33.图4为本技术公开的一些实施例的系统的模块示意图。
34.图中:301、裁量计算模块;302、重要性指标模块;303、裁剪执行模块;304、微调模块;305、判断控制输出模块。
具体实施方式
35.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于
本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
36.请参考图1和图2,本发明实施例中,一种基于强化学习的卷积网络通道裁剪方法,具体步骤包括:
37.s1、获取待压缩的网络模型,所述网络模型设置有若干个滤波器,所述滤波器用于对输入至所述网络模型的图像数据进行特征提取;
38.s2、利用自动深度压缩算法基于模型精度的侧重方向进行强化学习裁剪比例,确定裁剪比例;具体步骤为:通过利用自动深度压缩算法在基于模型精度的方向下设计奖励进行学习,得到每层滤波器的最优裁剪比例。
39.s3、基于链式法则求取所有滤波器的权重一阶泰勒展开的绝对值作为裁剪的重要性指标,判断参数的重要性;
40.s4、对裁剪比例范围内的重量行排行低的滤波器,利用算法进行适应于该网络模型的裁剪,保存修剪前的网络模型;具体步骤为:
41.根据已确定的各层滤波器的裁剪比例,设计逐步步距算法推导出目标裁剪比例;
42.每次通过算法获得当前最优的裁剪比例,并不断与其他模块进行协同,迭代裁剪,最终达到目标裁剪比例;
43.同时,在每次裁剪前,保存未裁剪的网络模型。
44.s5、对当前的网络模型的各种状态标志进行判断,若超出裁剪比例或者预设的限定条件,则进行相应的处理操作,得到最终的修剪的网络模型;网络模型判断的具体步骤为:
45.若当前情况下,在网络模型经过修剪且微调仍然不满足设定的精度阈值,则输出保存的上一次的网络;
46.若未经过修剪,则将其送入微调单元并记录状态;
47.若达到步骤s2获得的裁剪比例,则输出该网络模型作为最终的压缩结果模型。
48.s6、通过微调恢复网络模型的精度。
49.本实施例中,如图2所示,图示为具体网络模型裁剪实施例,具体方法的步骤为:
50.s101、对于输入的卷积神经网络n,通过自动的深度压缩强化算法通过侧重精度方面的分支应用与该卷积神经网络,得到每一层的稀疏比(sparsity ratio)即为裁剪比例;
51.在实际的实施例中,步骤s101可通过强化学习,更加关注裁剪模型与原模型的精度损失,奖励函数如下,
[0052][0053]
其中,error为某次学习后压缩模型后的错误率,flops为模型所需的运算算力,reward作为强化学习的奖励函数。该奖励充分考虑了对错误率和算力两者重要性,并对其进行折中平衡。其在卷积层t时的价值函数为:
[0054][0055]st
=s表示在第t层状态为s,该函数表示在当前状态下价值为,后面每步经过折扣率的奖励和的期望。
[0056]
agent从l
t
层接收卷积层滤波器s
t
,输出稀疏比率ratio,对层进行压缩后,智能体移动到下一层l
t 1
。评估所有层都被压缩后的修剪模型后的准确率。最后,奖励reward作为准确率和算力的函数返回给智能体。评估所有层都被压缩的修剪后模型的准确率。最后,奖励r作为准确率和flops的函数被返回给agent。并且由于对每层进行测试,所得到的每层的裁剪比例是不尽相同的。
[0057]
s102、对当前模型的每层滤波器的权重,通过损失函数对其的一阶导数的绝对值,作为裁剪的重要性度量;损失函数的变化为:
[0058]
|δc(hi)|=|c(d,hi=0)-c(d,hi)];
[0059]
其中,c(d,hi)为未进行剪枝的损失函数的值,c(d,hi=0)为假设该滤波器的卷积核的某权重为0时,进行剪枝后的其损失函数。|δc(hi)|则为进行剪枝的损失变化,可以反映出某滤波器的每个权重的重要性。对其进行一阶导数展开:
[0060][0061]
其中,r1(hi=0)为余项,计算时可忽略不计,假设重要性与损失函数的变化存在正相关,联立可以得到某权重的重要性公式:
[0062][0063]
其中,hi为表示某权重的简单符号表示,下公式将使用hij表示卷积核某通道中的对应位置的权重,则滤波器的卷积核的某通道的重要性公式可记为:
[0064][0065]
则可以根据该公式得到卷积通道的重要性,每个通道所占该卷积层的比例为该层所有的卷积通道总数的倒数。
[0066]
s103、通过逐步修剪算法,对s101步骤中计算的裁剪比例进行逐步调整每一步的跨度,可使用算法先大幅度逼近,再小幅度调整直至最终达到s101计算出来的每层的裁剪比例,进行裁剪,并记录裁剪之前的网络,记为n1,此后每次裁剪n1更新。
[0067]
具体的,在实际应用中,为减少运算量,可以采用二分查找变种的方法,对s103的每步的增加比例进行一个算法的限定。采取如图2所示的算法流程图的步骤进行调整比例。
[0068]
s104、对当前修剪后的网络n0进行网络精度阈值的判断,判断是否经过微调,若经过微调,则进入下一个判断s106步骤,若未经过微调,则进如步骤s105;
[0069]
s105、将当前的模型进行微调,以恢复精度,并且微调状态标志位记录;
[0070]
s106、判断当前模型是否小于所预设的模型精度阈值,若小于的话,则进入s107步骤,判断是否达到裁剪比例,若达到的话,同样进入s107步骤;两者皆为否,则转入s102步骤;
[0071]
s107、若当前模型的精度小于预设的阈值精度,则输出s103所保存的上一步修剪前的卷积网络,若达到裁剪比例,则输出当前的网络压缩模型作为压缩结果。
[0072]
本实施例中,在获取待修剪的网络模型后,可通过设置一种二分的变形形式的逐步自适应修剪算法,来逐步的接近裁剪比例(sparsity ratio),如图3所示,图示为该逐步修剪算法的具体步骤:
[0073]
s201:设定已经进行的裁剪比例至sparsity ratio的范围区间,即为l和r;
[0074]
s202:每次步距调整为1,1/2(r-l)的步距;
[0075]
s203-1:比较1和1/2(r-l)步距情况下的裁剪结果哪种情况下更优;
[0076]
s203-2:若步距为1的情况裁剪结果优于小于1/2(r-l)的裁剪结果,则将1/2(r-l)设为l;
[0077]
s203-3:若步距为1/2(r-l)情况下更优,则将r设置为1/2(r-l);
[0078]
s204:比较1是否等于1/2(r-l),若等于,转入步骤s205;
[0079]
s205:使用1/2(l r)位置处的比例进行裁剪,并可以进行s103之后的步骤;
[0080]
s206:重新使用原未修剪的网络,之后跳转步骤s202。
[0081]
以上为一次进行较优裁剪比例步距的流程,在整个裁剪的方法中,这样的步骤需要多次进行,以最终达到强化算法确定的整体裁剪比例。
[0082]
第二方面的技术方案:一种包括如上述任一项所述的一种基于强化学习的卷积网络通道裁剪方法的系统,包括:
[0083]
如图4所示,图示为卷积网络通道裁剪方法的系统模块的示意图。
[0084]
裁量计算模块301,用于基于强化学习利用自动深度压缩算法获得各层滤波器稀疏比,作为裁剪比例;具体的,通过对输入的卷积神经网络进行处理,通过学习获得当前卷积网络的每层滤波器稀疏比,作为裁剪比例。
[0085]
重要性指标模块302,用于对当前未裁剪或已裁剪中的网络模型计算当前各滤波器的损失函数的对其的一阶泰勒展开的绝对值,作为裁剪的重要性指标;
[0086]
具体实施方式中,可通过各种方式计算出在该衡量方式下各个滤波器的某种重要性指标,通过比较该指标,选择重要性较低的滤波器可尝试进行裁剪;
[0087]
裁剪执行模块303,用于通过逐步自适应步距修剪算法,对网络模型中指标单元计算出来的最小比例指标内的待裁剪的滤波器进行裁剪,逐步达到裁剪比例;
[0088]
微调模块304,用于将任意修剪后的网络模型进行微调,即再训练,以提高该网络模型的精度,并将该网络模型送入重要性指标模块;
[0089]
具体实施方式为,对判断控制输出模块传来的修剪后的卷积网络进行微调(再训练),以恢复网络精度,并将其n0输出到重要性指标单元重新判断当前网络的重要性指标,循环如图所示流程,直至最终由判断控制输出模块确定执行压缩完毕。
[0090]
判断控制输出模块305:判断状态及当前裁剪网络是否满足所预设的卷积网络精度阈值:
[0091]
若不满足精度,则输出裁剪执行单元保存的上次的符合网络精度阈值的卷积网络作为最终的裁剪网络;
[0092]
若达到裁剪比例,则输出当前的网络作为最终的裁剪网络;
[0093]
其他情况下,输入微调模块进行下一次迭代修剪。
[0094]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献