一种神经网络蒸馏方法及装置制造方法及图纸

技术编号:26223544 阅读:23 留言:0更新日期:2020-11-04 10:56
本申请公开了一种神经网络蒸馏方法,应用于人工智能领域,包括:通过第一神经网络和第二神经网络对待处理数据进行处理,以获取第一目标输出和第二目标输出,第一目标输出为对第一神经网络层的输出进行基于核函数的变换得到的,第二目标输出为对第二神经网络层的输出进行基于核函数的变换得到的;根据第一目标输出和第二目标输出构建的目标损失对第一神经网络进行知识蒸馏。本申请对第一神经网络层的输出和第二神经网络层的输出进行了基于核函数的变换,进而可以将第一神经网络层和第二神经网络层输入和权重映射到高维特征空间,消除了知识蒸馏时由于神经网络层的权重分布不同而造成的网络性能降低。

【技术实现步骤摘要】
一种神经网络蒸馏方法及装置
本申请涉及人工智能领域,尤其涉及一种神经网络蒸馏方法及装置。
技术介绍
人工智能(artificialintelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。知识蒸馏采用的是迁移学习,通过采用预先训练好的复杂模型的输出作为监督信号去训练另外一个简单的网络。所谓模型蒸馏就是将训练好的复杂模型推广能力“知识”迁移到一个结构更为简单的网络中。或者通过简单的网络去学习复杂模型中“知识”。在进行知识蒸馏时,可以通过采用预先训练好的复杂网络去训练另外一个简单的网络,以使得简单的网络可以具有和复杂网络相同或相似的数据处理能力。在进行知识蒸馏时,也可以通过采用预先训练好的一种类型的网络去训练另一种类型的网络,以使得上述两种类型的网络可以具有相同或相似的数据处理能力,即可以以一种类型的网络作为老师模型,以另一种类型的网络作为学生模型,对学生模型进行知识蒸馏,以使得学生模型可以具有和老师模型相同或相似的数据处理能力。然而,在一些场景中,上述学生模型和老师模型中神经网络层的权重分布可能不同,如果基于现有的知识蒸馏方法对学生模型进行知识蒸馏,则会使得学生模型和老师模型中,具有不同权重分布的神经网络层的输出是相同或者相似的,知识蒸馏后得到的模型的性能较差。
技术实现思路
第一方面,本申请提供了一种神经网络蒸馏方法,所述方法包括:获取待处理数据、第一神经网络和第二神经网络,所述第一神经网络包括第一神经网络层,所述第二神经网络包括第二神经网络层;其中,第一神经网络可以是学生网络,第二神经网络可以是老师网络;第一神经网络层和第二神经网络层在后续进行知识蒸馏时对应的神经网络层,在功能上,我们希望知识蒸馏之后的第一神经网络在和第二神经网络进行相同的数据处理时,第一神经网络层和第二神经网络层的输出(经过基于核函数的变换)是相同或者相似的,在结构上,第一神经网络层和第二神经网络层分别在各自的神经网络中所处的位置是一致或者相似的,例如,当第一神经网络和第二神经网络包括相同数量的神经网络层,在这种情况下,第一神经网络中的第一神经网络层为从输入层开始计数的第N层,第二神经网络中的第二神经网络层也为从输入层开始计数的第N层(或者第N层附近的某一层);例如,当第一神经网络和第二神经网络包括不同数量的神经网络层,在这种情况下,第一神经网络层和第二神经网络层分别在各自的神经网络中所处的相对位置是一致或者相似的,第一神经网络包括A个神经网络层,第二神经网络包括B个神经网络层,则第一神经网络层为从输入层开始计数的第A/n层,第二神经网络中的第二神经网络层为从输入层开始计数的第B/n层(或者第B/n层附近的某一层)。其中,待处理数据与第一神经网络和第二神经网络的功能有关,例如当第一神经网络和第二神经网络用于进行图像分类,则待处理数据可以是图像数据。通过所述第一神经网络和所述第二神经网络对所述待处理数据进行处理,以获取第一目标输出和第二目标输出;其中,所述第一目标输出为对所述第一神经网络层的输出进行基于核函数的变换得到的,所述第二目标输出为对所述第二神经网络层的输出进行基于核函数的变换得到的;其中,基于核函数的变换可以用于将神经网络层的输入和神经网络层的权重映射到高维特征空间。具体的,可以分别通过所述第一神经网络和所述第二神经网络对所述待处理数据进行处理,即通过所述第一神经网络对所述待处理数据进行处理,通过所述第二神经网络对所述待处理数据进行处理。根据所述第一目标输出和所述第二目标输出,获取目标损失;需要说明的是,除了中间层(第一神经网络层和第二神经网络层)之外,还可以结合第一神经网络和第二神经网络最后一层和分类层的损失,得到整体的损失函数,并基于损失函数对所述第一神经网络进行知识蒸馏,以得到更新后的第一神经网络,其中,上述损失函数可以包括目标损失。在一种可选的实现中,所述目标损失为根据所述第一目标输出和所述第二目标输出的均方误差、相对熵,JS散度或wasserstein距离获取的。其中,只要能度量第一目标输出和所述第二目标输出之间的距离误差,本申请并不限定如何根据所述第一目标输出和所述第二目标输出来获取目标损失。在一种可选的实现中,可以以所述第二神经网络为老师模型、所述第一神经网络为学生模型,至少根据所述目标损失,对所述第一神经网络进行知识蒸馏,以得到更新后的第一神经网络。本申请实施例提供了一种神经网络蒸馏方法,通过对所述第一神经网络层的输出和所述第二神经网络层的输出进行了基于核函数的变换,进而可以将第一神经网络层和第二神经网络层输入和权重映射到高维特征空间,消除了知识蒸馏时由于神经网络层的权重分布不同而造成的网络性能降低。在一种可选的实现中,所述第一神经网络层和所述第二神经网络层为中间层。其中,第一神经网络可以包括一个输入层、多个中间层和一个输出层,第一神经网络层为第一神经网络包括的多个中间层中的一个,第二神经网络可以包括一个输入层、多个中间层和一个输出层,第二神经网络层为第二神经网络包括的多个中间层中的一个,中间层的个数并不做限制。示例性的,神经网络为五层网络,包括:一个输入层、三个隐含层和一个输出层,输入层、第一中间层、第二中间层、第三中间层和输出层依次连接。在一种可选的实现中,所述第一神经网络层包括第一权重,所述第二神经网络层包括第二权重,在所述对所述待处理数据进行处理时,所述第一神经网络层的输入为第一输入,所述第二神经网络层的输入为第二输入;具体的,在神经网络中,存在几百甚至上千万的参数,该参数可以包括神经网络中每一层的权重参数、偏置参数等,第一权重可以为第一神经网络层包括权重参数,第二权重可以为第二神经网络层包括权重参数;第一输入为第一神经网络层的输入,第一输入可以为与第一神经网络层相连的上一层神经网络层的输出;第二输入为第二神经网络层的输入,第二输入可以为与第二神经网络层相连的上一层神经网络层的输出。其中,所述第一目标输出表示映射至高维特征空间的所述第一权重与映射至高维特征空间的所述第一输入之间的距离度量;所述第二目标输出表示映射至高维特征空间的所述第二权重与映射至高维特征空间的所述第二输入之间的距离度量。在一种可选的实现中,所述第一神经网络的权重分布与所述第二神经网络的权重分布不同。在一种可选的实现中,所述第一神经网络的权重分布为拉普拉斯分布,所述第二神经网络的权重分布为高斯分布。通常为了加速训练过程的收敛,会将神经网络中的权重分布设置为高斯分布或者拉普拉斯分布等,例如,CNN的权重分布为高斯分布,ANN的权重分布为拉普拉斯分布。在一种可选的实现中,所述第一本文档来自技高网
...

【技术保护点】
1.一种神经网络蒸馏方法,其特征在于,所述方法包括:/n获取待处理数据、第一神经网络和第二神经网络,所述第一神经网络包括第一神经网络层,所述第二神经网络包括第二神经网络层;/n通过所述第一神经网络和所述第二神经网络对所述待处理数据进行处理,以获取第一目标输出和第二目标输出;其中,所述第一目标输出为对所述第一神经网络层的输出进行基于核函数的变换得到的,所述第二目标输出为对所述第二神经网络层的输出进行基于核函数的变换得到的;/n根据所述第一目标输出和所述第二目标输出,获取目标损失;/n以所述第二神经网络为老师模型、所述第一神经网络为学生模型,至少根据所述目标损失,对所述第一神经网络进行知识蒸馏,以得到更新后的第一神经网络。/n

【技术特征摘要】
1.一种神经网络蒸馏方法,其特征在于,所述方法包括:
获取待处理数据、第一神经网络和第二神经网络,所述第一神经网络包括第一神经网络层,所述第二神经网络包括第二神经网络层;
通过所述第一神经网络和所述第二神经网络对所述待处理数据进行处理,以获取第一目标输出和第二目标输出;其中,所述第一目标输出为对所述第一神经网络层的输出进行基于核函数的变换得到的,所述第二目标输出为对所述第二神经网络层的输出进行基于核函数的变换得到的;
根据所述第一目标输出和所述第二目标输出,获取目标损失;
以所述第二神经网络为老师模型、所述第一神经网络为学生模型,至少根据所述目标损失,对所述第一神经网络进行知识蒸馏,以得到更新后的第一神经网络。


2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标数据,根据所述更新后的第一神经网络对所述目标数据进行处理,以得到处理结果。


3.根据权利要求1或2所述的方法,其特征在于,所述第一神经网络层和所述第二神经网络层为中间层。


4.根据权利要求1至3任一所述的方法,其特征在于,所述目标损失为根据所述第一目标输出和所述第二目标输出的均方误差、相对熵、JS(Jensen-Shannon)散度或wasserstein距离获取的。


5.根据权利要求1至4任一所述的方法,其特征在于,所述第一神经网络层包括第一权重,所述第二神经网络层包括第二权重,在所述对所述待处理数据进行处理时,所述第一神经网络层的输入为第一输入,所述第二神经网络层的输入为第二输入;
其中,所述第一目标输出表示映射至高维特征空间的所述第一权重与映射至高维特征空间的所述第一输入之间的距离度量;所述第二目标输出表示映射至高维特征空间的所述第二权重与映射至高维特征空间的所述第二输入之间的距离度量。


6.根据权利要求1至6任一所述的方法,其特征在于,所述第一神经网络的权重分布与所述第二神经网络的权重分布不同。


7.根据权利要求1至6任一所述的方法,其特征在于,所述第一神经网络的权重分布为拉普拉斯分布,所述第二神经网络的权重分布为高斯分布。


8.根据权利要求1至7任一所述的方法,其特征在于,所述第一神经网络为加法神经网络ANN,所述第二神经网络为卷积神经网络CNN。


9.根据权利要求1至8任一所述的方法,其特征在于,所述更新后的第一神经网络包括更新后的第一神经网络层,且所述第二神经网络和所述更新后的第一神经网络在对同一数据进行处理时,所述更新后的第一神经网络层的输出与所述第二神经网络层的输出的差异在预设范围内。


10.根据权利要求1至9任一所述的方法,其特征在于,所述根据所述第一目标输出和所述第二目标输出,获取目标损失,包括:
对所述第一目标输出进行线性变换,得到线性变换后的第一目标输出;
对所述第二目标输出进行线性变换,得到线性变换后的第二目标输出
根据所述线性变换后的第一目标输出和所述线性变换后的第二目标输出,获取目标损失。


11.根据权利要求1至10任一所述的方法,其特征在于,所述核函数包括如下的至少一种:
径向基核函数、拉普拉斯核函数、幂指数核函数、ANOVA核函数、二次有理核函数、多元二次核函数、逆多元二次核函数、sigmoid核函数、多项式核函数以及线性核函数。


12.一种神经网络蒸馏方法,其特征在于,所述方法应用于终端设备,所述方法包括:
获取第一神经网络以及第二神经网络;
以所述第二神经网络为老师模型、所述第一神经网络为学生模型,对所述第一神经网络进行知识蒸馏,以得到更新后的第一神经...

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

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

1