本申请涉及计算机领域,具体地,涉及一种深度神经网络轻量化方法及其系统。
背景技术:
1、计算机视觉技术的发展离不开深度神经网络的推动。目前,卷积神经网络(convolutionneural network,cnn)模型在图像识别方面的成就已经接近饱和,并且随着cnn模型的发展,针对其所做的轻量化工作也有了广泛深入的研究。cnn量化方法因在轻量化任务中广泛存在而受到越来越多的关注。针对cnn模型的量化方法也是层出不穷,这些方法将模型的参数取值范围限定在特定范围内,将原本连续的参数映射到离散的值上,通常是通过就近原则进行映射。这种做法可以大量节约模型所占用的存储空间。近年来,随着另一个新兴的深度神经网络模型,transformer,被引入计算机视觉领域,其强大的全局特征提取能力导致其在精度方面已经超过了传统的cnn模型。其中,针对vision transformer(vit)模型的轻量化工作刚刚起步,vit模型由于引入自注意力机制所产生的复杂结构,以及模型参数冗余性较低,导致在不损失模型性能的情况下对其进行量化成为了一项挑战。如果将传统的应用于cnn的量化方法(传统方法每一层的量化位宽的一样)应用于vit中会导致严重的性能下降,例如在lei yang等人提出的动态定点量化方法中,即使是使用8位量化,vit模型依旧有超过1%的性能损失。为了解决这一问题,越来越多的研究人员开始设计可以应用于vit模型的量化方法。例如xinyu zhang等人提出的针对vit模型的动态量化,该方法通过在模型推理过程中,将浮点数参数转换为定点数参数,根据输入数据的范围动态调整量化参数,以提高模型的精度和适应性。何凯明等人针对vit模型提出了一种基于通道感知的动态量化方法,通过引入通道注意力机制,使得量化过程更加关注通道之间的重要性差异,从而能够更有效地保留模型的感知特性。总而言之,考虑到vit模型参数的冗余性较低且模型结构复杂,需要对量化策略有着更精确的设计。
2、但是针对目前vit模型量化方法,存在如下主要的缺陷:一、针对vit模型使用更精细化量化策略的手段是缺乏的。传统量化训练神经网络的方法是在浮点数上正常进行训练,然后对训练后得到的权重进行量化,并且为了维持量化前的精度通常需要进行额外的训练进行微调。这种传统的方法对于传统的冗余性强并且结构简单的大型模型十分有效,但是对于vit这种结构复杂的模型这么操作,将会出现明显的精度下降。二、针对vit模型不同部分分配不同量化位宽的手段是缺乏的。在目前vit模型的修剪中,考虑到在vit量化工作中,针对于模型的不同位置,其每一层激活函数输出与权重的位宽都应该根据该层的重要程度单独得出。这是由于vit本身具有复杂的结构以及参数的冗余性较低,如果将传统的应用于cnn的量化方法(传统方法每一层的量化位宽的一样)应用于vit模型中会导致严重的性能下降。
3、因此,如何提供一种高效的实现模型轻量化的方法,成为本领域急需解决的问题。
技术实现思路
1、本申请提出一种深度神经网络轻量化方法,包括以下步骤:s1、初始化最大迭代次数,量化间隔与量化位宽;s2、初始化后,获取参与量化的模型,得到目标函数;s3、根据目标函数对量化间隔进行迭代优化;s4、根据目标函数对量化位宽使用强化学习进行优化;s5、判断目标函数是否收敛或迭代次数达到最大迭代次数;若目标函数收敛或迭代次数达到最大迭代次数,则流程结束;若目标函数收敛或迭代次数未达到最大迭代次数,迭代次数加1,返回执行步骤s2。
2、如上的,其中,根据目标函数对量化间隔进行迭代优化包括以下子步骤:将模型的目标函数作为输入;确定优化目标函数,根据优化目标函数对权重张量和输入张量的量化间隔进行优化。
3、如上的,其中,优化问题的目标函数表示为:
4、
5、其中,j是每一层目标函数jl的和,表示第l层模块的输入张量的量化间隔,表示第l层模块的权重张量的量化间隔,l表示模块总层数。
6、如上的,其中,每一层目标函数分别代表量化前后的输出张量,表示量化前输出张量与量化后输出张量的相似程度,lranking代表惩罚项。
7、如上的,其中,量化前输出张量与量化后输出张量的相似程度表示为:
8、
9、其中m表示输出张量ol的参数个数,ol,j表示输出张量的第j个值,表示张量ol的平均值,ol'表示量化后的输出张量,j表示自然数。
10、一种深度神经网络轻量化系统,具体包括:初始化单元、模型确定单元、量化间隔优化单元、量化位宽优化单元、判断单元以及结束单元;初始化单元,用于初始化最大迭代次数,量化间隔与量化位宽;模型确定单元,用于获取参与量化的模型,得到目标函数;量化间隔优化单元,用于根据目标函数对量化间隔进行迭代优化;量化位宽优化单元,用于根据目标函数对量化位宽使用强化学习进行优化;判断单元,用于判断目标函数是否收敛或迭代次数达到最大迭代次数;若目标函数收敛或迭代次数达到最大迭代次数,则结束单元执行流程结束;若目标函数收敛或迭代次数未达到最大迭代次数,迭代次数加1,返回模型确定单元。
11、如上的,其中,量化间隔优化单元执行以下步骤:根据目标函数对量化间隔进行迭代优化包括以下子步骤:将模型的目标函数作为输入;确定优化目标函数,根据优化目标函数对权重张量和输入张量的量化间隔进行优化。
12、如上的,其中,量化间隔优化单元中的优化问题的目标函数表示为:
13、
14、其中,j是每一层目标函数jl的和,表示第l层模块的输入张量的量化间隔,表示第l层模块的权重张量的量化间隔,l表示模块总层数
15、如上的,其中,每一层目标函数分别代表量化前后的输出张量,表示量化前输出张量与量化后输出张量的相似程度,lranking代表惩罚项。
16、如上的,其中,量化前输出张量与量化后输出张量的相似程度表示为:
17、
18、其中m表示输出张量ol的参数个数,ol,j表示输出张量的第j个值,表示张量ol的平均值,ol'表示量化后的输出张量,j表示自然数。
19、本申请具有以下有益效果:
20、(1)本申请将量化工作拆分成量化间隔和量化位宽的获取问题,将原本复杂的优化问题简单化。
21、(2)本申请根据量化前后的输出张量构建损失函数,实现了更细粒度的量化间隔的获取。
22、(3)本申请使用强化学习得出模型不同部分的量化位宽,实现了针对模型不同位置使用不同量化位宽这一目的。
1.一种深度神经网络轻量化方法,其特征在于,包括以下步骤:
2.如权利要求1所述的深度神经网络轻量化方法,其特征在于,根据目标函数对量化间隔进行迭代优化包括以下子步骤:
3.如权利要求2所述的深度神经网络轻量化方法,其特征在于,优化问题的目标函数表示为:
4.如权利要求3所述的深度神经网络轻量化方法,其特征在于,每一层目标函数分别代表量化前后的输出张量,表示量化前输出张量与量化后输出张量的相似程度,lranking代表惩罚项。
5.如权利要求4所述的深度神经网络轻量化方法,其特征在于,量化前输出张量与量化后输出张量的相似程度表示为:
6.一种深度神经网络轻量化系统,其特征在于,具体包括:初始化单元、模型确定单元、量化间隔优化单元、量化位宽优化单元、判断单元以及结束单元;
7.如权利要求6所述的深度神经网络轻量化系统,其特征在于,量化间隔优化单元执行以下子步骤:
8.如权利要求7所述的深度神经网络轻量化系统,其特征在于,量化间隔优化单元中的优化问题的目标函数表示为:
9.如权利要求8所述的深度神经网络轻量化系统,其特征在于,每一层目标函数分别代表量化前后的输出张量,表示量化前输出张量与量化后输出张量的相似程度,lranking代表惩罚项。
10.如权利要求9所述的深度神经网络轻量化系统,其特征在于,量化前输出张量与量化后输出张量的相似程度表示为: