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

一种神经网络模型辅助训练和参数压缩方法

文献发布时间:2023-06-19 11:32:36


一种神经网络模型辅助训练和参数压缩方法

技术领域

本发明涉及人工智能、机器学习技术领域,具体涉及一种神经网络模型辅助训练和参数压缩方法

背景技术

现有神经网络辅助训练的方法大多从训练样本角度加入辅助信息(即从各种方面增加训练所需的样本),或者是在模型的输出末端增加一些分类器。

神经网络训练方法是神经网络建模过程中必不可少的阶段,目前所用的训练方法都是传统的训练方法,如上所述,没有加入辅助模块的训练方法。我们所提出的使用辅助模块的训练方法,在人工智能领域具有广阔的应用前景。

此外,参数压缩也是以往辅助训练方式所不具有的。以往的参数压缩都是通过人工设计适应训练任务的最小网络结构。而我们提出的参数压缩方法,是以辅助模块为基础,具有更好的参数压缩性能。

神经网络参数压缩在实际工业应用领域也具有广阔的应用前景,因为在工业实际应用领域,对应设备的存储器和运算器资源是有限的,参数越少,当然越节约存储器和运算器资源。

现有的机器学习领域辅助训练方法,都集中在在训练数据样本或者特征的层面上添加辅助信息(Zhang,Linfeng,et al."Auxiliary training:Towards accurate androbust models."Proceedings of the IEEE/CVF Conference on Computer Vision andPattern Recognition.2020.)。这些方法的不足之处在于需要额外的用于辅助训练的数据,而这些辅助训练数据的收集和选择也是一个难点。而本文所用的增加辅助训练模块的方法,不需要额外的辅助训练数据,是在网络结构层面上进行的辅助训练,相比于以前的方法更加简单高效。

而现有流行的神经网络模型,如VGG19、ResNet18等常用的神经网络,他们在分类任务时含有大量的网络参数。这些大量的网络参数在提高模型分类精度的同时,也不可能避免的占用了大量的硬件资源,这是这些模型在应用时的缺点所在。而本发明提出的,在辅助训练后,用辅助训练模块代替原网络的输出子模块进行输出,可以有参数压缩的效果。这在模型的实际应用时节省了硬件资源。

发明内容

现有神经网络辅助训练的方法大多从训练样本角度加入辅助信息,而本发明辅助训练方法主要从网络结构方面,加入辅助训练模块。同时,辅助训练模块可以用于网络模型参数的压缩,这是以前的辅助训练方法所不具有的。可以说我们提出的方法是人工智能领域一个新的方向和方法。

本发明至少通过如下技术方案之一实现。

一种神经网络模型辅助训练和参数压缩方法,包括以下步骤:

1)、在需要被训练的神经网络模型中添加多个辅助训练模块,并将被训练的神经网络模型输出和多个辅助训练模块输出串联得到多组输出

2)、将训练样本标签表示为one-hot标签,将得到的one-hot标签扩展为多组目标标签y

3)、将步骤2)得到的包含多组输出的

4)、利用梯度反向传播算法对所需的损失函数L进行多次迭代训练,并更新被训练的神经网络模型的参数,直到模型收敛;

5)选取辅助训练模块的其中一个辅助训练模块取代被被训练的神经网络模型中对应的子模块,以实现模型的参数压缩。

优选的,所述辅助训练模块的添加位置能将被训练的神经网络模型大致均分为参数量相同的多个子模块。

优选的,扩展方式为得到的样本one-hot标签复制N份并串联起来,得到目标标签y

优选的,扩展后的N组目标标签y

优选的,所述多组输出

优选的,所述所需的损失函数L包括N组不同权值的交叉熵损失函数相加,具体公式如下:

其中,CEL(.)为交叉熵损失函数,α和β是决定权值的超参数,

优选的,步骤5)中,根据需要选择多组辅助训练模块中的某一组替换被训练的神经网络模型中对应的子模块,一般情况下选择第一组辅助训练模块。

优选的,所述被训练的神经网络模型包括多层卷积层。

优选的,每个辅助训练模块包括卷积层、池化层。

优选的,每个辅助训练模块还可以包括激活层、全连接层等。

与现有的技术相比,本发明的有益效果为:

本发明的辅助模块训练手段具有训练效果好,通过的辅助训练模块,在测试的数据集上,模型性能得到很好的提升。而对于所用的参数压缩方法,在许多模型上的压缩效果明显,这是以往参数压缩方法所不具有的。

附图说明

图1为使用两个辅助训练模块时的辅助训练网络结构示意图。

具体实施方式

下面结合附图对本发明进一步说明。应指出,以下说明给出了详细的实施方式和具体操作过程,旨在对本申请进行详细说明,但本发明的保护范围不限于此实施方式。

本部分将详细描述本发明的具体实施例,本发明之较佳实施例在附图中示出,附图的作用在于用图形补充说明书文字部分的描述,使人能够直观地、形象地理解本发明的每个技术特征和整体技术方案,但其不能理解为对本发明保护范围的限制。

在本发明的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

本发明的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

如图1所示,一种神经网络模型辅助训练和参数压缩方法,包括以下步骤:

1)、在需要被训练的分类任务神经网络模型中添加多个辅助训练模块,并将被训练的神经网络模型和辅助训练模块的输出串联起来得到神经网络模型的多组输出

添加的辅助训练模块根据不同的需求进行设计,可以包含卷积层、池化层、激活层、全连接层等。即辅助训练模块的结构可以和普通的神经网络结构相同。

