零样本学习深度模型的量化方法
文献发布时间:2024-01-17 01:27:33
技术领域
本发明涉及一种零样本学习深度模型的量化方法,属于深度学习技术领域。
背景技术
随着深度学习技术在计算机视觉(CV)、自然语言处理(NLP)、语音等多个领域的快速应用,出现了大量的基于深度学习的网络模型。所述模型共有一个特点,即大而复杂、适合在GPU卡上面进行推理,并不适用在手机等嵌入式设备中,而客户们通常需要将所述复杂的模型部署在一些低成本的嵌入式设备中,因而这就产生了一个矛盾。
为了很好的解决这个矛盾,模型量化应运而生,对于深度学习模型来说,全精度浮点数乘加计算量是非常大的,往往需要GPU等专用的计算平台才能实现实时运算,这对于嵌入式设备来说是不可接受的,而模型量化是一个有效降低计算量的方法,它可以在损失少量精度的前提下对对模型的浮点数进行整型化,使得将所述复杂的模型应用到手机、机器人等嵌入式终端中变成了可能,大大降低了网络的数值精度、复杂性和内存占用。模型量化本质上就是建立一种浮点数据和定点数据间的映射关系,使得以较小的精度损失代价获得了较大的收益。
有鉴于此,确有必要提出一种零样本学习深度模型的量化方法,以解决上述问题。
发明内容
本发明的目的在于提供一种零样本学习深度模型的量化方法,实现了在不访问真实训练数据集的情况下对权重和激活逐层联合迭代优化。
为实现上述目的,本发明还提供了一种零样本学习深度模型的量化方法,主要包括以下步骤:
步骤1、获取已经训练完毕的全精度预训练模型;
步骤2、利用知识匹配生成器从全精度预训练模型的批归一化层BN层中获取原始训练数据的分类和分布信息,并生成批量伪数据作为校准数据集;
步骤3、使用所述校准数据集驱动所述全精度预训练模型的量化,其中,对模型每层的量化参数分别设置优化器,并从校准数据集中随机抽取部分数据进行100次的迭代优化,得到优化后的量化模型;
步骤4、生成新的伪数据驱动知识匹配生成器的优化,其中,优化的目标函数与步骤3中量化模型优化的目标函数形成对抗关系,重复步骤3对知识匹配生成器进行k次的迭代优化;
步骤5、持续交替对抗地优化量化模型和知识匹配生成器,直到模型量化性能稳定收敛。
作为本发明的进一步改进,步骤1中,根据目标数据集对全精度神经网络进行预训练,获得全精度预训练模型。
作为本发明的进一步改进,步骤2中,所述知识匹配生成器通过输入一个随机噪声,通过连续的线性变化、卷积、上采样以及激活函数的处理,最终输出一张1通道或者3通道的图片;所述的输入随机噪声的维度大小和输出图片的格式要根据需要进行设定,预训练模型包含着原始训练数据的分布信息,所述分布信息可以通过批归一化层BN层获取。
作为本发明的进一步改进,所述知识匹配生成器合成与所述全精度预训练模型的批归一化层BN层中编码的真实数据分布相匹配的数据样本,原理如下:
其中,
作为本发明的进一步改进,步骤3中,所述知识匹配生成器合成批量与训练集数据尺寸相匹配的伪数据作为校准数据集,再利用深度模型逐层量化算法在校准数据集上对权重和量化参数逐层联合优化,最大限度地最小化量化层输出和全精度层输出之间的均方误差,从而对权重和激活做到最优量化。
作为本发明的进一步改进,步骤31、吸收批归一化层BN层,将批归一化层BN层融合到前一层卷积层中,减少乘加计算量从而达到加速目的;
步骤32、量化模型过程中,涉及到两个量化函数QConv2d和QLinear,其中权重以每通道channal-wise方式量化,激活以每层l ayer-wise方式量化,以权重
r=r_max-r_min,
z=r_min,
其中,
步骤33、计算完量化参数后,记录调用次数num,计算冲量mo,使用冲量来正则化每一次量化参数,以减少误差,正则过程:
mo=num/num+1,
z=z×mo+qp_z×(1-mo),
r=r×mo+qp_r×(1-mo),
其中,
步骤34、指示变量measure置为False,此时调用QuantThUpdate()函数从QuantMeasure()函数中获取量化参数范围
步骤35、不同于权重和激活参数,偏差参数对于输入的改变是不敏感的,不需要通过冲量正则化的方式来减少误差防止过拟合,因此可以直接进行均匀量化,具体量化操作为QuantThUpdate();
步骤36、在校准数据集上对量化模型进行逐层迭代优化,使用均方误差损失函数对量化模型进行训练微调,使量化模型的性能尽可能逼近所述全精度预训练模型,对于模型每层量化层的权重和偏差以及量化范围和零点参数分别设置优化器,同时加入学习率自动调整模块,按照设定的间隔逐渐减小优化过程的学习率从而达到更好的训练效果,
对所述量化模型的参数进行更新时,采用自适应矩估计Adam算法对参数进行100次的迭代优化,每次优化时从校准数据集中随机抽取固定数量h的合成数据作为输入,使用均方误差函数将全精度预训练模型的输出和量化模型输出进行对齐,以微调量化模型,其中,优化量化模型时的损失函数为:
其中,N表示模型需要量化的层数,
作为本发明的进一步改进,具体量化操作包括以下步骤:
步骤341、设置初始化量化函数
q_max=2
q_min=0,
其中,M表示量化位宽,q_max和q_min表示量化后的整型张量中的最大值和最小值;
步骤342、截断范围
步骤343、获取初始化量化后的缩放因子
s=r/(q_max-q_min),
步骤344、计算量化参数零点
rd_z=clamp(round(q_min-z/s),q_min,q_max),
qz=s×(q_min-rd_z),
其中,round()表示自动取整函数,clamp()表示截断函数;
步骤345、获得量化后的整型张量
rd_q=round(clamp((w+q_min×s-qz)/s,q_min,q_max)),
q=rd_q×s+(qz-q_min×s),
其中,
作为本发明的进一步改进,步骤4中,生成新的合成数据驱动所述知识匹配生成器的迭代优化,
对知识匹配生成器的权重和偏差参数设置优化器,同时加入学习率自动调整模块,按照设定的间隔随着逐渐减小优化过程的学习率从而达到更好的训练效果;
对所述知识匹配生成器的参数进行更新时,采用Adam自适应矩估计算法对参数进行k次的迭代优化,每次优化时随机生成固定数量h的合成数据作为输入样本,将合成数据输入未优化的量化模型,计算每层全精度预训练模型的输出和量化模型输出的均方误差损失的总和作为优化损失函数L
作为本发明的进一步改进,优化所述知识匹配生成器时的损失函数为:
其中,N表示模型需要量化的层数,
作为本发明的进一步改进,步骤5中,知识匹配生成器负责以对抗学习方式生成信息丰富且多样化的数据,量化模型期望最小化全精度预训练模型和量化模型的差异,而知识匹配生成器期望最大化全精度预训练模型和量化模型的差异,从而找到更好的差异表征空间,持续交替对抗地优化量化模型和知识匹配生成器,通过增加数据的多样性来优化量化模型,最后在验证集上进行评估,交替优化策略包括:
L
其中,L
本发明的有益效果是:本发明提出对权重和量化参数进行逐层联合迭代优化,使模型每层量化层输出与全精度层输出之间的误差最小化,此外,利用随机生成器输出样本,生成模型中间各层和输出层的量化误差,通过优化量化参数减少误差和劣化生成器参数增加误差的对抗训练,很好的解决了零样本学习深度模型的量化问题,使得深度模型在低比特量化的情况下保持较好的精度,进而提高了图片分类和物体识别的精确度。
附图说明
图1为本发明的训练流程图。
图2为本发明的量化算法流程图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
在此,需要说明的是,为了避免因不必要的细节而模糊了本发明,在附图中仅仅示出了与本发明的方案密切相关的结构和/或处理步骤,而省略了与本发明关系不大的其他细节。
另外,还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
如图1和图2所示,本发明揭示了一种零样本学习深度模型的量化方法,主要包括以下步骤:
步骤1、在没有对应训练集和校准数据集的情况下,获取已经训练完毕的全精度预训练模型;
步骤2、利用知识匹配生成器从全精度预训练模型的批归一化层BN层中获取原始训练数据的分类和分布信息,并生成批量伪数据作为校准数据集;
步骤3、使用所述校准数据集驱动所述全精度预训练模型的量化,其中,对模型每层的量化参数分别设置优化器,并从校准数据集中随机抽取部分数据进行100次的迭代优化,得到优化后的量化模型;
步骤4、生成新的伪数据驱动知识匹配生成器的优化,其中,优化的目标函数与步骤3中量化模型优化的目标函数形成对抗关系,重复步骤3对知识匹配生成器进行k次的迭代优化;
步骤5、持续交替对抗地优化量化模型和知识匹配生成器,直到模型量化性能稳定收敛。
以下将对步骤1-步骤5进行详细说明。
步骤1中,根据目标数据集对全精度神经网络进行预训练,获得全精度预训练模型。
步骤2中,知识匹配生成器的主要功能是:输入一个随机噪声,通过连续的线性变化、卷积、上采样以及激活函数的处理,最终输出一张1通道或者3通道的图片;所述的输入随机噪声的维度大小和输出图片的格式要根据需要进行设定。预训练模型包含着原始训练数据的分布信息,所述分布信息可以通过批归一化层BN层获取。知识匹配生成器合成与所述全精度预训练模型的批归一化层BN层中编码的真实数据分布相匹配的数据样本,原理如下:
其中,
步骤3中,所述知识匹配生成器合成批量与训练集数据尺寸相匹配的伪数据作为校准数据集,再利用深度模型逐层量化算法在校准数据集上对权重和量化参数逐层联合优化,最大限度地最小化量化层输出和全精度层输出之间的均方误差,从而对权重和激活做到最优量化。
对于所述全精度预训练模型的量化包括以下步骤:
步骤31、吸收批归一化层BN层,将批归一化层BN层融合到前一层卷积层中,减少乘加计算量从而达到加速目的;
步骤32、量化模型过程中,涉及到两个量化函数QConv2d和QLinear,其中权重以每通道channal-wise方式量化,激活以每层layer-wise方式量化。以权重
r=r_max-r_min,
z=r_min,
其中,
步骤33、计算完量化参数后,记录调用次数num,计算冲量mo,使用冲量来正则化每一次量化参数,以减少误差。正则过程:
mo=num/num+1,
z=z×mo+qp_z×(1-mo),
r=r×mo+qp_r×(1-mo),
其中,
步骤34、指示变量measure置为False,此时调用QuantThUpdate()函数从QuantMeasure()函数中获取量化参数范围
具体量化操作包括以下步骤:
步骤341、设置初始化量化函数
q_max=2
q_min=0,
其中,M表示量化位宽,q_max和q_min表示量化后的整型张量中的最大值和最小值;
步骤342、截断范围
步骤343、获取初始化量化后的缩放因子
s=r/(q_max-q_min),
步骤344、计算量化参数零点
rd_z=clamp(round(q_min-z/s),q_min,q_max),
qz=s×(q_min-rd_z),
其中,round()表示自动取整函数,clamp()表示截断函数;
步骤345、获得量化后的整型张量
rd_q=round(clamp((w+q_min×s-qz)/s,q_min,q_max)),
q=rd_q×s+(qz-q_min×s),
其中,
步骤35、不同于权重和激活参数,偏差参数对于输入的改变是不敏感的,不需要通过冲量正则化的方式来减少误差防止过拟合,因此可以直接进行均匀量化,具体量化操作类似QuantThUpdate()。
步骤36、在校准数据集上对量化模型进行逐层迭代优化,使用均方误差损失函数对量化模型进行训练微调,使量化模型的性能尽可能逼近所述全精度预训练模型。对于模型每层量化层的权重和偏差以及量化范围和零点参数分别设置优化器,同时加入学习率自动调整模块,按照设定的间隔逐渐减小优化过程的学习率从而达到更好的训练效果。对所述量化模型的参数进行更新时,采用自适应矩估计Adam算法对参数进行100次的迭代优化,每次优化时从校准数据集中随机抽取固定数量h的合成数据作为输入,使用均方误差函数将全精度预训练模型的输出和量化模型输出进行对齐,以微调量化模型。其中,优化量化模型时的损失函数为:
其中,N表示模型需要量化的层数,
步骤4中,生成新的合成数据驱动知识匹配生成器的迭代优化。对知识匹配生成器的权重和偏差参数设置优化器,同时加入学习率自动调整模块,按照设定的间隔随着逐渐减小优化过程的学习率从而达到更好的训练效果。对所述知识匹配生成器的参数进行更新时,采用Adam自适应矩估计算法对参数进行k次的迭代优化,每次优化时随机生成固定数量h的合成数据作为输入样本,将合成数据输入未优化的量化模型,计算每层全精度预训练模型的输出和量化模型输出的均方误差损失的总和作为优化损失函数L
其中,N表示模型需要量化的层数,
步骤5中,知识匹配生成器负责以对抗学习方式生成信息丰富且多样化的数据。量化模型期望最小化全精度预训练模型和量化模型的差异,而知识匹配生成器期望最大化全精度预训练模型和量化模型的差异,从而找到更好的差异表征空间。持续交替对抗地优化量化模型和知识匹配生成器,通过增加数据的多样性来优化量化模型,最后在验证集上进行评估。交替优化策略包括:
L
其中,L
综上所述,本发明的方法克服了现有模型量化压缩需要训练数据的不足,通过知识匹配生成器从全精度预训练模型中挖掘对量化模型有指导作用的知识,如数据类别信息和分布信息,从而提高量化模型的精确度,进而提高图片分类的准确度,并且摆脱了对原始训练数据集的需求;
本发明在量化优化方法上,提出对权重和量化参数进行逐层联合迭代优化,使模型每层量化层输出与全精度层输出之间的误差最小化。同时加入学习率自动调整模块,按照设定的间隔逐渐减小优化过程的学习率从而达到更好的优化效果;
本发明的知识匹配生成器负责利用模型的中间各层和输出层的量化误差,通过优化量化参数减少误差和劣化生成器参数增加误差的对抗训练,以对抗学习方式生成信息丰富且多样化的数据,从而找到更好的差异表征空间,通过持续交替对抗地优化量化模型和知识匹配生成器,通过增加数据的多样性来更好的优化量化模型;
本发明有效的解决了现有的零样本学习深度模型的量化方法在无训练数据下模型压缩比和精度都过低的问题,使得参数量较大的深度模型也能被高效的量化压缩。
以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。
- 一种基于深度强化学习的深度学习漏洞检测模型对抗样本生成方法和系统
- 用于深度学习模型的量化方法和量化装置