一种卷积神经网络的剪枝处理方法、数据处理方法及设备技术

技术编号:29134711 阅读:16 留言:0更新日期:2021-07-02 22:30
本申请实施例公开了一种卷积神经网络的剪枝处理方法、数据处理方法及设备,可应用于人工智能领域,包括:通过构建的目标损失函数对卷积神经网络进行稀疏化训练,该目标损失函数可包括三个子损失函数,第一子损失函数用来衡量输入样本复杂度,第二子损失函数用来衡量处理输入样本的剪枝后的子网络复杂度,第三子损失函数用来衡量不同输入样本之间的相似度。第二子损失函数根据通道重要性函数与动态权重得到,并在第一子损失函数的取值未达到第一阈值的情况下,输入样本复杂度越高,动态权重取值越小(呈反相关),训练得到的通道重要性函数的稀疏性越小,剪枝越少,从而实现针对每个输入样本的灵活剪枝,并实现相似的输入样本输入到相似的子网络。

【技术实现步骤摘要】
一种卷积神经网络的剪枝处理方法、数据处理方法及设备
本申请涉及机器学习领域,尤其涉及一种卷积神经网络的剪枝处理方法、数据处理方法及设备。
技术介绍
近年来,卷积神经网络大量应用在计算机视觉(如,图像分类、目标检测、视频分析等)、机器翻译、语音识别等领域中,然而随着卷积神经网络技术的发展,其网络结构的设计愈发复杂,导致卷积神经网络的模型较大、计算复杂度较高,这限制了卷积神经网络在移动设备(如,手机)、可穿戴设备等计算能力和存储空间有限的硬件资源上的应用。因此,为了将卷积神经网络应用到计算资源受限的小型移动设备上,需要对其进行压缩和加速,一种常见的模型压缩方法是对卷积神经网络进行剪枝处理。剪枝是通过减少卷积层中卷积核的数量(也可称为通道数)来减少模型大小和降低模型计算复杂度。一种常用的剪枝方法是使用静态的通道控制因子来决定各个卷积核的重要性,其训练过程主要是:首先为卷积神经网络设置或添加通道控制因子,该通道控制因子用一维向量表示,该一维向量里的每个元素与该卷积神经网络的一个卷积核对应,每个元素的取值用于表征对应卷积核的重要性;之后训练卷积神经网络的通道控制因子,根据该通道控制因子的取值删除不重要的卷积核(即剪枝),最后迭代训练剪枝后的卷积神经网络。上述这种传统的剪枝方法是一种永久删除通道的剪枝方法,通过该方法可以获得一个“静态”的卷积神经网络,该剪枝后的卷积神经网络忽略了不同输入数据对网络参数和容量的不同需求,实际上,卷积核的重要性在很大程度上取决于输入数据。
技术实现思路
本申请实施例提供了一种卷积神经网络的剪枝处理方法、数据处理方法及设备,通过构建新的目标损失函数对卷积神经网络进行稀疏化训练,该新构建的目标损失函数可以由两个子损失函数组成,第一子损失函数用来衡量训练样本的复杂度,第二子损失函数用来衡量处理该训练样本的剪枝后的子网络的复杂度。其中,网络复杂度根据通道重要性函数与动态权重得到,并且在第一子损失函数的取值没有达到第一阈值的情况下,训练样本复杂度越高,动态权重取值就越小(呈反相关),训练得到的通道重要性函数的稀疏性就越小,剪枝越少,从而实现针对每个训练样本的灵活剪枝。基于此,本申请实施例提供以下技术方案:第一方面,本申请实施例首先提供一种卷积神经网络的剪枝处理方法,可用于人工智能领域中,具体可应用于计算机视觉(如,图像分类、目标检测、视频分析等)、机器翻译、语音识别等领域中,该方法包括:首先,训练设备可以根据目标任务确定第一子损失函数,该第一子损失函数用于表征输入待进行剪枝处理的卷积神经网络(即目标卷积神经网络)的训练样本与输出的预测结果之间的差异。在本申请实施例中,训练设备可以先从已有的多种类型的卷积神经网络中选择出一个适合处理目标任务的卷积神经网络,也可以自行构建符合目标任务的卷积神经网络的网络结构,该选择出的卷积神经网络或自行构建的卷积神经网络可以称为目标卷积神经网络。该目标卷积神经网络为用于进行训练的卷积神经网络,该目标卷积神经网络在针对不同训练样本的训练过程中具有不同的网络参数和损失函数。训练设备除了根据目标任务确定第一子损失函数之外,还可以根据通道重要性函数与动态权重得到第二子损失函数,其中,该通道重要性函数可以用于表征该目标卷积神经网络中每个卷积核(一个卷积核也可以称为一个通道)对训练样本的重要程度,该通道重要性函数的取值具体可以表征为一个一维向量,该向量中的每个元素对应该目标卷积神经网络中的一个卷积核,具体地,卷积核的重要程度就可以通过通道重要性函数的取值体现,例如,可以事先设定阈值,当该通道重要性函数中的某元素的取值大于或等于该设定阈值,则认为对应该元素的卷积核是重要的卷积核,不该被剪枝;当该通道重要性函数中的某元素的取值小于该设定阈值,则认为对应该元素的卷积核是不重要的卷积核,可以被剪枝。并且,在第一子损失函数的取值没有达到第一阈值的情况下,动态权重的取值根据第一子损失函数的取值得到,动态权重的取值与第一子损失函数的取值呈反相关关系。训练设备在确定第一子损失函数的表达式和第二子损失函数的表达式之后,就可根据该第一子损失函数与该第二子损失函数得到目标损失函数。训练设备构建好对应的目标损失函数之后,就可利用该目标损失函数对该目标卷积神经网络进行稀疏化训练,从而得到训练后的目标卷积神经网络,其中,稀疏化为根据通道重要性函数的取值对目标卷积神经网络的卷积核进行剪枝,具体地,是指将重要程度的取值低于第二阈值的卷积核进行剪枝。在本申请上述实施方式中,通过构建新的目标损失函数对卷积神经网络进行稀疏化训练,该新构建的目标损失函数可以由两个子损失函数组成,第一子损失函数用来衡量训练样本的复杂度,第二子损失函数用来衡量处理该训练样本的剪枝后的子网络的复杂度。其中,网络复杂度根据通道重要性函数与动态权重得到,并且在第一子损失函数的取值没有达到第一阈值的情况下,训练样本复杂度越高,动态权重取值就越小(呈反相关),训练得到的通道重要性函数的稀疏性就越小,剪枝越少,从而实现针对每个训练样本的灵活剪枝,可充分挖掘该目标卷积神经网络的冗余。在第一方面的一种可能实现方式中,训练设备根据该第一子损失函数与该第二子损失函数得到目标损失函数的具体实现方式可以是:将该第一子损失函数与该第二子损失函数相加,得到该目标损失函数。在本申请上述实施方式中,具体阐述了如何基于第一子损失函数与第二子损失函数得到目标损失函数的一种实现方式,简单易实现。在第一方面的一种可能实现方式中,除了将样本映射到复杂性空间之外,训练样本之间的相似性也可以帮助为不同训练样本定制合适的子网络结构,也就是希望相似的训练样本可以输入到相似的子网络中。因此,训练设备除了根据目标任务确定第一子损失函数以及根据通道重要性函数与动态权重得到第二子损失函数之外,还可以根据第一相似度和第二相似度得到第三子损失函数,其中,该第一相似度用于表征第一训练样本被提取的特征与第二训练样本被提取的特征之间的相似度,该第二相似度用于表征第一通道重要性参数与第二通道重要性参数之间的相似度,并且,该第一通道重要性参数为输入第一训练样本后获得的所述通道重要性函数的取值,该第二通道重要性参数为输入所述第二训练样本后获得的所述通道重要性函数的取值,第一训练样本与第二训练样本分别为训练集中任意两个不同的样本。训练设备在确定第一子损失函数的表达式、第二子损失函数的表达式以及第三子损失函数的表达式之后,就可根据该第一子损失函数、该第二子损失函数与该第三子损失函数得到目标损失函数。在本申请上述实施方式中,除了从样本复杂度的角度考虑外,还进一步从样本复杂度和样本相似度这两个角度进行考虑,即不仅期望复杂度高的训练样本输入到容量大的子网络进行预测,还期望相似的训练样本能输入到相似的子网络(即进行了相似的剪枝)中进行预测,从而可更加充分地挖掘目标卷积神经网络中的冗余。在第一方面的一种可能实现方式中,根据第一相似度和第二相似度得到第三子损失函数的具体实现方式可以是:在将第一相似度与第二相似度分别转换为一维向量(如,池化操作)后,将第一相似度与第二相似度本文档来自技高网...

【技术保护点】
1.一种卷积神经网络的剪枝处理方法,其特征在于,包括:/n根据目标任务确定第一子损失函数,所述第一子损失函数用于表征输入目标卷积神经网络的训练样本与输出的预测结果之间的差异,所述目标卷积神经网络为用于进行训练的卷积神经网络,所述目标卷积神经网络在针对不同训练样本的训练过程中具有不同的网络参数和损失函数,所述训练样本为训练集中的样本;/n根据通道重要性函数与动态权重得到第二子损失函数,在所述第一子损失函数的取值没有达到第一阈值的情况下,所述动态权重的取值根据所述第一子损失函数的取值得到,所述动态权重的取值与所述第一子损失函数的取值呈反相关关系;/n根据所述第一子损失函数与所述第二子损失函数得到目标损失函数;/n利用所述目标损失函数对所述目标卷积神经网络进行稀疏化训练,得到训练后的目标卷积神经网络,所述稀疏化为根据所述通道重要性函数的取值对所述目标卷积神经网络的卷积核进行剪枝。/n

【技术特征摘要】
1.一种卷积神经网络的剪枝处理方法,其特征在于,包括:
根据目标任务确定第一子损失函数,所述第一子损失函数用于表征输入目标卷积神经网络的训练样本与输出的预测结果之间的差异,所述目标卷积神经网络为用于进行训练的卷积神经网络,所述目标卷积神经网络在针对不同训练样本的训练过程中具有不同的网络参数和损失函数,所述训练样本为训练集中的样本;
根据通道重要性函数与动态权重得到第二子损失函数,在所述第一子损失函数的取值没有达到第一阈值的情况下,所述动态权重的取值根据所述第一子损失函数的取值得到,所述动态权重的取值与所述第一子损失函数的取值呈反相关关系;
根据所述第一子损失函数与所述第二子损失函数得到目标损失函数;
利用所述目标损失函数对所述目标卷积神经网络进行稀疏化训练,得到训练后的目标卷积神经网络,所述稀疏化为根据所述通道重要性函数的取值对所述目标卷积神经网络的卷积核进行剪枝。


2.根据权利要求1所述的方法,其特征在于,所述根据所述第一子损失函数与所述第二子损失函数得到目标损失函数包括:
将所述第一子损失函数与所述第二子损失函数相加,得到所述目标损失函数。


3.根据权利要求1所述的方法,其特征在于,在根据所述第一子损失函数与所述第二子损失函数得到目标损失函数之前,所述方法还包括:
根据第一相似度和第二相似度得到第三子损失函数,所述第一相似度用于表征第一训练样本被提取的特征图与第二训练样本被提取的特征图之间的相似度,所述第二相似度用于表征第一通道重要性参数与第二通道重要性参数之间的相似度,所述第一通道重要性参数为输入所述第一训练样本后获得的所述通道重要性函数的取值,所述第二通道重要性参数为输入所述第二训练样本后获得的所述通道重要性函数的取值,所述第一训练样本与所述第二训练样本为所述训练集中两个不同的样本;
所述根据所述第一子损失函数与所述第二子损失函数得到目标损失函数包括:
根据所述第一子损失函数、所述第二子损失函数及所述第三子损失函数得到所述目标损失函数。


4.根据权利要求3所述的方法,其特征在于,所述根据第一相似度和第二相似度得到第三子损失函数包括:
将所述第一相似度与所述第二相似度之间的距离函数作为所述第三子损失函数。


5.根据权利要求3-4中任一项所述的方法,其特征在于,
所述第一相似度具体用于表征所述第一训练样本被提取的特征图与第二训练样本被提取的特征图之间的余弦相似度;
所述第二相似度具体用于表征所述第一通道重要性参数与所述第二通道重要性参数之间的余弦相似度。


6.根据权利要求3-5中任一项所述的方法,其特征在于,所述根据所述第一子损失函数、所述第二子损失函数及所述第三子损失函数得到所述目标损失函数包括:
将所述第一子损失函数、所述第二子损失函数及第一乘积结果相加,得到所述目标损失函数,所述第一乘积结果为将所述第三子损失函数与第一预设系数相乘后的结果。


7.根据权利要求1-6中任一项所述的方法,其特征在于,所述动态权重的取值根据所述第一子损失函数的取值得到包括:
所述动态权重的取值由第一比值与第二预设系数相乘得到,所述第一比值为第一差值与所述第一阈值之间的比值,所述第一差值为所述第一阈值与所述第一子损失函数的取值之间的差值。


8.根据权利要求1-7中任一项所述的方法,其特征在于,所述根据通道重要性函数与动态权重得到第二子损失函数包括:
将所述通道重要性函数与所述动态权重相乘,得到所述第二子损失函数。


9.根据权利要求1-8中任一项所述的方法,其特征在于,
在所述第一子损失函数的取值达到所述第一阈值的情况下,所述动态权重的取值为零。


10.根据权利要求1-9中任一项所述的方法,其特征在于,根据目标任务确定第一子损失函数包括:
在所述目标任务为分类任务的情况下,确定交叉熵损失函数为所述第一子损失函数。


11.一种数据处理方法,其特征在于,包括:
获取与目标任务相关的输入数据;
根据所述输入数据对训练后的目标卷积神经网络进行剪枝,得到剪枝后的子网络,所述训练后的目标卷积神经网络利用目标损失函数训练得到,所述目标损失函数根据第一子损失函数及第二子损失函数得到,所述第一子损失函数根据所述目标任务确定,所述第二子损失函数根据通道重要性函数与动态权重确定,所述第一子损失函数用于表征输入所述目标卷积神经网络的训练样本与输出的预测结果之间的差异,在所述第一子损失函数的取值没有达到第一阈值的情况下,所述动态权重的取值根据所述第一子损失函数的取值得到,所述动态权重的取值与所述第一子损失函数的取值呈反相关关系,所述目标损失函数用于在所述目标卷积神经网络训练时对所述目标卷积神经网络进行稀疏化,所述稀疏化为根据所述通道重要性函数的取值对所述目标卷积神经网络的卷积核进行剪枝;
通过所述子网络对所述输入数据进行处理,得到输出数据。


12.根据权利要求11所述的方法,其特征在于,所述根据所述输入数据对训练后的目标卷积神经网络进行剪枝,得到剪枝后的子网络包括:
根据所述输入数据和剪枝率对训练后的目标卷积神经网络进行剪枝,得到剪枝后的子网络,其中,所述剪枝率为被剪枝的卷积核在所述目标神经网络中所有卷积核中所占的比例。


13.根据权利要求11-12中任一项所述的方法,其特征在于,所述动态权重的取值根据所述第一子损失函数的取值得到包括:
所述动态权重的取值由第一比值与第二预设系数相乘得到,所述第一比值为第一差值与所述第一阈值之间的比值,所述第一差值为所述第一阈值与所述第一子损失函数的取值之间的差值。


14.根据权利要求11-13中任一项所述的方法,其特征在于,在所述第一子损失函数的取值达到第一阈值的情况下,所述动态权取值为零。


15.根据权利要求11-14中任一项所述的方法,其特征在于,所述输入数据包括:
图像数据、音频数据、文本数据。


16.一种训练设备,其特征在于,包括:
第一确定模块,用于根据目标任务确定第一子损失函数,所述第一子损失函数用于表征输入目标卷积神经网络的训练样本与输出的预测结果之间的差异,所述目标卷积神经网络为用于进行训练的卷积神经网络,所述目标卷积神经网络在针对不同训练样本的训练过程中具有不同的网络参数和损失函数,所述训练样本为训练集中的样本;
第二确定模块,用于根据通道重要性函数与动态...

【专利技术属性】
技术研发人员:唐业辉许奕星王云鹤许春景
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1