辅助训练模块的添加位置与具体任务和被训练模型的结构等有关,是一个需要调整的超参数,选取能将被训练模型均分为参数量相同的多个子模块的位置比较合适;添加位置也因被训练模型结构、训练所用数据集的不同而不同,因此,选择使被训练模型每段参数量尽可能均分的位置。如果任务为参数压缩,那么需要调节位置,使其满足压缩和分类精度条件。

如图1,本实施例添加的辅助训练模块为Auxiliary Module C(辅助训练模块C)、Auxiliary Module D(辅助训练模块D)。所述被训练的神经网络模型为Base Model A,包括多层卷积层。所述Base Model A中的一个子模块为Submodule B。所述Auxiliary Module C和Auxiliary Module D均包括3*3大小的卷积层和一个全局平局池化层。

由于将被训练的神经网络模型Base Model A和Auxiliary Module C、AuxiliaryModule D的输出串联起来。那么,得到的输出从原来的0到N-1,变为现在的0到3N-1,即得到3组输出串联输出。

作为另一种实施例,添加的辅助训练模块可以使用一个3*3卷积层和一个全局池化层(avg_pool)。

2)、将训练样本标签表示为one-hot标签(独热码表示的标签),将得到的one-hot标签扩展为多组目标标签y

本实施例将扩展原训练样本的标签,扩展后的3组标签与原来的标签一一对应。扩展方法为将训练样本标签表示成one-hot(独热码)表示形式,然后将one-hot形式表示的标签简单复制3份,将3份复制得到的标签简单串联起来得到扩展后的标签y

3)、将步骤2)得到的多组输出

其中,CEL(.)为交叉熵损失函数,α和β是决定权值的超参数,

所述多组输出

本实施例将将扩展后的3组标签分别设置不同的交叉熵权值。初始权值设置为:第一组标签权值为1,第二组标签权值为0.1,第三组标签权值为0.05;在此初始权值的基础上进行微调是比较合适的选择。最后将扩展后的标签y

4)、得到损失函数L后,使用梯度反向传播算法进行多次迭代训练,并更新网络参数达到收敛。

5)选取辅助训练模块的其中一个辅助训练模块取代被被训练的神经网络模型中对应的子模块,以实现模型的参数压缩。由于得到的模型输出

本实施例,由于

当取Auxiliary Module C(辅助训练模块C)输出用于分类任务模型测试时,那么对应的Auxiliary Module C(辅助训练模块C)将会取代Submodule B(子模块B)用于测试阶段。将测试样本输入到用Auxiliary Module C(辅助训练模块C)替换后的模型中进行测试,由于Auxiliary Module C的参数量比Submodule B的参数量少得多,这将压缩掉原模型的很大一部分参数。由此来实现模型的参数压缩。

对于神经网络的训练,主要为将辅助模块附加到需要训练的模型上进行辅助训练,而在测试阶段可以移除辅助训练模块。

而对于参数压缩,只需要将辅助模块替换掉原模型中对应的子模块,就能压缩大量的参数。具体辅助训练例子如下,用常用神经网络在CIFAR10和CIFAR100数据集上进行了辅助训练测试,结果如表1。

表1为常用模型在CIFAR10和CIFAR100数据集上辅助训练测试结果。其中CIFAR-10和CIFAR-100为常用图片分类数据集;VGG19、ResNet18、WiderResNet、MobileNetV1、DenseNet121、InceptionV3分别为一些常见的被训练模型;BaseACC(%)为未使用辅助训练时模型测试分类准确率,SilaACC(%)为使用两组辅助训练模块后的模型测试分类准确率。由这个测试例子可知,本发明的辅助训练方法对模型的分类准确率具有很好的效果提升作用。

表1常用模型在CIFAR10和CIFAR100数据集上辅助训练测试结果

对于参数压缩,使用常见模型在CIFAR-10数据集上进行了测试,结果如表2。其中CIFAR-10为常用图片分类数据集,VGG19、ResNet18、WiderResNet、MobileNetV1、DenseNet121、InceptionV3分别为一些常见的被训练模型,Sila+表示使用本发明的参数压缩方法;Params size(MB)为模型参数量,单位为MB;train和test分别表示训练和测试阶段的模型参数量;ACC(%)表示模型分类测试正确率;CR(%)为压缩率,计算方法为1减去压缩前的参数量除以压缩后的参数量。可以从结果看出,本发明的参数压缩方法,能很好的压缩模型参数,例如在VGG19、ResNet18、WiderResNet、InceptionV3上有超过百分之50的压缩率。这极大减少了参数量,在神经网络的实际应用中具有广阔的前景。

表2常见模型在CIFAR-10数据集上的参数压缩测试结果

在移动端(如手机)图像分类或者表情识别应用领域,本发明所提出的方法仍能有很好的应用于移动端(如手机)图像分类或者表情识别领域。移动端的图像分类和表情识别和CIFAR数据集上进行的图片分类没有本质上的区别,都是属于分类任务,都可以使用本论文提出的辅助训练系统,添加辅助训练模块来进行训练,进而提升移动端的图像分类和表情识别准确率。

除此以外在移动端(如手机)图像分类或者表情识别应用领域,由于硬件系统为手机等移动设备,CPU等计算资源不足,所以更加需要减小模型参数。类似于前文所述本发明在CIFAR-10数据集上进行的常用网络模型参数压缩,当我们使用本发明的参数压缩方法对移动端的图像分类和表情识别模型进行参数压缩时,这能极大程度压缩模型的参数,进而节省移动端的计算资源。模型参数的压缩,在移动端图像分类和表情识别模型的应用方面,具有重要的作用。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 一种神经网络模型辅助训练和参数压缩方法
  • 一种神经网络模型参数压缩方法
技术分类

06120112964864