一种神经网络训练方法及装置与流程

文档序号:11323873阅读:600来源:国知局
一种神经网络训练方法及装置与流程

本发明涉及计算机视觉领域,特别涉及一种神经网络训练方法及装置。



背景技术:

近几年来,深度神经网络在计算机视觉领域的各类应用中取得了巨大的成功,如图像分类、目标检测、图像分割等。但深度神经网络的模型往往包含大量的模型参数,计算量大、处理速度慢,无法在一些低功耗、低计算能力的设备(如嵌入式设备、集成设备等)上进行实时计算。

基于前述问题,最近提出了很多深度神经网络加速算法,如网络剪枝、网络权重量化以及网络知识蒸馏等方法。

除了基于神经元的网络剪枝外,其他网络剪枝方法、网络权重量化方法虽然能够有效地减少神经网络的网络参数,但并不能利用现有的深度学习框架以及设备进行加速。而网络知识蒸馏方法由于其利用性能优良的教师网络(即teachernetwork,教师网络的网络参数量大、性能优良、计算速度慢)提供的额外信息直接训练计算速度快但性能较差的学生网络(即studentnetwork,学生网络计算速度快、性能较差、网络参数量小),能够直接利用现有框架取得实际加速效果,因此知识蒸馏方法成为目前较为常用的网络加速方法。

目前网络知识蒸馏方法主要包括三种,分别是2014年hinton等人发表的论文“distillingtheknowledgeinaneuralnetwork”中提出的knowledgedistill(简称kd)方法,2015年romero等人发表的论文“fitnets:hintsforthindeepnets”提出的fitnets,以及2016年sergey发表的论文“payingmoreattentiontoattention:improvingtheperformanceofconvolutionalneuralnetworksviaattentiontransfer”提出的attentiontransfer(简称at)方法。

将教师网络用t表示,学生网络用s表示。在kd中,学生网络的目标函数如公式(1)所示:

式(1)中,表示cross-entropy(交叉熵)损失函数,ytrue为训练标签,ps=softmax(ls)为学生网络s的分类概率,lt、ls分别为网络t与网络s在softmax之前的输出值(称为logits),τ为一个设定值(称为temperature),λ为迁移损失的权重。

由于上式(1)的第二项kd采用了教师网络输出概率的分布来指导学生网络,在分类问题上能够有效的提高学生网络的性能。

与kd不同,fitnet采用了匹配中间特征的方法来将教师网络的知识迁移到学生网络中,学生网络的目标函数如以下公式(2)所示:

式(2)中,以及分别表示教师网络以及学生网络某一层的特征图(featuremap),ct与cs分别表示ft与fs的通道数(channel),h与w则为特征图的高和宽,ft与fs的特征图的宽高一致,若两者的特征图不一致需要通过简单的差值算法以使两者的特征图宽高一致,为一个核大小为1×1的卷积,输入通道个数为s,输出通道个数为t来使得ft与的通道数匹配。

fitnet通过匹配教师网络和学生网络的中间层特征,将教师网络中间层特征的特定知识迁移到学生网络,从而提升学生网络的性能。

at与fitnet的方案原理较为相似,at交教师网络中的注意力图(即attentionmap)的知识迁移到学生网络以提高学生网络的性能,学生网络的目标函数如以下公式(3)所示:

式(3)中,为一个规范化的注意力图映射函数,其中一种最简单的定义如以下公式(4)所示:

式(4)中,表示f第k个通道的向量化的特征图。

现有技术存在的技术缺陷为:kd只能应用于拥有softmax层的分类任务中而无法适用于回归任务,而且在类别数较少时其提供给学生网络的指导信息较弱。fitnet直接匹配中间层特征的约束太过严格,使得无法与kd等其他方法有效地结合来训练得到性能优良的学生网络。at训练得到的学生网络性能较差。综上所述,采用现有的知识迁移方式训练得到的学生网络无法兼顾较大适用范围与精确性。

相关术语解释:

教师网络(teachernetwork):知识迁移过程中用以为学生网络提供更加准确的监督信息的高性能神经网络。

学生网络(studentnetwork):计算速度快但性能较差的适合部署到对实时性要求较高的实际应用场景中的单个神经网络,学生网络相比于教师网络,具有更大的运算吞吐量和更少的模型参数。



技术实现要素:

本发明实施例提供一种神经网络训练方法及装置,以解决现有知识迁移方式训练得到的学生网络无法兼顾较大适用范围与精确性的技术问题。

本发明实施例,一方面提供一种神经网络训练方法,该方法包括:

选取一个与学生网络实现相同功能的教师网络;

基于匹配同一训练样本数据对应的第一中间层特征与第二中间层特征的分布来迭代训练所述学生网络得到目标网络,以实现将所述教师网络的中间层特征的知识迁移到所述学生网络,其中:所述第一中间层特征为所述训练样本数据输入教师网络后从教师网络的第一特定网络层输出的特征图,所述第二中间层特征为所述训练样本数据输入学生网络后从学生网络的第二特定网络层输出的特征图。

本发明实施例,另一方面提供一种神经网络训练装置,该装置包括:

选取单元,用于选取一个与学生网络实现相同功能的教师网络;

训练单元,用于基于匹配同一训练样本数据对应的第一中间层特征与第二中间层特征的分布来迭代训练所述学生网络得到目标网络,以实现将所述教师网络的中间层特征的知识迁移到所述学生网络,其中:所述第一中间层特征为所述训练样本数据输入教师网络后从教师网络的第一特定网络层输出的特征图,所述第二中间层特征为所述训练样本数据输入学生网络后从学生网络的第二特定网络层输出的特征图。

本发明实施例提供的神经网络训练方案,一方面,匹配教师网络和学生网络的中间层特征,因此训练得到的学生网络的适用范围更广,不局限于分类模型还可适用于回归模型;另一方面,匹配教师网络的中间层特征与学生网络的中间层特征的分布,与现有技术直接匹配中间层所有特征的方式相比约束不严格,可以与其他方法有效结合来进一步提高学生网络的性能,从而提高学生网络的准确性。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。

图1为本发明实施例中神经网络训练方法的流程图;

图2为本发明实施例中对学生网络进行迭代训练得到目标网络的流程图;

图3为本发明实施例中神经网络训练装置的结构示意图;

图4为本发明实施例中训练单元的结构示意图。

具体实施方式

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

实施例一

参见图1,为本发明实施例中神经网络训练方法的流程图,该方法包括:

步骤101、选取一个与学生网络实现相同功能的教师网络。

实现的功能如图像分类、目标检测、图像分割等。教师网络性能优良、准确率高,但是相对学生网络其结构复杂、参数权重较多、计算速度较慢。学生网络计算速度快、性能一般或者较差、网络结构简单。可以在预先设置的神经网络模型的集合中选取一个与学生网络实现的功能相同且性能优良的网络作为教师网络。

步骤102、基于匹配同一训练样本数据对应的第一中间层特征与第二中间层特征的分布来迭代训练所述学生网络得到目标网络,以实现将所述教师网络的中间层特征的知识迁移到所述学生网络。

其中:所述第一中间层特征为所述训练样本数据输入教师网络后从教师网络的第一特定网络层输出的特征图,所述第二中间层特征为所述训练样本数据输入学生网络后从学生网络的第二特定网络层输出的特征图。

本发明实施例中,将训练样本数据输入教师网络后,从教师网络的第一特定网络层输出的特征图统称为第一中间层特征;将训练样本数据输入学生网络后,从学生网络的第二特定网络层输出的特征图统称为第二中间层特征。

优选地,本发明实施例中第一特定网络层为所述教师网络中的一个中间网络层或者为最后一个网络层。

优选地,本发明实施例中第二特定网络层为所述学生网络中的一个中间网络层或者为最后一个网络层。

优选地,前述步骤102,具体可通过如图2所示的方法实现,该方法包括:

步骤102a、构建所述学生网络的目标函数,所述目标函数包含任务损失函数和距离损失函数,其中距离损失函数为用于衡量同一训练样本数据对应的第一中间层特征和第二中间层特征的分布距离的函数。

本发明实施例中,任务损失函数的表达式与学生网络所要实现的任务相关,例如学生网络实现的任务为分类任务时,则任务损失函数的表达式为交叉熵损失函数;还例如学生网络实现的任务为回归任务时,则任务损失函数的表达式为距离损失函数。

步骤102b、采用所述训练样本数据对所述学生网络进行迭代训练。

步骤102c、当迭代训练次数达到阈值或者所述目标函数满足预置的收敛条件时,得到所述目标网络。

优选地,本发明实施例中,步骤102b中,每一次迭代训练用到的训练样本数据不同,所述步骤102b具体实现可如下:

对所述学生网络进行多次以下的迭代训练(以下称为本次迭代训练,将用于本次迭代训练的训练样本数据称为当前训练样本数据,本次迭代训练包括以下步骤a、步骤b和步骤c):

步骤a、将当前训练样本数据分别输入所述教师网络和学生网络,得到当前训练样本数据对应的第一中间层特征和第二中间层特征;

步骤b、根据所述当前训练样本数据及其对应的第一中间层特征和第二中间层特征,计算所述目标函数的取值,并根据所述目标函数的取值调整所述学生网络的权重;

步骤c、基于调整权重后的学生网络进行下一次迭代训练。

优选地,在前述步骤b中,根据所述目标函数的取值调整所述学生网络的权重,具体实现可如下:采用梯度下降优化算法根据所述目标函数的取值调整所述学生网络的权重。

优选地,在一个具体实例中,所述学生网络的目标函数可如下公式(5):

式(5)中,为交叉熵损失函数,为距离损失函数,λ为预置的常数,ft为训练样本数据输入教师网络后从教师网络的第一特定网络层输出的特征图(即第一中间层特征),fs为训练样本数据输入学生网络后从学生网络的第二特征网络层输出的特征图(即第二中间层特征),ytrue为训练样本数据的真实标签,ps为学生网络的分类概率。

其中,ct为ft的通道数,cs为fs的通道数,h与w则为ft与fs的高和宽。本发明实施例中ft与fs的尺寸一致。

优选地,在前述步骤a与步骤b之间还包括:判断ft与fs的高是否相同,若不相同则将两者之中取值较大的高作为前述h;以及判断ft与fs的宽是否相同,若不相同则将两者之中取值较大的宽作为前述w;采用预置的插值算法将ft与fs的尺寸调整为h与w。

优选地,本发明实施例中目标函数中的具体可如下公式(6):

式(6)中,k(·,·)为预置的核函数,ct为ft的通道数,cs为fs的通道数,为ft中第i个通道的向量化特征图,为ft中第i'个通道的向量化特征图,为fs第j个通道的向量化特征图,为fs第j'个通道的向量化特征图。

优选地,所述k(·,·)为预置的线性核函数、多项式核函数、高斯核函数或者多个高斯核函数的组合等,本申请不做严格限定,本领域技术人员可以根据实际需要进行灵活设置。

具体实例如下:k(·,·)为下式(7)所示的线性核函数;还或者k(·,·)为下式(8)所示的多项式核函数;还或者k(·,·)为下式(9)所示的高斯核函数。

k(x,y)=xty式(7)

k(x,y)=(xty+c)d式(8)

实施例二

基于前述实施例一提供的神经网络训练方法的相同构思,本发明实施例二还提供一种神经网络训练装置,该装置的结构如图3所述,包括选取单元31和训练单元32,其中:

选取单元31,用于选取一个与学生网络实现相同功能的教师网络。

实现的功能如图像分类、目标检测、图像分割等。教师网络性能优良、准确率高,但是相对学生网络其结构复杂、参数权重较多、计算速度较慢。学生网络计算速度快、性能一般或者较差、网络结构简单。可以在预先设置的神经网络模型的集合中选取一个与学生网络实现的功能相同且性能优良的网络作为教师网络。

本发明实施例中,将训练样本数据输入教师网络后,从教师网络的第一特定网络层输出的特征图统称为第一中间层特征;将训练样本数据输入学生网络后,从学生网络的第二特定网络层输出的特征图统称为第二中间层特征。

训练单元32,用于基于匹配同一训练样本数据对应的第一中间层特征与第二中间层特征的分布来迭代训练所述学生网络得到目标网络,以实现将所述教师网络的中间层特征的知识迁移到所述学生网络,其中:所述第一中间层特征为所述训练样本数据输入教师网络后从教师网络的第一特定网络层输出的特征图,所述第二中间层特征为所述训练样本数据输入学生网络后从学生网络的第二特定网络层输出的特征图。

优选地,第一特定网络层为所述教师网络中的一个中间网络层或最后一个网络层;和/或,所述第二特定网络层为所述学生网络中的一个中间网络层或最后一个网络层。

优选地,训练单元32的结构如图4所示,包括构建模块321、训练模块322和确定模块323,其中:

构建模块321,用于构建所述学生网络的目标函数,所述目标函数包含任务损失函数和用于衡量同一训练样本数据对应的第一中间层特征和第二中间层特征的分布距离的距离损失函数;

本发明实施例中,任务损失函数的表达式与学生网络所要实现的任务相关,例如学生网络实现的任务为分类任务时,则任务损失函数的表达式为交叉熵损失函数;还例如学生网络实现的任务为回归任务时,则任务损失函数的表达式为距离损失函数。

训练模块322,用于采用所述训练样本数据对所述学生网络进行迭代训练;

确定模块323,用于当迭代训练模块迭代训练次数达到阈值或者所述目标函数满足预置的收敛条件时,得到所述目标网络。

优选地,所述训练模块322具体用于:

对所述学生网络进行多次以下的迭代训练(以下称为本次迭代训练,将用于本次迭代训练的训练样本数据称为当前训练样本数据,本次迭代训练包括以下步骤a、步骤b和步骤c):

步骤a、将用于本次迭代训练的当前训练样本数据分别输入所述教师网络和学生网络,得到当前训练样本数据对应的第一中间层特征和第二中间层特征;

步骤b、根据所述当前训练样本数据及其对应的第一中间层特征和第二中间层特征,计算所述目标函数的取值,并根据所述目标函数的取值调整所述学生网络的权重;

步骤c、基于调整权重后的学生网络进行下一次迭代训练。

优选地,在前述步骤b中,根据所述目标函数的取值调整所述学生网络的权重,具体实现可如下:采用梯度下降优化算法根据所述目标函数的取值调整所述学生网络的权重。

优选地,所述构建模块321构建的目标函数可如前述公式(5),距离损失函数的表达式可如前述公式(6),在此不在赘述。

本发明实施例提供的神经网络训练方案,一方面,匹配教师网络和学生网络的中间层特征,因此训练得到的学生网络的适用范围更广,不局限于分类模型还可适用于回归模型;另一方面,匹配教师网络的中间层特征与学生网络的中间层特征的分布,与现有技术直接匹配中间层所有特征的方式相比约束不严格,可以与其他方法有效结合来进一步提高学生网络的性能,从而提高学生网络的准确性。

以上是本发明的核心思想,为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1