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

基于细粒度结构化稀疏的在线训练方法及系统

2022-05-06 09:28:38 来源:中国专利 TAG:


1.本发明涉及人工智能加速计算领域和图片分类技术领域,并特别涉及一种基于细粒度结构化稀疏的在线训练方法及系统。


背景技术:

2.目前深度神经网络已经在计算机视觉、自然语言处理等领域取得了巨大的成功。但随着深度神经网络的规模越来越大,参数量和计算量越来越多,制约了其在资源受限的硬件平台上的使用,如边缘端、移动端等设备。网络稀疏化技术可以通过一定的规则删减神经网络的权重,从而有效减少深度神经网络的参数量,同时仅会带来微小的精度损失。因此,网络稀疏化技术对深度神经网络应用在边缘端、移动端等场景中具有重要的意义。
3.目前的网络稀疏化技术聚焦于两个方面:稀疏粒度和训练方式。
4.在稀疏粒度方面,现有的网络稀疏化技术主要分为细粒度稀疏和粗粒度稀疏两大类。细粒度稀疏是对神经网络的不同位置的权重进行稀疏化,一般稀疏化后模型的精度损失非常小,甚至不会产生精度损失。但细粒度稀疏的稀疏方式是非结构化的,稀疏化后的模型参数对硬件并不友好,在部署时存在一些问题,会制约在硬件上的实际性能提升效果。而粗粒度稀疏是对神经网络权重的整个卷积核进行稀疏化,是一种结构化的稀疏方式,因此实际硬件部署后对性能的提升较为明显。但粗粒度稀疏的稀疏方式会在稀疏整个卷积核时丢失该卷积核中的重要权重,因此一般粗粒度稀疏后的模型精度会略低于细粒度稀疏。
5.在训练方式方面,现有的稀疏技术主要分为离线训练和在线训练两种方式。离线训练也称两阶段训练方式,第一个阶段训练一个稠密模型,然后根据训练得到的模型权重的值用特定的规则获得模型的稀疏结构,第二个阶段对稀疏结构的模型进行微调,最终获得稀疏后的模型权重,即第一阶段结束后获得稀疏掩码(稀疏结构),第二阶段结束后获得模型权重。在线训练也称一阶段训练方式,不需要训练稠密模型,直接训练一个稀疏模型,在训练过程中不断更新模型权重和稀疏掩码。训练结束后同时获得稀疏掩码和模型权重。相比之下,离线训练方式训练时间较长,但可能会获得相比在线训练精度较高的稀疏模型。
6.目前的稀疏化技术主要是针对推理阶段的模型部署进行模型性能提升。而如何利用稀疏化技术提升训练阶段的性能还没有得到很好的解决。


技术实现要素:

7.针对上述细粒度稀疏方式精度高但性能较差、粗粒度稀疏方式性能较好但精度低的问题,本发明着眼于细粒度结构化稀疏技术,该技术在稀疏化时对卷积权重进行分组稀疏,如将连续4个权重作为一组,稀疏掉其中的2个权重。这种方式可以像细粒度稀疏一样保留更多重要的权重,同时稀疏化后的模型也是结构化的,对硬件部署较为友好,因此细粒度结构化稀疏技术可以兼顾精度和性能。
8.针对现有技术的不足,本发明提出一种基于细粒度结构化稀疏的在线训练方法,其中包括:
9.步骤1、基于预设学习率和权重梯度,训练稠密模型;
10.步骤2、对该稠密模型的权重进行细粒度结构化稀疏,得到稀疏掩码,并基于该稀疏掩码训练稀疏模型,且在训练该稀疏模型的过程中更新该稀疏掩码和该稀疏模型的模型权重;
11.步骤3、固定该稀疏模型的网络结构再次训练该稀疏模型,且在再次训练该稀疏模型过程中仅更新该稀疏模型的模型权重,保存完成经过再次训练的稀疏模型的模型权重和稀疏掩码作为在线训练结果。
12.所述的基于细粒度结构化稀疏的在线训练方法,其中步骤1包括基于下式训练并更新稠密模型的权重:
[0013][0014]
式中模型的权重为w
dense
,学习率为l,权重的梯度为
[0015]
所述的基于细粒度结构化稀疏的在线训练方法,其中步骤1中该稠密模型的稀疏掩码为全1矩阵。
[0016]
所述的基于细粒度结构化稀疏的在线训练方法,其中该步骤2包括:
[0017]
步骤21、获取该稠密模型的权重w
dense
和学习率l;
[0018]
步骤22、对于w
dense
,使用多种预设模板分别计算每组权重在每种模板下权重绝对值的累加和,取所有预设模板中累加和最大的模板作为该组权重的稀疏掩码m,并得到稀疏权重w
unpruned
=w
dense

m,其中

表示逐元素相乘,权重中被稀疏掉的部分记录为w
pruned
=0;
[0019]
步骤23、利用稀疏权重w
unpruned
执行网络的前向传播,前向传播公式为:
[0020]
x
i 1
=xi*w
unpruned
[0021]
式中xi为网络中第i层的输入;
[0022]
步骤24、该网络执行反向传播,利用网络中第i 1层传播来的topdiff,记为计算第i层的bottomdiff,记为和权重的梯度公式为:
[0023][0024][0025]
步骤25、根据权重的梯度和当前的稀疏掩码更新稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
,公式为:
[0026][0027][0028]
判断此时是否为一个epoch的结束,若是,则执行步骤26,否则再次执行该步骤23;
[0029]
步骤26、利用稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
对稀疏掩码进行更新,首先将w
unpruned
和w
pruned
相加得到w
dense
,然后使用所有预设模板,分别计算w
dense
中每组权重在每种预设模板下权重绝对值的累加和,取所有预设模板中累加和最大的模板作为该组权重的稀疏掩码,由此获得更新后的稀疏掩码m;
[0030]
步骤27、利用稀疏掩码m更新w
unpruned
和w
pruned
,公式为
[0031]wunpruned
=w
dense
⊙m[0032]wpruned
=0
[0033]
判断此时是否达到设定迭代次数,若是,则执行步骤3,否则再次该步骤23;
[0034]
该步骤3包括通过下式固定稀疏掩码,更新稀疏模型权重:
[0035][0036]
所述的基于细粒度结构化稀疏的在线训练方法,其中步骤1中该稠密模型为用于图像分类的卷积神经网络;该步骤3包括基于在线训练结果构建稀疏图像分类网络,以对待分类图像进行分类。
[0037]
本发明还提出了一种基于细粒度结构化稀疏的在线训练系统,包括:
[0038]
初始模块,用于以预设学习率和权重梯度,训练稠密模型;
[0039]
第一训练模块,用于对该稠密模型的权重进行细粒度结构化稀疏,得到稀疏掩码,并基于该稀疏掩码训练稀疏模型,且在训练该稀疏模型的过程中更新该稀疏掩码和该稀疏模型的模型权重;
[0040]
第二训练模块,用于固定该稀疏模型的网络结构再次训练该稀疏模型,且在再次训练该稀疏模型过程中仅更新该稀疏模型的模型权重,保存完成经过再次训练的稀疏模型的模型权重和稀疏掩码作为在线训练结果。
[0041]
所述的基于细粒度结构化稀疏的在线训练系统,其中初始模块包括基于下式训练并更新稠密模型的权重:
[0042][0043]
式中模型的权重为w
dense
,学习率为l,权重的梯度为
[0044]
所述的基于细粒度结构化稀疏的在线训练系统,其中初始模块中该稠密模型的稀疏掩码为全1矩阵。
[0045]
所述的基于细粒度结构化稀疏的在线训练系统,其中该第一训练模块,用于:
[0046]
获取该稠密模型的权重w
dense
和学习率l;
[0047]
对于w
dense
,使用多种预设模板分别计算每组权重在每种模板下权重绝对值的累加和,取所有预设模板中累加和最大的模板作为该组权重的稀疏掩码m,并得到稀疏权重w
unpruned
=w
dense

m,其中

表示逐元素相乘,权重中被稀疏掉的部分记录为w
pruned
=0;
[0048]
利用稀疏权重w
unpruned
执行网络的前向传播,前向传播公式为:
[0049]
x
i 1
=xi*w
unpruned
[0050]
式中xi为网络中第i层的输入;
[0051]
该网络执行反向传播,利用网络中第i 1层传播来的topdiff,记为计算第i层的bottomdiff,记为和权重的梯度公式为:
[0052][0053][0054]
根据权重的梯度和当前的稀疏掩码更新稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
,公式为:
[0055][0056][0057]
利用稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
对稀疏掩码进行更新,首先将w
unpruned
和w
pruned
相加得到w
dense
,然后使用所有预设模板,分别计算w
dense
中每组权重在每种预设模板下权重绝对值的累加和,取所有预设模板中累加和最大的模板作为该组权重的稀疏掩码,由此获得更新后的稀疏掩码m;
[0058]
利用稀疏掩码m更新w
unpruned
和w
pruned
,公式为
[0059]wunpruned
=w
dense
⊙m[0060]wpruned
=0
[0061]
该模块3包括通过下式固定稀疏掩码,更新稀疏模型权重:
[0062][0063]
所述的基于细粒度结构化稀疏的在线训练系统,其中初始模块中该稠密模型为用于图像分类的卷积神经网络;该第二训练模块,用于以该在线训练结果构建稀疏图像分类网络,对待分类图像进行分类。
[0064]
本发明还提出了一种存储介质,用于存储执行所述任意一种基于细粒度结构化稀疏的在线训练方法的程序。
[0065]
本发明还提出了一种客户端,用于所述任意一种基于细粒度结构化稀疏的在线训练系统。
[0066]
由以上方案可知,本发明的优点在于:
[0067]
通过对稠密模型进行稀疏处理,获得稀疏模型。稀疏模型比稠密模型的规模小,比稠密模型的通道数也小。在部署模型时采用稀疏模型,由于稀疏模型规模小,可以有效减少计算量,达到加速模型运行速度的技术效果。
附图说明
[0068]
图1为本发明流程图。
具体实施方式
[0069]
为让本发明的上述特征和效果能阐述的更明确易懂,下文特举实施例,并配合说明书附图作详细说明如下。
[0070]
为了利用稀疏化技术提升训练阶段的性能,本发明提出了细粒度结构化稀疏的在线训练算法,从而在精度损失较小的情况下提升模型训练的性能。
[0071]
具体主要包括以下三个方面的技术创新:
[0072]
1、提出卷积核输入和输出通道均为细粒度结构化的稀疏方式,可以实现在神经网络训练过程中,前向传播和反向传播均实现加速。
[0073]
2、提出适应稀疏在线训练的三阶段训练方式。
[0074]
3、提出适应在线训练的细粒度结构化稀疏的权重更新策略和掩码更新策略。
[0075]
1、稀疏方式
[0076]
为实现训练阶段的性能提升,提出了将卷积核的输入和输出通道均稀疏化为满足细粒度结构化要求的稀疏方式。如以4选2的细粒度结构化方式为例,这种稀疏方式需满足卷积核中每个4x4的块在输入通道维和输出通道维都满足4个值中保留2个值,稀疏掉2个值。符合这一要求的4x4模板一共有90个。我们在计算稀疏掩码时,使用这预设的90种模板,分别计算每个4x4的权重在每个模板下权重绝对值的累加和,取90种模板中累加和最大的模板作为该4x4的稀疏掩码。
[0077]
计算这个模板可以转换为对4x4的格子赋0或1值,其中1代表保留的位置,0代表不保留的位置。如果每行每列都满足有两个0和两个1,则符合要求。将所有可能的情况遍历,可得符合要求的有90种情况。
[0078]
2、三阶段训练方式
[0079]
本文提出的细粒度结构化稀疏在线训练方案采用了三阶段的训练方式实现在线训练中边训练网络权重边实现稀疏的策略:
[0080]
第一阶段:训练一个不稀疏的稠密模型。该稠密模型可例如是用于图像分类的卷积神经网络模型的稠密模型。
[0081]
第二阶段:获得稠密模型的权重,以此获得稀疏掩码并训练稀疏的模型,本阶段网络的稀疏结构是在动态变化的,即稀疏掩码和网络权重都是变化的。
[0082]
第三阶段:固定稀疏掩码训练稀疏模型,即固定稀疏掩码,网络的稀疏结构不再变化,仅更新网络权重。
[0083]
3、权重更新策略和掩码更新策略
[0084]
上述每个阶段的权重更新策略和掩码更新策略是不同的,在本节分别介绍。
[0085]
第一阶段,训练稠密模型,设此时模型的权重为w
dense
,学习率为l,权重的梯度为权重更新公式为:
[0086][0087]
此时由于是稠密模型,稀疏掩码可视为是全1矩阵,l代表模型预测值和人工标注的真值之间的损失值。
[0088]
第二阶段,同时更新稀疏掩码和网络权重,按以下步骤执行:
[0089]
步骤一:获取第一阶段结束后计算的稠密模型,权重为w
dense
,学习率为l。
[0090]
步骤二:对于w
dense
,使用预设的90种模板,分别计算每组权重(例如4x4的权重)在每个模板下权重绝对值的累加和,取90种模板中累加和最大的模板作为该4x4的稀疏掩码,由此获得稀疏掩码m和稀疏权重w
unpruned
=w
dense

m,其中

表示逐元素相乘操作。权重中被稀疏掉的部分记录为w
pruned
=0。
[0091]
步骤三:利用稀疏权重w
unpruned
执行稀疏网络的前向传播过程,设本层的输入为xi,本层的输出为x
i 1
,则本层的前向传播过程公式为
[0092]
x
i 1
=xi*w
unpruned
[0093]
步骤四:计算网络的反向传播过程,利用上一层传播来的topdiff(l对于x^(i 1)的偏导),记为计算本层的bottomdiff(l对于x^i的偏导),记为)和权重的梯度公式为
[0094][0095][0096]
步骤五:根据权重的梯度和当前的稀疏掩码更新稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
,公式为
[0097][0098][0099]
判断此时是否为一个训练周期epoch的结束,如果是,则执行步骤六,如果不是,则返回步骤三。
[0100]
步骤六:利用稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
对稀疏掩码进行更新,首先将w
unpruned
和w
pruned
相加得到w
dense
,然后使用预设的90种模板,分别计算w
dense
中每个4x4的权重在每个模板下权重绝对值的累加和,取90种模板中累加和最大的模板作为该4x4的稀疏掩码,由此获得更新后的稀疏掩码m。
[0101]
步骤七:利用稀疏掩码m更新w
unpruned
和w
pruned
,公式为
[0102]wunpruned
=w
dense
⊙m[0103]wpruned
=0
[0104]
判断此时是否达到第二阶段设定的训练迭代次数,若达到则进入第三阶段,否则返回步骤三。
[0105]
第三阶段,固定稀疏掩码,更新稀疏模型权重,公式为
[0106][0107]
具体来说,如图1所示,本发明提出一种基于细粒度结构化稀疏的在线训练方法,
包括:
[0108]
步骤1、基于预设学习率和权重梯度,训练稠密模型;
[0109]
步骤2、对该稠密模型的权重进行细粒度结构化稀疏,得到稀疏掩码,并基于该稀疏掩码训练稀疏模型,且在训练该稀疏模型的过程中更新该稀疏掩码和该稀疏模型的模型权重;
[0110]
步骤3、固定该稀疏模型的网络结构再次训练该稀疏模型,且在再次训练该稀疏模型过程中仅更新该稀疏模型的模型权重,保存完成经过再次训练的稀疏模型的模型权重和稀疏掩码作为在线训练结果。
[0111]
最后得到稀疏掩码和模型权重后,就可以获得稀疏模型。稀疏掩码是0-1值,仅将稀疏掩码中值为1的位置对应的模型权重提取出来,就可以获得稀疏模型。稀疏模型比稠密模型的规模小,本发明的4选2方法中稠密模型的通道数是4,稀疏后获得稀疏模型的通道数是2,比稠密模型的通道数小一半。在部署模型时部署的是稀疏模型,由于规模小,可以有效减少计算量,达到加速的目的。
[0112]
以下为与上述方法实施例对应的系统实施例,本实施方式可与上述实施方式互相配合实施。上述实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在上述实施方式中。
[0113]
本发明还提出了一种基于细粒度结构化稀疏的在线训练系统,包括:
[0114]
初始模块,用于以预设学习率和权重梯度,训练稠密模型;
[0115]
第一训练模块,用于对该稠密模型的权重进行细粒度结构化稀疏,得到稀疏掩码,并基于该稀疏掩码训练稀疏模型,且在训练该稀疏模型的过程中更新该稀疏掩码和该稀疏模型的模型权重;
[0116]
第二训练模块,用于固定该稀疏模型的网络结构再次训练该稀疏模型,且在再次训练该稀疏模型过程中仅更新该稀疏模型的模型权重,保存完成经过再次训练的稀疏模型的模型权重和稀疏掩码作为在线训练结果。
[0117]
所述的基于细粒度结构化稀疏的在线训练系统,其中初始模块包括基于下式训练并更新稠密模型的权重:
[0118][0119]
式中模型的权重为w
dense
,学习率为l,权重的梯度为
[0120]
所述的基于细粒度结构化稀疏的在线训练系统,其中初始模块中该稠密模型的稀疏掩码为全1矩阵。
[0121]
所述的基于细粒度结构化稀疏的在线训练系统,其中该第一训练模块,用于:
[0122]
获取该稠密模型的权重w
dense
和学习率l;
[0123]
对于w
dense
,使用多种预设模板分别计算每组权重在每种模板下权重绝对值的累加和,取所有预设模板中累加和最大的模板作为该组权重的稀疏掩码m,并得到稀疏权重w
unpruned
=w
dense

m,其中

表示逐元素相乘,权重中被稀疏掉的部分记录为w
pruned
=0;
[0124]
利用稀疏权重w
unpruned
执行网络的前向传播,前向传播公式为:
[0125]
x
i 1
=xi*w
unpruned
[0126]
式中xi为网络中第i层的输入;
[0127]
该网络执行反向传播,利用网络中第i 1层传播来的topdiff,记为计算第i层的bottomdiff,记为和权重的梯度公式为:
[0128][0129][0130]
根据权重的梯度和当前的稀疏掩码更新稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
,公式为:
[0131][0132][0133]
利用稀疏权重w
unpruned
和权重中被稀疏掉的部分w
pruned
对稀疏掩码进行更新,首先将w
unpruned
和w
pruned
相加得到w
dense
,然后使用所有预设模板,分别计算w
dense
中每组权重在每种预设模板下权重绝对值的累加和,取所有预设模板中累加和最大的模板作为该组权重的稀疏掩码,由此获得更新后的稀疏掩码m;
[0134]
利用稀疏掩码m更新w
unpruned
和w
pruned
,公式为
[0135]wunpruned
=w
dense
⊙m[0136]wpruned
=0
[0137]
该模块3包括通过下式固定稀疏掩码,更新稀疏模型权重:
[0138][0139]
所述的基于细粒度结构化稀疏的在线训练系统,其中初始模块中该稠密模型为用于图像分类的卷积神经网络;该第二训练模块,用于以该在线训练结果构建稀疏图像分类网络,对待分类图像进行分类。
[0140]
本发明还提出了一种存储介质,用于存储执行所述任意一种基于细粒度结构化稀疏的在线训练方法的程序。
[0141]
本发明还提出了一种客户端,用于所述任意一种基于细粒度结构化稀疏的在线训练系统。
再多了解一些

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

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

相关文献