CN111079574B - 一种训练神经网络的方法及*** - Google Patents
一种训练神经网络的方法及*** Download PDFInfo
- Publication number
- CN111079574B CN111079574B CN201911202734.7A CN201911202734A CN111079574B CN 111079574 B CN111079574 B CN 111079574B CN 201911202734 A CN201911202734 A CN 201911202734A CN 111079574 B CN111079574 B CN 111079574B
- Authority
- CN
- China
- Prior art keywords
- neural network
- probability distribution
- feedback signal
- layer
- difference
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本说明书实施例公开了一种训练神经网络的方法及***。所述方法包括:将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数;根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。
Description
技术领域
本说明书实施例涉及数据处理领域,特别涉及一种训练神经网络的方法及***。
背景技术
随着人工智能领域的快速发展,神经网络得到了广泛的应用。例如,通过神经网络对数据进行实时预测。当数据的预测精度要求特别高时,通常采用深层神经网络进行处理,然而,由于深层神经网络的层数多,参数量多,其预测速度较慢。
因此,如何同时保证神经网络预测效果和预测速度成为目前亟需解决的技术问题。
发明内容
本说明书实施例的一个方面提供一种训练神经网络的方法,所述方法包括:将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数;根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。
本说明书实施例的一个方面提供一种基于神经网络进行预测的方法,所述方法包括:采用如上所述的训练好的K层神经网络对目标数据进行预测,得到目标数据的目标预测结果。
本说明书实施例的一个方面提供一种训练神经网络的***,所述***包括:概率分布确定模块,用于将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数;反馈信号确定模块,用于根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;参数调节模块,用于根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。
本说明书实施例的一个方面提供一种训练神经网络的装置,所述装置包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如上所述的任一项训练神经网络的方法。
本说明书实施例的一个方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机运行如上所述的任一项训练神经网络的方法。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书的一些实施例所示的示例性训练神经网络***的模块图;
图2是根据本说明书的一些实施例所示的训练神经网络方法的示例性流程图;
图3是根据本说明书的一些实施例所示的确定第一反馈信号方法的示例性流程图;
图4是根据本说明书的一些实施例所示的确定第二反馈信号方法的示例性流程图;以及
图5是根据本说明书的一些实施例所示的确定第三反馈信号方法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本说明书中所使用的“***”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的***所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1是根据本说明书的一些实施例所示的示例性训练神经网络***100的模块图。
该***可以用于互联网服务平台。在一些实施例中,该***用于包含数据预测***的线上服务平台。例如,银联支付平台、电商平台、通讯服务平台等。
如图1所述,该***可以包括概率分布确定模块110、反馈信号确定模块120以及参数调节模块130。
概率分布确定模块110可以用于训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数。在一些实施例中,N为大于10的整数。例如,11、13、15等。在一些实施例中,K为大于等于2、小于等于5的整数。例如,2、3、5等。N层神经网络即深层神经网络,采用常规方法得到的深层神经网络的预测速度一般难以达到预期。训练数据是指用于训练神经网络的数据。在一些实施例中,训练数据可以包括图片、文本或语音等各类数据。在一些实施例中,可以根据神经网络应用场景的不同,可选取对应的训练数据。例如,若神经网络应用于图像识别,则训练数据为图像数据。此外,神经网络还可以应用到人脸识别、自动驾驶、问题对匹配等任何可以应用人工智能的具体技术领域,通常情况下,这些技术领域需要预测精度高、预测速度快,例如,用于预警数据的预测。
在一些实施例中,N层神经网络可以代表深层神经网络,K层神经网络可以代表浅层神经网络。N层神经网络(即,深层神经网络)相较于K层神经网络(即,浅层神经网络),隐藏层更多,可以对输入的特征进行多层次的抽象,提取更加复杂的特征信息,可以更好地线性划分不同类型的数据,从而提高预测的准确性。以训练数据为图像数据,K层神经网络和N神经网络为分类神经网络为例,图像的类别包括猫、狗、鸟,若输入的图像为猫,K层神经网络在5s时输出的预测结果为(0.5,0.2,0.3),N层神经网络在8s时输出的预测结果为(0.8,0.1,0.1),K层神经网络在5s后输出预测结果,该预测结果表示该图片属于猫的概率为0.5,N层神经网在8s后输出预测结果,该预测结果表示该图片属于猫的概率为0.8,由此可见N层神经网络的预测效果更好,但预测速度更慢,相反地,K层神经网络的预测结果更差,但预测结果更快。
反馈信号确定模块120可以用于确定第一反馈信号。在一些实施例中,反馈信号确定模块120可以根据所述第一概率分布与所述第二概率分布,确定第一反馈信号。反馈信号是用于确定如何调节神经网络参数的信号。
反馈信号确定模块120可以基于所述第一概率分布和所述第二概率分布确定差异函数;所述差异函数用于衡量两个概率分布的差异情况,然后,基于所述差异函数计算差异幅度,将所述差异幅度确定为所述第一反馈信号;其中,所述差异幅度用于表示差异函数的差异程度。在一些实施例中,差异函数可以用来衡量两个概率分布的差异情况,在一些实施例中,差异函数可以是KL距离函数或JS距离函数。在一些实施例中,差异幅度可以是差异函数关于K层神经网络的参数的梯度,即差异函数关于K层神经网络的参数的偏导数。
反馈信号确定模块120可以确定第二反馈信号,在一些实施例中,反馈信号确定模块120可以基于所述第一概率分布和所述标签确定第一损失函数;然后,将所述第一损失函数关于所述K层神经网络的所述参数的梯度确定为所述第二反馈信号。在一些实施例中,标签可以用于表征训练数据的某种真实信息,例如,训练数据属于哪个类别等。在一些实施例中,损失函数可以是用来评价正在训练的神经网络得到的预测值和训练数据的真实值之间的差距,其中,预测值是指将训练数据输入正在训练的神经网络得到的输出值。真实值可以是训练数据的标签值。在一些实施例中,可以将第一损失函数关于所述K层神经网络的所述参数的梯度确定为所述第二反馈信号。
反馈信号确定模块120可以确定第三反馈信号,在一些实施例中,反馈信号确定模块120可以基于所述第二概率分布和所述标签确定第二损失函数;然后,将所述第二损失函数关于所述N层神经网络的所述参数的梯度确定为所述第三反馈信号。在一些实施例中,关于损失函数的细节已在上述内容中进行了陈述,在此不再赘述。第三反馈信号可以是第二损失函数关于1~N层神经网络参数的梯度(偏导数)。
参数调节模块130可以用于根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。其中,参数可以是神经网络中层与层之间的连接权重和输出层的偏置。如上所述,反馈信号可以是损失函数关于N层神经网络的参数的梯度。在一些实施例中,可以根据反馈信号反向调节神经网络的参数。例如,基于梯度下降算法调节神经网络的参数,其中,梯度下降算法中的梯度为反馈信号。
参数调节模块130可以基于所述第一概率分布与所述训练数据的标签确定第二反馈信号,并根据所述第二反馈信号调节所述1~K层神经网络的参数;或/和,可以基于所述第二概率分布与所述训练数据的标签确定第三反馈信号,并根据所述第三反馈信号调节1~N层神经网络的参数。
应当理解,图1所示的***及其模块可以利用各种方式来实现。例如,在一些实施例中,***及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和***可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的***及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于训练神经网络***100及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该***的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子***与其他模块连接。例如,图1中披露的概率分布确定模块110、反馈信号确定模块120、以及参数调节模块130可以是一个***中的不同模块,也可以是一个模块实现上述的两个模块的功能。又例如,训练神经网络***100中各个模块可以共用一个存储模块,各个模块也可以分别具有各自的存储模块。诸如此类的变形,均在本说明书的保护范围之内。
图2是根据本说明书的一些实施例所示的训练神经网络方法的示例性流程图。如图2所示,该训练神经网络方法200包括:
步骤202,将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数。具体的,步骤202可以由概率分布确定模块110执行。
训练数据是指用于训练神经网络的数据。在一些实施例中,训练数据可以包括图片、文本或语音等各类数据。在一些实施例中,可以根据神经网络应用场景的不同,可选取对应的训练数据。例如,若神经网络应用于图像识别,则训练数据为图像数据。又例如,若神经网络应用于文本识别,则训练数据为文本数据。
N层神经网络是指层数为N的神经网络,第K层神经网络是指N层神经网络中的第K层神经网络,其中,N大于K,N和K为大于0的整数,例如,1、2、3等。在一些实施例中,N为大于10的整数。例如,11、13、15等。在一些实施例中,K为大于等于2、小于等于5的整数。例如,2、3、5等。
在一些实施例中,N层神经网络可以是任意类型的神经网络。例如,卷积神经网络(Convolutional Neural Network,CNN)、循环神经网络(Recurrent Neural Network,RNN)、基于Transformer的双向编码器表征(Bidirectional Encoder Representationsfrom Transformers,BERT)等。
将训练数据输入N层神经网络后,N层神经网络的每一层均会得到一个输出值。该输出值可以用于表示每一层神经网络的预测结果。上一层神经网络的输出是下一层神经网络的输入,例如,当N为12时,12层神经网络的第一层的输出是第二层的输入,第二层的输出是第三层的输入,依次类推......。通常,经过的层数越多,预测的结果越准确。例如,第一层神经网络的输出的准确性低于第二层神经网络的输出,第二层神经网络的输出的准确性低于第三层神经网络的输出,以此类推.......。这是由于经过层数越多,提取的特征信息越多,从而预测的准确率也会越高,因此,第N层神经网络的输出比K层神经网络的输出更准确,即,更接近标签。
在一些实施例中,输出值可以是一个概率分布,该概率分布可以为1*n的实数向量,其中,n是向量的维数,n可以是1、2、3等。例如,概率分布的形式可以为(a,b,c)、(a,b,c,d)等。对于分类神经网络,概率分布可以用于表示输入数据属于各个类别的概率。例如,类别包括猫、狗、鸟三类,N层神经网络每层的输出可以是形如(a,b,c)的概率分布,其中,a表示图像为猫的概率,b表示图像为狗的概率,c表示图像为鸟的概率。
在一些实施例中,输出值可以是一个0~1的数值,代表某层神经网络预测输入数据属于目标对象的概率。例如,对于用于分类的神经网络,输出值可以代表输入数据属于某一个类别的概率。若类别包括猫、狗两类,每层神经网络的输出代表数据为猫的概率。在一些实施例中,可以基于归一化函数(例如,Softmax函数)将输出的数值转化为概率分布。
第一概率分布是指第K层神经网络的输出。第二概率分布是指第N层神经网络的输出。例如,当N为12,K为3,则第一概率分布为第3层神经网络的输出,第二概率分布为第12层神经网络的输出。
步骤204,根据所述第一概率分布与所述第二概率分布,确定第一反馈信号。具体的,步骤204可以由反馈信号确定模块120执行。
反馈信号是用于确定如何调节神经网络参数的信号。在一些实施例中,可以根据第一概率分布和第二概率分布确定第一反馈信号,并基于该信号调节N层神经网络中的第1~K层神经网络的参数。在一些实施例中,可以基于第一概率分布和第二概率分布确定差异函数,并将差异函数关于K层神经网络的参数的梯度(偏导数)确定为第一反馈信号。关于确定第一反馈信号的更多细节参见图3及其相关描述,在此不再赘述。
步骤206,根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。具体的,步骤206可以由参数调节模块130执行。
在一些实施例中,可以根据第一反馈信号调节1~K层神经网络参数,直到网络训练完成,从而得到训练好的K层神经网络。在一些实施例中,可以根据第一反馈信号反向调节1~K层神经网络的参数。例如,基于梯度下降算法调节1~K层神经网络的参数,其中,梯度下降算法中的梯度为第一反馈信号。
具体的,可以通过公式(1)实现神经网络参数的调节:
w′t=wt-ηGx (1)
其中,η是代表学习率,可以是任意实数。Gx代表反馈信号,x=1,表示第一反馈信号。wt表示神经网络的参数,w′t表示调节后神经网络的参数,t为1~K的整数。
在一些实施例中,在根据第一反馈信号调节1~K层神经网络参数过程中,使1~K层神经网络不断学习第N层神经网络输出的第二概率分布,即,使第K层神经网络输出的概率分布与第N层神经网络输出的概率分布越来越接近。
以训练数据为图像数据、N层神经网络为分类神经网络模型为例,图像的类别包括猫、狗、鸟,若输入某张属于猫的图像后,K层神经网络的输出为(0.5,0.2,0.3),N层神经网络的输出为(0.8,0.1,0.1)。通过第一反馈信号调节K层神经网络的参数后,K层神经网络的输出变化为(0.78,0.12,0.1),N层神经网络的输出变化为(0.81,0.1,0.09)。由此可见,经过参数调节后,第K层神经网络输出的概率分布与第N层神经网络输出的概率分布越来越接近。
在一些实施例中,在调节神经网络参数过程中,可以根据神经网络的损失函数是否收敛或小于预设阈值确定神经网络是否训练完成。例如,基于第一反馈信号调节1~K层神经网络参数时,可以根据1~K层神经网络的损失函数是否收敛确定训练是否完成,即,收敛则完成,反之未完成需要继续调节。
N层神经网络可以代表深层神经网络,K层神经网络可以代表浅层神经网络,相比于浅层神经网络,深层神经网络的预测效果更好,预测速度更慢。这是由于经过的神经网络的层数越多,提取的特征信息越多,从而预测的准确率也会越高。然而,由于浅层神经网络的层数少,参数也少,因此预测速度高于深层神经网络。根据以上描述可知,本实施例在神经网络参数的调节过程中,通过第一反馈信号调节1~K层神经网络的参数,使得第K层神经网络输出的概率分布不断地接近第N层神经网络输出的第二概率分布,使K层神经网络的预测效果尽量能够与N层神经网络的预测效果一致,从而提升了K层神经网络的预测效果。因此,通过本说明书的实施例训练得到的K层神经网络,既可以具备N层神经网络的预测效果,又能保证预测速度。
在一些实施例中,还可以基于第一概率分布与训练数据的标签确定第二反馈信号,并根据第二反馈信号调节1~K层神经网络的参数;或/和第二概率分布与训练数据的标签确定第三反馈信号,并根据第三反馈信号调节1~N层神经网络的参数。
标签用于表征训练数据的某种真实信息,例如,训练数据属于哪个类别等。若N层神经网络是分类神经网络,类别包括猫、狗、鸟三类,则每个训练数据的标签可以代表该训练数据属于猫、狗或鸟中的一种。在一些实施方式中,标签的标注方式可以与N层神经网络的输出值相匹配。例如,输出值可以是一个概率分布,则标签的标注也可以为概率分布。若N层神经网络是分类神经网络,类别包括猫、狗、鸟三类,每层神经网络的输出形如(X,Y,Z)的概率分布,其中,X表示图像为猫的概率,Y表示图像为狗的概率,Z表示图像为鸟的概率。当输入的图像属于猫,则该图像的标签为(1,0,0);当输入的图像属于狗,则该图像的标签为(0,1,0)。在一些实施例中,训练数据的标签可以是线下人工标注,也可以是通过自动识别、统计等方式线上标注。
在一些实施例中,可以基于第二反馈信号反向调节1~K层神经网络的参数,或/和基于第三反馈信号反向调节1~N层神经网络的参数。具体的,可以基于上述的公式(1)实现。其中,当基于第二反馈信号调节1~K层神经网络的参数时,公式(1)中Gx的x为2,表示第二反馈信息,t为1~K的整数;当基于第三反馈信号调节1~N层神经网络的参数时,Gx中的x为3,表示第三反馈信息,t为1~N的整数。
在一些实施例中,第二反馈信号G2可以是第一损失函数关于1~K层神经网络的参数的梯度,第三反馈信号G3可以是第二损失函数关于1~N层神经网络的参数的梯度,其中,第一损失函数根据第一概率分布和标签确定,第二损失函数根据第二概率分布和标签确定。关于根据第一概率分布和标签确定第二反馈信号的更多细节参见图4及其相关描述,根据第二概率分布和标签确定第三反馈信号的更多细节参见图5及其相关描述,此处不再赘述。
本实施例通过第一概率分布与标签确定的第二反馈信号调节1~K层神经网络可以使K层神经网络预测结果与标签的结果不断靠近。例如,标签的标记为(1,0,0),第一概率分布为(0.3,0.4,0.3),经过第二反馈信号调节后,第K层神经网络的预测值为(0.5,0.3,0.2),不断向标签概率分布靠近。若神经网络用于分类时且概率分布中第一个概率代表是猫的概率,第二个概率代表是狗的概率,第二个概率代表是鸟的概率。经过第一反馈信号调节后的神经网络的分类结果与标签确定的类别一致,分类结果都是猫。
本实施例通过1~N层神经网络(即,深层神经网络)参数的调节信号(即,第三反馈信号)去影响1~K层神经网络(即,浅层神经网络)参数的调节,可以进一步提升K层神经网络(即,浅层神经网络)的数据预测效果。例如,标签的标记为(1,0,0),第一概率分布为(0.3,0.4,0.3),第二概率分布为(0.55,0.25,0.2),经过第二反馈信号调节后,第K层神经网络的预测值为(0.5,0.3,0.2),第N层神经网络的预测值为(0.6,0.2,0.2),经过第三反馈信号调节后,第K层神经网络的预测值为(0.76,0.14,0.1),第N层神经网络的预测值为(0.8,0.1,0.1)。
综上所述,通过第一反馈信号、第二反馈信号和第三反馈信号对1~K层神经网络参数的调节,充分保证了K层神经网络的预测准确率。
对于预警行业而言,需要保证预警预测具有高的准确率,防止出现错误预警导致后续采取不合适的干预措施,从而造成资源、人工浪费等不良后果。在一些实施例中,可以采用训练好的K层神经网络对预警数据进行预测。预警数据是指需要监控的任何数据,例如,文本、图像以及语音等。在一些实施例中,预警数据可以根据监控目的进行划分。在一些实施例中,预警数据可以划分为舆情预警数据、违法预警数据等,其中,舆情预警数据可以是不好的言论数据,例如,对个人或者企业的不好的评价,违法预警数据是指违反法律的言论数据,例如,个人发布的宣扬赌博的言论。
在一些实施例中,可以采用训练好的K层神经网络对目标数据进行预测,得到目标数据的目标预测结果。
目标数据可以是指待确定预测结果的数据。例如,对于用于分类的神经网络,目标数据是指待分类的数据,例如,待分类的图像。目标预测结果是指将目标数据输入训练好的K层神经网络中得到的预测结果。
图3是根据本说明书的一些实施例所示的确定第一反馈信号的方法的示例性流程图。如图3所示,该确定第一反馈信号方法300包括:
步骤302,基于所述第一概率分布和所述第二概率分布确定差异函数;所述差异函数用于衡量两个概率分布的差异情况。具体的,步骤302可以由反馈信号确定模块120执行。
差异函数可以用来衡量两个概率分布的差异情况。函数值越大,代表两个概率分布差异越大。当两个概率分布完全相同时,差异函数值为0。例如,由第一概率和第二概率确定的差异函数的值越大,说明第一概率分布与第二概率分布的差异越大,即说明K层神经网络的预测效果和N层神经网络的预测效果差异越大。
在一些实施例中,差异函数可以是KL距离函数或JS距离函数等。即,D可以是KL距离函数或JS距离函数。
以KL距离函数为例,单个训练数据的差异函数为公式(2),多个训练数据的差异函数是单个训练数据的差异函数的叠加:
其中,L代表差异函数值,KL(P,Q)表示差异函数,pi表示第一概率分布{p1,p2,p3,...,pn}中的第i个概率值,qi表示第二概率分布{q1,q2,q3,...,qn}的第i个概率值,i为1~n,n为第一概率分布和第二概率分布的向量维数。
以训练数据为图像数据,N层神经网络为分类神经网络模型为例,图像的类别包括猫、狗,N层神经网络输出形如(X,Y)的概率分布,其中,X表示神经网络预测该图像属于猫的概率,Y表示神经网络预测该图像属于狗的概率,若K层神经网络输出的概率分布为(p1,p2),N层神经网络输出的概率分布为(q1,q2),则差异函数为
步骤304,基于所述差异函数计算差异幅度,将所述差异幅度确定为所述第一反馈信号;其中,所述差异幅度用于表示差异函数的差异程度。具体的,步骤304可以由反馈信号确定模块120执行。
在一些实施例中,差异幅度可以为差异函数的一阶导数、二阶导数、偏导数等。在一些实施例中,差异幅度可以是差异函数关于K层神经网络的参数的梯度,即差异函数关于K层神经网络的参数的偏导数,其中,参数可以是神经网络中层与层之间的连接权重或神经网络输出层的偏置。若差异函数仍用上述KL(P,Q)表示,K层神经网络中第t层参数可以用wt表示,则差异幅度可以是其中,t为1~K。
在一些实施例中,可以将差异幅度确定为第一反馈信号G1,用于1~K层神经网络参数的调节。关于根据第一反馈信号调节1~K层神经网络参数的更多细节参见图2及其相关描述,此处不再赘述。
图4是根据本说明书的一些实施例所示的确定第二反馈信号的方法的示例性流程图。如图4所述,该确定第二反馈信号方法包括:
步骤402,基于所述第一概率分布和所述标签确定第一损失函数。具体的,步骤402可以由反馈信号确定模块120执行。
损失函数可以是用来评价正在训练的神经网络得到的预测值和训练数据的真实值之间的差距,其中,预测值是指将训练数据输入正在训练的神经网络得到的输出值。真实值可以是训练数据的标签值。
损失函数可以包括但不限于均方误差损失函数、交叉熵损失函数、指数损失函数等。
第一损失函数是指根据第一概率分布和标签确定的损失函数。以交叉熵损失函数为例,单个训练数据的第一损失函数为公式(3),多个训练数据的第一损失函数是单个训练数据的损失函数的叠加:
L1=-log p1 (3)
其中,L1为第一损失函数,p1是第K层神经网络预测的训练数据属于标签的概率,该概率是第一概率分布中多个概率中的一个。
例如,某张图片的标签为(1,0,0),代表该图片真实类别为猫。将将该图片输入神经网络后,第K层神经网络输出的第一概率分布为(0.3,0.4,0.3),其中,该概率分布表示该图像属于猫的概率为0.3,属于狗的概率为0.4,属于鸟的概率为0.3。因此,p1为0.3,代表第K层神经网络预测的该图片属于标签确定的类别的概率为0.3。
步骤404,将所述第一损失函数关于所述K层神经网络的所述参数的梯度确定为所述第二反馈信号。具体的,步骤404可以由反馈信号确定模块120执行。
图5是根据本说明书的一些实施例所示的确定第三反馈信号的方法的示例性流程图。如图5所述,该确定第三反馈信号方法包括:
步骤502,基于所述第二概率分布和所述标签确定第二损失函数。具体的,步骤502可以由反馈信号确定模块120执行。
第二损失函数是指根据第二概率分布和标签确定的损失函数。
在一些实施例中,第二损失函数和第一损失函数的类型可以相同,也可以不相同。
以交叉熵损失函数为例,单个训练数据的第二损失函数可以为公式(4),多个训练数据的第二损失函数是单个训练数据的损失函数的叠加:
L2=-log p2 (4)
其中,L2为第二损失函数,p2是第N层神经网络预测的训练数据属于标签的概率,该概率是第二概率分布中多个概率中的一个。
例如,若某张图片的标签为(1,0,0),代表该图片真实类别为猫,将该图片输入神经网络后,第N层神经网络输出的第二概率分布为(0.5,0.2,0.3),其中,该概率分布表示该图像属于猫的概率为0.5,属于狗的概率为0.2,属于鸟的概率为0.3。因此,p2为0.5,代表第N层神经网络预测的该图片属于标签确定的类别的概率为0.5。
步骤504,将所述第二损失函数关于所述N层神经网络的所述参数的梯度确定为所述第三反馈信号。具体的,步骤504可以由反馈信号确定模块120执行。
在一些实施例中,第三反馈信号可以是第二损失函数关于1~N层神经网络参数的梯度,即第二损失函数关于N层神经网络的参数的偏导数,第三反馈信号为其中,t为1~N。在一些实施例中,第三反馈信号可以用于1~N的层神经网络参数的调节。
本说明书实施例还提供一种装置,其至少包括处理器以及存储器。所述存储器用于存储指令。当所述指令被所述处理器执行时,导致所述装置实现前述的训练神经网络的方法。所述方法可以包括:将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数;根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。
本说明书实施例还提供一种计算机可读存储介质。所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机实现前述的训练神经网络的方法。所述方法可以包括:将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数;根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;根据所述第一反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。
本说明书实施例可能带来的有益效果包括但不限于:(1)使第K层神经网络输出的概率分布不断地学习第N层神经网络输出的概率分布,使得K层神经网络(浅层神经网络)的预测效果尽量能够与N层神经网络(深层神经网络)的预测效果一致,提高了K层神经网络的预测效果。(2)基于训练好的K层神经网络预测,保证了预测的速度;(3)训练好的K层神经网络能应用于要求预测精度高且预测速度快的预测业务。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书进行各种修改、改进和修正。该类修改、改进和修正在本说明书中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。此外,本说明书的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP.动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的***组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的***。
同理,应当注意的是,为了简化本说明书披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本说明书一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。
Claims (19)
1.一种训练神经网络的方法,包括:
将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数,所述训练数据为图像数据,所述N层神经网络为分类神经网络,所述第一概率分布和所述第二概率分布包含所述图像数据属于各个类别的概率;
根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;
基于所述第一概率分布与所述训练数据的标签确定第二反馈信号;
基于所述第二概率分布与所述训练数据的标签确定第三反馈信号;
根据所述第一反馈信号、所述第二反馈信号和所述第三反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络。
2.如权利要求1所述的方法,所述根据所述第一概率分布与所述第二概率分布,确定第一反馈信号包括:
基于所述第一概率分布和所述第二概率分布确定差异函数;所述差异函数用于衡量两个概率分布的差异情况;
基于所述差异函数计算差异幅度,将所述差异幅度确定为所述第一反馈信号;其中,所述差异幅度用于表示差异函数的差异程度。
3.如权利要求2所述的方法,所述差异幅度为所述差异函数关于所述K层神经网络的所述参数的梯度。
4.如权利要求2所述的方法,所述差异函数为KL距离函数或JS距离函数。
5.如权利要求1所述的方法,所述N为大于10的整数,所述K为大于等于2、小于等于5的整数。
6.如权利要求1所述的方法,所述基于所述第一概率分布与所述训练数据的标签确定第二反馈信号包括:
基于所述第一概率分布和所述标签确定第一损失函数;
将所述第一损失函数关于所述K层神经网络的所述参数的梯度确定为所述第二反馈信号。
7.如权利要求1所述的方法,所述基于所述第二概率分布与所述训练数据的标签确定第三反馈信号包括:
基于所述第二概率分布和所述标签确定第二损失函数;
将所述第二损失函数关于所述N层神经网络的所述参数的梯度确定为所述第三反馈信号。
8.如权利要求1所述的方法,所述训练好的K层神经网络用于预警数据的预测。
9.一种基于神经网络进行预测的方法,包括:
采用如权利要求1所述的训练好的K层神经网络对目标数据进行预测,得到目标数据的目标预测结果,所述目标数据为待分类图像,所述训练好的K层神经网络为分类的神经网络,所述目标预测结果为所述待分类图像的类别预测结果。
10.一种训练神经网络的***,包括:
概率分布确定模块,用于将训练数据输入N层神经网络,第K层神经网络输出第一概率分布,第N层神经网络输出第二概率分布;其中,N大于K,N和K为大于0的整数,所述训练数据为图像数据,所述N层神经网络为分类神经网络,所述第一概率分布和所述第二概率分布包含所述图像数据属于各个类别的概率;
反馈信号确定模块,用于根据所述第一概率分布与所述第二概率分布,确定第一反馈信号;
参数调节模块,用于根据所述第一反馈信号、第二反馈信号和第三反馈信号调节1~K层神经网络的参数,使得所述1~K层神经网络学习所述第N层神经网络输出的第二概率分布,得到训练好的K层神经网络;其中,所述第二反馈信号基于所述第一概率分布与所述训练数据的标签确定,所述第三反馈信号基于所述第二概率分布与所述训练数据的标签确定。
11.如权利要求10所述的***,所述反馈信号确定模块用于:
基于所述第一概率分布和所述第二概率分布确定差异函数;所述差异函数用于衡量两个概率分布的差异情况;
基于所述差异函数计算差异幅度,将所述差异幅度确定为所述第一反馈信号;其中,所述差异幅度用于表示差异函数的差异程度。
12.如权利要求11所述的***,所述差异幅度为所述差异函数关于所述K层神经网络的所述参数的梯度。
13.如权利要求11所述的***,所述差异函数为KL距离函数或JS距离函数。
14.如权利要求10所述的***,所述N为大于10的整数,所述K为大于等于2、小于等于5的整数。
15.如权利要求10所述的***,所述反馈信号确定模块还用于:
基于所述第一概率分布和所述标签确定第一损失函数;
将所述第一损失函数关于所述K层神经网络的所述参数的梯度确定为所述第二反馈信号。
16.如权利要求10所述的***,所述反馈信号确定模块还用于:
基于所述第二概率分布和所述标签确定第二损失函数;
将所述第二损失函数关于所述N层神经网络的所述参数的梯度确定为所述第三反馈信号。
17.如权利要求10所述的***,所述K层神经网络用于预警数据的预测。
18.一种训练神经网络的装置,包括至少一个存储介质和至少一个处理器,所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现如权利要求1~8任一项所述的方法。
19.一种计算机可读存储介质,所述存储介质存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机执行如权利要求1~8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911202734.7A CN111079574B (zh) | 2019-11-29 | 2019-11-29 | 一种训练神经网络的方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911202734.7A CN111079574B (zh) | 2019-11-29 | 2019-11-29 | 一种训练神经网络的方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111079574A CN111079574A (zh) | 2020-04-28 |
CN111079574B true CN111079574B (zh) | 2022-08-02 |
Family
ID=70312096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911202734.7A Active CN111079574B (zh) | 2019-11-29 | 2019-11-29 | 一种训练神经网络的方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111079574B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977707A (zh) * | 2017-11-23 | 2018-05-01 | 厦门美图之家科技有限公司 | 一种对抗蒸馏神经网络模型的方法及计算设备 |
CN109344959A (zh) * | 2018-08-27 | 2019-02-15 | 联想(北京)有限公司 | 神经网络训练方法、神经网络***和计算机*** |
CN109934285A (zh) * | 2019-03-11 | 2019-06-25 | 吉林大学 | 一种基于深度学习的图像分类神经网络压缩模型设计 |
JP2019159654A (ja) * | 2018-03-12 | 2019-09-19 | 国立研究開発法人情報通信研究機構 | 時系列情報の学習システム、方法およびニューラルネットワークモデル |
CN110472730A (zh) * | 2019-08-07 | 2019-11-19 | 交叉信息核心技术研究院(西安)有限公司 | 一种卷积神经网络的自蒸馏训练方法和可伸缩动态预测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11410029B2 (en) * | 2018-01-02 | 2022-08-09 | International Business Machines Corporation | Soft label generation for knowledge distillation |
-
2019
- 2019-11-29 CN CN201911202734.7A patent/CN111079574B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107977707A (zh) * | 2017-11-23 | 2018-05-01 | 厦门美图之家科技有限公司 | 一种对抗蒸馏神经网络模型的方法及计算设备 |
JP2019159654A (ja) * | 2018-03-12 | 2019-09-19 | 国立研究開発法人情報通信研究機構 | 時系列情報の学習システム、方法およびニューラルネットワークモデル |
CN109344959A (zh) * | 2018-08-27 | 2019-02-15 | 联想(北京)有限公司 | 神经网络训练方法、神经网络***和计算机*** |
CN109934285A (zh) * | 2019-03-11 | 2019-06-25 | 吉林大学 | 一种基于深度学习的图像分类神经网络压缩模型设计 |
CN110472730A (zh) * | 2019-08-07 | 2019-11-19 | 交叉信息核心技术研究院(西安)有限公司 | 一种卷积神经网络的自蒸馏训练方法和可伸缩动态预测方法 |
Non-Patent Citations (2)
Title |
---|
MSD: MULTI-SELF-DISTILLATION LEARNING VIA MULTI-CLASSIFIERS WITHIN DEEP NEURAL NETWORKS;Yunteng Luan等;《arXiv》;20191121;第1-7页 * |
智能决策***的深度神经网络加速与压缩方法综述;黄迪等;《指挥信息***与技术》;20190430;第10卷(第2期);第8-13页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111079574A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220067588A1 (en) | Transforming a trained artificial intelligence model into a trustworthy artificial intelligence model | |
CN111582500A (zh) | 一种提高模型训练效果的方法和*** | |
CN111222588B (zh) | 一种后门样本检测方法、***及装置 | |
CN114787831B (zh) | 改进分类模型的准确性 | |
CN112633310A (zh) | 具有改进的训练鲁棒性地对传感器数据进行分类的方法和*** | |
CN111046394A (zh) | 一种基于对抗样本增强模型抗攻击能力的方法和*** | |
CN111340143A (zh) | 一种获取对抗样本生成模型的方法和*** | |
CN111309975A (zh) | 一种增强图模型抗攻击能力的方法和*** | |
CN111340245B (zh) | 一种模型训练方法及*** | |
CN110782349A (zh) | 一种模型训练方法和*** | |
CN112613617A (zh) | 基于回归模型的不确定性估计方法和装置 | |
CN110704627B (zh) | 一种训练分类模型的方法及*** | |
CN111461353A (zh) | 一种模型训练的方法和*** | |
CN111192121A (zh) | 一种基于ann的风险纳税人自动预警方法及*** | |
CN110941824B (zh) | 一种基于对抗样本增强模型抗攻击能力的方法和*** | |
CN113313463A (zh) | 应用于大数据云办公的数据分析方法及数据分析服务器 | |
CN111079574B (zh) | 一种训练神经网络的方法及*** | |
CN110909885B (zh) | 一种平衡多个任务的方法及*** | |
CN107291882A (zh) | 一种数据自动统计分析方法 | |
CN110991613B (zh) | 一种训练神经网络的方法及*** | |
CN113380363B (zh) | 基于人工智能的医疗数据质量评价方法及*** | |
US20230036483A1 (en) | Data Anomaly Forecasting From Data Record Meta-Statistics | |
CN111160419B (zh) | 一种基于深度学习的电子式互感器数据分类预测方法及装置 | |
CN111046380B (zh) | 一种基于对抗样本增强模型抗攻击能力的方法和*** | |
US11803815B1 (en) | System for the computer matching of targets using machine learning |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |