System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及人工智能,特别是涉及一种神经网络模型的训练方法、装置、计算机设备、存储介质和计算机程序产品。
技术介绍
1、在机器学习和人工智能领域,神经网络模型的训练过程是通过优化模型参数来最小化损失函数,以使神经网络模型能够对输入数据进行准确预测。
2、然而,在神经网络模型的训练过程中,有时会出现由于某次迭代的损失值剧增而导致梯度爆炸或不收敛等异常情况,从而需要进行更加多次的迭代才能得到满足要求的神经网络模型,增加了训练过程的计算开销,降低了训练效率。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种神经网络模型的训练方法、装置、计算机设备、存储介质和计算机程序产品。
2、本申请提供一种神经网络模型的训练方法,所述方法包括:
3、若当前次迭代为非首次迭代,在进行当前次迭代时,根据携带上次迭代后得到的模型参数的神经网络模型,对当前次迭代的训练数据进行前向计算,得到当前次迭代的损失值;
4、根据当前次迭代的损失值与上次迭代的损失值,得到与当前次迭代对应的损失变化量;
5、对与当前次迭代对应的损失变化量以及与历史次迭代对应的损失变化量进行统计,得到当前次迭代的损失门控阈值;
6、根据当前次迭代的损失值以及当前次迭代的损失门控阈值之间的相对大小,确定是否基于当前次迭代的损失值进行反向传播,以确定当前次迭代后得到的模型参数。
7、在一个实施例中,对与当前次迭代对应的损失变化量以及与历史次迭代对应的损失
8、基于对与历史次迭代对应的损失变化量进行的统计,确定上次迭代得到的损失变化量均值;
9、根据上次迭代得到的损失变化量均值以及与当前次迭代对应的损失变化量,确定当前次迭代得到的损失变化量均值;
10、根据当前次迭代得到的损失变化量均值以及上次迭代得到的损失变化量标准差,确定当前次迭代得到的损失变化量标准差;
11、根据当前次迭代得到的损失变化量标准差以及预设的基础损失门控阈值,得到当前次迭代的损失门控阈值。
12、在一个实施例中,根据上次迭代得到的损失变化量均值以及与当前次迭代对应的损失变化量,确定当前次迭代得到的损失变化量均值,包括:
13、按预设的均值衰减因子,得到第一权重和第二权重;所述均值衰减因子和第一权重成正相关,所述均值衰减因子和第二权重成负相关;
14、按所述第一权重赋给上次迭代得到的损失变化量均值,以及按所述第二权重赋给与当前次迭代对应的损失变化量,对上次迭代得到的损失变化量均值以及与当前次迭代对应的损失变化量进行加权求和,确定当前次迭代得到的损失变化量均值。
15、在一个实施例中,根据当前次迭代得到的损失变化量均值以及上次迭代得到的损失变化量标准差,确定当前次迭代得到的损失变化量标准差,包括:
16、获取当前次迭代得到的损失变化量均值以及与当前次迭代对应的损失变化量之间的差值;
17、对所述差值进行求平方处理,得到差值平方结果;
18、按预设的标准差衰减因子,得到第三权重和第四权重;所述标准差衰减因子和所述第三权重成正相关,所述标准差衰减因子和第四权重成负相关;
19、按所述第三权重赋给上次迭代得到的损失变化量标准差,以及按所述第四权重赋给差值平方结果,对上次迭代得到的损失变化量标准差以及差值平方结果进行加权求和,确定当前次迭代得到的损失变化量标准差。
20、在一个实施例中,根据当前次迭代得到的损失变化量标准差以及预设的基础损失门控阈值,得到当前次迭代的损失门控阈值,包括:
21、对当前次迭代得到的损失变化量标准差进行开平方根处理后,与预设的标准差放大系数相乘,再与预设的基础损失门控阈值进行相加,得到当前次迭代的损失门控阈值。
22、在一个实施例中,根据当前次迭代的损失值以及当前次迭代的损失门控阈值之间的相对大小,确定是否基于当前次迭代的损失值进行反向传播,以确定当前次迭代后得到的模型参数,包括:
23、若当前次迭代的损失值小于或等于当前次迭代的损失门控阈值,则基于当前次迭代的损失值进行反向传播,以对上次迭代后得到的模型参数进行更新,确定当前次迭代后得到的模型参数;
24、若当前次迭代的损失值大于当前次迭代的损失门控阈值,则不基于当前次迭代的损失值进行反向传播,将上次迭代后得到的模型参数确定为当前次迭代后得到的模型参数。
25、本申请提供一种神经网络模型的训练装置,所述装置包括:
26、前向计算模块,用于若当前次迭代为非首次迭代,在进行当前次迭代时,根据携带上次迭代后得到的模型参数的神经网络模型,对当前次迭代的训练数据进行前向计算,得到当前次迭代的损失值;
27、损失变化量获取模块,用于根据当前次迭代的损失值与上次迭代的损失值,得到与当前次迭代对应的损失变化量;
28、阈值确定模块,用于对与当前次迭代对应的损失变化量以及与历史次迭代对应的损失变化量进行统计,得到当前次迭代的损失门控阈值;
29、参数确定模块,用于根据当前次迭代的损失值以及当前次迭代的损失门控阈值之间的相对大小,确定是否基于当前次迭代的损失值进行反向传播,以确定当前次迭代后得到的模型参数。
30、本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行上述方法。
31、本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行上述方法。
32、本申请提供一种计算机程序产品,其上存储有计算机程序,所述计算机程序被处理器执行上述方法。
33、上述神经网络模型的训练方法、装置、计算机设备、存储介质和计算机程序产品,若当前次迭代为非首次迭代,在进行当前次迭代时,根据携带上次迭代后得到的模型参数的神经网络模型,对当前次迭代的训练数据进行前向计算,得到当前次迭代的损失值;根据当前次迭代的损失值与上次迭代的损失值,得到与当前次迭代对应的损失变化量;对与当前次迭代对应的损失变化量以及与历史次迭代对应的损失变化量进行统计,得到当前次迭代的损失门控阈值;根据当前次迭代的损失值以及当前次迭代的损失门控阈值之间的相对大小,确定是否基于当前次迭代的损失值进行反向传播,以确定当前次迭代后得到的模型参数。借助本方案,可以避免某次迭代的损失值剧增而导致梯度爆炸或者不收敛等异常情况,保证训练过程的稳定性,避免需要更加多次的迭代,降低计算开销,提高训练效率;并且本方案提供的动态自适应的损失门控阈值机制,根据与当前次迭代以及历史次迭代对应的损失变化量,可以进行动态调整,从而得到当前次迭代的损失门控阈值,避免固定损失门控阈值可能过于严格或过于宽松的缺码,使得损失门控更加合理高效。
本文档来自技高网...【技术保护点】
1.一种神经网络模型的训练方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,对与当前次迭代对应的损失变化量以及与历史次迭代对应的损失变化量进行统计,得到当前次迭代的损失门控阈值,包括:
3.根据权利要求2所述的方法,其特征在于,根据上次迭代得到的损失变化量均值以及与当前次迭代对应的损失变化量,确定当前次迭代得到的损失变化量均值,包括:
4.根据权利要求2所述的方法,其特征在于,根据当前次迭代得到的损失变化量均值以及上次迭代得到的损失变化量标准差,确定当前次迭代得到的损失变化量标准差,包括:
5.根据权利要求2所述的方法,其特征在于,根据当前次迭代得到的损失变化量标准差以及预设的基础损失门控阈值,得到当前次迭代的损失门控阈值,包括
6.根据权利要求1至5任一项所述的方法,其特征在于,根据当前次迭代的损失值以及当前次迭代的损失门控阈值之间的相对大小,确定是否基于当前次迭代的损失值进行反向传播,以确定当前次迭代后得到的模型参数,包括:
7.一种神经网络模型的训练装置,其特征在于,所述装置包
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
...【技术特征摘要】
1.一种神经网络模型的训练方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,对与当前次迭代对应的损失变化量以及与历史次迭代对应的损失变化量进行统计,得到当前次迭代的损失门控阈值,包括:
3.根据权利要求2所述的方法,其特征在于,根据上次迭代得到的损失变化量均值以及与当前次迭代对应的损失变化量,确定当前次迭代得到的损失变化量均值,包括:
4.根据权利要求2所述的方法,其特征在于,根据当前次迭代得到的损失变化量均值以及上次迭代得到的损失变化量标准差,确定当前次迭代得到的损失变化量标准差,包括:
5.根据权利要求2所述的方法,其特征在于,根据当前次迭代得到的损失变化量标准差以及预设的基础损失门控阈值,得到当前次迭代的损失门控阈值,包括
...【专利技术属性】
技术研发人员:黄宇生,赵邢瑜,张舒雨,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。