CN104134091B - 一种神经网络训练方法 - Google Patents

一种神经网络训练方法 Download PDF

Info

Publication number
CN104134091B
CN104134091B CN201410360578.8A CN201410360578A CN104134091B CN 104134091 B CN104134091 B CN 104134091B CN 201410360578 A CN201410360578 A CN 201410360578A CN 104134091 B CN104134091 B CN 104134091B
Authority
CN
China
Prior art keywords
parameter
value
kth
enumerator
label
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
Application number
CN201410360578.8A
Other languages
English (en)
Other versions
CN104134091A (zh
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.)
Hisense Group Co Ltd
Original Assignee
Hisense Group 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 Hisense Group Co Ltd filed Critical Hisense Group Co Ltd
Priority to CN201410360578.8A priority Critical patent/CN104134091B/zh
Publication of CN104134091A publication Critical patent/CN104134091A/zh
Application granted granted Critical
Publication of CN104134091B publication Critical patent/CN104134091B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Feedback Control In General (AREA)

Abstract

本发明实施例涉及人工智能和模式识别技术领域,尤其涉及一种神经网络训练方法,用以解决现有技术中训练过程收敛速度慢的问题。本发明实施例的方法包括:获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;计算第一参数;其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值;根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率。由于基于标签值的误差的情况,对下一次迭代过程的学习率进行调整,从而可引导训练过程以高效的方式快速向全局最优的方向进行收敛。

Description

一种神经网络训练方法
技术领域
本发明涉及人工智能和模式识别技术领域,尤其涉及一种神经网络训练方法。
背景技术
深度神经网络是近几年来比较热的一个研究方向,它从仿生学的角度模拟人脑的分多层计算架构体系,是最接近人工智能的一个方向,它更能表征信号的最本质的不变特征。近几年在语音识别及图像处理领域,深度学习均取得了较好的结果。深度神经网络有很多模型,神经网络(Convolutional neural networks,Cnns)是其中一个重要的模型。
神经网络训练过程中的学习算法,用于对训练过程进行控制,引导训练过程向最优的方向收敛。如图1所示,从点A开始,向点B极值点收敛,在实际问题中,收敛过程中学习算法的学习率不是线性变化或者不变的。从图可看,不同的阶段,需要不同的学习率,而且学习率是非线性变化的,训练过程需要根据结果的变化对学习了进行调整,如在开始阶段,需要较大的学习率来获得较大步长,而在接近最优点时则需要较小的学习率和步长,否则无法快速收敛到最优。基于该过程分析可得出这样的结论,在训练过程中,学习率需要根据具体情况,进行提高和降低,以此来保证最终训练的到模型的效果和训练效率。
但传统的训练方法中学习率是固定值,或为线性调节的值,变化方向单一,变化规律单一,从而导致训练过程收敛速度慢、难以快速达到全局最优点。
综上所述,亟需一种神经网络训练方法,用以解决现有技术中训练过程收敛速度慢、难以快速达到全局最优点的问题。
发明内容
本发明实施例提供一种神经网络训练方法,用以解决现有技术中训练过程收敛速度慢、难以快速达到全局最优点的问题。
本发明实施例提供一种神经网络训练方法,包括以下步骤:
利用n个样本对神经网络进行迭代,在第k次迭代之后执行:
获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;其中,每个样本对应m个标签值预测值,每个样本的m个标签值预测值包括第一标签值预测值至第m标签值预测值;其中,n、m、k均为正整数,k大于1;
针对第一至第m标签值预测值中的每个标签值预测值,计算第一参数,其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值,i的取值范围为[1,m];
根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,所述根据第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
根据所述第一参数计算第二参数;其中,第i标签的第二参数为所述第i标签值的第一参数的方差;
根据所述第一参数和第二参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,所述根据第一参数和第二参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
针对第一至第m标签值预测值中的每个标签值预测值,根据第k-1次迭代过程中计算得到的第一参数与第二参数以及第k次迭代过程中计算得到的第一参数与第二参数,计算第三参数和第四参数;其中,第三参数为第k-1次迭代与第k次迭代过程中每个标签值的第一参数的差值的平均值,所述第四参数为第k-1次迭代与第k次迭代过程中每个标签值的第二参数的差值的平均值;
根据所述第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率;或
根据所述第一参数、第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,所述根据第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
统计所述第二参数、第三参数、第四参数与相应阈值的比较结果,根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率;
所述根据第一参数、第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率包括:统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,统计所述第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第二计数器清零:
所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
较佳的,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第一计数器和所述第二计数器清零:
第一计数器的数值不大于第一数值,和/或所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
较佳的,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
较佳的,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
较佳的,还包括:
若所述第二计数器的数值大于第二数值,所述第三计数器的数值小于第三数值,则结束训练过程。
较佳的,还包括:
若所述第一计数器的数值大于第一数值,所述第二计数器的数值大于第二数值,所述第三计数器的数值小于第三数值,则结束训练过程。
较佳的,
所述第一参数按下式计算:
ER ‾ i = Σ j = 0 n ( f ( x ) i - f i ) / n
所述第二参数按下式计算:
EV i = Σ j = 0 n ( f ( x ) i - ER ‾ i ) 2 / n
其中,j的取值范围为[1,n],n为样本个数;i的取值范围为[1,m],m为标签值的个数;fi是一个样本的第i标签值真实值;f(x)i是fi对应的第i标签值预测值;是第i标签值的第一参数;EVi是第i标签值的第二参数;
所述第三参数按下式计算:
ERC = Σ i = 0 m | ER ‾ i - ER ‾ ipre | / m
所述第四参数按下式计算:
EVC = Σ i = 0 m | EV i - EV ipre | / m
其中,是第k-1次迭代中的第i标签值的第一参数;EVipre是第k-1次迭代中第i标签值的第二参数;ERC是第三参数;EVC是第四参数。
本发明实施例中,获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;计算第一参数;其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值;根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率。由于基于标签值的误差的情况,对下一次迭代过程的学习率进行调整,从而可引导训练过程以高效的方式快速向全局最优的方向进行收敛。
附图说明
图1为背景技术提供的收敛示意图;
图2为本发明实施例提供的一种神经网络训练方法流程示意图;
图3为本发明实施例提供的另一种神经网络训练方法流程示意图;
图4为本发明实施例提供的另一种神经网络训练方法。
具体实施方式
本发明实施例中,获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;计算第一参数;其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值;根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率。由于基于标签值的误差的情况,对下一次迭代过程的学习率进行调整,从而可引导训练过程以高效的方式快速向全局最优的方向进行收敛。
为了使本发明的目的、技术方案及有益效果更佳清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明所提供的实施例适用于神经网络的模型训练过程,尤其适用深度卷积神经网络的最后一层是采用监督学习的方法优化模型,本领域技术人员可知,本发明实施例所提供的方法也适用于其它基于监督学习的方法优化模型的神经网络。较佳的,本发明实施例所提供的方法基于深度卷积神经网络进行介绍,具体流程如下:
在实施之前,提供样本以及样本对应的标签值真实值,接着依据每次迭代的学习率对数学模型进行迭代,输出每个样本每个标签值的预测值,直至所输出的每个标签值的预测值接近训练开始前提供的每个标签值的真实值,即达到全局最优点时,训练结束。
本发明实施例所提供的方法基于初始化学习率进行第1次迭代之后,获取第一迭代的输出数据,未达到全局最优点,接着进行第2次迭代,未达到全局最优点,并依据第2次迭代之后输出的数据和第1次迭代之后输出的数据,结合本发明实施例所提供的方法对第3第迭代所使用的学习率进行调节,在以后的第k次迭代过程中,也结合本发明实施例所提供的方法对第k+1次迭代过程的学习率进行调节,直至达到全局最优点。本发明实施例中每个样本的标签值均包括标签值真实值和标签值预测值,其中,标签值真实值是进行训练之前提供的,标签值预测值是进行迭代之后输出的。
基于上述的系统架构,图2示出了本发明实施例提供的一种神经网络训练方法,包括以下步骤:
步骤201,准备样本以及样本的标签值真实值,构建模型,初始化学习率;之后执行步骤202;
在实施中,首先准备样本,样本可为以前的试验数据,可随机抽取多个样本;其次针对神经网络构建数学模型;此时,初始化模型和学习率,经神经网络的第一次迭代。
准备样本的标签值真实值,其中,一个样本可对应多个标签值,也可对应一个标签值,每个样本的标签值数量是相同的。
步骤202,输入样本进行迭代,获取样本的标签值预测值;之后执行步骤203;
在实施中,进行第1次迭代、第2次迭代之后,均未达到全局最优点,此时确定第3次迭代过程的学习率,本领域技术人员可知第3次以后的迭代过程的输出数据处理方法均与第3次迭代过程的输出数据处理方法一致,本发明实施例中使用第k次来代替第1次迭代过程之后的任意一次迭代过程。
获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;其中,每个样本对应m个标签值预测值,每个样本的m个标签值预测值包括第一标签值预测值至第m标签值预测值;其中,n、m、k均为正整数,k大于1;
例如,获取第2次迭代过程所使用的学习率所输出的标签值预测值,假设有3个样本,每个样本输出3个标签值预测值,则每个样本均有第1标签值预测值、第2标签值预测值、第3标签值预测值;相应的,神经网络在训练开始之前也对应提供了每个样本的每个标签的标签值真实值,每个样本均有第一标签值真实值、第2标签值真实值、第3标签值真实值。
步骤203,计算第一参数和第二参数;之后执行步骤204;
针对第一至第m标签值预测值中的每个标签值预测值,计算第一参数,并根据所述第一参数计算第二参数;其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值,第i标签的第二参数为所述第i标签值的第一参数的方差;其中,i的取值范围为[1,m];
较佳的,所述第一参数按下式计算:
ER ‾ i = Σ j = 0 n ( f ( x ) i - f i ) / n
所述第二参数按下式计算:
EV i = Σ j = 0 n ( f ( x ) i - ER ‾ i ) 2 / n
其中,j的取值范围为[1,n],n为样本个数;i的取值范围为[1,m],m为标签值的个数;fi是一个样本的第i标签值真实值;f(x)i是fi对应的第i标签值真实值;是第i标签值的第一参数;EVi是第i标签值的第二参数;
依旧如步骤202中所举得例子,表1中示出了第2次迭代过程中3个样本的输出的3个标签值预测值以及训练开始前提供的3个样本的标签值的真实值:
表1
依据表1中数据计算第一参数:
第一标签值的第一参数为:
依据同样的方法计算出第二标签值的第一参数和第三标签值的第一参数
依据表1中数据计算第二参数:
第一标签值的第二参数EV1为:
依据同样的方法计算出第二标签值的第二参数EV2和第三标签值的第二参数EV3
上述示例中,第2次迭代过程中:第一参数包括:第一标签值的第一参数第二标签值的第一参数第三标签值的第一参数第二参数包括:第一标签值的第二参数EV1、第二标签值的第二参数EV2、第三标签值的第二参数EV3
较佳的,在实施中,如果真实值过多,观察不方便,则可以通过以下两式求m个标签值的第一参数整体平均值和方差,以及m个标签值的第二参数整体平均值和方差:
ER ‾ = Σ j = 0 m ER ‾ i / m
EV = Σ j = 0 m EV i / m
上述两式在实际操作中,可帮助操作人员检测当前的训练过程进行的状态。
步骤204,计算第三参数和第四参数;之后执行步骤205;
针对第一至第m标签值预测值中的每个标签值预测值,根据第k-1次迭代过程中计算得到的第一参数与第二参数以及第k次迭代过程中计算得到的第一参数与第二参数,计算第三参数和第四参数;其中,第三参数为第k-1次迭代与第k次迭代过程中每个标签值的第一参数的差值的平均值,所述第四参数为第k-1次迭代与第k次迭代过程中每个标签值的第二参数的差值的平均值;
若所述第一参数小于第一阈值,则将第一计数器的数值加1;若所述第二参数小于第二阈值,则将第二计数器的数值加1;
所述第三参数按下式计算:
ERC = Σ i = 0 m | ER ‾ i - ER ‾ ipre | / m
所述第四参数按下式计算:
EVC = Σ i = 0 m | EV i - EV ipre | / m
其中,是第k-1次迭代中的第i标签值的第一参数;EVipre是第k-1次迭代中第i标签值的第二参数;ERC是第三参数;EVC是第四参数。
依据上述示例以及表1中数据以及第1次迭代过程输出的数据计算第2次迭代过程中的第三参数ERC:
较佳的,依据第1次迭代过程输出的数据计算第1次迭代过程中的第一参数和第二参数,这一过程可发生在第1次迭代之后,也可发生在计算第2次迭代过程的第三参数和第四参数的时候,临时进行计算。
依据上述示例以及表1中数据以及第1次迭代过程输出的数据计算第2次迭代过程中的第四参数EVC:
(第2次迭代过程与第1次迭代过程输出的第一标签值的第二参数差值的绝对值+第2次迭代过程与第1次迭代过程输出的第一标签值的第二参数差值的绝对值+第2次迭代过程与第1次迭代过程输出的第一标签值的第二参数差值的绝对值)/标签值个数=((|第2次迭代EV1-第1次迭代EV1pre|)+(|第2次迭代EV2-第1次迭代EV2pre|)+(|第2次迭代EV2-第1次迭代EV3pre|))/3=EVC
上述示例中,第三参数包括:ERC;第四参数包括:EVC。
步骤205,依据所有参数与其对应的阈值的关系,调整计数器的值,判断第三计数器是否大于等于第三数值;是则执行步骤206;不是,则执行步骤207;
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
且,第一计数器和第二计数器在每次迭代过程结束时自动清零,第三计数器则在第三计数器的数值大于等于第三数值时,自动清零,以便在进行的下一次迭代过程中重新从零计数。
若第三计数器的数值大于等于第三数值,则表示,连续多次迭代过程中,第三参数和第四参数的变化都很小,但还是没有达到全局最优点,说明此时该提高学习率,增加步长,以提高收敛速度。
若第三计数器的数值小于第三数值,则执行步骤207。
步骤206,将下一次迭代过程所使用的学习率提高;之后重复执行步骤202,进行下一次迭代;
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
由于,此时第三计数器的数值已经不小于第三数值了,为了进行下一次对第三计数器的数值进行判断,则此时需要将第三计数器清零,在后续迭代过程中再次从零开始累加。
步骤207,判断是否满足条件:第一计数器大于第一数值,且第二计数器大于第二数值;若第一计数器大于第一数值,且第二计数器大于第二数值,则执行步骤209;若第一计数器小于等于第一数值,和/或第二计数器小于等于第二数值,则执行步骤208;
此时,第三计数器的数值小于第三数值,说明最近几次第三参数和第四参数的变化都很小,接着判断是否满足全局最优点的条件,即第一计数器大于第一数值,且第二计数器大于第二数值,说明在该次迭代过程中,标签值真实值和标签值预测值之间的误差都很小,且误差的预测波动程度也很小,已经达到全局最优点,此时执行步骤209;
若第三计数器的数值小于第三数值,但未满足全局最优点的条件,则说明此时处于极值点附近,需要将学习率降低,精细调整。
步骤208,将下一次迭代过程所使用的学习率降低;之后重复执行步骤202,进行下一次迭代;
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第一计数器和所述第二计数器清零:
第一计数器的数值不大于第一数值,和/或所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
步骤209,训练结束。
若所述第一计数器的数值大于第一数值,所述第二计数器的数值大于第二数值时,所述第三计数器的数值小于第三数值时,则结束训练过程。
在实施中,以上是基本的流程,全部过程自动完成,不需人工干预,为了增加过程的可控性,每次学习率修改后,将其保存成文件,在下一次训练开始之前,读取学习率文件。同时保存以上计算的参数,由于通过参数很容易观察当前训练状态,因此,可在训练过程中手动调节学习率,人为引导训练过程。提高效率。进一步,由于过程中保留了每次训练获得的模型,因此,当训练结束,或者当训练次数超过设定值而结束训练后,可以根据训练过程中的参数值,选择最优的那一次训练得到的模型作为最终的预测模型。
基于上述的系统架构,图3示出了本发明实施例提供的一种神经网络训练方法,包括以下步骤:
步骤301,准备样本以及样本的标签值真实值,构建模型,初始化学习率;之后执行步骤302;
在实施中,首先准备样本,样本可为以前的试验数据,可随机抽取多个样本;其次针对神经网络构建数学模型;此时,初始化模型和学习率,经神经网络的第一次迭代。
准备样本的标签值真实值,其中,一个样本可对应多个标签值,也可对应一个标签值,每个样本的标签值数量是相同的。
步骤302,输入样本进行迭代,获取样本的标签值预测值;之后执行步骤303;
在实施中,进行第1次迭代、第2次迭代之后,均未达到全局最优点,此时确定第3次迭代过程的学习率,本领域技术人员可知第3次以后的迭代过程的输出数据处理方法均与第3次迭代过程的输出数据处理方法一致,本发明实施例中使用第k次来代替第1次迭代过程之后的任意一次迭代过程。
获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;其中,每个样本对应m个标签值预测值,每个样本的m个标签值预测值包括第一标签值预测值至第m标签值预测值;其中,n、m、k均为正整数,k大于1;
例如,获取第2次迭代过程所使用的学习率所输出的标签值预测值,假设有3个样本,每个样本输出3个标签值预测值,则每个样本均有第1标签值预测值、第2标签值预测值、第3标签值预测值;相应的,神经网络在训练开始之前也对应提供了每个样本的每个标签的标签值真实值,每个样本均有第一标签值真实值、第2标签值真实值、第3标签值真实值。
步骤303,计算第一参数和第二参数;之后执行步骤304;
针对第一至第m标签值预测值中的每个标签值预测值,计算第一参数,并根据所述第一参数计算第二参数;其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值,第i标签的第二参数为所述第i标签值的第一参数的方差;其中,i的取值范围为[1,m];
较佳的,所述第一参数按下式计算:
ER ‾ i = Σ j = 0 n ( f ( x ) i - f i ) / n
所述第二参数按下式计算:
EV i = Σ j = 0 n ( f ( x ) i - ER ‾ i ) 2 / n
其中,j的取值范围为[1,n],n为样本个数;i的取值范围为[1,m],m为标签值的个数;fi是一个样本的第i标签值真实值;f(x)i是fi对应的第i标签值真实值;是第i标签值的第一参数;EVi是第i标签值的第二参数;
依旧如步骤302中所举得例子,引用上述实施例中的表1,表1中示出了第2次迭代过程中3个样本的输出的3个标签值预测值以及训练开始前提供的3个样本的标签值的真实值;
依据表1中数据计算第一参数:
第一标签值的第一参数为:
依据同样的方法计算出第二标签值的第一参数和第三标签值的第一参数
依据表1中数据计算第二参数:
第一标签值的第二参数EV1为:
依据同样的方法计算出第二标签值的第二参数EV2和第三标签值的第二参数EV3
上述示例中,第2次迭代过程中:第一参数包括:第一标签值的第一参数第二标签值的第一参数第三标签值的第一参数第二参数包括:第一标签值的第二参数EV1、第二标签值的第二参数EV2、第三标签值的第二参数EV3
较佳的,在实施中,如果真实值过多,观察不方便,则可以通过以下两式求m个标签值的第一参数整体平均值和方差,以及m个标签值的第二参数整体平均值和方差:
ER ‾ = Σ j = 0 m ER ‾ i / m
EV = Σ j = 0 m EV i / m
上述两式在实际操作中,可帮助操作人员检测当前的训练过程进行的状态。
步骤304,计算第三参数和第四参数;之后执行步骤305;
针对第一至第m标签值预测值中的每个标签值预测值,根据第k-1次迭代过程中计算得到的第一参数与第二参数以及第k次迭代过程中计算得到的第一参数与第二参数,计算第三参数和第四参数;其中,第三参数为第k-1次迭代与第k次迭代过程中每个标签值的第一参数的差值的平均值,所述第四参数为第k-1次迭代与第k次迭代过程中每个标签值的第二参数的差值的平均值;
若所述第一参数小于第一阈值,则将第一计数器的数值加1;若所述第二参数小于第二阈值,则将第二计数器的数值加1;
所述第三参数按下式计算:
ERC = Σ i = 0 m | ER ‾ i - ER ‾ ipre | / m
所述第四参数按下式计算:
EVC = Σ i = 0 m | EV i - EV ipre | / m
其中,是第k-1次迭代中的第i标签值的第一参数;EVipre是第k-1次迭代中第i标签值的第二参数;ERC是第三参数;EVC是第四参数。
依据上述示例以及表1中数据以及第1次迭代过程输出的数据计算第2次迭代过程中的第三参数ERC:
较佳的,依据第1次迭代过程输出的数据计算第1次迭代过程中的第一参数和第二参数,这一过程可发生在第1次迭代之后,也可发生在计算第2次迭代过程的第三参数和第四参数的时候,临时进行计算。
依据上述示例以及表1中数据以及第1次迭代过程输出的数据计算第2次迭代过程中的第四参数EVC:
(第2次迭代过程与第1次迭代过程输出的第一标签值的第二参数差值的绝对值+第2次迭代过程与第1次迭代过程输出的第一标签值的第二参数差值的绝对值+第2次迭代过程与第1次迭代过程输出的第一标签值的第二参数差值的绝对值)/标签值个数=((|第2次迭代EV1-第1次迭代EV1pre|)+(|第2次迭代EV2-第1次迭代EV2pre|)+(|第2次迭代EV2-第1次迭代EV3pre|))/3=EVC
上述示例中,第三参数包括:ERC;第四参数包括:EVC。
步骤305,依据所有参数与其对应的阈值的关系,调整计数器的值,判断第三计数器是否大于等于第三数值;是则执行步骤306;不是,则执行步骤307;
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
且,第一计数器和第二计数器在每次迭代过程结束时自动清零,第三计数器则在第三计数器的数值大于等于第三数值时,自动清零,以便在进行的下一次迭代过程中重新从零计数。
若第三计数器的数值大于等于第三数值,则表示,连续多次迭代过程中,第三参数和第四参数的变化都很小,但还是没有达到全局最优点,说明此时该提高学习率,增加步长,以提高收敛速度。
若第三计数器的数值小于第三数值,则执行步骤307。
步骤306,将下一次迭代过程所使用的学习率提高;之后重复执行步骤302,进行下一次迭代;
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
由于,此时第三计数器的数值已经不小于第三数值了,为了进行下一次对第三计数器的数值进行判断,则此时需要将第三计数器清零,在后续迭代过程中再次从零开始累加。
步骤307,判断是否满足条件:第二计数器大于第二数值;若第二计数器大于第二数值,则执行步骤309;若第二计数器小于等于第二数值,则执行步骤308;
此时,第三计数器的数值小于第三数值,说明最近几次第三参数和第四参数的变化都很小,接着判断是否满足全局最优点的条件,即第二计数器大于第二数值,说明在该次迭代过程中,标签值真实值和标签值预测值之间的误差都很小,且误差的预测波动程度也很小,已经达到全局最优点,此时执行步骤309;
若第三计数器的数值小于第三数值,但未满足全局最优点的条件,则说明此时处于极值点附近,需要将学习率降低,精细调整。
步骤308,将下一次迭代过程所使用的学习率降低;之后重复执行步骤302,进行下一次迭代;
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第二计数器清零:
所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
步骤309,训练结束。
若所述第二计数器的数值大于第二数值时,所述第三计数器的数值小于第三数值时,则结束训练过程。
在实施中,以上是基本的流程,全部过程自动完成,不需人工干预,为了增加过程的可控性,每次学习率修改后,将其保存成文件,在下一次训练开始之前,读取学习率文件。同时保存以上计算的参数,由于通过参数很容易观察当前训练状态,因此,可在训练过程中手动调节学习率,人为引导训练过程。提高效率。进一步,由于过程中保留了每次训练获得的模型,因此,当训练结束,或者当训练次数超过设定值而结束训练后,可以根据训练过程中的参数值,选择最优的那一次训练得到的模型作为最终的预测模型。
基于相同的构思,本发明实施例提供一种神经网络训练方法,如图4所示,包括以下步骤:
利用n个样本对神经网络进行迭代,在第k次迭代之后执行:
步骤401,获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;其中,每个样本对应m个标签值预测值,每个样本的m个标签值预测值包括第一标签值预测值至第m标签值预测值;其中,n、m、k均为正整数,k大于1;
步骤402,针对第一至第m标签值预测值中的每个标签值预测值,计算第一参数,其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值,i的取值范围为[1,m];
步骤403,根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,所述根据第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
根据所述第一参数计算第二参数;其中,第i标签的第二参数为所述第i标签值的第一参数的方差;
根据所述第一参数和第二参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,所述根据第一参数和第二参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
针对第一至第m标签值预测值中的每个标签值预测值,根据第k-1次迭代过程中计算得到的第一参数与第二参数以及第k次迭代过程中计算得到的第一参数与第二参数,计算第三参数和第四参数;其中,第三参数为第k-1次迭代与第k次迭代过程中每个标签值的第一参数的差值的平均值,所述第四参数为第k-1次迭代与第k次迭代过程中每个标签值的第二参数的差值的平均值;
根据所述第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率;或
根据所述第一参数、第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,所述根据第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
统计所述第二参数、第三参数、第四参数与相应阈值的比较结果,根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率;
所述根据第一参数、第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率包括:统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率。
较佳的,统计所述第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第二计数器清零:
所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
较佳的,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第一计数器和所述第二计数器清零:
第一计数器的数值不大于第一数值,和/或所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
较佳的,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
较佳的,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
较佳的,还包括:
若所述第二计数器的数值大于第二数值,所述第三计数器的数值小于第三数值,则结束训练过程。
较佳的,还包括:
若所述第一计数器的数值大于第一数值,所述第二计数器的数值大于第二数值,所述第三计数器的数值小于第三数值,则结束训练过程。
较佳的,
所述第一参数按下式计算:
ER ‾ i = Σ j = 0 n ( f ( x ) i - f i ) / n
所述第二参数按下式计算:
EV i = Σ j = 0 n ( f ( x ) i - ER ‾ i ) 2 / n
其中,j的取值范围为[1,n],n为样本个数;i的取值范围为[1,m],m为标签值的个数;fi是一个样本的第i标签值真实值;f(x)i是fi对应的第i标签值预测值;是第i标签值的第一参数;EVi是第i标签值的第二参数;
所述第三参数按下式计算:
ERC = Σ i = 0 m | ER ‾ i - ER ‾ ipre | / m
所述第四参数按下式计算:
EVC = Σ i = 0 m | EV i - EV ipre | / m
其中,是第k-1次迭代中的第i标签值的第一参数;EVipre是第k-1次迭代中第i标签值的第二参数;ERC是第三参数;EVC是第四参数。
从上述内容可以看出:获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;计算第一参数;其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值;根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率。由于基于标签值的误差的情况,对下一次迭代过程的学习率进行调整,从而可引导训练过程以高效的方式快速向全局最优的方向进行收敛。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种神经网络训练方法,其特征在于,包括以下步骤:
利用n个样本对神经网络进行迭代,在第k次迭代之后执行:
获取神经网络基于第k次迭代过程所使用的学习率对n个样本进行迭代后输出的n*m个标签值预测值;其中,每个样本对应m个标签值预测值,每个样本的m个标签值预测值包括第一标签值预测值至第m标签值预测值;其中,n、m、k均为正整数,k大于1;
针对第一至第m标签值预测值中的每个标签值预测值,计算第一参数,其中,第i标签值的第一参数为所述n个样本的第i标签值预测值与第i标签值真实值之间的误差的平均值,i的取值范围为[1,m];
根据所述第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率;其中,所述根据第一参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
根据所述第一参数计算第二参数;其中,第i标签的第二参数为所述第i标签值的第一参数的方差;
根据所述第一参数和第二参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
2.如权利要求1所述的方法,其特征在于,所述根据第一参数和第二参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
针对第一至第m标签值预测值中的每个标签值预测值,根据第k-1次迭代过程中计算得到的第一参数与第二参数以及第k次迭代过程中计算得到的第一参数与第二参数,计算第三参数和第四参数;其中,第三参数为第k-1次迭代与第k次迭代过程中每个标签值的第一参数的差值的平均值,所述第四参数为第k-1次迭代与第k次迭代过程中每个标签值的第二参数的差值的平均值;
根据所述第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率;或
根据所述第一参数、第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率。
3.如权利要求2所述的方法,其特征在于,所述根据第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率,包括:
统计所述第二参数、第三参数、第四参数与相应阈值的比较结果,根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率;
所述根据第一参数、第二参数、第三参数、第四参数调整所述神经网络的第k+1次迭代过程所使用的学习率包括:统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率。
4.如权利要求2所述的方法,其特征在于,统计所述第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第二计数器清零:
所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
5.如权利要求2所述的方法,其特征在于,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若满足以下条件,则将所述神经网络的第k+1次迭代过程所使用的学习率调低,并将所述第一计数器和所述第二计数器清零:
第一计数器的数值不大于第一数值,和/或所述第二计数器的数值不大于第二数值;且
所述第三计数器的数值小于第三数值。
6.如权利要求2所述的方法,其特征在于,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
7.如权利要求2所述的方法,其特征在于,统计所述第一参数、第二参数、第三参数、第四参数与相应阈值的比较结果,包括:
若所述第一参数小于第一阈值,则将第一计数器的数值加1;
若所述第二参数小于第二阈值,则将第二计数器的数值加1;
若所述第三参数小于第三阈值,且第四参数小于第四阈值,则将第三计数器的数值加1;
根据统计结果调整所述神经网络的第k+1次迭代过程所使用的学习率,具体包括:
若所述第三计数器的数值不小于第三数值,则将所述神经网络的第k+1次迭代过程所使用的学习率调高,并将所述第三计数器清零。
8.如权利要求4或6所述的方法,其特征在于,还包括:
若所述第二计数器的数值大于第二数值,所述第三计数器的数值小于第三数值,则结束训练过程。
9.如权利要求5或7所述的方法,其特征在于,还包括:
若所述第一计数器的数值大于第一数值,所述第二计数器的数值大于第二数值,所述第三计数器的数值小于第三数值,则结束训练过程。
10.如权利要求2所述的方法,其特征在于,
所述第一参数按下式计算:
E R ‾ i = Σ j = 0 n ( f ( x ) i - f i ) / n
所述第二参数按下式计算:
EV i = Σ j = 0 n ( f ( x ) i - E R ‾ i ) 2 / n
其中,j的取值范围为[1,n],n为样本个数;i的取值范围为[1,m],m为标签值的个数;fi是一个样本的第i标签值真实值;f(x)i是fi对应的第i标签值预测值;是第i标签值的第一参数;EVi是第i标签值的第二参数;
所述第三参数按下式计算:
E R C = Σ i = 0 m | E R ‾ i - E R ‾ i p r e | / m
所述第四参数按下式计算:
E V C = Σ i = 0 m | EV i - EV i p r e | / m
其中,是第k-1次迭代中的第i标签值的第一参数;EVipre是第k-1次迭代中第i标签值的第二参数;ERC是第三参数;EVC是第四参数。
CN201410360578.8A 2014-07-25 2014-07-25 一种神经网络训练方法 Active CN104134091B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410360578.8A CN104134091B (zh) 2014-07-25 2014-07-25 一种神经网络训练方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410360578.8A CN104134091B (zh) 2014-07-25 2014-07-25 一种神经网络训练方法

Publications (2)

Publication Number Publication Date
CN104134091A CN104134091A (zh) 2014-11-05
CN104134091B true CN104134091B (zh) 2017-01-18

Family

ID=51806764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410360578.8A Active CN104134091B (zh) 2014-07-25 2014-07-25 一种神经网络训练方法

Country Status (1)

Country Link
CN (1) CN104134091B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109882996A (zh) * 2019-01-25 2019-06-14 珠海格力电器股份有限公司 一种控制的方法及设备
CN112380631B (zh) * 2020-12-02 2023-02-14 黑龙江科技大学 一种基于神经网络的新型迭代混合试验方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214320A (zh) * 2010-04-12 2011-10-12 宋威 神经网络训练方法及采用该方法的垃圾邮件过滤方法
WO2013143396A1 (zh) * 2012-03-28 2013-10-03 中国移动通信集团公司 一种数字视频质量控制方法及其装置
CN103926832A (zh) * 2014-04-18 2014-07-16 哈尔滨工程大学 一种神经网络跟踪控制的自适应学习率调节方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102214320A (zh) * 2010-04-12 2011-10-12 宋威 神经网络训练方法及采用该方法的垃圾邮件过滤方法
WO2013143396A1 (zh) * 2012-03-28 2013-10-03 中国移动通信集团公司 一种数字视频质量控制方法及其装置
CN103926832A (zh) * 2014-04-18 2014-07-16 哈尔滨工程大学 一种神经网络跟踪控制的自适应学习率调节方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BP神经网络最优组合预测方法及其应用;鲍一丹等;《农机化研究》;20040531(第3期);全文 *
BP神经网络模型的改进;高洪深等;《系统工程理论与实践》;19960131(第1期);全文 *
基于自适应学习速率的改进型BP算法研究;杨甲沛;《中国优秀硕士学位论文全文数据库信息科技辑》;20090915(第09期);第21-23、26、35-37页 *

Also Published As

Publication number Publication date
CN104134091A (zh) 2014-11-05

Similar Documents

Publication Publication Date Title
CN102831269B (zh) 一种流程工业过程工艺参数的确定方法
WO2023019601A1 (zh) 基于结构优化算法的复值神经网络的信号调制识别方法
CN109597401B (zh) 一种基于数据驱动的设备故障诊断方法
CN109685314B (zh) 一种基于长短期记忆网络的非侵入负荷分解方法和系统
CN106446942A (zh) 基于增量学习的农作物病害识别方法
CN110378435A (zh) 一种基于卷积神经网络的苹果叶片病害识别的方法
CN108682023A (zh) 基于Elman神经网络的紧耦合无迹卡尔曼跟踪滤波算法
CN109271374A (zh) 一种基于机器学习的数据库健康度打分方法和打分系统
CN106023195A (zh) 基于自适应遗传算法的bp神经网络图像分割方法及装置
CN105680827A (zh) 一种腔体滤波器智能调谐算法及使用该算法的调谐方法
CN108760829A (zh) 一种基于仿生嗅球模型和卷积神经网络的电子鼻识别方法
CN108921285A (zh) 基于双向门控循环神经网络的序列中单一元素分类方法
CN108596327A (zh) 一种基于深度学习的地震速度谱人工智能拾取方法
CN106570516A (zh) 一种利用卷积神经网络cnn的障碍物识别方法
CN104462850A (zh) 基于模糊高斯混合模型的多阶段间歇过程软测量方法
CN110321810A (zh) 单通道信号双路分离方法、装置、存储介质及处理器
CN111523728B (zh) 一种四阶段混合短时风向预测方法
CN110852369B (zh) 联合3d/2d卷积网络和自适应光谱解混的高光谱图像分类方法
CN104123706A (zh) 一种基于自适应免疫遗传算法的图像增强方法
CN108665065A (zh) 任务数据的处理方法、装置、设备和存储介质
CN113780242A (zh) 一种基于模型迁移学习的跨场景水声目标分类方法
CN104134091B (zh) 一种神经网络训练方法
CN109308544A (zh) 基于对比散度-长短期记忆网络的蓝藻水华预测方法
CN107729988B (zh) 基于动态深度置信网络的蓝藻水华预测方法
CN109284662A (zh) 一种面向水下声音信号分类的迁移学习方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant