CN116097277A - 使用渐进式知识蒸馏训练神经网络模型的方法和系统 - Google Patents

使用渐进式知识蒸馏训练神经网络模型的方法和系统 Download PDF

Info

Publication number
CN116097277A
CN116097277A CN202180054947.9A CN202180054947A CN116097277A CN 116097277 A CN116097277 A CN 116097277A CN 202180054947 A CN202180054947 A CN 202180054947A CN 116097277 A CN116097277 A CN 116097277A
Authority
CN
China
Prior art keywords
snn
model
training phase
training
neural network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202180054947.9A
Other languages
English (en)
Inventor
阿雷夫·贾法里
梅赫迪·雷扎霍利扎德
阿里·戈德希
普拉纳夫·沙玛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN116097277A publication Critical patent/CN116097277A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/096Transfer learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)

Abstract

训练学生神经网络(SNN)模型的方法和系统。在多个轮次上执行第一训练阶段,在第一训练阶段期间,教师神经网络(TNN)模型输出的平滑因子以生成平滑的TNN模型输出,基于SNN模型输出和平滑的TNN模型输出来计算第一损失,并且以在接下来的第一训练阶段轮次中减少所述第一损失为目标,来计算SNN模型参数的更新集合。在第一训练阶段的多个轮次上调整平滑因子,以减少所生成的平滑的TNN模型输出的平滑效应。基于SNN模型输出和针对多个输入数据样本的预定义的预期输出集合来执行第二训练阶段。

Description

使用渐进式知识蒸馏训练神经网络模型的方法和系统
相关申请数据
本申请要求2020年9月9日递交的第63/076,368号美国临时专利申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。
技术领域
本申请涉及用于训练机器学习模型的方法和系统,具体地,用于使用知识蒸馏训练神经网络模型的方法和系统。
背景技术
基于深度学习的算法属于机器学习方法,用于自然语言处理(natural languageprocessing,NLP)和计算机视觉(computer vision,CV)领域的许多机器学习应用。深度学习包括将非线性参数函数或“神经元”层组合在一起,并训练参数或“权重”,通常使用基于梯度的优化算法,以最小化损失函数。这些方法成功的一个关键原因是能够通过增加参数和数据来提高性能。在NLP中,这催生了具有数十亿参数的深度学习架构(Brown等人,2020年)。研究表明,大型架构或“模型”也更易于优化。因此,模型压缩对于任何实际应用都是必不可少的,例如在手机上为个人助理部署经过训练的机器学习模型。
知识蒸馏(knowledge distillation,KD)是一种神经网络压缩技术,通过这种技术,复杂神经网络模型的泛化被转移到一个较不复杂的神经网络模型中,该模型能够以较少的计算资源成本和时间作出与复杂模型相似的推断(即预测)。在本文中,复杂神经网络模型是指具有相对较多计算资源(例如GPU/CPU功率和计算机存储空间)的神经网络模型和/或包括相对较多隐藏层的神经网络模型。为了进行KD,复杂神经网络模型有时被称为教师神经网络模型(T)或简称教师。教师的一个典型缺点是,它可能需要大量的计算资源,但诸如移动通信设备或边缘计算设备等消费电子设备无法提供此规模的资源。此外,由于教师神经网络模型本身的复杂性,该模型通常需要大量的时间来推断(即预测)输入的特定输出,因此可能不适合部署到消费者计算设备以在其中使用。因此,KD技术主要用于提取或蒸馏教师神经网络模型的学习参数或知识,并将这些知识传授给具有更快的推断时间和消耗更少计算资源和存储空间成本的较不复杂的神经网络模型,从而降低消费者计算设备(如边缘设备)的负担。较不复杂的神经网络模型通常被称为学生神经网络模型(S)或简称学生。KD技术不仅包括使用训练数据集的标记训练数据样本来训练学生,而且还使用教师神经网络模型生成的输出,即logit。
在KD方案的示例中,给定样本对
Figure BDA0004110633170000011
的训练数据集,其中xi是输入向量,yi是类的目标独热向量(例如,分类标签),损失函数可以包括两个分量:
a)第一损失函数
Figure BDA0004110633170000012
分量是学生神经网络S(.)的输出(logit)和类的目标独热向量之间的交叉熵损失函数。其中,ws是学生神经网络的参数向量。
Figure BDA0004110633170000013
b)第二损失函数
Figure BDA0004110633170000021
参数是学生神经网络s(.)和教师神经网络T(.)的输出之间的Kullback-Leibler散度(KL散度)损失函数。
c)
Figure BDA0004110633170000022
在上面的示例中,总KD损失定义为:
Figure BDA0004110633170000023
其中,α是用于控制两个损失之间权衡(trade-off)的超参数。
换句话说,KD假设提取的关于训练数据集的知识存在于训练过的教师网络的logit中,并且通过最小化学生网络和教师网络的logit之间的损失函数,这些知识可以从教师模型转移到学生模型。
总KD损失函数也可以说明如下:
L=(1-α)*H(y,σ(zs;T=1))+(α)*H(σ(zt;T=τ),σ(zs,T=τ))
其中H是交叉熵函数(也可以使用其他损失函数),σ是具有参数τ(神经网络的可学习参数)的softmax函数,zt和zs是logit,即分别是教师神经网络和学生神经网络的最后一个softmax层之前的神经网络的输出。
KD算法是一种广泛使用的算法,因为它与教师和学生的神经网络的架构无关,只需要访问教师的神经网络生成的输出。然而,对于许多应用来说,教师的性能和学生的性能之间存在着巨大的差距,因此目前已经提出了各种算法来缩小这一差距。
如果学生网络和教师网络之间存在很大的计算能力差距,就会出现问题。教师神经网络和学生神经网络之间的差距越大,使用KD训练学生的难度就越大。具体地,差距越大,基于教师神经网络和学生神经网络结构的KD损失函数就越“陡峭”。基于陡峭的损失函数的训练比基于平坦的损失函数的训练更困难。虽然较大的神经网络可以处理陡峭的损失函数,但计算能力有限的较小网络,如学生神经网络可能会遇到困难,例如在梯度下降过程中遇到陡峭的损失函数时会陷入错误的最小值。
因此,需要一种KD训练的系统和方法,其能够使较小的学生神经网络在不经历陡峭的损失函数的情况下被训练。改进使用知识蒸馏来训练神经网络模型的方法,以减少教师模型的准确性和学生模型的准确性之间的差异是可取的。
发明内容
根据本发明的第一示例方面,本文介绍了一种由学生神经网络(SNN)模型参数的集合配置的SNN模型以生成关于输入数据样本的输出的方法。该方法包括:获取针对多个输入数据样本的相应的教师神经网络(teacher neural network,TNN)模型输出;执行SNN模型的第一训练阶段,该第一训练阶段包括在多个轮次上训练SNN模型。每个轮次包括:计算针对多个输入数据样本的SNN模型输出;将平滑因子应用于教师神经网络(TNN)模型输出,以生成平滑的TNN模型输出;基于SNN模型输出和平滑的TNN模型输出计算第一损失;以在接下来的第一训练阶段轮次中减少第一损失为目标,来计算SNN模型参数的更新集合。在第一训练阶段的多个轮次上调整平滑因子,以减少对所生成的平滑的TNN模型输出的平滑效应。此外,该方法还包括执行SNN模型的第二训练阶段,该阶段包括利用从在第一训练阶段期间被计算的SNN模型参数的多个更新集合选择的SNN模型参数的集合来初始化SNN模型,SNN模型的第二训练阶段在多个轮次上被执行,每个轮次包括:计算来自SNN模型的、针对多个输入数据样本的SNN模型输出;以及基于SNN模型输出和针对多个输入数据样本的预定义的预期输出集合来计算第二损失;以在接下来的第二训练阶段轮次中减少第二损失为目标,来计算SNN模型参数的更新集合。从在第二训练阶段被计算的SNN模型参数的更新集合选择SNN模型参数的最终集合。
该方法可以逐渐增加用于KD训练的损失函数的陡峭度,这在至少一些应用中可以实现更有效和准确的学生神经网络模型训练,特别是当教师神经网络模型可用的计算资源与学生神经网络模型可用的计算资源之间存在显著差异时。
根据第一示例方面的示例方面,第一训练阶段的每个轮次计算平滑因子作为
Figure BDA0004110633170000031
Figure BDA0004110633170000032
其中tmax是常数,t的值在第一训练阶段的每个后续轮次中被递增。
根据前述方面中的一个或多个方面,第一损失对应于SNN模型输出与平滑的TNN模型输出之间的散度。
根据前述方面中的一个或多个方面,第一损失对应于SNN模型输出与平滑的TNN模型输出之间的Kullback-Leibler散度。
根据前述方面中的一个或多个方面,第二损失对应于SNN模型输出与预定义预期输出集之间的散度。
根据前述方面中的一个或多个方面,基于交叉熵损失函数计算第二损失。
根据前述方面中的一个或多个方面,该方法还包括,针对每个第一训练阶段轮次,确定相对于在第一训练阶段期间关于开发数据集先前所计算的SNN模型参数的多个更新集合,SNN模型参数的所计算的更新集合是否提高了SNN模型的性能,开发数据集包括开发数据样本集合和相应的预期始输出,并且当SNN模型参数的所计算的更新集合确实提高了性能时,在下一第一训练阶段轮次之前将SNN模型参数更新为SNN模型参数的所计算的更新集合。
根据前述方面中的一个或多个方面,用于初始化针对第二训练阶段的SNN模型的SNN模型参数的集合是在第一训练阶段期间被计算的、在第一训练阶段期间最佳地提高SNN模型的性能的SNN模型参数的更新集合。
根据前述方面中的一个或多个方面,该方法包括对于第二训练阶段的每个轮次,确定相对于在第二训练阶段期间关于开发数据集先前所计算的SNN模型参数的多个更新集合,SNN模型参数的计算的更新集合是否提高了SNN模型的性能,并且当SNN模型参数所计算的更新集合确实提高了性能时,在下一轮次之前将SNN模型参数更新为SNN模型参数的所计算的更新集合。
根据前述方面中的一个或多个方面,SNN模型的最终集合是在第二训练阶段期间被计算的、在第二训练阶段期间最佳地提高SNN模型的性能的SNN模型参数的更新集合。
根据另一个示例方面,本文介绍了一种使用知识蒸馏(knowledge distillation,KD)训练神经网络模型的方法,包括:在多个KD步骤上学习针对学生神经网络(SNN)模型的初始参数集合,其中每个KD步骤包括:以使由SNN模型针对输入训练数据样本而生成的SNN模型输出与基于由教师神经网络TNN模型针对训练数据样本而生成的TNN模型输出所确定的平滑的TNN模型输出之间的差异最小化为目标,来更新SNN模型的参数,平滑的TNN模型输出通过将平滑函数应用于TNN模型输出而被确定,其中平滑函数对TNN模型输出的影响在多个KD步骤上被减小;以及学习针对SNN模型的最终参数集合,包括更新从KD步骤的集合学习到的初始参数集合,以使由SNN模型生成的关于输入训练数据样本的SNN模型输出与输入训练数据样本的已知训练标签之间的差异最小化。
附图说明
图1以图形方式图示了陡峭和平滑损失函数的示例。
图2示出了根据示例实施例的KD训练系统的示例。
图3示出了可用于实现本文所公开的实施例的示例简化处理系统的方框图。
具体实施方式
本公开涉及一种用于使用知识蒸馏训练神经网络模型的方法和系统,该方法和系统减小了教师神经网络模型的准确性和学生神经网络模型的准确性之间的差异。
在该方面,公开了一种逐渐增加用于KD训练的损失函数的陡峭度(sharpness)的方法和系统,其在至少一些应用中可以更好地指导学生神经网络的训练,特别是当教师神经网络模型可用的计算资源与学生神经网络模型可用的计算资源之间存在显著差异时。
通过上下文,图1提供了与“平滑”损失函数104相比的“陡峭”损失函数102的图形图示。在“陡峭”损失函数102的情况下,学生神经网络模型可能难以收敛到使损失函数最小化的最佳参数集。因此,示例实施例旨在在KD训练期间动态改变损失函数的陡峭度,使得损失函数在训练过程期间从诸如损失函数104的平滑函数逐渐过渡到更陡峭的损失函数102。
本发明的用于使用“渐进式”知识蒸馏训练神经网络模型的方法和系统的被配置为:在训练过程开始时降低损失函数的陡峭度,然后在训练过程中逐渐增加目标函数的陡峭度,而不是推动学生神经网络模型基于陡峭损失函数进行学习。至少在一些应用中,这可以实现从软函数到粗函数的平滑过渡,并且在此过渡期间训练学生神经网络模型可以将教师神经网络模型的行为转移到学生神经网络模型,且结果更准确。
在至少一些示例应用中,本发明的方法和系统可以改进教师神经网络模型和学生神经网络模型之间的知识蒸馏,以用于离散数据(例如代表文本的嵌入向量)和连续数据(例如图像数据)。
图2示出了根据本发明的实施例,用于使用知识蒸馏训练神经网络模型的KD训练系统200(以下简称“系统200”)的示意方框图。系统200包括教师神经网络模型202和学生神经网络模型204。教师神经网络模型202是大型训练神经网络模型。学生神经网络模型204将被训练以近似教师神经网络模型202的行为。在示例实施例中,学生神经网络模型204小于教师神经网络模型202(即,具有较少的参数和/或隐藏层和/或需要较少的计算资源来实现)。样本对
Figure BDA0004110633170000041
的训练数据集X、Y被提供给图2的系统200。Y的集合预定义了预期输出。
图2的系统200用于执行本发明的方法,该方法包括两个时期(stage)或阶段(phase)。在第一训练时期或阶段(KD阶段)中,使用第一损失函数LAKD训练学生神经网络模型204,其具有使针对输入训练数据集X中包括的输入数据样本而学生神经网络模型204以及教师神经网络模型202生成的输出(例如,由神经网络模型的最后层生成的logits,在神经网络模型的softmax层之前)之间的差异最小化的目标。在第二时期或阶段,在KD时期学习的学生神经网络模型参数(例如,权重w)被用作针对学生神经网络模型参数(即学生神经网络参数)的初始参数集,并进一步利用使由学生神经网络模型204生成的输出(例如,标签或类的目标独热向量)与被包括在训练数据集中的标签(即,预期输出的集合)Y之间的差异最小化的目标而被更新。
因此,在第一训练时期或阶段期间,图2的系统根据被应用于学生网络模型204和教师网络模型202的输出的第一损失函数(KD损失函数
Figure BDA0004110633170000051
其可以基于均方误差、KL散度或其他损失函数,具体取决于NN的预期用途),来训练学生神经网络模型204。在示例实施例中,在计算KD损失函数之前,根据以下等式,通过将教师神经网络模型202输出的logits与使用平滑函数(也称为温度函数)
Figure BDA0004110633170000052
计算的平滑因子相乘,调整教师网络模型202的输出:
Figure BDA0004110633170000053
其中,平滑函数
Figure BDA0004110633170000054
控制T(x)的软度(softness)。在本说明性示例中,为了简单起见,
Figure BDA0004110633170000055
损失函数被定义为均方误差和平滑函数
Figure BDA0004110633170000056
其中tmax是常数,定义了针对t的最大平滑值(例如最大温度)。此外,
Figure BDA0004110633170000057
1≤t≤tmax。因此:
Figure BDA0004110633170000058
在第一时期或阶段,逐渐在每个n轮次使用“平滑的”或“退火”KD损失函数
Figure BDA0004110633170000059
来训练学生神经网络模型204,其中
Figure BDA00041106331700000510
并且在每个轮次k中,平滑值(例如温度)t增加一个单位。温度t从1开始,并且在每个轮次k,温度增加一个单位,直到达到值t=tmax。因此,温度t在一组n轮次内均匀地增加。
在第二时期或阶段,用给定数据样本和学生神经网络模型204与针对m轮次的给定数据样本的目标标签Y(例如,与训练数据集一起被提供的已知基准真值或真实标签y)之间的损失函数,来训练学生神经网络模型204。此处,在训练开始时,学生神经网络模型的权重是用第一时期或阶段的最佳检查点(checkpoint)而被初始化的(例如,在第一时期或阶段学习的参数,这些参数为使损失
Figure BDA00041106331700000511
最小化提供了最佳性能)。在第二时期或阶段中被应用的损失函数可以是均方误差、交叉熵或其他损失函数,具体取决于学生神经网络模型206正在被训练以执行的任务的性质。以交叉熵为例,第二阶段的交叉熵损失可以表示为:
Figure BDA00041106331700000512
其中N是数据样本的数量,yi是第i个数据样本的标签的独热向量,而xi是第i个数据样本。
逐步地,上述方法可如下所示:
考虑使用由N个数据样本组成的训练数据集
Figure BDA00041106331700000513
此外,考虑使用开发数据集
Figure BDA00041106331700000514
该数据集将用于评估学生神经网络在第一阶段和第二阶段步骤的每次执行后的性能,以找到最佳的检查点。最后,考虑使用测试数据集
Figure BDA00041106331700000515
该数据集将用于在训练之后进行学生神经网络的最终评估。考虑使用T(x)作为在训练数据集Dtrain上被训练的教师函数(例如,教师神经网络模型202)。方法如下:
1-第一期间或阶段
a)步骤1)设置温度参数t=1。
b)步骤2)对于轮次j=1to n,请执行以下操作:
i.用
Figure BDA00041106331700000516
损失函数训练学生神经网络模型S(.)
ii.如果是j mod k=0,则:
1.t=t+1
iii.在Ddev数据集上检查S(.)的性能。
iv.如果在Ddev数据集上S(.)的性能优于先前的最佳性能,则将S(.)保存为性能最佳的学生神经网络模型(即,保存S(.)的参数(权重w))。
2-第二阶段
a)步骤1)将先前的阶段保存的最佳学生神经网络模型的权重加载到S(.)
b)步骤2)对于轮次j=1to m,执行:
i.用
Figure BDA0004110633170000061
损失函数训练学生神经网络模型S(.)
ii.如果在Ddev数据集上S(.)的性能优于先前的最佳性能,则将S(.)保存为性能最佳的学生神经网络模型(即,保存S(.)的参数(权重w))。
c)步骤3)在Dtest数据集上测试学生神经网络模型S(.)性能。
上述方法和系统,包括教师神经网络模型和学生神经网络模型中的每个模型,可以在一个或多个计算设备上被实现,该计算设备包括处理单元(例如CPU或GPU或特殊用途AI处理单元)和持久存储装置,用于存储本文描述的方法和系统的适当指令,该指令可以由处理单元执行,使得计算设备执行上述功能。
参见图3,可用于实现本文公开的实施例的示例简化处理系统1200的方框图,并提供了更高级别的实现示例。教师神经网络模型202和学生神经网络模型204中的一个或多个以及包括在系统100中的其他功能可以在示例处理系统1200或处理系统1200的变体中实现。处理系统1200可以是终端,例如桌面终端、平板电脑、笔记本电脑、AR/VR或车载终端,也可以是服务器、云端、智能手机或任何合适的处理系统。可以使用适于实现本发明中描述的方法和系统的实施例的其他处理系统,其可以包括与下文讨论的组件不同的组件。虽然图3示出了每个组件的单个实例,在处理系统1200中可以存在每个组件的多个实例。
处理系统1200可以包括一个或多个处理设备1202,例如图形处理单元、处理器、微处理器、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)、专用逻辑电路、加速器、张量处理单元(tensor processing unit,TPU)、神经处理单元(neural processing unit,NPU),或其组合。此外,处理系统1200还可以包括一个或多个输入/输出(input/output,I/O)接口1204,其可以允许与一个或多个适当的输入设备1214和/或输出设备1216连接。处理系统1200可以包括一个或多个网络接口1206,用于与网络进行有线或无线通信。
此外,处理系统1200还可以包括一个或多个存储单元1208,其中可以包括如固态驱动器、硬盘驱动器、磁盘驱动器和/或光盘驱动器等大容量存储单元。处理系统1200可以包括一个或多个存储器1210,其中可以包括易失性或非易失性存储器(例如,闪存、随机存取存储器(random access memory,RAM)和/或只读存储器(read-only memory,ROM))。存储器1210的非瞬时性存储器可以存储用于由处理设备1202执行的指令,例如执行本发明中描述的示例,例如用于系统100的指令和数据1212。存储器1210可以包括其他软件指令,例如用于实现处理系统1200的操作系统和其他应用程序/功能。在一些示例中,一个或多个数据集和/或模块可以由外部存储器(例如,与处理系统1200进行有线通信或无线通信的外部驱动器)提供,也可以由瞬时性或非瞬时性计算机可读介质提供。非瞬时性计算机可读介质的示例包括RAM、ROM、可擦除可编程ROM(erasable programmable ROM,EPROM)、电可擦除可编程ROM(electrically erasable programmable ROM,EEPROM)、闪存、CD-ROM或其它便携式存储器。
此外,处理系统1200还可以包括总线1218,其用于提供处理系统1200的组件之间的通信,包括处理设备1202、I/O接口1204、网络接口1206、存储单元1208和/或存储器1210。总线1218可以是任何合适的总线架构,例如包括存储器总线、外围总线或视频总线。
教师神经网络模型202和学生神经网络模型204的计算可以由处理系统1200的任何合适的处理设备1202或其变体执行。此外,教师神经网络模型202和学生神经网络模型204可以使用合适的神经网络模型,包括诸如循环神经网络模型、长短期存储器(longshort-term memory,LSTM)神经网络模型等变体。
本发明结合了附图进行说明,附图中示出了技术方案的实施例。然而,可以使用许多不同的实施例,因此不应将描述解释为限于本文中阐述的实施例。相反,提供这些实施例是为了使本申请彻底且完整。在可能的情况下,在附图和以下描述中使用相同的附图标记来指代相同的元件,并且在替代实施例中使用素数表示法来指示相同的元件、操作或步骤。所示系统和设备的功能元件的单独框或所示分离不一定需要这些功能的物理分离,因为这些元件之间的通信可以在没有任何这种物理分离的情况下通过消息传递、函数调用、共享内存空间等方式发生。因此,尽管为了便于解释,本文分开示出了功能,但是这些功能不需要在物理或逻辑上分离的平台中实现。不同的设备可以具有不同的设计,使得尽管一些设备在固定功能硬件中实现一些功能,但其它设备可以在可编程处理器中实现这些功能,该处理器具有从机器可读介质获得的代码。最后,以单数提及的元件可以是复数,反之亦然,除非上下文明确或固有地指示。
本文中阐述的实施例表示信息足以实践请求保护的主题,并说明了实践这种主题的方法。根据附图阅读以下描述之后,本领域技术人员会理解所请求保护的主题的概念,并会认识到这些概念的应用在本文中并没有特别提及。应当理解,这些概念和应用在本发明和所附权利要求书的范围之内。
此外,应当理解,本文公开的执行指令的任何模块、组件或设备可以包括或以其它方式接入一个或多个非瞬时性计算机/处理器可读存储介质,所述介质用于存储信息,例如计算机/处理器可读指令、数据结构、程序模块和/或其它数据。非瞬时性计算机/处理器可读存储介质的示例的非详尽列表包括磁带盒,磁带,磁盘存储器或其它磁存储设备,只读光盘(compact disc read-only memory,CD-ROM)、数字视频光盘或数字多功能光盘(即DVD)、蓝光光盘TM等光盘,或其它光存储器,在任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质,随机存取存储器(random-access memory,RAM),只读存储器(read-only memory,ROM),电可擦除可编程只读存储器(electrically erasable programmableread-only memory,EEPROM),闪存或其它存储技术。任何这些非瞬时性计算机/处理器存储介质可以是一种设备的一部分,也可以由一种设备访问或连接。用于实现本文中描述的应用或模块的计算机/处理器可读/可执行指令可以由这种非瞬时性计算机/处理器可读存储介质存储或以其它方式保存。尽管本发明通过按照一定的顺序执行的步骤描述方法和过程,但是可以适当地省略或改变方法和过程中的一个或多个步骤。在适当情况下,一个或多个步骤可以按所描述的顺序以外的顺序执行。
尽管本发明在方法方面至少部分地进行了描述,但本领域普通技术人员将理解,本发明也针对用于执行所述方法的至少一些方面和特征的各种组件,无论是通过硬件组件、软件还是其任意组合。相应地,本发明的技术方案可以通过软件产品的形式体现。合适的软件产品可以存储在预记录的存储设备或其他类似的非易失性或非瞬时性计算机可读存储介质中。
在不脱离权利要求书的主题的前提下,本发明可以通过其它特定形式实施。所描述的示例实施例在各方面都仅仅是示意性的,而不是限制性的。可以组合从一个或多个上述实施例中选择的特征,以创建非显式描述的可选实施例,在本发明的范围内可以理解适合于此类组合的特征。
还公开了所公开范围内的所有值和子范围。此外,尽管本文所公开和显示的系统、设备和流程可包括特定数量的元件/组件,但可以修改所述系统、设备和组件,以包括此类元件/组件中的更多或更少的元件/组件。例如,尽管所公开的任何元件/组件可以引用为单个数量,但是可以修改本文所公开的实施例以包括多个此类元件/组件。本文所描述的主题旨在覆盖和涵盖所有适当的技术变更。

Claims (13)

1.一种训练由学生神经网络(SNN)模型参数的集合配置的SNN模型以生成关于输入数据样本的输出的方法,包括:
获取多个输入数据样本的相应的教师神经网络(TNN)模型输出;
执行所述SNN模型的第一训练阶段,所述第一训练阶段包括在多个第一训练阶段轮次上训练所述SNN模型,每个第一训练阶段轮次包括:
计算针对所述多个输入数据样本的SNN模型输出;
将平滑因子应用于所述教师神经网络(TNN)模型输出,以生成平滑的TNN模型输出;
基于所述SNN模型输出和所述平滑的TNN模型输出来计算第一损失;以及
以在接下来的第一训练阶段轮次中减少所述第一损失为目标,来计算所述SNN模型参数的更新集合,
其中所述平滑因子在所述多个第一训练阶段轮次上被调整,以减少所生成的所述平滑的TNN模型输出上的平滑效应;
执行所述SNN模型的第二训练阶段,所述第二训练阶段包括利用从在所述第一训练阶段期间被计算的所述SNN模型参数的多个所述更新集合选择的SNN模型参数的集合来初始化所述SNN模型,所述SNN模型的所述第二训练阶段在多个第二训练阶段轮次上被执行,每个第二训练阶段轮次包括:
计算来自所述SNN模型的、针对所述多个输入数据样本的SNN模型输出;
基于所述SNN模型输出和针对所述多个输入数据样本的预定义的预期输出集合来计算第二损失;以及
以在接下来的第二训练阶段轮次中减少所述第二损失为目标,来计算所述SNN模型参数的更新集合,
从在第二训练阶段期间被计算的SNN模型参数的多个所述更新集合选择SNN模型参数的最终集合。
2.根据权利要求1所述的方法,其中在所述第一训练阶段中的每个轮次,所述平滑因子被计算为
Figure FDA0004110633140000011
其中tmax是常数,并且t的值在每个后续的第一训练阶段轮次中被递增。
3.根据权利要求1或2所述的方法,其中所述第一损失对应于所述SNN模型输出与所述平滑的TNN模型输出之间的散度。
4.根据权利要求3所述的方法,其中所述第一损失对应于所述SNN模型输出与所述平滑的TNN模型输出之间的Kullback-Leibler散度。
5.根据权利要求1至3中任一项所述的方法,其中所述第二损失对应于所述SNN模型输出与所述预定义的预期输出集合之间的散度。
6.根据权利要求5所述的方法,其中所述第二损失基于交叉熵损失函数而被计算。
7.根据权利要求1至6中任一项所述的方法,还包括:针对每个第一训练阶段轮次,确定相对于在所述第一训练阶段期间关于开发数据集先前所计算的SNN模型参数的多个更新集合,所述SNN模型参数的所计算的所述更新集合是否提高了所述SNN模型的性能,所述开发数据集包括开发数据样本集合和相应的预期始输出,并且当所述SNN模型参数的所计算的所述更新集合确实提高了所述性能时,在下一第一训练阶段轮次之前将所述SNN模型参数更新为所述SNN模型参数的所计算的所述更新集合。
8.根据权利要求7所述的方法,其中用于初始化针对所述第二训练阶段的所述SNN模型的SNN模型参数的所述集合是在所述第一训练阶段期间被计算的、在所述第一训练阶段期间最佳地提高所述SNN模型的所述性能的SNN模型参数的更新集合。
9.根据权利要求7或8所述的方法,还包括:针对每个第二训练阶段轮次,确定相对于在所述第二训练阶段期间关于所述开发数据集先前所计算的SNN模型参数的多个更新集合,所述SNN模型参数的所述计算的所述更新集合是否提高了所述SNN模型的性能,并且当SNN模型参数所计算的所述更新集合确实提高了所述性能时,在下一轮次之前将所述SNN模型参数更新为所述SNN模型参数的所计算的所述更新集合。
10.根据权利要求9所述的方法,其中SNN模型的所述最终集合是在所述第二训练阶段期间被计算的、在所述第二训练阶段期间最佳地提高所述SNN模型的所述性能的SNN模型参数的所述更新集合。
11.一种使用知识蒸馏(KD)来训练神经网络模型的方法,包括:
在多个KD步骤上学习针对学生神经网络(SNN)模型的初始参数集合,其中每个KD步骤包括:
以使由所述SNN模型针对输入训练数据样本而生成的SNN模型输出与基于由教师神经网络TNN模型针对所述训练数据样本而生成的TNN模型输出所确定的平滑的TNN模型输出之间的差异最小化为目标,来更新所述SNN模型的参数,所述平滑的TNN模型输出通过将平滑函数应用于所述TNN模型输出而被确定,其中所述平滑函数对所述TNN模型输出的影响在所述多个KD步骤上被减小;以及
学习针对所述SNN模型的最终参数集合,包括更新从所述KD步骤的集合学习到的所述初始参数集合,以使由所述SNN模型生成的关于所述输入训练数据样本的SNN模型输出与所述输入训练数据样本的已知训练标签之间的差异最小化。
12.一种用于训练学生神经网络模型的系统,所述系统包括一个或多个处理器和存储软件指令的非瞬时性存储介质,所述软件指令在由所述一个或多个处理器执行时,将所述系统配置为执行根据权利要求1至11中任一项所述的方法。
13.一种非瞬时性计算机可读介质,所述非瞬时性计算机可读介质存储软件指令,所述软件指令在由所述一个或多个处理器执行时,将所述一个或多个处理器配置为执行根据权利要求1至11中任一项所述的方法。
CN202180054947.9A 2020-09-09 2021-09-09 使用渐进式知识蒸馏训练神经网络模型的方法和系统 Pending CN116097277A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202063076368P 2020-09-09 2020-09-09
US63/076,368 2020-09-09
PCT/CA2021/051248 WO2022051855A1 (en) 2020-09-09 2021-09-09 Method and system for training a neural network model using gradual knowledge distillation

Publications (1)

Publication Number Publication Date
CN116097277A true CN116097277A (zh) 2023-05-09

Family

ID=80629701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180054947.9A Pending CN116097277A (zh) 2020-09-09 2021-09-09 使用渐进式知识蒸馏训练神经网络模型的方法和系统

Country Status (4)

Country Link
US (1) US20230222326A1 (zh)
EP (1) EP4200762A4 (zh)
CN (1) CN116097277A (zh)
WO (1) WO2022051855A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114444558A (zh) * 2020-11-05 2022-05-06 佳能株式会社 用于对象识别的神经网络的训练方法及训练装置
CN114863279A (zh) * 2022-05-06 2022-08-05 安徽农业大学 一种基于RS-DCNet的花期检测方法
CN115082920B (zh) * 2022-08-16 2022-11-04 北京百度网讯科技有限公司 深度学习模型的训练方法、图像处理方法和装置
CN115223049B (zh) * 2022-09-20 2022-12-13 山东大学 面向电力场景边缘计算大模型压缩的知识蒸馏与量化方法
CN116361658A (zh) * 2023-04-07 2023-06-30 北京百度网讯科技有限公司 模型训练方法、任务处理方法、装置、电子设备及介质

Also Published As

Publication number Publication date
US20230222326A1 (en) 2023-07-13
WO2022051855A1 (en) 2022-03-17
EP4200762A4 (en) 2024-02-21
EP4200762A1 (en) 2023-06-28

Similar Documents

Publication Publication Date Title
CN116097277A (zh) 使用渐进式知识蒸馏训练神经网络模型的方法和系统
CN111279362B (zh) 胶囊神经网络
CN109313722B (zh) 存储器高效的基于时间的反向传播
CN109697510B (zh) 具有神经网络的方法和装置
US10909455B2 (en) Information processing apparatus using multi-layer neural network and method therefor
US20220076136A1 (en) Method and system for training a neural network model using knowledge distillation
EP4312157A2 (en) Progressive neurale netzwerke
EP4200763A1 (en) Method and system for training a neural network model using adversarial learning and knowledge distillation
US11610097B2 (en) Apparatus and method for generating sampling model for uncertainty prediction, and apparatus for predicting uncertainty
US20200410365A1 (en) Unsupervised neural network training using learned optimizers
US20210397895A1 (en) Intelligent learning system with noisy label data
CN113570029A (zh) 获取神经网络模型的方法、图像处理方法及装置
US11681922B2 (en) Performing inference and training using sparse neural network
CN111489365A (zh) 神经网络的训练方法、图像处理方法及装置
CN113837370A (zh) 用于训练基于对比学习的模型的方法和装置
EP4287144A1 (en) Video behavior recognition method and apparatus, and computer device and storage medium
WO2022217853A1 (en) Methods, devices and media for improving knowledge distillation using intermediate representations
JP2019152964A (ja) 学習方法および学習装置
CN113632106A (zh) 人工神经网络的混合精度训练
CN112633463A (zh) 用于建模序列数据中长期依赖性的双重递归神经网络架构
CN112446888A (zh) 图像分割模型的处理方法和处理装置
CN111797970A (zh) 训练神经网络的方法和装置
EP4033446A1 (en) Method and apparatus for image restoration
CN111709415A (zh) 目标检测方法、装置、计算机设备和存储介质
EP4006789A1 (en) Conversion device, conversion method, program, and information recording medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination