掌桥专利:专业的专利平台
掌桥专利
首页

神经网络模型压缩方法及系统

文献发布时间:2024-04-18 19:58:26


神经网络模型压缩方法及系统

技术领域

本发明属于神经网络技术领域,具体涉及一种神经网络模型压缩方法与系统。

背景技术

在过去十年中,深度神经网络在各种任务和领域中取得了广泛的突破。然而,现代神经网络通常包含大量参数,这使得它们在实际应用中难以承受,尤其是在资源有限的边缘设备上。最近,已经提出了丰富的模型压缩方法,通过高效的网络架构、低精度表示、和更好的训练方法来解决这个问题。具体来说,神经网络剪枝迭代地移除神经网络中不重要的神经元,以搜索不仅准确而且高效的架构。量化方法力图用更少的比特来表示神经网络的权重和激活。Hinton提出了知识蒸馏,通过从预训练的教师模型转移知识来提高小型模型的性能。这些方法在各种任务例如分类、目标检测、分割和语言模型中取得了丰富的实验和理论突破。

在模型压缩的研究中,深度学习中另一个至关重要的角色——数据通常被忽略了。人们普遍认为,训练数据的质量和多样性对神经网络的性能具有重要和根本的影响。然而,大多数先前的模型压缩研究都是在脱离数据影响的情况下研究模型压缩。特别是,公开的技术中通常在压缩过程中对不同大小的模型应用相同的数据增强策略,都忽视了数据不同强度对模型压缩的影响。

发明内容

为了解决现有技术中存在的问题,本发明提供了一种神经网络模型压缩方法及系统。本发明的神经网络模型压缩方法可以利用大模型过滤小模型的硬数据增强样本,高效地找到小模型的最优数据增强策略。

为达到上述目的,本发明采用以下技术方案予以实现:

第一方面,本发明提供一种神经网络模型压缩方法,包括:

获取边缘设备用训练数据,并基于有监督分类形成给出训练集和相应的标签集,构建具有交叉熵损失LCE的训练目标模型;

采用随机增强作为数据增强策略,使用随机增强方法给定一组K个数据增强操作和一个全局强度参数M进行扩充,得到最佳强度M

在知识蒸馏中,教师模型通常使用所述具有交叉熵损失LCE的训练目标模型进行预训练;训练学生模仿其输出与教师预测之间的KL散度,构建知识蒸馏损失模型;

对神经网络剪枝以减少神经网络中的参数数量;剪枝后的神经网络在训练前根据其权重进行再训练;

对于每个训练样本,通过将具有随机强度来生成其增强,选择其中一个数据增强用于学生训练,数据增强表示为交叉熵损失与知识蒸馏损失模型的函数;训练学生模型以最小化数据增强。

作为本发明进一步改进,所述基于有监督分类形成给出训练集和相应的标签集,构建具有交叉熵损失LCE的训练目标模型,包括:

基于监督分类设置,给出训练集X={x

其中y

作为本发明进一步改进,所述使用随机增强方法给定一组K个原子数据增强操作和一个全局强度参数M进行扩充,得到最佳强度M

给定一组K个数据增强操作{o

其中o

式(3)在满足训练集上得到最优神经网络参数W的条件下,使得测试集上LCE最小的强度M既为最优强度。

作为本发明进一步改进,所述知识蒸馏损失模型表示为

其中,τ为知识蒸馏中的温度系数。可以得到学生的整体训练损失表示为α·L

作为本发明进一步改进,所述对神经网络剪枝以减少神经网络中的参数数量,包括:

神经网络剪枝训练目标表述为

其中,Card()和Num()分别返回非零元素的数量和W中所有元素的数量。p表示所需的剪枝比率;p越大表示从神经网络中移除的参数越多。

作为本发明进一步改进,所述对于每个训练样本,通过将具有随机强度来生成其增强,选择其中一个数据增强用于学生训练,数据增强表示为交叉熵损失与知识蒸馏损失模型的函数,包括:

对于每个训练样本x,通过将具有随机强度的应用n次来生成其增强,将其增强表示为{x

其中,第一项表示教师预测和标签之间的交叉熵损失,第二项表示教师预测和学生预测之间的KL散度。

作为本发明进一步改进,所述剪枝后的神经网络在训练前根据其权重进行再训练,包括:

先用强数据增强训练小型模型,然后用弱数据增强训练;或者,

先使用带有附加层的弱数据增强进行训练,然后丢弃附加层并使用弱数据增强重新训练。

第二方面,本发明提供一种神经网络模型压缩系统,包括:

获取构建模块,用于获取边缘设备用训练数据,并基于有监督分类形成给出训练集和相应的标签集,构建具有交叉熵损失LCE的训练目标模型;

增强扩充模块,用于采用随机增强作为数据增强策略,使用随机增强方法给定一组K个数据增强操作和一个全局强度参数M进行扩充,得到最佳强度M

预训练模块,用于在知识蒸馏中,教师模型通常使用所述具有交叉熵损失LCE的训练目标模型进行预训练;训练学生模仿其输出与教师预测之间的K-L散度,构建知识蒸馏损失模型;

剪枝再训练模块,用于对神经网络剪枝以减少神经网络中的参数数量;剪枝后的神经网络在训练前根据其权重进行再训练;

训练模块,用于对于每个训练样本,通过将具有随机强度来生成其增强,选择其中一个数据增强用于学生训练,数据增强表示为交叉熵损失与知识蒸馏损失模型的函数;训练学生模型以最小化损失函数LCE从而得到最佳数据增强。

第三方面,本发明提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述神经网络模型压缩方法。

第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述神经网络模型压缩方法。

与现有技术相比,本发明具有以下有益效果:

本发明针对不同大小的模型需要不同强度的数据增强,更高强度的数据增强会显著提高大(剪枝前)模型的性能,但会损害小(剪枝后)模型的性能,采用一个小(剪枝后的)模型通过首先学习带有附加参数的硬数据增强,然后丢弃它们从硬数据增强中获益。即使附加参数已被丢弃,从硬数据增强中学到的知识仍然可以被小(剪枝后的)模型继承。利用大模型过滤小模型的硬数据增强样本,其可以高效地找到小模型的最优数据增强策略,该方法可以为设计高效和有效的数据增强方法提供有见地的指导。

附图说明

图1为本发明给出的一种神经网络模型压缩方法流程图;

图2为剪枝后的ResNet20、MobileNetV2、ShuffleNetV2在CIFAR10和CIFAR100上使用不同强度的随机增强训练的实验结果图,分别对应其中(a)、(b)(c)、(d)、(e)、(f);

图3为MobileNetV2在经过不同强度数据增强训练的ImageNet上的实验图;

图4为在CIFAR100上剪枝期间使用一致数据增强强度和动态数据增强强度之间的比较图;

图5为三种增强方案在CIFAR10和CIFAR100上使用ResNet20、MobileNetV2和ShuffleNetV2进行剪枝设置的实验结果图,分别对应其中(a)、(b)(c)、(d)、(e)、(f);

图6为一个小型模型在剪枝设置和通用设置中间接学习强数据增强的知识原理图;

图7为在CIFAR100和CIFAR10上使用ResNet20、MobileNetV2和ShuffleNetV2训练小型模型以学习具有附加层的强数据增强的实验结果图,(a)为CIFAR100,(b)为CIFAR10;

图8为通过使用预训练的大型模型(教师)过滤硬数据增强来训练小型模型(学生)的实验结果图,(a)为CIFAR100,(b)为CIFAR10;

图9为本发明提供的神经网络模型压缩系统示意图;

图10为本发明提供的一种电子设备示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本公开使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。

需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。

需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。

深度神经网络的优异性能通常伴随着大量的参数和计算,这限制了它们在资源有限的边缘设备上的使用。为了解决这个问题,人们提出了剪枝、量化和知识蒸馏等丰富的方法来压缩神经网络,并取得了重大突破。然而,这些压缩方法大多关注神经网络的架构或训练方法,而忽略了数据增强的影响。

为此,如图1所示,本发明提出了一种神经网络模型压缩方法,包括:

S100,获取边缘设备用训练数据,并基于有监督分类形成给出训练集和相应的单热标签集,构建具有交叉熵损失LCE的训练目标模型;

S200,采用随机增强作为数据增强策略,使用随机增强方法给定一组K个原子数据增强操作和一个全局强度参数M进行扩充,得到最佳强度M

S300,在知识蒸馏中,教师模型通常使用所述具有交叉熵损失LCE的训练目标模型进行预训练;训练学生模仿其输出与教师预测之间的K-L散度,构建知识蒸馏损失模型;

S400,对神经网络剪枝以减少神经网络中的参数数量;剪枝后的神经网络在训练前根据其权重进行再训练;

S500,对于每个训练样本,通过将具有随机强度来生成数据增强,选择其中一个数据增强用于学生训练,最佳数据增强强度表示为交叉熵损失与知识蒸馏损失模型的函数;训练学生模型以最小化数据增强。

在本申请中,为了揭示数据增强和模型压缩之间的关系,引入了实证和综合分析。综上所述,本实施例主要有以下三点观察。

不同大小的模型更喜欢不同强度的数据增强。以前的自动数据增强策略通常会为特定数据集搜索最佳数据增强策略。然而,本实施例发现不同大小型模型的最佳数据增强策略也不同。通常,小型模型往往会从弱数据增强(即低强度的数据增强)中受益,但会受到强数据增强(即高强度的数据增强)的伤害。相比之下,大型模型可以从强大的数据增强策略中获得更多收益。本实施例认为这是因为来自强大数据增强的正则化效果可能太大而无法为小型模型学习。基于这一观察,本实施例建议在迭代网络剪枝期间逐渐减少数据增强的强度,而不是对不同剪枝比率的模型使用一致的数据增强策略。

小型模型可以通过附加参数学习强大的数据增强。虽然小型模型不能直接从强数据增强中受益,申请人发现它们仍然可以通过附加参数以间接方式从强数据增强中学习知识。例如,在神经网络剪枝中,通过使用经过强数据增强训练的预剪枝模型的权重进行初始化,剪枝后的模型可以继承从强数据增强中学到的知识,从而获得更高的性能。类似地,小型模型也可以先从带有一些附加层的强数据增强中学习知识,然后在推理过程中丢弃这些附加层。

实验结果表明,尽管删除了附加层,但小型模型仍然可以保留它们从强数据增强中学到的知识。

大型模型可用于寻找小型模型的数据增强策略。如果数据增强对于大型模型来说太强而无法学习,那么对于小型模型来说它也应该太强,申请人研究表明可以利用预训练的大型模型来找到小型模型的最佳数据增强。例如,在知识蒸馏中,可以利用教师模型来选择数据增强,最大化知识蒸馏损失以加速模型收敛,有时会导致更好的泛化能力。

这些观察结果表明,数据增强的使用与神经网络的容量密切相关。本实施例希望能够促进更多的研究一起研究模型压缩和数据增强。以下进行详细说明:

A.数据增强

数据增强旨在通过应用多个预定义的变换来提高训练集的多样性,已成为机器学习中的基本技术之一。在计算机视觉中,随机图像裁剪和水平翻转是监督学习和非监督学习两种最流行的增强方法。此外,还提出了切除和随机擦除方法来随机删除图像中的一些像素。提出了Mixup和CutMix来合成新图像作为现有两个图像的线性组合。除了常见的视觉任务,数据增强的有效性也体现在自然语言处理、AI公平性、模型鲁棒性、单图像超分辨率等方面。

最近,受神经网络架构搜索成功的推动,提出了丰富的方法来自动找到给定数据集的最佳数据增强策略。首先提出自动增强(AutoAugment)来用概率和强度参数使每个图像变换参数化。然后,提出随机增强(RandAugment)通过使用全局强度参数来减少搜索空间。此外,已经提出了丰富的方法来加速对抗性学习、种群算法、元学习和自动超参数调整的搜索过程。但是,之前大多数关于数据增强的研究都忽略了一个事实,即不同神经网络的最佳数据增强策略也不同。随机增强RandAugment表明通常层数较少的神经网络需要较低强度的数据增强。傅等人的研究表明在知识蒸馏中,学生和教师的最佳数据增强策略是不同的。最近,铃木等人提出了教师增强TeachAugment,旨在通过使用预训练的教师模型来过滤学生的硬数据增强。

B.神经网络剪枝

深度神经网络性能的快速提升通常伴随着巨大的计算和存储开销。为了解决这个问题,提出了神经网络剪枝以从现有神经网络中删除冗余参数。在上个世纪,已经有人提出剪枝来删除不重要的神经元,标准是它们的Hessian矩阵。最近,在L

C.知识蒸馏

知识蒸馏,也称为学生-教师学习,已经成为模型压缩和模型性能提升的最有效的神经网络训练方法之一。它首先由Bucilua等人提出以压缩用于数据挖掘的集成神经网络。然后,欣顿等人提出知识蒸馏的概念,旨在通过训练轻强度学生网络来模拟教师网络的预测结果(例如分类概率)来压缩单个神经网络。由于学生网络继承了老师的知识,它通常可以取得比传统训练更高的性能。最近,人们提出了广泛的后续方法,不仅可以蒸馏教师逻辑单元,还可以蒸馏教师在主干特征和不变量方面的知识,例如注意力、关系、正值、面向任务的信息等。除了分类,它还在目标检测、语义分割、图像到图像转换、机器翻译、预训练语言模型、多出口模型、模型鲁棒性等方面取得了出色的性能。

D.其他模型压缩技术

除了神经网络剪枝和知识蒸馏,还提出了一些其他模型压缩技术,包括量化、轻强度模型设计、神经架构搜索和动态神经网络。量化旨在用八位甚至更少的位来表示神经网络的权重和激活。提出了轻强度模型,通过使用轻强度构建块来降低神经网络的复杂性,例如深度可分离卷积、组卷积、混洗卷积等。提出神经架构搜索以搜索基于强化学习、元学习或其他差异优化方法的最有效和准确的神经网络架构。提出了动态神经网络来推断具有实施例自适应分辨率、通道或深度的每个样本。

以下具体举例说明本发明的技术方案:

在本实施例中,主要关注监督分类设置,其中给出训练集X={x

其中y

A.随机增强(RandAugment)

在本申请实施例中,采用随机增强(RandAugment)作为所有实验的数据增强策略。给定一组K个原子数据增强操作{o

其中o

虽然等式3是一个双层优化问题,但M的搜索空间是从0到30的整数。因此,即使使用网格搜索也可以解决这个优化问题。

在本申请实施例中,为方便起见,将使用的数据增强数量固定为2。

B.知识蒸馏

在知识蒸馏中,教师模型通常使用等式1中描述的训练损失进行预训练。然后,训练学生模仿其输出与教师预测之间的Kullback-Leibler散度。通过使用脚本S和T来区分学生和教师,知识蒸馏损失可以表示为

τ为知识蒸馏中的温度系数。可以得到学生的整体训练损失可以表示为α·L

C.神经网络剪枝

神经网络剪枝旨在通过去除不重要的神经元来减少神经网络中的参数数量。

其训练目标可以表述为

其中Card()和Num()分别返回非零元素的数量和W中所有元素的数量。p表示所需的剪枝比率。p越大表示从神经网络中移除的参数越多。在本申请中,本实施例采用Pytorch中内置的L

具体实验过程如下:

A.不同大小的模型偏好不同强度的数据增强

本实施例表明模型的大小与其相应的最佳数据增强强度之间存在很强的相关性。图2和图3分别显示了不同剪枝率的神经网络在CIFAR和ImageNet上用不同强度的数据增强训练的实验结果。

给定一个具有特定剪枝率的模型,本实施例将其相应的“最佳强度”表示为导致最佳性能的强度,将“最大强度”表示数据增强的最大强度,与不使用任何数据增强相比,数据增强不会损害模型性能。本实施例的实验结果表明:

(A)强度非常低的数据增强往往会导致性能改进有限。相反,过大的强度会大大损害模型性能。最佳强度通常是一个适中的值,它会引入足够但不会太多的学习困难。例如,在带有未剪枝ResNet20的CIFAR100上,最佳数据增强(M=14)致精度提高大约1.5%,

图2为剪枝后的ResNet20、MobileNetV2、ShuffleNetV2在CIFAR10和CIFAR100上使用不同强度的随机增强(RandAugment)训练的实验结果。正方形和三角形分别表示最佳强度和最大强度。p表示剪枝率。例如,p=0.2表示20%的参数已被剪枝。具体参数如下:

(a)中,Top-1精度(%);ResNet20(p=0.0);ResNet20(p=0.4);ResNet20(p=0.8)。

(b)中,Top-1精度(%);ShuffleNetV2(p=0.0);ShuffleNetV2(p=0.4);ShuffleNetV2(p=0.8)。

(c)中,Top-1精度(%);MobileNetV2(p=0.0);MobileNetV2(p=0.4);MobileNetV2(p=0.8)。

(d)中,Top-1精度(%);ResNet20(p=0.0);ResNet20(p=0.2);ResNet20(p=0.4);ResNet20(p=0.6)。

(e)中,Top-1精度(%);ShuffleNetV2(p=0.0);ShuffleNetV2(p=0.2);ShuffleNetV2(p=0.4);ShuffleNetV2(p=0.6)。

(f)中,Top-1精度(%);MobileNetV2(p=0.0);MobileNetV2(p=0.2);MobileNetV2(p=0.4);MobileNetV2(p=0.6)。

图3为MobileNetV2在经过不同强度数据增强训练的ImageNet上的实验结果。具体参数为:Top-1精度(%)分为为:MobileNetV2(p=0.0);MobileNetV2(p=0.2);MobileNetV2(p=0.3)。

由图可知,最低和最高强度分别导致精度变化大约1.0%和-0.5%。

(B)较大大小的模型更喜欢具有较高强度的数据增强。剪枝比率与相应的最佳和最大强度之间存在很强的相关性。

例如,在带有ResNet20的CIFAR100上,60%剪枝、40%剪枝、20%剪枝和未剪枝模型的最佳强度分别为4、8、12和14。本实施例认为这是因为具有更多参数的模型具有更多的表示能力,可以从高强度的数据增强中学习强大的正则化效果。

强数据增强的正则化效果可能太具有挑战性而无法被小型模型学习,从而损害其性能。例如,在带有ResNet20的CIFAR100上,当数据增强强度为22时,可以观察到大约2%的精度下降。

(C)当神经网络有足够的参数时,具有更高强度的数据增强往往会导致更显著的准确性提升。例如,在CIFAR100上,具有较高强度(M=14)的数据增强导致精度提升约1.5,而具有较低强度(M=1)的数据增强仅导致精度提升约0.6。

图4为在CIFAR100上剪枝期间使用一致数据增强强度和动态数据增强强度之间的比较。其中,CIFAR100为Top-1精度(%)。

这一观察表明,与弱数据增强相比,强数据增强中有更多的潜在知识,只有具有足够表示能力的模型才能学习到。

B.数据增强强度动态剪枝

在以往的大多数剪枝研究中,不同剪枝率的神经网络使用相同的数据增强强度。然而,本实施例之前的观察表明,具有不同剪枝比率的模型更喜欢具有不同强度的数据增强。这一观察促使本实施例在剪枝过程中逐渐减少数据增强强度。图4显示了在CIFAR100和ResNet20上使用恒定或动态强度的实验结果。基线表示没有应用数据增强。M表示数据增强的强度。可以观察到:(A)与在整个剪枝期间始终使用四种不同的强度相比,逐渐减少数据增强强度会导致具有不同剪枝比率的模型的精度显着提高。(B)当在整个剪枝期间使用具有恒定强度的数据增强时,较高的强度往往会在低剪枝率下提高模型性能,但在高剪枝率下会降低模型性能,反之亦然。

本实施例认为,这是因为当模型具有足够的参数时,更高的强度会带来更多好处,但当大多数参数已被剪枝时会损害模型性能。

C.小型模型可以间接受益于强大的数据增强

1)继承剪枝前学习的强数据增强知识:本实施例之前的实验结果表明,对于一个小型模型来说,直接学习强数据增强是有挑战性的。本实施例将研究小型模型是否可以通过从大型模型的权重中继承知识来从强大的数据增强中受益。具体来说,本实施例进行了以下三个实验:基线-A:剪枝后的模型首先用强数据增强训练,然后用弱数据增强(其对应的最优数据增强)训练。基线-B:先用弱数据增强训练预剪枝模型,然后用弱数据增强进行剪枝和再训练。

本实施例的方案:如图6中,(a)所示,首先使用强数据增强训练预剪枝模型,然后使用弱数据增强进行剪枝和再训练。本实施例的方案和两个基线方案最终获得了以相同剪枝比率使用相同弱数据增强进行再训练的剪枝网络。它们的主要区别在于,在它们的第一个训练阶段:a)本实施例的方法采用大型模型(预剪枝模型)来学习硬数据增强。b)基线-A使用一个小型模型(剪枝模型)来学习硬数据增强。c)基线-B使用一个小型模型(剪枝模型)来学习弱数据增强。

三种方案的实验结果如图5所示。可以看出,本实施例的方案在所有数据集、神经网络和剪枝率方面都达到了最高的精度。本实施例的方案优于基线-A表明硬数据增强的知识可以从大型模型(预剪枝模型)中学习,然后在剪枝过程中由小型模型(剪枝模型)继承。此外,它优于基线-B的优势证实了本实施例方案的性能改进来自于使用硬数据增强而不是剪枝中的两阶段训练,并且小(剪枝后的)模型不能直接从强数据增强中学习。这些观察结果表明,尽管直接将强数据增强应用于小型(剪枝后)模型会损害其性能,但小(剪枝后)模型仍然可以通过首先学习具有附加参数的强数据增强然后在神经网络剪枝过程中继承它们来从强数据增强中受益。

2)继承通过附加层学习的强数据增强知识:本实施例展示了剪枝后的模型可以继承预剪枝模型学习的强数据增强知识。受其有效性的推动,本实施例进一步建议将这一想法扩展到剪枝之外的常见神经网络训练设置。

如图6中(b)所示,它由一个两阶段训练流程组成。以ResNet20为例,在第一个训练阶段,在原始ResNet20之后附加若干层(例如20层)以提高其表示能力,并且对获得的ResNet20+20进行强数据增强训练。在第二个训练阶段,从ResNet20+20中丢弃额外的20层,并对获得的ResNet20进行进一步弱数据增强训练。因此,来自强数据增强的知识可以首先由ResNet20+20学习,然后由ResNet20继承。

与以上方法类似,本实施例将方案与以下两个基线进行比较。

基线-A:先用强数据增强训练小型模型,然后用弱数据增强训练。基线-B:该模型首先使用带有附加层的弱数据增强进行训练,然后丢弃附加层并使用弱数据增强重新训练。ResNet20、MobileNetV2和ShuffleNetV2在CIFAR10和CIFAR100上的实验结果如图7所示。可以看出,本实施例的方案相对于其他两个基线有显着的精度提高,表明附加层学习的强数据增强知识可以被继承。

D.使用预训练的大型模型过滤小型模型的硬增强

之前的实验表明,大型模型的最佳数据增强通常对于小型模型而言过于强大。这一观察直观地表明,给定一个增强训练样本,如果一个预训练的大型模型不能正确预测它,它很可能是一个小型模型的硬增强。这一观察表明,在知识蒸馏中,可以利用预训练的大型教师模型的预测来过滤具有硬数据增强的训练样本,以促进学生模型的训练。

具体来说,对于每个训练样本x,本实施例通过将具有随机强度的(RandAugment)应用n次来生成其增强。将其增强表示为{x

其中,第一项表示教师预测和标签之间的交叉熵损失,第二项表示教师预测和学生预测之间的KL散度(即知识蒸馏损失)。如等式6所示,所选数据增强x

这里本施例将“硬增强”表示为神经网络难以学习的增强。

图5为三种增强方案在CIFAR10和CIFAR100上使用ResNet20、MobileNetV2和ShuffleNetV2进行剪枝设置的实验结果。基线-A:剪枝后的模型首先使用强数据增强进行训练,然后使用弱数据增强(其对应的最佳数据增强)进行训练。基线-B:先用弱数据增强训练预剪枝模型,然后用弱数据增强进行剪枝和再训练。继承方案(本实施例的):预剪枝模型首先使用强数据增强进行训练,然后使用弱数据增强进行剪枝和再训练(图6中a)。

图6为一个小型模型的概述在剪枝设置和通用设置中间接学习强数据增强的知识。在剪枝设置中,剪枝后的模型可以继承剪枝前学到的强数据增强知识。在通用设置中,剪枝后的模型可以继承通过附加层学习的强数据增强知识。

因此,可以最大化该距离的数据增强通常倾向于在知识蒸馏中具有更多的学习价值。其次,它最小化了教师预测和标签之间的交叉熵损失,这限制了教师可以正确预测x

图8为显示了本实施例的方案和两个基线的实验结果。基线-A:学生接受随机强度的数据增强训练。基线B:对学生进行最佳强度的数据增强训练。据观察,本实施例的方法大大优于基线-A,表明它可以成功地选择最有价值的数据增强来进行知识蒸馏。此外,在6个实验中的4个中,本实施例的方案优于使用最佳强度数据增强的基线-B。本实施例认为这是因为本实施例方案中使用的增强是从具有随机强度的多个数据增强中选择的,因此其导致比使用一致数据增强强度更大的数据多样性。

消融实验。等式6中选择数据增强的标准包括两个目标:

(a1)最小化教师预测之间的损失以过滤硬数据增强。

其中,图7为在CIFAR100和CIFAR10上使用ResNet20、MobileNetV2和ShuffleNetV2训练小型模型以学习具有附加层的强数据增强的实验结果。基线-A:先用强数据增强训练小型模型,然后用弱数据增强训练小型模型。基线-B:该模型首先使用带有附加层的弱数据增强进行训练,然后丢弃附加层并使用弱数据增强重新训练。继承方案(本实施例的):该模型首先使用附加层的强数据增强进行训练,然后丢弃附加层并使用弱数据增强重新训练。

图8为通过使用预训练的大型模型(教师)过滤硬数据增强来训练小型模型(学生)的实验结果。实验是用Hinton知识蒸馏和ResNet110老师进行的。基线-A:学生接受随机强度的数据增强训练。基线B:对学生进行最佳强度的数据增强训练。本实施例的方案:学生接受数据增强训练,其可以最小化等式6。请注意,基线-B中使用的最佳强度是根据20次实验选择的。基线-A和本实施例的方案不需要实验来选择最佳强度。

(b1)最大化知识蒸馏损失以选择对知识蒸馏更有价值的数据增强。本段给出了两个目标的消融研究。在带有ResNet20的CIFAR100上,本实施例的实验结果表明,与基线-A(70.52%)相比,仅使用(a1)和(b1)进行增强选择即可分别观察到0.59%和-1.24%的精度变化。这一观察表明,仅使用目标(b1)(即α=0),可能会选择硬数据增强进行训练,从而损害学生的表现。通过将(b1)与(a1)相结合,教师模型无法修正预测的硬数据增强将不会被选择和用于学生训练,从而获得更高的准确性。

综上所述,在典型的神经网络剪枝算法中,剪枝后的神经网络通常会在训练前根据其权重进行微调(也称为再训练)。令人惊讶的是,刘等人表明微调剪枝后的模型只能提供与直接训练具有随机初始化权重的剪枝后模型相当甚至更差的性能。然而,之前的所有研究都忽略了数据增强的使用。正如本实施例在实验所示,预剪枝模型学习到的强数据增强知识可以通过继承权重保留到剪枝模型中。相比之下,直接训练具有随机初始化权重和强数据增强的剪枝模型不会提高但会损害模型性能。这些观察结果表明,当使用不同强度的数据增强时,微调剪枝模型或使用随机初始化权重训练剪枝模型哪个更好的问题可能会有不同的答案。本实施例希望这一观察可以促进在更复杂的环境中重新思考剪枝价值的研究。

以前的数据增强方法通常在不同的任务中给出一个一致的增强策略。例如已经提出了自动数据增强方法来搜索给定数据集的最佳数据增强策略。然而,正如本实施例在实验中所示,不同的神经网络甚至不同剪枝比率的相同神经网络更喜欢具有不同强度的数据增强。这些观察表明,应该研究可以将不同的增强策略应用于不同的数据集和模型的自适应数据增强方法。

在本申请中,本实施例重新审视了数据增强在模型压缩中的使用,并全面研究了模型大小与其最佳数据增强策略之间的关系。故本申请没有提出新的模型压缩或数据增强方法,而是对模型压缩方法的数据增强进行了实证和综合研究。综上所述,本实施例主要有以下结论:(A)不同大小的模型更喜欢不同强度的数据增强。通常,更高强度的数据增强会显著提高大(剪枝前)模型的性能,但会损害小(剪枝后)模型的性能。(B)一个小(剪枝后的)模型仍然可以通过首先学习带有附加参数的硬数据增强,然后丢弃它们从硬数据增强中获益。即使附加参数已被丢弃,从硬数据增强中学到的知识仍然可以被小(剪枝后的)模型继承。(C)可以利用大型模型过滤小型模型的硬数据增强样本,其可以高效地找到小型模型的最优数据增强策略。这一观察可以为设计高效和有效的数据增强方法提供有见地的指导。因此,它可以用作设计更好的数据增强策略的标准。本实施例希望可以促进更多关于数据增强在模型压缩中的使用的研究。

如图9所示,第二方面,本发明提供一种神经网络模型压缩系统,包括:

获取构建模块,用于获取边缘设备用训练数据,并基于有监督分类形成给出训练集和相应的单热标签集,构建具有交叉熵损失LCE的训练目标模型;

增强扩充模块,用于采用随机增强作为数据增强策略,使用随机增强方法给定一组K个数据增强操作和一个全局强度参数M进行扩充,得到最佳强度M

预训练模块,用于在知识蒸馏中,教师模型通常使用所述具有交叉熵损失LCE的训练目标模型进行预训练;训练学生模仿其输出与教师预测之间的KL散度,构建知识蒸馏损失模型;

剪枝再训练模块,用于对神经网络剪枝以减少神经网络中的参数数量;剪枝后的神经网络在训练前根据其权重进行再训练;

训练模块,用于对于每个训练样本,通过将具有随机强度来生成其最佳增强,选择其中一个数据增强用于学生训练,数据增强表示为交叉熵损失与知识蒸馏损失模型的函数;训练学生模型以最小化数据增强。

本发明实施例的神经网络模型压缩系统与上述的神经网络模型压缩方法内容相对应,在此不再重复说明。

如图10所示,本发明第三方面是提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述神经网络模型压缩方法。

本发明第四方面是提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现所述神经网络模型压缩方法。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

相关技术
  • 神经网络模型装置和神经网络模型的压缩方法
  • 神经网络模型分块压缩方法、训练方法、计算装置及系统
技术分类

06120116489777