深度神经网络的邻域蒸馏的制作方法

专利2024-03-17  119


深度神经网络的邻域蒸馏


背景技术:

1.知识蒸馏(knowledge distillation)是一种通用模型压缩/优化方法,它将大型教师网络(或其集合)的知识转移到较小的学生网络,或从其架构适合在一种硬件上运行的网络转移到其架构适合在不同类型的硬件上运行的网络。然而,在传统的端到端蒸馏中,候选学生网络(其通常是教师网络的一种变体,具有较少的层数和/或参数,或者具有适合不同类型硬件的架构)必须被单独训练以模仿教师网络的输出,并且然后相互比较,以选择在复杂性和/或准确性方面最好的学生网络。由于深度神经网络中的某些层或层组将比其他层更难蒸馏,因此为学生网络找到理想的架构可能需要考虑大量候选学生网络,因此计算成本高且耗时。


技术实现要素:

2.本技术涉及用于蒸馏深度神经网络的系统和方法。在这方面,该技术涉及通过选择教师网络的块或“邻域”(“neighborhood”)、训练单个学生模型以再产生每个教师邻域的输出、选择对应于每个教师邻域的最佳学生模型,然后组装学生模型以创建完整的学生网络,从而将教师网络蒸馏成学生网络。
3.在一个方面,本公开描述了一种使用第一神经网络来生成第二神经网络的方法,包括:(i)将第一神经网络划分为多个邻域;(ii)针对多个邻域中的每个给定邻域:由处理系统的一个或多个处理器生成多个候选学生模型;由一个或多个处理器接收来自给定邻域的第一输出,该第一输出已经由给定邻域基于输入产生;由一个或多个处理器接收多个第二输出,每个第二输出已经由多个候选学生模型中的给定候选学生模型基于输入产生;由一个或多个处理器将第一输出与多个第二输出中的每个第二输出进行比较,以生成对应于多个候选学生模型中的每个候选学生模型的第一训练梯度;至少部分地基于对应于给定候选学生模型的第一训练梯度,由一个或多个处理器修改多个候选学生模型中的每个给定候选学生模型的一个或多个参数;以及由一个或多个处理器标识选定模型,该选定模型是多个候选学生模型中的一个的副本或给定邻域的副本;以及(iii)由一个或多个处理器组合对应于多个邻域中的每个给定邻域的选定模型以形成第二神经网络。在一些方面,至少部分地基于多个候选学生模型中的每个候选学生模型的大小的比较标识选定模型。在一些方面,至少部分地基于对多个候选学生模型中的每个候选学生模型的层数的比较标识选定模型。在一些方面,至少部分地基于对多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值的比较来标识选定模型。此外,在一些方面,多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值至少部分地基于在基于给定输入的给定邻域的输出和基于给定输入的多个候选学生模型中的每个候选学生模型的输出之间的均方差。在一些方面,输入包括从给定邻域之前的邻域接收的输出。
4.在一些方面,在前一段中阐述的方法还包括,针对多个邻域中的每个给定邻域:由一个或多个处理器将第一输出提供给头模型,该头模型包括直接跟随给定邻域的第一个神经网络的一部分的副本;由一个或多个处理器将多个第二输出中的每个第二输出提供给头
模型;由一个或多个处理器接收来自该头模型的第三输出,该第三输出已经由头模型基于第一输出产生;由一个或多个处理器接收多个第四输出,每个第四输出已经由头模型基于多个第二输出中的给定第二输出产生;以及由一个或多个处理器将第三输出与多个第四输出中的每个第四输出进行比较,以生成对应于多个候选学生模型中的每个候选学生模型的第二训练梯度;以及由一个或多个处理器至少部分地基于对应于给定候选学生模型的第二训练梯度来修改多个候选学生模型中的每个给定候选学生模型的一个或多个参数。此外,在一些方面,至少部分地基于对多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值的比较来标识选定模型。此外,在一些方面,多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值至少部分地基于在基于给定输入的给定邻域的输出和基于给定输入的多个候选学生模型中的每个候选学生模型的输出之间的均方差。在一些方面,输入包括从给定邻域之前的邻域接收的输出。
5.另一方面,本公开描述了一种处理系统,包括:存储器;一个或多个处理器,其耦合到存储器并且配置如下。在这方面,针对多个邻域中的每个给定邻域,其中每个给定邻域包括第一神经网络的一部分,一个或多个处理器被配置为:生成多个候选学生模型;接收来自给定邻域的第一输出,该第一输出已经由给定邻域基于输入产生;接收多个第二输出,每个第二输出已经由多个候选学生模型中的给定候选学生模型基于输入产生;将第一输出与多个第二输出中的每个第二输出进行比较,以生成对应于多个候选学生模型中的每个候选学生模型的第一训练梯度;至少部分地基于对应于给定候选学生模型的第一训练梯度来修改多个候选学生模型中的每个给定候选学生模型的一个或多个参数;并且标识选定模型,选定模型是多个候选学生模型之一的副本或给定邻域的副本。此外,一个或多个处理器被配置为组合对应于多个邻域中的每个给定邻域的选定模型以形成第二神经网络。在一些方面,一个或多个处理器还被配置为至少部分地基于对多个候选学生模型中的每个候选学生模型的大小的比较来标识选定模型。在一些方面,一个或多个处理器还被配置为至少部分地基于多个候选学生模型中的每个候选学生模型的层数的比较来标识选定模型。在一些方面,一个或多个处理器还被配置为至少部分地基于对多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值的比较来标识选定模型。此外,在一些方面,多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值至少部分地基于在基于给定输入的给定邻域的输出和基于给定输入的多个候选学生模型中的每个候选学生模型的输出之间的均方差。在一些方面,输入包括从给定邻域之前的邻域接收的输出。
6.在一些方面,在前一段中描述的一个或多个处理器还被配置为,针对多个邻域中的每个给定邻域:将第一输出提供给头模型,该头模型包括直接跟随给定邻域的第一个神经网络的一部分的副本;将多个第二输出中的每个第二输出提供给头模型;接收来自头模型的第三输出,该第三输出已经由头模型基于第一输出产生;接收多个第四输出,每个第四输出已经由头模型基于来自多个第二输出中的给定第二输出产生;将第三输出与多个第四输出中的每个第四输出进行比较,以生成对应于多个候选学生模型中的每个候选学生模型的第二训练梯度;并且至少部分地基于对应于给定候选学生模型的第二训练梯度来修改多个候选学生模型中的每个给定候选学生模型的一个或多个参数。此外,在一些方面,一个或多个处理器还被配置为至少部分地基于对多个候选学生模型中的每个候选学生模型与给
定邻域的输出的接近程度的测量值的比较来标识选定模型。此外,在一些方面,多个候选学生模型中的每个候选学生模型与给定邻域的输出的接近程度的测量值至少部分地基于在基于给定输入的给定邻域的输出和基于给定输入的多个候选学生模型中的每个候选学生模型的输出之间的均方差。在一些方面,输入包括从给定邻域之前的邻域接收的输出。
附图说明
7.图1是根据本公开的方面的示例系统的功能图。
8.图2描绘了示出根据本公开的方面的教师网络可以如何被蒸馏成学生网络的示例处理流程。
9.图3a和图3b描绘了示出训练者如何计算能够被用于创建训练梯度的均方差的示例处理流程。
10.图4是根据本公开的方面的执行邻域蒸馏的示例性方法的流程图。
11.图5是根据本公开的方面的执行邻域蒸馏的示例性方法的流程图。
具体实施方式
12.现在将关于以下示例性系统和方法来描述本技术。
13.示例系统
14.根据本技术的方面的高级系统图100在图1中被示出。处理系统102包括一个或多个处理器104,以及存储指令108和数据110的存储器106。指令108和数据110可以包括本文中描述的教师网络、学生模型和学生网络。然而,教师网络、学生模型和/或学生网络中的任何一个也可以在处理系统102可以访问的一个或多个单独的处理系统或存储设备上被维护。这可以包括云计算系统,在这种情况下,处理系统102可以由一个或多个网络(未示出)向教师网络、学生模型和/或学生网络提供输入、从教师网络、学生模型和/或学生网络接收输出以及对教师网络、学生模型和/或学生网络进行更改以便进行本文中所描述的蒸馏方法。
15.处理系统102可以被实现在任何类型的(多个)计算设备上,诸如任何类型的通用计算设备、服务器或其集合,并且可以进一步包括通常存在于通用计算设备或服务器中的其他组件。存储器106存储可由一个或多个处理器104访问的信息,包括可由(多个)处理器104执行或以其他方式使用的指令108和数据110。存储器106可以是能够存储可由(多个)处理器104访问的信息的任何非暂时性类型。例如,存储器106可以包括诸如硬盘驱动器、存储卡、光盘、固态、磁带存储器等的非暂时性介质。适合本文中所描述的角色的计算设备可以包括前述的不同组合,由此指令和数据的不同部分被存储在不同类型的介质上。
16.在所有情况下,本文中所描述的计算设备可以进一步包括通常与计算设备结合使用的任何其他组件,诸如用户界面子系统。用户界面子系统可以包括一个或多个用户输入(例如,鼠标、键盘、触摸屏和/或麦克风)和一个或多个电子显示器(例如,具有屏幕的监视器或可操作以显示信息的任何其他电子设备)。除了电子显示器之外的输出设备,诸如扬声器、灯和振动、脉冲或触觉元件,也可以被包括在本文中所描述的计算设备中。
17.每个计算设备中包括的一个或多个处理器可以是任何常规处理器,诸如商用中央处理单元(“cpu”)、图形处理单元(“gpu”)、张量处理单元(“tpu”)等。或者,一个或多个处理
器可以是专用设备,诸如asic或其他基于硬件的处理器。每个处理器可以有能够并行运行的多个内核。单个计算设备的(多个)处理器、存储器和其他元件可以被存储在单个物理外壳内,或者可以被分布在两个或更多个外壳之间。类似地,计算设备的存储器可以包括位于与(多个)处理器的外壳不同的外壳中的硬盘驱动器或其他存储介质,诸如在外部数据库或网络存储设备中。因此,对处理器或计算设备的引用将被理解为包括对可以并行或可以不并行操作的处理器或计算设备或存储器的集合以及负载平衡服务器群或基于云的系统的一个或多个服务器的引用。
18.本文中描述的计算设备可以存储能够由(多个)处理器直接(诸如机器代码)或间接(诸如脚本)执行的指令。计算设备还可以存储数据,这些数据可以由一个或多个处理器根据指令检索、存储或修改。指令可以作为计算设备代码被存储在计算设备可读介质上。在这方面,术语“指令”和“程序”在本文中可以互换使用。指令也可以以目标代码格式存储,以供处理器直接处理,或以任何其他计算设备语言存储,包括按需解释或提前编译的独立源代码模块的脚本或集合。举例来说,编程语言可以是c#、c++、java或其它计算机编程语言。类似地,指令或程序的任何组件可以用计算机脚本语言实现,诸如javascript、php、asp或任何其他计算机脚本语言。此外,这些组件中的任何一个都可以使用计算机编程语言和计算机脚本语言的组合来实现。
19.计算设备可以包括语音识别引擎,其被配置为将用户输入到与计算设备相关联的麦克风中的语音转换成文本数据。这样的输入可以是针对例如可通过计算设备访问的自动化助理的用户查询。从用户语音输入生成的文本数据可以使用本文中描述的任何方法来处理以标记文本数据以供进一步处理。例如,所标记的文本数据可以被处理以抽取对存在于用户语音输入中的自动化助手的查询。该查询可以被发送到自动化助理,该自动化助理可以继而响应于该查询经由计算设备向用户提供一项或多项服务。
20.示例方法
21.本技术提供用于将教师网络分解成更小的子网络的方法和系统,在本文中称为邻域,每个子网络可以独立地被蒸馏并且然后被重新组合成学生网络。由于每个邻域都比教师网络简单,因此能够并行训练给定邻域的每个候选学生模型,从而显著地减少训练每个候选学生模型所需的时间。这也可以减少为标识学生网络的最优化架构而需要进行的比较次数。在这方面,使用邻域蒸馏,如果对n个不同的邻域尝试了k个不同的配置,则处理系统必须只训练k x n个候选学生模型,以便标识学生模型的最优化组合以包括在最终的学生网络中。相反,使用端到端蒸馏,处理系统需要训练每个排列,包括kn个完整的候选学生网络,以便找到相同的最优最终学生网络。最后,如果邻域保持足够小,则可能使用通用cpu训练每个候选学生模型,而不需要传统上用于直接学习的自定义加速器(例如,tpu),并将随机高斯噪声作为输入馈送给网络而不需要类似于教师网络最初在其上被训练的数据。
22.本技术可以被用于生成比教师网络更简单的最终学生网络。替代地或另外,本技术可以被用于生成学生网络,其被最优化以在不同于教师网络在其上被最优化运行的硬件平台(例如tpu、gpu、企业服务器等)的特定硬件平台(例如cpu、移动设备等)上运行。
23.图2描绘了根据本公开的方面的示出教师网络202可以如何被蒸馏成学生网络220的示例处理流程200。在图2的示例中,教师网络202是已经被训练的深度神经网络。教师网络202可以是具有多个层、块、单元、元素、节点等的任何类型的神经网络。例如,教师网络
202可以是具有100层的神经网络,其已经被训练对图像数据进行分类。在图2的示例中,教师网络202被分解为四个教师网络邻域204、206、208和210。教师网络202的这种划分可以自动地完成(例如,通过将教师网络划分为预定数量的邻域,或划分为预定层数的邻域),或者邻域可以由操作员选择。每个邻域都将包括分开的、不重叠的教师网络的一部分,但不需要彼此大小相同或包括相同数量的层、块、单元、元素、节点等。因此,例如,教师网络可以被不均等地分解,使得教师网络邻域204包括教师网络202的层1-20,教师网络邻域206包括教师网络202的层21-60,教师网络邻域208包括教师网络202的层61-70并且教师网络邻域210包括教师网络202的层71-100。同样,教师网络可以被均等地分解,使得教师网络邻域204可以包括教师网络202的层1-25、教师网络邻域206包括教师网络202的层26-50,教师网络邻域208包括教师网络202的层51-75,教师网络邻域210包括层76-100。另外,并非教师网络202的所有层都必须被分配给邻域。相反,在某些情况下,教师网络202的各个层可以是固定的,使得不尝试对它们进行蒸馏,并且这些层未更改地被包括在学生网络220中。在这种情况下,邻域集合204、206、208和210将表示教师网络202中所有层的子集。
24.在图2的示例中,每个教师网络邻域204、206、208和210(或其副本)分别由分开的训练器212、214、216和218用来训练分开的候选学生模型的集合。在下面更详细地描述的这种训练涉及递归过程,其将数据的集合馈送给教师网络邻域和每个候选学生模型,并调整每个候选学生模型的参数(使用训练梯度和反向传播),直到每个候选学生模型的输出开始接近(或匹配)每个输入的教师网络邻域的输出。这个过程可以利用教师网络202在其上被训练的原始数据集(例如,图像的集合或文本文档的集合)的一些或全部、类似于教师网络202在其上被训练的数据集的数据的集合(例如,图像的不同集合,或文本文档的不同集合)、高斯噪声或它们的某种组合。
25.训练器212、214、216和218可以是在处理系统102或处理系统的集合上串行或并行运行的进程的任一集合。如图2所示,训练器212将邻域204(或其副本)与候选学生模型205a-205z的集合进行比较,并选择候选学生模型205d以包括在学生网络220中。同样,训练器214将邻域206(或其副本)与候选学生模型207a-207z的集合进行比较,并选择候选学生模型207a以包括在学生网络220中。相反,训练器216将邻域208(或其副本)与候选学生模型209a-209z的集合进行比较,但最终选择将邻域208的副本包括在学生网络220中。最后,训练器218将邻域210(或其副本)与候选学生模型211a-211z的集合进行比较,并选择候选学生模型211f以包括在学生网络中220。在每种情况下,由每个候选学生模型接收到的输入向量被约束为具有与由它们的相应的教师网络邻域接收到的向量相同的维度,并且由每个候选学生模型产生的输出向量同样被约束为具有与它们相应的教师网络邻域产生的向量相同的维度。这确保教师网络邻域和每个候选学生模型能够使用相同的输入被训练,并且它们的输出能够被比较,如下面关于图3a和图3b所描述的。这也允许最终的学生网络220由学生模型和教师网络邻域的集合组成,如图2的示例中所示。
26.虽然图2的示例针对标记为“a”到“z”的每个教师网络邻域使用26个候选学生模型的集合,但是本技术不被限制于任何特定数量的候选学生模型。在这方面,可以使用任何合适数量的候选学生模型。同样,可以针对一个教师网络邻域评估与另一个教师网络邻域不同数量的候选学生模型。
27.图2中所示的选择也仅出于示例目的。在这方面,学生网络220可以完全由各个候
选学生模型组成,或者可以包括两个或更多个原始教师网络邻域。另外,在教师网络202的各个层是固定的并且不尝试对它们进行蒸馏的情况下(如上所述),选定模型(学生模型205d、学生模型207a、邻域208和学生模型211f)可以与教师网络202的固定层联接在一起以创建学生网络220。
28.训练器212、214、216和218可以被配置为评估候选学生模型并基于任何合适的标准进行它们的选择。例如,训练器可以被配置为选择当与其相应的教师网络邻域相比时满足一定阀值准确度(例如,使用某个预定数量的输出的平均均方差计算的教师网络邻域x%内的准确度)的最简单的或最小的候选学生模型(例如,具有最少层和/或参数的候选学生模型)。此外,在这方面,在该技术的一些方面,可以通过将候选学生模型与一个或多个在前或在后的教师网络邻域组合以形成中间模型来评估候选学生模型的准确性。因此,例如,通过创建由邻域204、邻域206和学生模型209b组成的第一中间模型,并将其性能与由邻域204、邻域206和邻域208组成的第二中间模型进行比较,学生模型209b的准确性可以被评估。在这种情况下,输入可以被传递到第一和第二中间模型的邻域204,然后来自学生模型209b和邻域208的结果输出可以被比较。
29.同样,训练器可以被配置为选择低于阈值大小或简单性的最准确的候选学生模型(例如,大小小于或等于教师网络邻域的y%,或大小小于z层或参数)。另外,虽然选定候选学生模型在某些情况下可能比它们相应的教师网络邻域更简单或更小,但它们不必在所有情况下都如此。例如,在教师网络被优化以在一种类型的平台(例如,tpu或企业服务器)上进行推理并被蒸馏以创建能够由不同硬件平台(例如,pc或移动设备)使用的学生网络的情况下,选定学生模型(或整个学生网络)最终可能与它们相应的教师网络邻域(或整个教师网络)一样复杂或更复杂,但由于它们的兼容性仍然是可期望的。
30.另外,如关于训练器216所示,训练器还可以被配置为选择不将给定教师网络邻域替换为候选学生模型中的一个,而是简单地在学生网络中包括给定教师网络邻域的副本。训练器可以被配置为执行该操作,例如,在没有发现候选学生模型以可接受的精度模拟教师网络邻域的输出的情况下,或者在没有发现可接受地准确的候选学生模型相对于给定教师网络邻域可接受地小和/或简单的情况下。
31.在该技术的某些方面,训练器可以被配置为训练每个候选学生模型,目标是使测量教师网络输出与候选学生模型输出之间差异的损失函数最小化。例如,训练器可以被配置为通过使其输出与教师网络邻域的输出之间的均方差最小化来训练每个候选学生模型。在这方面,图3a和图3b示出了训练者可以计算能够被用于创建训练梯度的均方差的两种方式。训练者可以被配置为仅使用图3a的方法、仅使用图3b的方法或者可以一起使用图3a和图3b的方法以训练候选学生模型来模仿教师网络邻域的输出。
32.在图3a的示例中,教师网络被分解成两部分:教师网络邻域306;和教师根304。教师根304是紧接在教师网络邻域306之前的教师网络的一部分。教师根304可以由一个或多个连续层、块、单元、元素、节点等组成,但必须包括将输出传递到教师网络邻域306的第一层、块、单元、元素、节点等的无论哪个层、块、单元、元素、节点等。然后,训练器将通过将输入302传递到教师根304来进行训练,它会将输出传递给教师网络邻域306和候选学生模型308。
33.在图3a的示例中,为了使教师根304的输出能够被传递到候选学生模型308,候选
学生模型308被配置为接受与教师网络邻域306被配置为接受的维度相同的向量。然后,教师网络邻域306和候选学生模型308都将基于它们从教师根304接收到的输入生成输出。来自教师网络邻域306和候选学生模型308的输出然后被比较以创建均方差310。均方差310表示候选学生模型和教师网络邻域之间的客观损失,并且可以被训练者用来递归地生成训练梯度并调整候选学生模型的参数,直到候选学生模型308的输出和教师网络邻域306的输出之间的客观损失已被最小化。虽然在图3a的示例中使用均方差310计算,但是将理解,可以替代地使用其他损失函数。在该技术的一些方面,每个输入302的来自教师根304的输出可以在训练之前被预先计算和存储,以便这些输出可以直接被馈送到候选学生模型308和教师网络邻域306。同样,在该技术的一些方面,每个输入302的来自教师网络邻域306的输出可以在训练之前被预先计算和存储,以便在计算每个均方差310之前必须只计算候选学生模型308的输出。
34.在图3b的示例中,教师网络被分解成三个部分:教师网络邻域306;教师根304;和教师头312a。教师根304与图3a中的相同,因此是紧接在教师网络邻域306之前的教师网络的一部分。同样,教师根304可以由一个或多个连续层、块、单元、元素、节点等组成,但必须包括将输出传递到教师网络邻域306的第一层、块、单元、元素、节点等的任何层、块、单元、元素、节点等。类似地,教师头312a是紧跟在教师网络邻域306之后的教师网络的一部分。因此,教师头312a可以由一个或多个连续的层、块、单元、元素、节点等组成,但必须包括接收来自教师网络邻域306的最终层、块、单元、元素、节点等的输出的无论哪个层、块、单元、元素、节点等。然后,训练器将通过将输入302传递到会将输出传递到教师网络邻域306和候选学生模型308两者的教师根304来进行训练。这里同样,为了使教师根304的输出能够被传递到候选学生模型308,候选学生模型308被配置为接受与教师网络邻域306被配置为接受的维度相同的向量。
35.基于由教师根304传递给它们的信号,教师网络邻域306和候选学生模型308都将生成输出。在这方面,在图3b的示例中,教师网络邻域306会将其输出传递到教师头312a,而候选学生模型308会将其输出传递到教师头312b,其是教师头312a的相同副本。在该技术的一些方面,可以不使用该教师头的相同副本,并且候选学生模型308反而可以在教师网络邻域306将其输出传递到教师头312a之前或之后将其输出传递给教师头312a。
36.在图3b的示例中,为了使候选学生模型308的输出能够被传递到教师头312b,候选学生模型308的向量输出被配置为与教师网络邻域306的向量输出的维度相同。教师头312a和教师头312b然后将基于他们分别从教师网络邻域306和候选学生模型308接收到的内容生成输出。来自教师头312a和教师头312b的那些输出将被比较以创建均方差314。均方差314表示候选学生模型和教师网络邻域之间的前瞻损失。这里同样,虽然在图3b的示例中使用均方差314计算,但是将理解,可以替代地使用其他损失函数。
37.如上所述,均方差314也可以由训练者单独使用或与均方差310结合使用,以递归地生成训练梯度并调整候选学生模型的参数,直到前瞻损失被最小化。这里同样,在该技术的某些方面,每个输入的来自教师根304的输出可以在训练之前被预先计算和存储,使得这些输出可以直接被馈送到候选学生模型308和教师网络邻域306。同样,在该技术的某些方面,基于从教师网络邻域306接收到的信号(其继而基于每个输入302)来自教师头312a的输出可以在训练之前被预先计算和存储,使得仅必须在计算每个均方差314之前计算教师头
312b的输出(即,基于从候选学生模型308接收的内容的教师头的输出)。
38.在该技术的一些方面,在如上文关于图2描述的那样已经生成完整的学生模型220之后,可以使用邻域蒸馏进一步蒸馏。在这种情况下,学生网络220将成为新的教师网络,并且将被分解成其它的邻域(不需要对应于组成它的各个学生模型),以便创建新的学生网络。例如,可以这样做,以便将针对一个硬件平台最优化的现有学生网络蒸馏成针对另一硬件平台最优化的新学生网络。
39.另外,在该技术的一些方面,在如上文关于图2描述的那样已经生成完整的学生模型220之后,可以使用教师网络202在其上被训练的原始数据集(例如,图像的集合,或文本文档的集合),或与教师网络在其上被训练的数据集相似的数据的集合(例如,图像的不同集合,或文本文档的不同集合),对其进行进一步微调202。在某些情况下,这可以提高学生网络220相对于教师网络202的最终准确性。
40.图4是根据本公开的方面的执行邻域蒸馏的示例性方法400的流程图。在这方面,在步骤402中,第一神经网络(例如,图2的教师网络202)被划分为多个邻域(例如,图2的邻域204、206、208、210)。如已经描述的,第一神经网络的这种划分可以被手动地完成或由处理系统102完成。然后,针对多个邻域中的每个给定邻域,处理系统102将执行步骤404-414。在这方面,处理系统102可以并行或串行处理每个给定邻域(根据步骤404-414)。
41.在步骤404中,处理系统102针对每个给定邻域生成多个候选学生模型。例如,在图2的场境中,针对给定邻域204,处理系统102将生成学生模型205a-z。该步骤还将针对每个另外的给定邻域执行,导致处理系统102针对邻域206生成学生模型207a-z,针对邻域208生成学生模型209a-z,并且针对邻域210生成学生模型211a-z。
42.在步骤406中,处理系统102向每个给定邻域提供输入,并基于该输入接收来自给定邻域的第一输出。例如,在图2的场境中,处理系统102将向给定邻域204提供输入并且基于该输入接收来自给定邻域204的第一输出。同样,还将针对多个邻域中的每个另外的给定邻域执行该步骤。
43.同样,在步骤408中,处理系统102向多个候选学生模型中的每个候选学生模型提供相同的输入,并且基于这些输入接收多个第二输出。因此,继续图2的示例,使用提供(或要被提供)给给定邻域204的相同输入,处理系统102会将该输入提供给每个学生模型205a-z,并且将基于该输入从每个学生模型205a-z接收分开的“第二输出”。这里同样,也将针对与多个邻域中的每个另外的给定邻域相关联的学生模型执行该步骤。
44.然后,在步骤410中,针对每个给定邻域,处理系统102将第一输出(在步骤406中接收的)与多个第二输出中的每个第二输出(在步骤408中接收的)进行比较,以生成对应于多个候选学生模型中的每个候选学生模型的第一训练梯度。这些“第一训练梯度”可以被生成,例如,如上面关于图3a所描述的。因此,继续图2的示例,针对给定邻域204,处理系统102会将从邻域204接收到的第一输出与从每个学生模型205a-z接收到的第二输出中的每一个进行比较,并且将针对每个学生模型205a-z生成第一训练梯度。这里同样,还将针对多个邻域中的每个另外的给定邻域执行该步骤,以针对它们的相应的学生模型中的每一个创建第一训练梯度。
45.接下来,在步骤412中,针对每个给定邻域,处理系统102至少部分地基于对应于给定候选学生模型的第一训练梯度来修改多个候选学生模型中的每个给定候选学生模型的
一个或多个参数。此外,如从步骤412延伸回到步骤406的箭头所指示,一旦这些参数已经被修改了,就可以重复步骤406-412,以便递归地将新输入馈送到给定邻域和每个候选学生模型并调整每个候选学生模型的参数(基于新生成的训练梯度),直到每个候选学生模型的输出开始接近(或匹配)每个输入的给定邻域的输出。这里同样,步骤406-412的递归子过程也可以利用第一神经网络在其上被训练的原始数据集(例如,图像的集合或文本文档的集合)的一些或全部、类似于教师网络202在其上被训练的数据集的数据的集合(例如,图像的不同集合或文本文档的不同集合)、高斯噪声或其某种组合。因此,继续图2的示例,针对给定邻域204,处理系统102将修改每个学生模型205a-z中的一个或多个参数,然后可以使用新的输入和这些修改后的学生模型205a-z的参数重复步骤406-412。同样,这些步骤也将针对多个邻域中的每个另外的给定邻域执行,以便递归地调整它们的相应的学生模型的参数。
46.跟随在步骤406-412的递归子过程,处理系统102针对每个给定邻域标识选定模型。选定模型可以是多个候选学生模型中的一个的副本,或者它可以是给定邻域的副本(例如,在没有一个候选学生模型被认为是可接受的情况下)。如上面关于图2所讨论的,处理系统102可以基于任何合适的标准来进行这些选择,诸如通过选择当与其相应的给定邻域相比时满足某个阈值精度的最简单或最小的候选学生模型,或者通过选择低于阈值大小或简单程度的最准确的候选学生模型。因此,继续图2的示例,处理系统102会将学生模型205d标识为对应于邻域204的选定模型,会将学生模型207a标识为对应于邻域206的选定模型,会将教师网络邻域208本身标识为对应于邻域208的选定模型,并会将学生模型4f标识为对应于邻域210的选定模型。
47.最后,在步骤416中,处理系统102组合与多个邻域中的每个给定邻域相对应的选定模型以形成第二神经网络。因此,继续图2的示例,处理系统102将组合每个选定模型(学生模型205d、学生模型207a、教师网络邻域208和学生模型211f)以形成最终的学生网络220。这里,在某些情况下,第二神经网络还可以包括第一网络的一个或多个固定部分的副本,该副本没有被分配给邻域中的一个,因此没有根据方法400的步骤进行处理。
48.图5是根据本公开的方面的执行邻域蒸馏的示例性方法500的流程图。如在步骤502中阐述的,方法500阐述了除了图4的方法400的步骤之外可能发生的步骤。具体地,在第一网络已经被划分为多个邻域(步骤402)并且针对给定邻域生成第一输出和多个第二输出(步骤404-408)之后,处理系统102可以针对多个邻域中的每个给定邻域(除了(在适用的情况下)包括教师网络的最终层、块、单元、元素、节点等的邻域)另外地执行图5的步骤504-510。
49.在这方面,在步骤504中,处理系统102将第一输出(在图4的步骤406中从每个给定邻域接收的)提供给头模型,并基于该第一输出从头模型接收第三输出。头模型包括直接跟随给定邻域的第一神经网络的一部分的副本,如上面关于图3b的教师头312a更全面地描述的。因此,继续图2的示例,针对给定邻域204,处理系统102将从给定邻域204接收的输出提供给邻域206(或其某个部分),以便从邻域206(或其这样的部分)获得“第三输出”。还将针对多个邻域中的每个另外的给定邻域执行该步骤。然而,在多个邻域中的一个包括教师网络的最终层、块、单元、元素、节点等的情况下,将无法针对该邻域创建头模型,因此步骤504-510将不针对该邻域进行(如步骤502中所述)。相反,针对包括教师网络的最终层、块、单元、元素、节点等的邻域,处理系统102可以反而被配置为只针对该邻域生成第一训练梯
度,如上文关于图4的步骤406-412所描述的。
50.同样,在步骤506中,处理系统102将多个第二输出(在图4的步骤408中从每个候选学生模型接收的)中的每个第二输出提供给头模型,并且基于这些第二输出从头模型接收多个第四输出。因此,继续图2的示例,针对给定邻域204,处理系统102将从每个学生模型205a-z接收到的输出提供给邻域206(或其某个部分),以便从邻域206(或其这样的部分)获得多个“第四输出”。这里同样,该步骤也将针对与多个邻域中的每个另外的给定邻域(除了(在适用的情况下)包括不存在头模型的教师网络的最终层、块、单元、元素、节点等的邻域)相关联的学生模型执行。
51.在步骤508中,针对每个给定邻域,处理系统102将第三输出(在步骤504中接收的)与多个第四输出中的每个第四输出(在步骤506中接收的)进行比较,以生成对应于多个候选学生模型中的每个候选学生模型的第二训练梯度。这些第二训练梯度可以被生成,例如,如上面关于图3b所描述的。因此,继续图2的示例,针对给定邻域204,处理系统102将从邻域206接收到的第三输出(基于从邻域204接收到的第一输出)与从邻域206接收到的每个第四输出(其每个都基于从不同的学生模型205a-z中的一个接收到的第二输出)进行比较,以便针对每个学生模型205a-z生成第二训练梯度。这里同样,该步骤还将针对多个邻域中的每个另外的给定邻域执行,以针对它们的相应的学生模型创建训练梯度,(除了(在适用的情况下)包括将不存在头模型的教师网络的最终层、块、单元、元素、节点等的邻域)。
52.最后,在步骤510中,针对每个给定邻域,处理系统102至少部分地基于对应于给定候选学生模型的(在步骤508中生成的)第二训练梯度修改多个候选学生模型的每个给定候选学生模型的一个或多个参数。在这方面,由于除了图4的方法400之外,还执行方法500,步骤504-510可以被重复作为上面关于步骤406-412描述的递归过程的一部分。因此,一旦这些参数已经如步骤510中所阐述的被修改,图4的步骤406-412和图5的步骤504-510可以被重复以将新数据递归地馈送到给定邻域和每个候选学生模型,并且因此调整每个候选学生模型的参数(基于新生成的第一和第二训练梯度)直到每个候选学生模型的输出开始接近(或匹配)每个输入的给定邻域的输出。这里同样,图4的步骤406-412的递归子过程和图5的步骤504-510可以利用第一神经网络在其上被训练的原始数据集(例如,图像的集合或文本文档的集合)的一些或全部、类似于教师网络202在其上被训练的数据集的数据的集合(例如,图像的不同集合或文本文档的不同集合)、高斯噪声或它们的某种组合。因此,继续图2的示例,针对给定邻域204,处理系统102将基于第二训练梯度(除了如步骤412中所阐述的基于第一训练梯度这样做之外)另外地修改每个学生模型205a-z的一个或多个参数,然后可以使用新的输入和这些修改后的学生模型205a-z的参数重复图4的步骤406-412和图5的步骤504-510。同样,还将针对多个邻域中的每个另外的给定邻域执行这些步骤,以修改它们的相应的学生模型的参数并递归地调整它们。
53.此外,在本技术的一些方面,步骤410和412可以从图4和图5的组合方法中被省略(除了(在适用的情况下)包括教师网络的最终层、块、单元、元素、节点等的邻域,如上所述)。在这方面,在针对给定邻域执行步骤404-408之后,可以执行步骤504-510(如上所述),使得所生成的唯一训练梯度将是在步骤508中生成的“第二训练梯度”,并且使得候选学生模型将基于如步骤510中所描述那些“第二训练梯度”被修改。跟随步骤510中的修改,图4的步骤406-408和图5的步骤504-510然后可以如已经描述的那样被重复,以便将新数据递归
地馈送到给定邻域和每个候选学生模型,并因此调整每个候选学生模型的参数(基于新生成的第二训练梯度)直到每个候选学生模型的输出开始接近(或匹配)每个输入的给定邻域的输出。
54.除非另有说明,上述替代示例并不相互排斥,而是可以以各种组合实施以实现独特的优势。由于能够在不背离权利要求限定的主题的情况下利用上述特征的这些和其他变体和组合,因此示例性系统和方法的前述描述应当作为说明而不是作为对权利要求所定义的主题的限制。另外,本文中所描述的示例的提供以及措辞为“例如”、“包括”、“包含”等的条款不应被解释为将权利要求的主题限制为特定示例;相反,这些示例旨在仅说明许多可能的实施例中的一些。此外,不同附图中相同的附图标记能够标识相同或相似的元件。

技术特征:
1.一种使用第一神经网络生成第二神经网络的方法,包括:将所述第一神经网络划分为多个邻域;针对所述多个邻域中的每个给定邻域:由处理系统的一个或多个处理器生成多个候选学生模型;由所述一个或多个处理器接收来自所述给定邻域的第一输出,所述第一输出已经由所述给定邻域基于输入产生;由所述一个或多个处理器接收多个第二输出,每个第二输出已经由所述多个候选学生模型中的给定候选学生模型基于所述输入产生;由所述一个或多个处理器将所述第一输出与所述多个第二输出中的每个第二输出进行比较,以生成对应于所述多个候选学生模型中的每个候选学生模型的第一训练梯度;由所述一个或多个处理器至少部分地基于对应于所述给定候选学生模型的所述第一训练梯度,修改所述多个候选学生模型中的每个给定候选学生模型的一个或多个参数;以及由所述一个或多个处理器标识选定模型,所述选定模型是所述多个候选学生模型中的一个的副本或所述给定邻域的副本;以及由所述一个或多个处理器组合对应于所述多个邻域中的每个给定邻域的选定模型以形成所述第二神经网络。2.根据权利要求1所述的方法,其中,至少部分地基于所述多个候选学生模型中的每个候选学生模型的大小的比较来标识所述选定模型。3.根据权利要求1所述的方法,其中,至少部分地基于所述多个候选学生模型中的每个候选学生模型的层数的比较来标识所述选定模型。4.根据权利要求1所述的方法,其中,至少部分地基于所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的测量值的比较来标识所述选定模型。5.根据权利要求4所述的方法,其中,所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的所述测量值至少部分地基于在基于给定输入的所述给定邻域的输出和基于所述给定输入的所述多个候选学生模型中的每个候选学生模型的输出之间的均方差。6.根据权利要求1所述的方法,其中,所述输入包括从所述给定邻域之前的邻域接收的输出。7.根据权利要求1所述的方法,还包括:针对所述多个邻域中的每个给定邻域:由所述一个或多个处理器将所述第一输出提供给头模型,所述头模型包括直接跟随所述给定邻域的第一神经网络的一部分的副本;由所述一个或多个处理器将所述多个第二输出中的每个第二输出提供给所述头模型;由所述一个或多个处理器接收来自头模型的第三输出,所述第三输出已经由所述头模型基于所述第一输出产生;由所述一个或多个处理器接收多个第四输出,每个第四输出已经由所述头模型基于所述多个第二输出中的给定第二输出产生;以及
由所述一个或多个处理器将所述第三输出与所述多个第四输出中的每个第四输出进行比较,以生成对应于所述多个候选学生模型中的每个候选学生模型的第二训练梯度;以及由所述一个或多个处理器至少部分地基于对应于所述给定候选学生模型的所述第二训练梯度,修改所述多个候选学生模型中的每个给定候选学生模型的一个或多个参数。8.根据权利要求7所述的方法,其中,至少部分地基于所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的所述测量值的比较来标识所述选定模型。9.根据权利要求8所述的方法,其中,所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的所述测量值至少部分地基于在基于给定输入的所述给定邻域的输出和基于所述给定输入的所述多个候选学生模型中的每个候选学生模型的输出之间的均方差。10.根据权利要求7所述的方法,其中,所述输入包括从所述给定邻域之前的邻域接收的输出。11.一种处理系统,包括:存储器;以及一个或多个处理器,所述一个或多个处理器耦合到所述存储器并且配置为:针对多个邻域中的每个给定邻域,每个给定邻域包括第一神经网络的一部分:生成多个候选学生模型;接收来自所述给定邻域的第一输出,所述第一输出已经由所述给定邻域基于输入产生;接收多个第二输出,每个第二输出已经由所述多个候选学生模型中的给定候选学生模型基于所述输入产生;将所述第一输出与所述多个第二输出中的每个第二输出进行比较,以生成对应于所述多个候选学生模型中的每个候选学生模型的第一训练梯度;至少部分地基于对应于所述给定候选学生模型的所述第一训练梯度,修改所述多个候选学生模型中的每个给定候选学生模型的一个或多个参数;以及标识选定模型,所述选定模型是所述多个候选学生模型中的一个的副本或所述给定邻域的副本;以及组合对应于所述多个邻域中的每个给定邻域的选定模型以形成第二神经网络。12.根据权利要求11所述的系统,其中,所述一个或多个处理器还被配置为至少部分地基于所述多个候选学生模型中的每个候选学生模型的大小的比较来标识所述选定模型。13.根据权利要求11所述的系统,其中,所述一个或多个处理器还被配置为至少部分地基于所述多个候选学生模型中的每个候选学生模型的层数的比较来标识所述选定模型。14.根据权利要求11所述的系统,其中,所述一个或多个处理器还被配置为至少部分地基于所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的测量值的比较来标识所述选定模型。15.根据权利要求14所述的系统,其中,所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的所述测量值至少部分地基于在基于给定输入的
所述给定邻域的输出和基于所述给定输入的所述多个候选学生模型中的每个候选学生模型的输出之间的均方差。16.根据权利要求11所述的系统,其中,所述输入包括从所述给定邻域之前的邻域接收的输出。17.根据权利要求11所述的系统,其中,所述一个或多个处理器还被配置为:针对所述多个邻域中的每个给定邻域:将所述第一输出提供给头模型,所述头模型包括直接跟随所述给定邻域的第一神经网络的一部分的副本;将所述多个第二输出中的每个第二输出提供给所述头模型;接收来自所述头模型的第三输出,所述第三输出已经由所述头模型基于所述第一输出产生;接收多个第四输出,每个第四输出已经由所述头模型基于来自所述多个第二输出的给定第二输出产生;将所述第三输出与所述多个第四输出中的每个第四输出进行比较,以生成对应于所述多个候选学生模型中的每个候选学生模型的第二训练梯度;以及至少部分地基于对应于所述给定候选学生模型的所述第二训练梯度,修改所述多个候选学生模型中的每个给定候选学生模型的一个或多个参数。18.根据权利要求17所述的系统,其中,所述一个或多个处理器还被配置为至少部分地基于所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的所述测量值的比较来标识所述选定模型。19.根据权利要求18所述的系统,其中,所述多个候选学生模型中的每个候选学生模型与所述给定邻域的所述输出的接近程度的所述测量值至少部分地基于在基于给定输入的所述给定邻域的输出和基于所述给定输入的所述多个候选学生模型中的每个候选学生模型的输出之间的均方差。20.根据权利要求17所述的系统,其中,所述输入包括从所述给定邻域之前的邻域接收的输出。

技术总结
公开了用于蒸馏深度神经网络的系统和方法,其中教师网络被划分为块或“邻域”。然后候选学生模型被训练以再产生每个教师邻域的输出,并且可以选择对应于每个邻域的最佳学生模型以包括在最终学生网络中。在一些示例中,最终学生网络可以由选定学生模型集合和一个或多个教师网络邻域的副本组成。多个教师网络邻域的副本组成。多个教师网络邻域的副本组成。


技术研发人员:莱蒂西亚
受保护的技术使用者:谷歌有限责任公司
技术研发日:2020.06.23
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-7162.html

最新回复(0)