CN113705769A - 一种神经网络训练方法以及装置 - Google Patents

一种神经网络训练方法以及装置 Download PDF

Info

Publication number
CN113705769A
CN113705769A CN202110536755.3A CN202110536755A CN113705769A CN 113705769 A CN113705769 A CN 113705769A CN 202110536755 A CN202110536755 A CN 202110536755A CN 113705769 A CN113705769 A CN 113705769A
Authority
CN
China
Prior art keywords
training
label
sample
subset
model
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
CN202110536755.3A
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
Priority to CN202110536755.3A priority Critical patent/CN113705769A/zh
Publication of CN113705769A publication Critical patent/CN113705769A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting

Abstract

本申请提供一种神经网络训练方法以及装置,用于结合样本的初始标签和伪标签来衡量初始标签的可信程度,并基于初始标签和伪标签对模型进行更新,得到鲁棒性更优的模型。该方法包括:使用训练集对初始模型进行预训练,得到至少两个预训练模型;使用训练集对至少两个预训练模型进行迭代训练,得到训练后的多个第一模型,任意一次迭代训练过程包括:将第一训练集中任意一个样本输入得到每个样本的第一伪标签,通过第一预训练模型得到每个样本的预测标签,根据每个样本的预测标签、初始标签和第一伪标签计算第一损失值,并更新第一预训练模型,得到训练后的第一预训练模型。

Description

一种神经网络训练方法以及装置
技术领域
本申请涉及人工智能领域,尤其涉及一种神经网络训练方法以及装置。
背景技术
在涉及复杂输入模式的大量学习任务中,神经网络已经显现出卓越的性能。这一成就在很大程度上归功于大量的用于训练的准确标记数据。随着相应任务难度的增加,同时为了保证相应的性能表现,大规模数据集也变得越发普遍。然而,要获得广泛的高质量的标签不仅费时而且需要消耗大量的财力,这一瓶颈严重阻碍了神经网络被应用于更多现实场景。通常训练样本可以采用人工添加标签或者预先训练的神经网络来添加标签,通常,标签的数据时常含有不定比例的噪声标签,影响对神经网络的训练。
通常,可以采用置信学习的方式来减少噪声标签对神经网络的影响。如可以识别出噪声标签并删除噪声标签以及相应的样本,使用不具有噪声标签的样本来训练神经网络。然而,删除噪声标签以及相应的样本之后,将影响训练样本中的数据分布,导致数据丢失,从而使神经网络无法完成充分的学习,得到的神经网络输出效果较差。
发明内容
本申请提供一种神经网络训练方法以及装置,用于结合样本的初始标签和伪标签来衡量初始标签的可信程度,并基于初始标签和伪标签对模型进行更新,得到鲁棒性更优的模型。
有鉴于此,第一方面,本申请提供一种神经网络训练方法,包括:
首先,至少两个预训练模型将训练集分为至少两个子集,并使用至少两个子集分别对初始模型进行预训练,得到至少两个预训练模型;
随后,使用训练集对至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,其中,在对至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括以下步骤:
从训练集确定出第一子集,第一子集中的每个样本携带初始标签,从所述训练集确定出第一子集,所述第一子集中的每个样本携带初始标签至少两个预训练模型;将第一子集中的任意一个样本作为至少两个预训练模型中的第二预训练模型的输入得到样本的第一伪标签;其中,在得到第二预训练模型的预训练过程中未使用任意一个样本;将第一子集中每个样本作为第一预训练模型的输入得到第一子集中每个样本的预测标签;根据第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一损失值;根据第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
因此,本申请实施方式中设置了预训练阶段和噪声处理阶段,在预训练阶段,使用训练集对初始模型进行预训练,得到至少两个预训练模型,相当于得到学习了训练集的至少两个预训练模型。在噪声处理阶段,将预训练模型的输出作为样本的伪标签,伪标签和初始标签的距离可以在一定程度上反映初始标签的可信程度,即初始标签为噪声标签的概率,通常该置信度和该概率呈负相关关系。并通过伪标签和初始标签之间的距离来计算第一损失值,并基于该第一损失值来更新预训练模型,从而可以基于初始标签的可信程度来更新预训练模型,提高模型的输出准确度,优化模型的鲁棒性。可以理解为,本申请提供的训练方式,并不显性地区分样本是否具有噪声标签,而是根据初始标签和伪标签之间的距离来计算损失值,从而完成对模型的更新,提高模型的鲁棒性。并且,相对于删除噪声标签,本申请通过预测标签、伪标签和初始标签来计算损失值,从而使最终得到的模型可以学习到更多的信息,避免因删除而减少学习到的信息。
在一种可能的实施方式中,前述的根据第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型,可以包括:还从训练集中确定第二子集,将训练集的第二子集作为第一预训练模型的输入,并根据第一预训练模型的输出计算第二损失值;
融合第一损失值和第二损失值,得到更新后的第一损失值;根据更新后的第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
因此,本申请实施方式中,还可以通过预训练模型来输出第二子集中的样本的伪标签,并计算第二子集对应的第二损失值,从而基于该第二损失值来更新第一损失值,并使用更新后的第一损失值来更新第一预训练模型,相当于结合了半监督学习来对第一预训练模型来进行训练,使第一预训练模型可以学习第二子集中包看的样本的信息,从而学习到更多的信息,提高模型的输出准确度,提高模型的泛化能力。
可选地,本申请实施方式中,从训练集中确定第一子集或者第二子集的具体方式可以是随机划分的,从而使训练集中的样本都可以被模型学习到,当然,也可以按照预先设定的大小或者预先设定的顺序等方式来划分的。
在一种可能的实施方式中,前述的将第二子集作为第一预训练模型的输入,并根据第一预训练模型的输出计算第二损失值,可以包括:根将第二子集中每个样本作为至少两个预训练模型针输入,得到第二子集中每个样本的第二伪标签;将第二子集中每个样本作为第一预训练模型的输入,得到第二子集中每个样本的第二预测标签;根据第二预测标签和第二伪标签计算第二损失值。
因此,本申请实施方式中,可以使用预训练阶段得到的至少两个预训练模型针对第二子集中的样本的输出,来得到第二子集中每个样本的伪标签,即第二伪标签,从而基于该第二伪标签和第一预训练模型输出的预测标签来计算第二损失值,并结合第一损失值和第二损失值来更新第一预训练模型,从而结合半监督学习来实现对第一预训练模型的更新,使第一预训练模型可以学习到第二子集中的信息,提高第一预训练模型的输出准确度。
在一种可能的实施方式中,前述的根据第一子集中每个样本的预测标签、初始标签和第一伪标签计算第一损失值,可以包括:根据第一子集中每个样本的初始标签和第一伪标签之间的距离计算第一子集中每个样本的初始标签对应的置信度;计算第一子集中每个样本的预测标签和初始标签之间的第四损失值,以及预测标签和第一伪标签之间的第五损失值;根据第一子集中每个样本的初始标签对应的置信度融合第一子集中每个样本的第四损失值和第五损失值,以得到第一损失值。
本申请实施方式中,可以根据第一子集中每个样本的初始标签和伪标签之间的距离来计算初始标签的置信度,可以理解为初始标签的可信程度,或者该置信度还可以间接表示初始标签为噪声标签的概率,如置信度和该概率呈负相关关系。然后基于该置信度来融合第四损失值和第五损失值,该置信度即第四损失值对应的权重,从而得到每个样本对应的损失值,进而得到第一子集对应的损失值。因此,可以根据置信度来设置初始标签对损失值的影响程度,置信度越低第四损失值所占的权重也就越低,那么训练第一预训练网络时初始标签的影响也就越小,通过这种方式可以降低噪声标签对模型训练的影响,提高得到的模型的输出准确度,提高模型的鲁棒性。
可选地,前述的第一损失值可以包括针对第一子集整体的损失值,在基于每个样本的第四损失值和第五损失值计算出每个样本的损失之后,可以融合第一子集中每个样本的损失值从而得到第一子集整体的损失值,即第一损失值,具体的融合方式可以包括求和或者加权求和等方式,从而可以基于第一子集的整体损失来对第一预训练模型进行更新,得到输出更准确的模型。
在一种可能的实施方式中,第一子集中每个样本的初始标签和第一伪标签之间的距离,与第一子集中每个样本的初始标签对应的置信度呈负相关关系。因此,本申请实施方式中,样本的初始标签和伪标签之间距离可以用于表示初始标签和伪标签之间的差异,差异越大,可以理解为初始标签所包括的噪声也就越大,相应地初始标签的可信程度也就越低,因此可以通过设置距离与置信度之间呈负相关关系的方式,来降低噪声对模型训练的模型,得到输出更准确的模型,提高模型的鲁棒性。
在一种可能的实施方式中,在多次训练中每次训练过程中,将训练集分为至少两个子集,包括:将训练集随机等分为两个子集。因此,在预训练阶段,可以将训练集随机等分为两个子集,从而使每个样本都可以参与到一半数量的预训练模型的训练过程中,从而使预训练模型可以输出更准确的伪标签。
第二方面,本申请提供一种推理方法,包括:将输入样本作为目标模型的输入,输出输入样本对应的预测标签,目标模型是对初始模型进行训练得到,训练过程包括以下步骤:
将训练集分为至少两个子集,并使用至少两个子集分别对初始模型进行训练,得到至少两个预训练模型;使用训练集对至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,至少两个第一模型包括目标模型,其中,在对至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括:从训练集确定出第一子集,第一子集中的每个样本携带初始标签至少两个预训练模型;将第一子集中的任意一个样本作为至少两个预训练模型中的第二预训练模型的输入,得到样本的第一伪标签;将第一子集中每个样本作为第一预训练模型的输入得到第一子集中每个样本的预测标签;根据第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一子集对应的第一损失值;根据第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
因此,在训练模型时,本申请实施方式中设置了预训练阶段和噪声处理阶段,在预训练阶段,使用训练集对初始模型进行多次训练,得到至少两个预训练模型,相当于得到学习了训练集的至少两个预训练模型。在噪声处理阶段,将预训练模型的输出作为样本的伪标签,伪标签和初始标签的距离可以在一定程度上反映初始标签的可信程度,即初始标签为噪声标签的概率,通常该置信度和该概率呈负相关关系。并通过伪标签和初始标签之间的距离来计算第一子集的损失值,从而可以基于初始标签的可信程度来更新预训练模型,提高模型的输出准确度,优化模型的鲁棒性。可以理解为,本申请提供的训练方式,并不显性地区分样本是否具有噪声标签,而是根据初始标签和伪标签之间的距离来计算损失值,从而完成对模型的更新,提高模型的鲁棒性。并且,相对于删除噪声标签,本申请通过伪标签和初始标签之间的距离来计算损失值,从而使最终得到的模型可以学习到更多的信息,避免因删除而减少学习到的信息。
第三方面,本申请实施例提供一种神经网络训练装置,该神经网络训练装置具有实现上述第一方面神经网络训练方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第四方面,本申请实施例提供一种神经网络训练装置,包括:处理器和存储器,其中,处理器和存储器通过线路互联,处理器调用存储器中的程序代码用于执行上述第一方面任一项所示的神经网络训练方法中与处理相关的功能。可选地,该神经网络训练装置可以是芯片。
第五方面,本申请实施例提供了一种数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行如上述第一方面或第一方面中任一可选实施方式中与处理相关的功能。
第六方面,本申请实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一可选实施方式中的方法。
第七方面,本申请实施例提供了一种包含计算机程序/指令的计算机程序产品,当其被处理器执行时,使得处理器执行上述第一方面或第一方面中的任一可选实施方式中的方法。
附图说明
图1为本申请提供的一种系统架构示意图;
图2为本申请提供的另一种系统架构示意图;
图3为本申请提供的一种卷积神经网络的结构示意图;
图4为本申请提供的另一种系统架构示意图;
图5为本申请提供的一种样本的噪声标签示意图;
图6为本申请提供的一种神经网络训练方法的流程示意图;
图7为本申请提供的另一种神经网络训练方法的流程示意图;
图8为本申请提供的一种训练集的示意图;
图9为本申请提供的一种训练集的划分方式示意图;
图10为本申请提供的一种噪声处理流程示意图;
图11为本申请提供的一种神经网络训练装置的结构示意图;
图12为本申请提供的另一种神经网络训练装置的结构示意图;
图13为本申请提供的一种芯片的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先对人工智能系统总体工作流程进行描述,请参见图1,图1示出的为人工智能主体框架的一种结构示意图,下面从“智能信息链”(水平轴)和“IT价值链”(垂直轴)两个维度对上述人工智能主题框架进行阐述。其中,“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。通过传感器与外部沟通;计算能力由智能芯片,如中央处理器(centralprocessing unit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(英语:graphics processing unit,GPU)、专用集成电路(application specificintegrated circuit,ASIC)或现场可编程逻辑门阵列(field programmable gate array,FPGA)等硬件加速芯片)提供;基础平台包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。举例来说,传感器和外部沟通获取数据,这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据
基础设施的上一层的数据用于表示人工智能领域的数据来源。数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)神经网络训练
神经网络训练通常包括数据训练,机器学习,深度学习,搜索,推理,决策等方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力
对数据经过上面提到的神经网络训练后,进一步基于神经网络训练的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能终端、智能交通、智能医疗、自动驾驶、智慧城市等。
本申请实施例涉及了一些神经网络相关的应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的一些神经网络的相关术语和概念进行介绍。
本申请实施例涉及了神经网络的相关应用,为了更好地理解本申请实施例的方案,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
Figure RE-GDA0003295627420000051
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于对神经网络中获取到的特征进行非线性变换,将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
Figure RE-GDA0003295627420000061
其中,
Figure RE-GDA0003295627420000062
是输入向量,
Figure RE-GDA0003295627420000063
是输出向量,
Figure RE-GDA0003295627420000064
是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量
Figure RE-GDA0003295627420000065
经过如此简单的操作得到输出向量。由于DNN层数多,系数W和偏移向量
Figure RE-GDA0003295627420000066
的数量也比较多。这些参数在DNN 中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为
Figure RE-GDA0003295627420000067
上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
Figure RE-GDA0003295627420000068
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取特征的方式与位置无关。卷积核可以以随机大小的矩阵的形式化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。该损失函数通常可以包括误差平方均方、交叉熵、对数、指数等损失函数。例如,可以使用误差均方作为损失函数,定义为
Figure RE-GDA0003295627420000071
具体可以根据实际应用场景选择具体的损失函数。
(5)反向传播算法
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的网络模型中的参数的大小,使得模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的模型中的参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的模型参数,例如,权重矩阵。
本申请实施方式中,在预训练阶段或者噪声处理阶段,都可以采用BP算法来对模型进行训练,得到训练后的模型。
(6)梯度:损失函数关于参数的导数向量。
(7)随机梯度:机器学习中样本数量很大,所以每次计算的损失函数都由随机采样得到的数据计算,相应的梯度称作随机梯度。
(8)噪声标签
训练集中包括了多个样本,可以通过人工标记或者神经网络输出等方式为每个样本添加标签。而为样本添加的标签可能不完全正确,本申请将不完全正确的标签称为噪声标签。噪声标签对训练神经网络存在一定影响,可能导致训练后的神经网络输出不准确,鲁棒性差。
(9)Epoch
定义了学习算法在整个训练集上的工作次数,一个epoch可以认为代表整个数据集,即使用整个训练集对神经网络进行训练的次数。
(10)batch;
与epoch的定义紧密相关,一个epoch包含使用整个数据集对神经网络进行训练,而一个batch代表一个epoch中的其中一个批次的数据,具体表现为batch_size*batchs=epoch,可以理解为每个epoch分为了一个或者多个batch,每个batch可以使用训练集中的部分数据对神经网络进行训练。
下面介绍本申请实施例提供的系统架构。
参见图2,本申请实施例提供了一种系统架构200。如系统架构200所示,数据采集设备 260可以用于采集训练数据。在数据采集设备260采集到训练数据之后,将这些训练数据存入数据库230,训练设备220基于数据库230中维护的训练数据训练得到目标模型/规则201。
下面对训练设备220基于训练数据得到目标模型/规则201进行描述。示例性地,训练设备220对多帧样本图像进行处输出对应的预测标签,并计算预测标签和样本的原始标签之间的损失,基于该损失对分类网络进行更新,直到预测标签接近样本的原始标签或者预测标签和原始标签之间的差异小于阈值,从而完成目标模型/规则201的训练。具体描述详见后文中的训练方法。
本申请实施例中的目标模型/规则201具体可以为神经网络。需要说明的是,在实际的应用中,数据库230中维护的训练数据不一定都来自于数据采集设备260的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备220也不一定完全基于数据库230维护的训练数据进行目标模型/规则201的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备220训练得到的目标模型/规则201可以应用于不同的系统或设备中,如应用于图2所示的执行设备220,所述执行设备220可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端,电视等,还可以是服务器或者云端等。在图2中,执行设备220配置有收发器212,该收发器可以包括输入/输出(input/output,I/O)接口或者其他无线或者有线的通信接口等,用于与外部设备进行数据交互,以I/O接口为例,用户可以通过客户设备240向I/O接口输入数据。
在执行设备220对输入数据进行预处理,或者在执行设备220的计算模块212执行计算等相关的处理过程中,执行设备220可以调用数据存储系统250中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统250中。
最后,I/O接口212将处理结果返回给客户设备240,从而提供给用户。
值得说明的是,训练设备220可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则201,该相应的目标模型/规则201即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在附图2中所示情况下,用户可以手动给定输入数据,该手动给定可以通过收发器212 提供的界面进行操作。另一种情况下,客户设备240可以自动地向收发器212发送输入数据,如果要求客户设备240自动发送输入数据需要获得用户的授权,则用户可以在客户设备240 中设置相应权限。用户可以在客户设备240查看执行设备220输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端,采集如图所示输入收发器212的输入数据及输出收发器212的输出结果作为新的样本数据,并存入数据库 230。当然,也可以不经过客户设备240进行采集,而是由收发器212直接将如图所示输入收发器212的输入数据及输出收发器212的输出结果,作为新的样本数据存入数据库230。
值得注意的是,附图2仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图2中,数据存储系统250相对执行设备220是外部存储器,在其它情况下,也可以将数据存储系统250置于执行设备220中。
如图2所示,根据训练设备220训练得到目标模型/规则201,该目标模型/规则201在本申请实施例中可以是本申请中的图像增强模型。
示例性地,CNN是一种常用的神经网络,如本申请以下实施方式中,可以采用CNN来进行特征提取或者融合等步骤。为便于理解,下面示例性地,对卷积神经网络的结构进行介绍。
CNN是一种带有卷积结构的深度神经网络。CNN是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元对输入其中的图像中的重叠区域作出响应。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
卷积神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的超分辨率模型中参数的大小,使得超分辨率模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的超分辨率模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的超分辨率模型的参数,例如权重矩阵。
下面结合图3示例性地对CNN的结构进行详细的介绍。如上述基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图2所示卷积层/池化层120可以包括如示例121-126层,在一种实现中,121层为卷积层,122层为池化层,123层为卷积层,124层为池化层,125为卷积层,126为池化层;在另一种实现方式中,121、122为卷积层,123为池化层,124、125为卷积层,126为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
以卷积层121为例,卷积层121可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义。在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关。需要注意的是,权重矩阵的纵深维度(depthdimension) 和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用维度相同的多个权重矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵维度相同,经过该多个维度相同的权重矩阵提取后的特征图维度也相同,再将提取到的多个维度相同的特征图合并形成卷积运算的输出。
通常,权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以从输入图像中提取信息,从而帮助卷积神经网络100进行正确的预测。
当卷积神经网络100有多个卷积层时,初始的卷积层(例如121)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络100深度的加深,越往后的卷积层(例如126)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,即如图2中120所示例的121-126各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像大小相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层130:
在经过卷积层/池化层120的处理后,卷积神经网络100还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层120只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或别的相关信息),卷积神经网络100需要利用神经网络层130来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层130中可以包括多层隐含层(如图2所示的131、132至13n)以及输出层140。在本申请中,该卷积神经网络为:对选取的起点网络进行至少一次变形得到串行网络,然后根据训练后的串行网络得到。该卷积神经网络可以用于图像识别,如图像识别、图像分类、图像超分辨率重建等等。
在神经网络层130中的多层隐含层之后,也就是整个卷积神经网络100的最后层为输出层140,该输出层140具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络100的前向传播(如图2由110至140的传播为前向传播)完成,反向传播(如图2由140至110的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络100的损失及卷积神经网络100通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图3所示的卷积神经网络100仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在,例如,多个卷积层/池化层并行,将分别提取的特征均输入给全神经网络层130进行处理。
示例性地,本申请提供的神经网络训练方法的应用的系统架构可以如图4所示。在该系统架构400中,服务器集群410由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备。服务器集群410可以使用数据存储系统250中的数据,或者调用数据存储系统250中的程序代码实现本申请提供的神经网络训练方法的步骤。
用户可以操作各自的用户设备(例如本地设备401和本地设备402)与服务器集群410进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设备、机顶盒、游戏机等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与服务器集群410进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。具体地,该通信网络可以包括无线网络、有线网络或者无线网络与有线网络的组合等。该无线网络包括但不限于:第五代移动通信技术(5th-Generation,5G)系统,长期演进(long termevolution, LTE)系统、全球移动通信系统(global system for mobile communication,GSM)或码分多址(code division multiple access,CDMA)网络、宽带码分多址(widebandcode division multiple access,WCDMA)网络、无线保真(wireless fidelity,WiFi)、蓝牙(bluetooth)、紫蜂协议(Zigbee)、射频识别技术(radio frequency identification,RFID)、远程(Long Range,Lora)无线通信、近距离无线通信(near field communication,NFC)中的任意一种或多种的组合。该有线网络可以包括光纤通信网络或同轴电缆组成的网络等。
在涉及复杂输入模式的大量学习任务中,神经网络已经显现出卓越的性能。这一成就在很大程度上归功于大量的用于训练的准确标记数据。随着相应任务难度的增加,同时为了保证相应的性能表现,大规模数据集也变得越发普遍。然而,要获得广泛的高质量的标签不仅费时而且需要消耗大量的财力,这一瓶颈严重阻碍了DNNs被应用于更多现实场景。在实际应用过程中,标注的数据质量某种程度上受到人为主观因素的影响,导致实际获取的标注样本时常含有不定比例的噪声标签,如图5所示,通过人工标记的标签可能存在噪声,如图5中所示出的噪声标签:“狐狸”、“海豹”,而样本的实际标签应为“猫”、“海豚”,若使用噪声标签来训练神经网络,则可能导致训练后的神经网络输出不准确。
噪声标签的处理办法,都在围绕两个问题进行:如何识别噪声标签、如何处理噪声标签。最为精确的做法就是利用具有相关知识的多人对数据集进行检查,对有争议数据进行重新标注,并对标注结局进行投票表决来确定最终的标签,进行标签的修正,但这种方案往往需要消耗大量的人力,在当前大规模数据集场景下并不可取。与人工辅助不同的是,一些方案隐式的通过设计强鲁棒性的损失函数来提高对噪声标签的容忍度。此外,还有一些方案对噪声分布进行假设,基于这种假设来显示的筛选出噪声标签,并对其进行处理,这种处理包含不限于直接从数据集中删除噪声标签,然而这种基于噪声分布的假设局限于特定的应用场景,这种非普适性的方案很难保证最后的效果。
在一些场景中,可以通过置信学习的方式来训练神经网络。例如,可以通过估计噪声标签和真实标签的联合分布找到并过滤掉标签错误的样本,在过滤掉错误样本后,使用剩下的“干净样本”进行重新训练,在利用“干净样本”重新训练阶段,重复学习“干净样本”,直至完成指定学习次数,获取最优模型。然而,其认定的噪声标签都没有学习的意义,从而将其剔除,这种剔除体现在两个阶段,在第一阶段中,提出“错误样本”的概念,这一过程通过交叉验证认定此样本的错误到无法挽救的程度,因而可以直接将其从数据集中永久删除,生成新的框架认定的“干净数据集”;而在第二阶段,每个模型会“删除”(未永久删除,只是在当前训练次数中不使用)噪声数据,只提供干净样本给另一个模型进行训练。而删除数据具有局限性,例如,在样本类别不均衡的情况下,对样本粗暴的删除会导致某些类别的丢失,影响数据分布,从而对某些类别知识完全无法学到。
在另一些场景中,针对数据集中的噪声分布,利用高斯混合模型对样本进行划分,将其划分为噪声数据和非噪声数据,对噪声数据而言,去除掉其给定标签,将其与非噪声数据进行融合,生成新的部分带标签和部分不带标签的数据集,进而使用半监督学习策略进行半监督学习,获取最优表现模型。通常,对于基于噪声分布被模型认定的噪声标签,将会直接去除掉其标签信息,不学习这部分数据的标签知识,首先,基于噪声分布识别噪声数据的普适性并不高,不同数据集的噪声分布并不遵循统一的原则。其次,针对不学习噪声数据的标签信息这一操作,一方面,这种操作使得模型没有学习到数据集中完整的知识,另一方面,随着训练的进行,模型对于其本身的能力越发认可,这会导致确认偏差情况的发生,从而影响最后表现。
因此,一些常用的适应噪声标签的方案,都存在一定的缺陷,本申请通过在无人工辅助、不删除样本、不对噪声分布做出假设的基础上,使用多模型集成学习的自适应加权噪声标签的方法,全面学习数据集的知识,以缓解噪声标签问题,训练得到鲁棒性更优的神经网络。下面对本申请提供的神经网络训练方法进行详细介绍。
首先,参阅图6,本申请提供的一种神经网络训练方法的流程示意图。
如图6中所示,本申请提供的神经网络训练方法可以分为两个阶段,为便于理解称为预训练阶段和噪声处理阶段。
首先,训练集中可以包括多个样本,该训练集中可能存在具有噪声标签的样本。下面分别对预训练阶段和噪声处理阶段进行介绍。
一、预训练阶段
在预训练阶段,使用训练集对初始模型进行多次训练,得到至少两个预训练模型。
其中,在每次训练过程中,可以将训练集分为多个子集,或者至少两个子集,然后分别使用每个子集对初始模型进行预训练,从而每个子集都具有对应的预训练模型。
例如,可以进行M次训练,每次训练得到2个预训练模型,从而得到2M个预训练模型。在每次训练过程中,可以将训练集随机二等分,得到两个子集,然后使用两个子集分别对初始模型进行预训练,得到2个预训练模型。可以理解为,每次训练过程中,每个样本都仅在其中一个模型的训练过程中被使用,每个样本未在M个预训练模型的训练过程中被使用。
二、噪声处理阶段
在预训练阶段得到至少两个预训练模型之后,即可使用训练集对该至少两个预训练模型进行迭代训练,从而得到多个训练后的模型,为便于区分,将最终输出的训练后的模型称为第一模型,即得到多个第一模型。
在噪声处理阶段,在任意一次迭代训练的过程中,可以从训练集中筛选出第一子集,且每个样本具有初始标签(label),将第一子集中的任意一个样本作为第二预训练模型的输入,得到该任意一个样本的伪标签,该第二预训练模型在;预训练阶段未学习过该任意一个样本。然后还可以使用需要训练的预训练模型(如第一预训练模型)来输出每个样本的预测标签,然后即可根据每个样本的预测标签、初始标签和伪标签之间的距离来计算出第一子集对应的第一损失值,并根据该第一损失值来更新待训练的预训练模型,得到训练后的预训练模型。
具体地,在计算第一子集对应的损失值时,伪标签和初始标签之间的距离可以用于确定其对应的样本的损失值所占的权重,从而对多个样本的损失值进行加权融合得到更准确的第一损失值。
因此,本申请实施方式中,并不显性地区分样本是否具有噪声标签,而是根据初始标签和伪标签之间的距离来计算损失值,从而完成对模型的更新,提高模型的鲁棒性。并且,相对于删除噪声标签,本申请通过伪标签和初始标签之间的距离来计算损失值,从而使最终得到的模型可以学习到更多的信息,避免因删除而减少学习到的信息。此外,相对于通过固定方式来区分噪声标签,本申请并不显性地区分噪声标签,而是通过伪标签和初始标签的距离来表示初始标签的可信程度,从而避免误识别噪声标签而导致最终的模型输出准确度较低的问题。
下面对本申请提供的神经网络训练方法的流程进行更详细介绍。
参阅图7,本申请提供的另一种神经网络训练方法的流程示意图,如下所述。
首先,为便于理解,将本申请提供的神经网络训练方法分为两部分,分别分为预训练阶段和噪声处理阶段,下面分别进行详细介绍。
71、预训练阶段
其中,在预训练阶段中,对初始模型进行了多次训练,从而得到多个预训练模型。本实施例以其中任意一次训练过程为例进行示例性介绍,如以下步骤711-712。该多次训练可以是并行进行,也可以是串行进行的,即以下步骤711-712可以并行执行一次或者多次,也可以串行执行多次,从而得到多个预训练模型。
711、将训练集分为至少两个子集。
其中,该训练集中包括了多个样本,每个样本设置有初始标签,其初始标签所包括的内容与待训练的神经网络所执行的任务相关。例如,若需要训练分类网络,则每个样本的标签中可以包括该样本的类别,若需要训练分割网络,则每个样本的标签中可以包括该样本的前景、背景的分割方式等。
针对训练集的具体划分方式可以是随机划分,也可以是按照预先设定的方式来进行划分。例如,可以随机将训练集划分为至少两个子集,也可以是等分的方式划分出至少两个子集等。
712、使用至少两个子集分别对所述初始模型进行预训练,得到至少两个预训练模型。
在每次训练过程中,将训练集划分为多个子集之后,即可使用该多个子集对初始模型分别进行训练,得到每个子集对应的预训练模型。
例如,在预训练阶段,可以使用训练集对初始模型进行M次训练,从而得到2M个预训练模型。在每次训练时,将训练集随机二等分,即将训练集分为两部分子集,然后使用这两个子集分别对初始模型进行预训练,得到这两个子集分别对应的预训练模型,重复M次,即可得到2M个预训练模型。每个样本在训练M个预训练模型的过程中被使用,相应地,每个样本在训练M个预训练模型的过程中未被使用。
因此,本申请实施方式中,可以通过预训练的方式,得到具有基础的输出能力的预训练模型,相当于为后续的训练提供了更好的基础模型,
72、噪声处理阶段
其中,在噪声处理阶段中,对预训练阶段得到的预训练模型分别进行了多次迭代,下面示例性地对任意一个预训练模型(为便于区分称为第一预训练模型)的任意一次迭代训练的过程进行示例性介绍。
通常,在训练神经网络的过程中,可以分为一个或者多个epoch,即使用整个训练集进行训练的次数,每个epoch可以分为一个或多个batch,相当于将训练集分为一个或者多个子集进行迭代训练。示例性地,任意一次batch的过程可以如以下步骤721-725,步骤721-步骤725可以被执行一次或者多次。
721、从训练集确定出第一子集。
其中,可以对训练集按照batch数量进行划分,得到每个batch对应的样本集合,然后从该样本集合中确定出第一子集,该第一子集中包括了多个样本,每个样本具有对应的初始标签。
具体地,从训练集中确定出第一子集的方式可以是随机划分,也可以是按照预先设定的方式进行划分,如按照预先设定的大小或者按照预先设定的排列顺序从训练集中划分出第一子集等等,具体可以根据实际应用场景进行调整。
722、将第一子集中的样本作为第二预训练模型的输入得到伪标签。
其中,可以将第一子集中的任意一个样本作为第二预训练模型的输入,得到该任意一个样本的伪标签,该第二预训练模型在预训练阶段未学习过该任意一个样本。可以理解为,第一子集中的每个样本都具有对应的第二预训练模型,即每个样本在预训练阶段未被对应的第二预训练模型学习过。因此,可以使用第一子集中每个样本对应的至少一个第二预训练模型来输出该样本的标签,并作为该样本的伪标签,从而得到第一子集中每个样本的伪标签。
以第一子集中的任意一个样本(为便于区分称为第一样本)为例,该第一样本具有一个或者多个对应的第二预训练模型,即该第二预训练模型在预训练阶段未学习过该第一样本,将该第一样本作为对应的一个或者多个第二预训练模型的输入,基于该一个或者多个第二预训练模型的输出得到第一样本的伪标签。
通常,若第一样本仅有一个对应的第二预训练模型,则将该一个第二预训练模型的输出作为第一样本的伪标签(为便于区分本实施例称为第一伪标签)。
若第一样本对应了多个第二预训练模型,则可以对该多个第二预训练模型的输出进行融合,将融合结果作为第一样本的伪标签。具体的融合方式可以包括求和、加权融合等方式。例如,以分类任务为例,M个预训练模型未学习过第一样本,则可以将第一样本作为该M个预训练模型的输入,然后对该M个模型的输出进行求和,并通过softmax函数转化成对应的概率向量,其中每个分量对应第一样本为对应的类别的概率。
723、将第一子集中的样本作为第一预训练模型的输入,得到每个样本的预测标签。
其中,第一预训练模型即当前次迭代中需要训练的模型,在得到第一子集之后,可以将第一子集中的样本作为第一预训练模型的输入,从而输出每个样本的标签,将该标签作为每个样本的预测标签。该第一预训练模型可以是预训练阶段训练得到的任意一个预训练模型。
需要说明的是,本申请对步骤722和步骤723的执行顺序不作限定,可以先执行步骤722,也可以先执行步骤723,还可以同时执行步骤722和步骤723,具体可以根据实际应用场景调整。
724、根据每个样本的预测标签、初始标签和第一伪标签计算第一子集对应的第一损失值。
其中,第一损失值可以是基于第一子集中的每个样本的预测标签、第一伪标签和初始标签来计算得到的,如可以计算预测标签和第一伪标签之间的差异、预测标签和初始标签之间的差异或者第一伪标签和初始标签之间的差异等,得到第一损失值。
可选地,第一伪标签和初始标签之间的距离可以用于确定该初始标签的置信度,可以理解为该距离可以用于衡量该样本的初始标签为噪声标签的概率,如该置信度和该概率可以是负相关关系,即置信度越大,表示该样本的初始标签为噪声标签的概率也就越小,置信度越小,表示该样本的初始标签为噪声标签的概率也就越大。
在一种可能的实施方式中,计算第一损失值的具体方式可以包括:根据第一子集中每个样本的初始标签和第一伪标签之间距离计算第一子集中每个样本的初始标签对应的置信度,并计算第一子集中每个样本的预测标签和初始标签之间的损失值(为便于区分称为第四损失值),以及预测标签和第一伪标签之间的损失值(为便于区分称为第五损失值),然后根据第一子集中每个样本的初始标签对应的置信度,融合第一子集中所有样本的第四损失值和第五损失值,得到第一子集对应的第一损失值。该置信度可以理解为与第四损失值的权重相关,置信度越高,表示初始标签的可信程度越久越高,第四损失值所占的权重也就越大,置信度越低,表示初始标签的可信程度也就越低,第四损失值所占的权重也就越小。因此,本申请可以通过初始标签的置信度来调整初始标签在计算每个样本的损失时所占的权重,伪标签和初始标签之间的距离越大,表示伪标签和初始标签之间的差异也就越大,初始标签所包括的噪声可能也就越大,从而该距离越大,置信度也就越低,表示初始标签为噪声标签的概率也就越大,相应地第四损失值,即初始标签对应的损失值所占的权重也就越小,从而可以降低噪声标签对损失值的影响,提高最终输出的模型的准确度,提升模型的鲁棒性。
更具体地,初始标签和伪标签之间距离具体可以包括:欧式距离、闵可夫斯基距离(或者称为明氏距离)、曼哈顿距离、切比雪夫距离、闵氏距离或马氏距离等可以用于衡量相似度的距离。
通常,初始标签和伪标签之间距离和置信度呈负相关关系,即该距离越大,置信度也就越小,该距离越小,置信度也就越大。
因此,本申请实施方式中,可以通过预训练模型的输出作为样本的伪标签,通过伪标签和初始标签之间的距离来确定样本的初始样本的置信度,从而基于该置信度来融合第一子集中所有样本的损失值,通常距离越大即表示相似度越小,相应地置信度也就越小,从而在计算每个样本的损失值时,其初始标签所占的权重也就越少,从而可以减少噪声标签对每个样本的损失值的影响,使最终得到的第一损失值更准确。
在一种可能的实施方式中,还可以从训练集中确定第二子集,该第二子集中包括多个样本,可以将第二子集中的样本作为第一预训练模型的输入,并根据第一预训练模型的输出来计算第二子集对应的第二损失值。然后融合第一损失值和第二损失值,得到更新后的第一损失值,或者称为第三损失值。
具体地,可以将第二子集中的样本作为前述步骤71中多个预训练模型的输入,并基于该多个预训练模型的输出得到第二子集中每个样本的伪标签,为便于区分将第二子集中每个样本的伪标签称为第二伪标签。然后可以基于第一预测模型针对第二子集中每个样本的输出和该第二伪标签,计算每个样本对应损失值,从而得到第二子集对应的第二损失值。
可以理解为,通过预训练模型来输出第二子集中的伪标签,并通过伪标签和预测标签来计算第二损失值,相当于实现了半监督学习,可以减少样本的初始标签对损失值的影响,从而可以减少噪声对损失值的影响,提高后续训练得到的模型的鲁棒性。
725、据第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
在得到第一损失值或者更新后的第一损失值之后,即可根据该第一损失值或者更新后的第一损失值来对第一预训练模型进行反向更新,更新第一预训练模型的参数,得到当前次迭代训练后的第一预训练模型。
若训练后的第一预训练模型满足预先设定的收敛条件,则可以将该训练后的第一预训练模型作为第一模型,若训练后的第一预训练模型不满足预先设定的收敛条件,则可以继续对当前次迭代训练后的第一预训练模型进行再次训练,直到满足收敛条件,即继续执行步骤 721-725,直到满足收敛条件。该收敛条件该可以根据实际应用场景设置,如可以设置为训练后的预训练模型的输出精度超过第一阈值,或者训练后的预训练模型的平均输出精度超过第二阈值,或者预训练模型的更新次数达到预设次数等,此处不再一一赘述。
因此,本申请实施方式中设置了预训练阶段和噪声处理阶段,在预训练阶段,使用训练集对初始模型进行多次训练,得到多个预训练模型,相当于得到学习了训练集的多个预训练模型。在噪声处理阶段,将预训练模型的输出作为样本的伪标签,并通过伪标签和初始标签之间的距离来确定每个样本对应的置信度,该置信度可以在计算该样本的损失值时影响初始标签对应的损失值的权重,如该置信度越大,则初始标签对应的权重也就越大,该置信度越小,则初始标签所占的权重也就越小,从而使伪标签和初始标签之间距离越大的样本在计算损失值的影响更小,从而降低噪声标签对模型训练的影响,提高模型的鲁棒性。并且,相对于直接丢弃噪声标签,本实施例提供的方式可以使模型学习到更多的信息,提高模型的输出准确度。此外,还通过将不带标签的第二子集作为预训练模型的输入,来输出第二子集中样本的伪标签,基于该伪标签和预测标签来计算损失值,相当于结合了半监督学习来提高模型的输出准确度,得到输出效果更优的模型。此外,相对于通过高斯混合模型从训练集中确定出噪声标签,本申请无需通过固定的方式来区分噪声标签,避免将标签误识别噪声标签,学习到样本所包括的更多的信息,从而提高模型的输出准确度。
在一种可能的实施方式中,在得到多个第一模型之后,还可以从该第一模型中筛选出符合预设条件的模型或者最优模型作为目标模型,该目标模型可以对用户输入的数据进行处理或者部署于用户提供的设备中。该预设条件可以包括模型的输出精度超过预设精度、模型的大小不超过预设大小或者模型的参数量不超过预设参数量等。
例如,如前述图2所示的框架,用户可以通过客户设备像执行设备发送输入数据,该输入数据中可以包括待处理的数据,如待识别的图像、待分类的图像等,执行设备可以从得到的多个的第一模型中筛选出最优的模型作为目标模型,来对客户设备提供的输入数据进行处理,并向客户设备反馈输出结果。因此,本申请实施方式中,在得到多个第一模型之后,可以从中筛选出目标模型,并对用户输入的数据进行处理,从而完成对用户的反馈,提高用户体验。
前述对本申请提供的神经网络训练方法的流程进行了介绍,为便于理解,下面结合更具体的应用场景,如分类任务对本申请提供的神经网络训练方法进行更详细的介绍。下面分别对预训练阶段和噪声处理阶段分别进行介绍。
一、预训练阶段
其中,在预训练阶段,将训练集分为2个子集,分别使用每个子集对初始模型进行预训练,输出2个预训练模型,并重复前述步骤M次,得到2M个预训练模型。
可以理解为,在每组训练过程中,将训练集分为2个子集,然后分别使用子集对初始模型进行预训练,从而每次训练输出2个预训练模型。在每次训练过程中,可以包括一个或者多个epoch,每个epoch可以包括一个或者多个batch。针对每个样本,其被M个模型学习,另外M个模型未学习过该样本。
示例性地,训练集可以如图8所示,该训练集中包括了多个样本,每个样本具有对应的初始标签,例如,在分类场景中,该训练集中所包括的标签可以是图像对应的类别,如“鲨鱼”、“青蛙”或者“化石”等。
随后,如图9所示,在每次训练时对训练集进行划分,如图9中所示出的将训练集D划分为D1和D2两个子集,然后使用数据集D1训练初始模型得到模型1,使用数据库D2训练初始模型得到模型2。
二、噪声处理阶段
在预训练阶段输出2M个预训练模型之后,即可针对训练集中的噪声对该2M个预训练模型进行训练,从而提升模型的鲁棒性。
在训练预训练模型的过程中,可以预先设置epoch数量,以及每个epoch下的batch数量。然后基于设置好的epoch数量和batch数量对每个预训练模型进行训练。
示例性地,其中一个batch如图10所示。其中,在每个epoch中,将训练集分为q个batch (即q份数据),每个batch随机划分为两个子集n1(即第一子集)和n2(即第二子集),其中n1中的样本保留初始标签,n2中的样本可以去除初始标签。下面分别针对n1和n2的处理过程进行介绍。
1、针对n1
针对n1,将n1中的样本作为预训练模型的输入,如图10中所述示出的模型f(1)(1))、 f(2)(2))、…f(i)(i))…f(2M)(2M)),示例性地每个模型中可以包括特征提取网络和全连接网络,特征提取网络用于从输入的图像中提取特征,全连接网络用于基于特征提取网络提取到的特征输出样本的标签,如前述的伪标签或者预测标签。可以使用多个未学习过输入的样本的M个模型来输出该样本的伪标签,如对未学习过样本的M个模型的输出进行求和,此时得到的是一个长度为标签类别数量的向量,通过softmax函数转化成对应的概率向量,其中每个分量对应每个标签类别的概率。以训练模型f(i)(i))为例,该模型针对样本的输出表示为f(i)(x,θ(i))。
计算伪标签和初始标签之间的距离,通过该距离来计算初始标签对应的置信度。该计算方式可以表示为:
Figure RE-GDA0003295627420000171
其中,η为超参数,y表示初始标签,h(y)为初始标签的one-hot编码,
Figure RE-GDA0003295627420000172
为M个模型输出的伪标签,||p-h(y)||2即表示伪标签和初始标签之间的距离,由上述公式可知,该距离和置信度呈负相关关系,即距离越大,置信度也就越低。
随后计算第一子集的损失值,如表示为:
Figure RE-GDA0003295627420000173
其中,
Figure RE-GDA0003295627420000174
表示预测标签和初始标签之间的损失,
Figure RE-GDA0003295627420000175
表示预测标签和伪标签之间的损失。
2、针对n2
n2中的每个样本可以作为2M个模型的输入,然后基于2M个模型的输出来获取每个样本的伪标签,如通过对2M个模型的输出进行求和、加权融合等方式来得到每个样本的伪标签。
然后计算模型的输出和伪标签之间的损失值,如表示为:
Figure RE-GDA0003295627420000176
随后基于n1以及n2分别对应的损失值来计算最终的损失值,如表示为:
L=Lw+γLu
其中,γ为超参数。
然后使用L来对模型f(i)(i))进行反向传播更新,得到当前次batch过程中更新后的模型。
随后重复上述步骤,直到该模型满足收敛条件,即可输出该模型。如模型的输出精度超过第一阈值,或者模型的平均输出精度超过第二阈值,或者模型的更新次数达到预设次数等。
因此,本申请实施方式中,首先进行预训练阶段,使用训练集对初始模型进行多次训练,输出了多个预训练模型,从而使每个预训练模型都具备基础的输出能力。在噪声处理阶段,即可使用具备基础输出能力的预训练模型来输出伪标签,并基于伪标签和初始标签之间的距离来计算置信度,可以理解为样本的标签具有噪声的概率,从而基于该置信度来确定每个样本对应的损失值,如置信度越高初始标签在计算每个样本的损失值时所占的权重也就越大,使每个样本的损失值更准确,进而使第一子集对应的第一损失值也就越准确,噪声更小,使模型可以学习到噪声更小的信息,提高模型的输出精度,提高模型的鲁棒性。并且,还结合了半监督学习来训练模型,进一步提高模型的输出精度。且相比于删除噪声标签,本申请提供的方式可以学习到训练集中所包括的更多的信息,相比于通过固定的方式来区分噪声标签,本申请通过置信度的方式来衡量初始标签的可信程度,同时结合半监督学习的方式学习到每个样本所包括的信息,可以使模型学习到更多的信息,提高模型的输出准确度,提高模型的泛化能力。
更详细地,以一个更详细的场景为例对本申请提供的方法进行示例性介绍。
例如,以图像识别为例,训练集可以采用图像领域中针对噪声标签问题的几个常用公开数据集,包括Clothing-1M、WebVision、Food-101N,所述三个数据集中噪声标签比例分别达到38.46%、20%、20%。具体训练过程以及参数设定,讲以Food-101N数据集为例,初始模型可以采用残差网络ResNet50,损失函数可以采用交叉熵(Cross-Entropy)。
预训练阶段:
将噪声数据集作为训练集,共训练2组模型,每组包含2个,即共训练4个模型。每组预训练过程中,随机二等分训练集,每一半的训练集训练一个模型,重复2次,即对每个样本而言,它都被2个模型训练,另外2个模型在预训练阶段没有学习过该模型。在此阶段,共训练5个epoch。
噪声处理阶段:
共迭代训练100个epoch,每个epoch中依次训练8个模型,如图10所示。以在某个epoch 中训练单个模型i为例,固定除模型i以外的其他模型参数(即当前只学习模型i,其他模型不进行参数更新),其具体操作如下:
在当前训练epoch中,针对噪声数据集D,将对其随机划分为100个Batchs,batch_size 设置为160,对每个batch随机划分为两个子集n1=144和n2=16。其中子集n1保留其标签信息,子集n2去除其标签信息。
针对带标签样本集合n1,每个样本由预训练过程中没有学习过该样本的2个模型通过集成学习(对当前选定的4个模型的预测输出进行求和,此时得到的是一个长度为标签类别数量的向量,通过softmax函数转化成对应的概率向量,其中每个分量对应每个标签类别的概率)给出伪标签,计算伪标签与给定标签之间的距离,此距离公式为L2距离公式,通过相应的距离-权重转换公式获取对给定标签的置信度权重w,如表示为:
Figure RE-GDA0003295627420000181
其中h(y)是y(给定标签)的one-hot编码,
Figure RE-GDA0003295627420000182
为2个model给出的伪标签,此时的标签修正体现在对不同的的loss进行加权求和,子集n1损失函数计算方式可以表示为:
Figure RE-GDA0003295627420000183
其中
Figure RE-GDA0003295627420000184
为当前训练模型i的预测和给定标签之间的loss,
Figure RE-GDA0003295627420000185
为当前训练模型i的预测和伪标签之间的loss。
针对不带标签样本集合n2,每个样本由所有4个模型给出伪标签,计算第i个模型与n2中的所有样本的伪标签之间的loss,即Lu
针对每一个batch,计算相关损失函数,即包含子集n1和n2,计算可以表示为: L=Lw+γLu,其中γ为超参数,如设置为0.2,用以加权n2部分的loss。计算完成后,进行模型i的更新。
重复上述步骤,直到模型满足收敛条件,即在完成整体训练之后,即可输出4个鲁棒性强的模型。
在本申请实施方式中,在预训练阶段,限制了样本的学习,使得每个样本只被一半的模型所学习,这与在自适应加权噪声处理阶段中针对子集n1的处理遥相呼应,即n1中的每个样本由在预训练阶段中未学习过该样本的M个模型进行预测得到伪标签,可以加强模型的鲁棒性;同时,本实施例没有丢弃样本,在自适应加权的噪声处理阶段,通过对数据集的随机划分,使得每个样本在整个学习过程中,都会经历子集n1和子集n2的学习方式,这种从不同角度全面学习的方式,进一步增强了数据集的全面学习,加强了数据挖掘的效果,使得模型的整体表现性能得到了极大地提升。此外,在自适应加权噪声处理阶段,针对子集n1进行带标签学习,此过程不需要引入其他模型对样本是否带噪进行判定,此时子集n1中的数据都会进行自适应加权噪声标签;针对子集n2,此部分数据的标签完全不被认可,但相关数据不会被模型认定为无意义数据而丢弃,其标签完全由模型集成学习生成,增强对模型的信任程度,同时能够在一定程度上缓解真实场景中小样本学习的问题。本申请提供的训练方式可以广泛应用于各种类型的噪声数据集的训练中,泛化能力强,且能够得到输出效果更优的模型。
为便于理解,对本申请提供的训练方式和一些常用的方式的输出效果进行了对比,如标准交叉熵损失(Standard cross-entropy loss,简称CE)、基于决定因素的互信息鲁棒损失(Determinant-based Mutual Information robust loss,简称DMI)、在噪声标签上学习数据驱动的非常深度神经网络(Learning data-driven curriculum for verydeep neural networks on corrupted labels,简称MentorNet)、无监督标签噪声建模与损耗校正 (Unsupervised Label Noise Modeling and Loss Correction,简称M-correction)、带标签噪声的可缩放图像分类器训练的转移学习(Transfer Learning forScalable Image Classifier Training with Label Noise,简称CleanNet)、针对噪声标签的深度自学习(Deep self-learning from noisy labels,简称SMP)、超越合成噪声:受控噪声标签的深度学习 (Beyond synthetic noise:Deep learning on controllednoisy labels,简称MentorMix)、用噪声标签学习作为半监督学习(Learning with NoisyLabels as Semi-supervised Learning,简称DivideMix)。在M=2的设置下,本申请提供的训练方式在常用的噪声数据集上都超越了一些常用的训练方式,再M=4的设置下,本申请更是具有较大优势,如以下表1所示:
训练方式 Clothing-1M WebVision Food-101N
CE 69.0 74.0 82.5
DMI 72.46 - -
MentorNet - 63.0 -
M-correction 71.0 - -
CleanNet 74.69 - 83.95
SMP 74.45 - 85.11
MentorMix 74.3 76.0 -
DivideMix 74.76 77.32 -
本申请(M=2) 75.46 78.04 85.49
本申请(M=4) 75.68 78.48 85.89
表1
显然,通过上述表1可知,本申请提供的训练方式训练得到的模型的输出精度更优,即使存在噪声标签,也可以具有更高的输出精度,模型的鲁棒性更佳。
在一种可能的情况中,在输出多个第一模型之后,可以使用该第一模型进行推理。可以理解为,本申请还提供一种推理方法,具体可以包括:将输入样本作为目标模型的输入,输出输入样本对应的预测标签,目标模型是对初始模型进行训练得到,训练过程包括以下步骤:至少两个预训练模型将训练集分为至少两个子集,并使用至少两个子集分别对初始模型进行训练,得到至少两个预训练模型;使用训练集对至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,至少两个第一模型包括目标模型,其中,在对至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括:从训练集确定出第一子集,第一子集中的每个样本携带初始标签至少两个预训练模型;将第一子集中的任意一个样本作为至少两个预训练模型中的第二预训练模型的输入,得到样本的第一伪标签;将第一子集中每个样本作为第一预训练模型的输入得到第一子集中每个样本的预测标签;根据第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一子集对应的第一损失值;根据第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
其中,得到第一模型的方式可以参阅前述图6-图10的介绍,此处不再赘述。
前述对本申请提供的方法的步骤进行了详细介绍,下面对执行前述步骤的装置进行介绍。
参阅图11,本申请提供的一种神经网络训练装置的结构示意图。
该神经网络训练装置可以包括:
预训练模块1101,用于将训练集分为至少两个子集,并使用至少两个子集分别对初始模型进行预训练,得到至少两个预训练模型;
噪声处理模块1102,用于使用训练集对至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,其中,在对至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括以下步骤:从训练集确定出第一子集,第一子集中的每个样本携带初始标签至少两个预训练模型;将第一子集中的任意一个样本作为至少两个预训练模型中的第二预训练模型的输入得到样本的第一伪标签,其中,在得到第二预训练模型的预训练过程中未使用任意一个样本;将第一子集中每个样本作为第一预训练模型的输入得到第一子集中每个样本的预测标签;根据第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一损失值;根据第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
在一种可能的实施方式中,噪声处理模块1102,还用于:将训练集的第二子集作为第一预训练模型的输入,并根据第一预训练模型的输出计算第二损失值集;融合第一损失值和第二损失值,得到更新后的第一损失值;根据更新后的第一损失值更新第一预训练模型,得到当前次迭代训练后的第一预训练模型。
在一种可能的实施方式中,噪声处理模块1102,具体用于:将第二子集中每个样本作为至少两个预训练模型的输入,得到第二子集中每个样本的第二伪标签;将第二子集中的每个样本作为第一预训练模型的输入,得到第二子集中每个样本的第二预测标签;根据第二预测标签和所第二伪标签计算第二损失值。
在一种可能的实施方式中,噪声处理模块1102,具体用于:根据第一子集中每个样本的初始标签和第一伪标签之间的距离计算第一子集中每个样本的初始标签对应的置信度;计算第一子集中每个样本的预测标签和初始标签之间的第四损失值,以及预测标签和第一伪标签之间的第五损失值;根据第一子集中每个样本的初始标签对应的置信度融合第一子集中每个样本的第四损失值和第五损失值,以得到第一损失值。
在一种可能的实施方式中,第一子集中每个样本的初始标签和第一伪标签之间的距离,与第一子集中每个样本的初始标签对应的置信度呈负相关关系。
在一种可能的实施方式中,预训练模块1101,具体用于:在预训练过程中,将训练集随机等分为两个子集。
请参阅图12,本申请提供的另一种神经网络训练装置的结构示意图,如下所述。
该神经网络训练装置可以包括处理器1201和存储器1202。该处理器1201和存储器1202 通过线路互联。其中,存储器1202中存储有程序指令和数据。
存储器1202中存储了前述图6-图10中的步骤对应的程序指令以及数据。
处理器1201用于执行前述图6-图10中任一实施例所示的神经网络训练装置执行的方法步骤。
可选地,该神经网络训练装置还可以包括收发器1203,用于接收或者发送数据。
本申请实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序,当其在计算机上运行时,使得计算机执行如前述图6-图10中任一实施例所示实施例描述的方法中的步骤。
可选地,前述的图12中所示的神经网络训练装置为芯片。
本申请实施例还提供了一种神经网络训练装置,该神经网络训练装置也可以称为数字处理芯片或者芯片,芯片包括处理单元和通信接口,处理单元通过通信接口获取程序指令,程序指令被处理单元执行,处理单元用于执行前述图6-图10中任一实施例所示的神经网络训练装置执行的方法步骤。
本申请实施例还提供一种数字处理芯片。该数字处理芯片中集成了用于实现上述处理器 1201,或者处理器1201的功能的电路和一个或者多个接口。当该数字处理芯片中集成了存储器时,该数字处理芯片可以完成前述实施例中的任一个或多个实施例的方法步骤。当该数字处理芯片中未集成存储器时,可以通过通信接口与外置的存储器连接。该数字处理芯片根据外置的存储器中存储的程序代码来实现上述实施例中神经网络训练装置执行的动作。
本申请实施例中还提供一种包括计算机程序产品,当其在计算机上行驶时,使得计算机执行如前述图6-图10所示实施例描述的方法中神经网络训练装置所执行的步骤。
本申请实施例提供的神经网络训练装置可以为芯片,该芯片可以包括:处理单元和通信单元,所述处理单元例如可以是处理器,所述通信单元例如可以是输入/输出接口、管脚或电路等。该处理单元可执行存储单元存储的计算机执行指令,以使服务器内的芯片执行上述图 6-图10所示实施例描述的神经网络训练方法。可选地,所述存储单元为所述芯片内的存储单元,如寄存器、缓存等,所述存储单元还可以是所述无线接入设备端内的位于所述芯片外部的存储单元,如只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)等。
具体地,前述的处理单元或者处理器可以是中央处理器(central processingunit,CPU)、网络处理器(neural-network processing unit,NPU)、图形处理器(graphicsprocessing unit,GPU)、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程逻辑门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
示例性地,请参阅图13,图13为本申请实施例提供的芯片的一种结构示意图,所述芯片可以表现为神经网络处理器NPU 130,NPU 130作为协处理器挂载到主CPU(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1303,通过控制器1304控制运算电路1303 提取存储器中的矩阵数据并进行乘法运算。
在一些实现中,运算电路1303内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1303是二维脉动阵列。运算电路1303还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1303是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器1302中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器1301中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)1308中。
统一存储器1306用于存放输入数据以及输出数据。权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1305,DMAC被搬运到权重存储器1302中。输入数据也通过DMAC被搬运到统一存储器1306中。
总线接口单元(bus interface unit,BIU)1310,用于AXI总线与DMAC和取指存储器 (instruction fetch buffer,IFB)1309的交互。
总线接口单元1310(bus interface unit,BIU),用于取指存储器1309从外部存储器获取指令,还用于存储单元访问控制器1305从外部存储器获取输入矩阵A或者权重矩阵B的原数据。
DMAC主要用于将外部存储器DDR中的输入数据搬运到统一存储器1306或将权重数据搬运到权重存储器1302中或将输入数据数据搬运到输入存储器1301中。
向量计算单元1307包括多个运算处理单元,在需要的情况下,对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。主要用于神经网络中非卷积/全连接层网络计算,如批归一化(batch normalization),像素级求和,对特征平面进行上采样等。
在一些实现中,向量计算单元1307能将经处理的输出的向量存储到统一存储器1306。例如,向量计算单元1307可以将线性函数和/或非线性函数应用到运算电路1303的输出,例如对卷积层提取的特征平面进行线性插值,再例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1307生成归一化的值、像素级求和的值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1303的激活输入,例如用于在神经网络中的后续层中的使用。
控制器1304连接的取指存储器(instruction fetch buffer)1309,用于存储控制器1304 使用的指令;
统一存储器1306,输入存储器1301,权重存储器1302以及取指存储器1309均为On-Chip 存储器。外部存储器私有于该NPU硬件架构。
其中,循环神经网络中各层的运算可以由运算电路1303或向量计算单元1307执行。
其中,上述任一处提到的处理器,可以是一个通用中央处理器,微处理器,ASIC,或一个或多个用于控制上述图6-图10的方法的程序执行的集成电路。
另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本申请提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
最后应说明的是:以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (16)

1.一种神经网络训练方法,其特征在于,包括:
将训练集分为至少两个子集,并使用所述至少两个子集分别对初始模型进行预训练,得到至少两个预训练模型;
使用所述训练集对所述至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,其中,在对所述至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括以下步骤:
从所述训练集确定出第一子集,所述第一子集中的每个样本携带初始标签;
将所述第一子集中的任意一个样本作为所述至少两个预训练模型中的第二预训练模型的输入得到所述样本的第一伪标签;其中,在得到所述第二预训练模型的预训练过程中未使用所述任意一个样本;
将所述第一子集中每个样本作为所述第一预训练模型的输入得到所述第一子集中每个样本的预测标签;
根据所述第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一损失值;
根据所述第一损失值更新所述第一预训练模型,得到当前次迭代训练后的第一预训练模型。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一损失值更新所述第一预训练模型,得到当前次迭代训练后的第一预训练模型,包括:
将所述训练集的第二子集作为所述第一预训练模型的输入,并根据所述第一预训练模型的输出计算第二损失值;
融合所述第一损失值和所述第二损失值,得到更新后的第一损失值;
根据所述更新后的第一损失值更新所述第一预训练模型,得到当前次迭代训练后的第一预训练模型。
3.根据权利要求2所述的方法,其特征在于,所述将第二子集作为所述第一预训练模型的输入,并根据所述第一预训练模型的输出计算第二损失值,包括:
将所述第二子集中每个样本作为所述至少两个预训练模型针输入,得到所述第二子集中每个样本的第二伪标签;
将所述第二子集中每个样本作为所述第一预训练模型的输入,得到所述第二子集中每个样本的第二预测标签;
根据所述第二预测标签和所述第二伪标签计算所述第二损失值。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一损失值,包括:
根据所述第一子集中每个样本的初始标签和第一伪标签之间的距离计算所述第一子集中每个样本的初始标签对应的置信度;
计算所述第一子集中每个样本的所述预测标签和所述初始标签之间的第四损失值,以及所述预测标签和所述第一伪标签之间的第五损失值;
根据所述第一子集中每个样本的初始标签对应的置信度融合所述第一子集中每个样本的所述第四损失值和所述第五损失值,以得到所述第一损失值。
5.根据权利要求4所述的方法,其特征在于,所述第一子集中每个样本的初始标签和第一伪标签之间的距离,与所述第一子集中每个样本的初始标签对应的置信度呈负相关关系。
6.根据权利要求1-4中任一项所述的方法,其特征在于所述将训练集分为至少两个子集,包括:
将所述训练集随机等分为两个子集。
7.一种神经网络训练装置,其特征在于,包括:
预训练模块,用于将训练集分为至少两个子集,并使用所述至少两个子集分别对所述初始模型进行预训练,得到至少两个预训练模型;
噪声处理模块,用于使用所述训练集对所述至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,其中,在对所述至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括以下步骤:
从所述训练集确定出第一子集,所述第一子集中的每个样本携带初始标签至少两个预训练模型;
将所述第一子集中的任意一个样本作为所述至少两个预训练模型中的第二预训练模型的输入得到所述样本的第一伪标签,其中,在得到所述第二预训练模型的预训练过程中未使用所述任意一个样本;
将所述第一子集中每个样本作为所述第一预训练模型的输入得到所述第一子集中每个样本的预测标签;
根据所述第一子集中每个样本的预测标签,初始标签和第一伪标签计算第一损失值;
根据所述第一损失值更新所述第一预训练模型,得到当前次迭代训练后的第一预训练模型。
8.根据权利要求7所述的装置,其特征在于,所述噪声处理模块,还用于:
将所述训练集的第二子集作为所述第一预训练模型的输入,并根据所述第一预训练模型的输出计算第二损失值集;
融合所述第一损失值和所述第二损失值,得到更新后的第一损失值;
根据所述更新后的第一损失值更新所述第一预训练模型,得到当前次迭代训练后的第一预训练模型。
9.根据权利要求8所述的装置,其特征在于,所述噪声处理模块,具体用于:
将所述第二子集中每个样本作为所述至少两个预训练模型的输入,得到所述第二子集中每个样本的第二伪标签;
将所述第二子集中的每个样本作为所述第一预训练模型的输入,得到所述第二子集中每个样本的第二预测标签;
根据所述第二预测标签和所述所第二伪标签计算所述第二损失值。
10.根据权利要求7-9中任一项所述的装置,其特征在于,所述噪声处理模块,具体用于:
根据所述第一子集中每个样本的初始标签和第一伪标签之间的距离计算所述第一子集中每个样本的初始标签对应的置信度;
计算所述第一子集中每个样本的所述预测标签和所述初始标签之间的第四损失值,以及所述预测标签和所述第一伪标签之间的第五损失值;
根据所述第一子集中每个样本的初始标签对应的置信度融合所述第一子集中每个样本的所述第四损失值和所述第五损失值,以得到所述第一损失值。
11.根据权利要求10所述的装置,其特征在于,所述第一子集中每个样本的初始标签和第一伪标签之间的距离,与所述第一子集中每个样本的初始标签对应的置信度呈负相关关系。
12.根据权利要求7-11中任一项所述的装置,其特征在于,
所述预训练模块,具体用于:将所述训练集随机等分为两个子集。
13.一种推理方法,其特征在于,包括:
将输入样本作为目标模型的输入,输出所述输入样本对应的预测标签,所述目标模型是对初始模型进行训练得到,所述训练过程包括以下步骤:
至少两个预训练模型将所述训练集分为至少两个子集,并使用所述至少两个子集分别对所述初始模型进行训练,得到至少两个预训练模型;
使用所述训练集对所述至少两个预训练模型进行迭代训练,得到训练后的至少两个第一模型,所述至少两个第一模型包括所述目标模型,其中,在对所述至少两个预训练模型中的第一预训练模型的任意一次迭代训练过程包括以下步骤:
从所述训练集确定出第一子集,所述第一子集中的每个样本携带初始标签至少两个预训练模型;
将所述第一子集中的任意一个样本作为至少两个预训练模型中的第二预训练模型的输入,得到所述样本的第一伪标签;
将所述第一子集中每个样本作为所述第一预训练模型的输入得到所述第一子集中每个样本的预测标签;
根据所述第一子集中每个样本的预测标签以及所述第一子集中每个样本的初始标签和第一伪标签之间的距离计算所述第一子集对应的第一损失值;
根据所述第一损失值更新所述第一预训练模型,得到当前次迭代训练后的第一预训练模型。
14.一种神经网络训练装置,其特征在于,包括处理器,所述处理器和存储器耦合,所述存储器存储有程序,当所述存储器存储的程序指令被所述处理器执行时实现权利要求1至6中任一项所述的方法。
15.一种计算机可读存储介质,包括程序,当其被处理单元所执行时,执行如权利要求1至6中任一项所述的方法。
16.一种计算机程序产品,包括计算机程序/指令,其特征在于,所述计算机程序/指令被处理器执行时实现如权利要求1至6中任一项所述方法的步骤。
CN202110536755.3A 2021-05-17 2021-05-17 一种神经网络训练方法以及装置 Pending CN113705769A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110536755.3A CN113705769A (zh) 2021-05-17 2021-05-17 一种神经网络训练方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110536755.3A CN113705769A (zh) 2021-05-17 2021-05-17 一种神经网络训练方法以及装置

Publications (1)

Publication Number Publication Date
CN113705769A true CN113705769A (zh) 2021-11-26

Family

ID=78648175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110536755.3A Pending CN113705769A (zh) 2021-05-17 2021-05-17 一种神经网络训练方法以及装置

Country Status (1)

Country Link
CN (1) CN113705769A (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114118449A (zh) * 2022-01-28 2022-03-01 深圳佑驾创新科技有限公司 基于偏标记学习的模型训练方法
CN114332984A (zh) * 2021-12-06 2022-04-12 腾讯科技(深圳)有限公司 训练数据处理方法、装置和存储介质
CN114612717A (zh) * 2022-03-09 2022-06-10 四川大学华西医院 Ai模型训练标签生成方法、训练方法、使用方法及设备
CN114723047A (zh) * 2022-04-15 2022-07-08 支付宝(杭州)信息技术有限公司 任务模型训练方法、装置以及系统
CN114970673A (zh) * 2022-04-19 2022-08-30 华为技术有限公司 一种半监督模型训练方法、系统及相关设备
CN114972725A (zh) * 2021-12-30 2022-08-30 华为技术有限公司 模型训练方法、可读介质和电子设备
CN114998691A (zh) * 2022-06-24 2022-09-02 浙江华是科技股份有限公司 半监督船舶分类模型训练方法及装置
CN116580847A (zh) * 2023-07-14 2023-08-11 天津医科大学总医院 一种脓毒性休克预后预测的建模方法及系统
WO2023241385A1 (zh) * 2022-06-14 2023-12-21 华为技术有限公司 一种模型迁移方法、装置及电子设备
WO2024017176A1 (zh) * 2022-07-21 2024-01-25 维沃移动通信有限公司 模型训练方法、装置、网络侧设备及终端设备
CN117648576A (zh) * 2024-01-24 2024-03-05 腾讯科技(深圳)有限公司 数据增强模型训练及数据处理方法、装置、设备、介质
CN115018066B (zh) * 2022-05-23 2024-04-09 北京计算机技术及应用研究所 一种边端模式下的深度神经网络本地化训练方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114332984A (zh) * 2021-12-06 2022-04-12 腾讯科技(深圳)有限公司 训练数据处理方法、装置和存储介质
CN114332984B (zh) * 2021-12-06 2024-04-12 腾讯科技(深圳)有限公司 训练数据处理方法、装置和存储介质
CN114972725A (zh) * 2021-12-30 2022-08-30 华为技术有限公司 模型训练方法、可读介质和电子设备
CN114972725B (zh) * 2021-12-30 2023-05-23 华为技术有限公司 模型训练方法、可读介质和电子设备
CN114118449A (zh) * 2022-01-28 2022-03-01 深圳佑驾创新科技有限公司 基于偏标记学习的模型训练方法
CN114118449B (zh) * 2022-01-28 2022-10-04 深圳佑驾创新科技有限公司 基于偏标记学习模型的图片标签识别方法、介质及设备
CN114612717A (zh) * 2022-03-09 2022-06-10 四川大学华西医院 Ai模型训练标签生成方法、训练方法、使用方法及设备
CN114723047A (zh) * 2022-04-15 2022-07-08 支付宝(杭州)信息技术有限公司 任务模型训练方法、装置以及系统
CN114970673A (zh) * 2022-04-19 2022-08-30 华为技术有限公司 一种半监督模型训练方法、系统及相关设备
CN115018066B (zh) * 2022-05-23 2024-04-09 北京计算机技术及应用研究所 一种边端模式下的深度神经网络本地化训练方法
WO2023241385A1 (zh) * 2022-06-14 2023-12-21 华为技术有限公司 一种模型迁移方法、装置及电子设备
CN114998691B (zh) * 2022-06-24 2023-04-18 浙江华是科技股份有限公司 半监督船舶分类模型训练方法及装置
CN114998691A (zh) * 2022-06-24 2022-09-02 浙江华是科技股份有限公司 半监督船舶分类模型训练方法及装置
WO2024017176A1 (zh) * 2022-07-21 2024-01-25 维沃移动通信有限公司 模型训练方法、装置、网络侧设备及终端设备
CN116580847B (zh) * 2023-07-14 2023-11-28 天津医科大学总医院 一种脓毒性休克预后预测方法及系统
CN116580847A (zh) * 2023-07-14 2023-08-11 天津医科大学总医院 一种脓毒性休克预后预测的建模方法及系统
CN117648576A (zh) * 2024-01-24 2024-03-05 腾讯科技(深圳)有限公司 数据增强模型训练及数据处理方法、装置、设备、介质
CN117648576B (zh) * 2024-01-24 2024-04-12 腾讯科技(深圳)有限公司 数据增强模型训练及数据处理方法、装置、设备、介质

Similar Documents

Publication Publication Date Title
CN113705769A (zh) 一种神经网络训练方法以及装置
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
CN110084281B (zh) 图像生成方法、神经网络的压缩方法及相关装置、设备
EP4064130A1 (en) Neural network model update method, and image processing method and device
WO2022042713A1 (zh) 一种用于计算设备的深度学习训练方法和装置
CN111291809B (zh) 一种处理装置、方法及存储介质
WO2022001805A1 (zh) 一种神经网络蒸馏方法及装置
CN110222717B (zh) 图像处理方法和装置
CN112639828A (zh) 数据处理的方法、训练神经网络模型的方法及设备
CN112446398A (zh) 图像分类方法以及装置
CN110222718B (zh) 图像处理的方法及装置
WO2021218517A1 (zh) 获取神经网络模型的方法、图像处理方法及装置
CN114255361A (zh) 神经网络模型的训练方法、图像处理方法及装置
WO2021218470A1 (zh) 一种神经网络优化方法以及装置
CN113326930A (zh) 数据处理方法、神经网络的训练方法及相关装置、设备
CN113191489B (zh) 二值神经网络模型的训练方法、图像处理方法和装置
WO2022012668A1 (zh) 一种训练集处理方法和装置
CN111368972A (zh) 一种卷积层量化方法及其装置
CN111782840A (zh) 图像问答方法、装置、计算机设备和介质
CN112529146A (zh) 神经网络模型训练的方法和装置
CN112257759A (zh) 一种图像处理的方法以及装置
CN115081588A (zh) 一种神经网络参数量化方法和装置
CN112464930A (zh) 目标检测网络构建方法、目标检测方法、装置和存储介质
CN111738403A (zh) 一种神经网络的优化方法及相关设备
CN113011562A (zh) 一种模型训练方法及装置

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