神经网络训练方法、系统、设备、存储介质及程序产品技术方案

技术编号:32428745 阅读:14 留言:0更新日期:2022-02-24 18:33
本发明专利技术涉及一种神经网络训练方法、系统、设备、存储介质及程序产品,该方法包括:利用优化器对所述二值参数进行优化,其中,所述优化器的输出包括翻转或不翻转,所述翻转表示改变所述二值参数的取值,所述不翻转表示不改变所述二值参数的取值。利用本发明专利技术的神经网络训练方法,能够得到精度更高的网络模型。能够得到精度更高的网络模型。能够得到精度更高的网络模型。

【技术实现步骤摘要】
神经网络训练方法、系统、设备、存储介质及程序产品


[0001]本专利技术涉及信息处理
,特别是涉及一种神经网络训练方法、系统、设备、存储介质及程序产品。

技术介绍

[0002]传统神经网络模型的精度多为16或32位浮点型,称为浮点网络,或称为全精度网络。与全精度相对的是低精度,一般将小于4bit的数据位宽定义为低精度,例如二值数据(也称为二值化数据)、三值数据(也称为三值化数据)等。在大多数计算平台上,相比浮点数计算,低精度数值运算速度更快,能耗更低。
[0003]二值神经网络(也称为二值化神经网络)为特殊的低精度神经网络,其参数和中间层输出均为二值(binary),亦即为0或1。在网络结构一致的情况下,二值神经网络从模型大小、计算速度、能耗,均优于传统的浮点网络。
[0004]现有的二值神经网络等低精度网络的优化方式仍然采用与浮点网络的优化方法相似的方式:利用浮点网络进行训练,然后把训练后网络的参数与输出值量化为二值,得到二值神经网络。例如,现有的很多方法仍基于梯度下降方式来优化二值神经网络,即二值神经网络的优化器仍基于梯度下降等传统方式,优化器的中间输出或最终输出仍包括浮点数据。然后利用优化器的输出对二值参数进行调整,例如将参数加上或减去该输出。但现有方法的精度较差、训练得到的模型的准确率较低。作为一个具体示例,利用ImageNet数据集来训练resnet18结构的残差网络,在ImageNet测试数据集上测试不同网络的Top-1的准确率,也就是模型预测的最可能的类别与实际真实类别相比,有多大比例是正确的。测试结果为:浮点网络得到的准确率为69.3%,利用现有的二值神经网络训练方法得到的准确率为42.2%。由此可见,现有的二值神经网络训练方法的准确率较低。

技术实现思路

[0005]本专利技术的目的在于提供一种新的神经网络训练方法、系统、设备、存储介质及程序产品。
[0006]本专利技术的目的采用以下技术方案来实现。依据本专利技术提出的神经网络训练方法,所述神经网络中的一个或多个参数为二值参数,所述方法包括以下步骤:利用优化器对所述二值参数进行优化,其中,所述优化器的输出包括翻转或不翻转,所述翻转表示改变所述二值参数的取值,所述不翻转表示不改变所述二值参数的取值。
[0007]本专利技术的目的还可以采用以下的技术措施来进一步实现。
[0008]前述的神经网络训练方法,所述利用优化器对所述二值参数进行优化包括:对于预先设置的损失函数,选取使得所述损失函数最小化的二值参数。
[0009]前述的神经网络训练方法,所述利用优化器对所述二值参数进行优化进一步包括:利用循环神经网络作为优化器对所述二值参数进行优化,其中,所述循环神经网络的输出包括所述翻转或所述不翻转,用以利用所述循环神经网络的输出来更新所述二值参数。
[0010]前述的神经网络训练方法,所述利用循环神经网络作为优化器对所述二值参数进行优化包括:对于根据二值网络的输入而得到的浮点形式的第一梯度,将所述第一梯度输入循环神经网络以得到第二梯度;其中,所述第二梯度包括所述翻转或不翻转。
[0011]前述的神经网络训练方法,所述利用所述循环神经网络的输出来更新所述二值参数包括:取所述循环神经网络的输出的符号,然后与待优化的所述二值参数相乘,以得到优化后的所述二值参数。
[0012]前述的神经网络训练方法,所述循环神经网络为长短期记忆网络。
[0013]前述的神经网络训练方法,所述利用优化器对所述二值参数进行优化进一步包括:对于n个所述二值参数,从所述n个二值参数的全部的2
n
组可行取值中、或从所述n个二值参数的一部分可行取值中,利用所述翻转或不翻转来选取使得所述损失函数最小的取值,其中的n为正整数。
[0014]前述的神经网络训练方法,所述从所述n个二值参数的一部分可行取值中,利用所述翻转或不翻转来选取使得所述损失函数最小的取值,包括:按照预设的顺序规则,对所述二值参数进行翻转检测,直到对所有待优化的所述二值参数完成所述翻转检测;其中,所述翻转检测包括:对一个所述二值参数进行所述翻转、或者对多个所述二值参数中的一部分进行所述翻转,若使得所述损失函数减小,则所述二值参数采用本次翻转后的取值,否则所述二值参数采用本次翻转前的取值;然后对下一个或下一些所述二值参数进行所述翻转检测。
[0015]前述的神经网络训练方法,所述按照预设的顺序规则,对所述二值参数进行翻转检测,包括:对于属于所述神经网络中的多层结构的多个所述二值参数,在对同一层的所有待优化的所述二值参数进行所述翻转检测后,再对下一层的所述二值参数进行所述翻转检测。
[0016]本专利技术的目的还采用以下的技术方案来实现。依据本专利技术提出的一种神经网络训练系统,所述神经网络中的一个或多个参数为二值参数,所述系统包括:优化器,用于对所述二值参数进行优化;其中,所述优化器的输出包括翻转或不翻转,所述翻转表示改变所述二值参数的取值,所述不翻转表示不改变所述二值参数的取值。
[0017]本专利技术的目的还可以采用以下的技术措施来进一步实现。
[0018]前述的神经网络训练系统,所述优化器具体用于:对于预先设置的损失函数,选取使得所述损失函数最小化的二值参数。
[0019]前述的神经网络训练系统,所述优化器包括循环神经网络模块,用于:利用循环神经网络对所述二值参数进行优化,其中,所述循环神经网络的输出包括所述翻转或所述不翻转,用以利用所述循环神经网络的输出来更新所述二值参数。
[0020]前述的神经网络训练系统,所述循环神经网络模块具体用于:对于根据二值网络的输入而得到的浮点形式的第一梯度,将所述第一梯度输入循环神经网络以得到第二梯度;其中,所述第二梯度包括所述翻转或不翻转。
[0021]前述的神经网络训练系统,所述循环神经网络模块还用于:取所述循环神经网络的输出的符号,然后与待优化的所述二值参数相乘,以得到优化后的所述二值参数。
[0022]前述的神经网络训练系统,所述循环神经网络模块为长短期记忆网络模块。
[0023]前述的神经网络训练系统,所述优化器包括组合优化模块,用于:对于n个所述二
值参数,从所述n个二值参数的全部的2
n
组可行取值中、或从所述n个二值参数的一部分可行取值中,利用所述翻转或不翻转来选取使得所述损失函数最小的取值,其中的n为正整数。
[0024]前述的神经网络训练系统,所述组合优化模块具体用于:按照预设的顺序规则,对所述二值参数进行翻转检测,直到对所有待优化的所述二值参数完成所述翻转检测;其中,所述翻转检测包括:对一个所述二值参数进行所述翻转、或者对多个所述二值参数中的一部分进行所述翻转,若使得所述损失函数减小,则所述二值参数采用本次翻转后的取值,否则所述二值参数采用本次翻转前的取值;然后对下一个或下一些所述二值参数进行所述翻转检测。
[0025]前述的神经网络训练系统,所述组合优化模块具体用于:对于属于所述神经网络中的多层结本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种神经网络训练方法,其特征在于,所述神经网络中的一个或多个参数为二值参数,所述方法包括以下步骤:利用优化器对所述二值参数进行优化,其中,所述优化器的输出包括翻转或不翻转,所述翻转表示改变所述二值参数的取值,所述不翻转表示不改变所述二值参数的取值。2.根据权利要求1所述的神经网络训练方法,其特征在于,所述利用优化器对所述二值参数进行优化包括:对于预先设置的损失函数,选取使得所述损失函数最小化的二值参数。3.根据权利要求2所述的神经网络训练方法,其特征在于,所述利用优化器对所述二值参数进行优化进一步包括:利用循环神经网络作为优化器对所述二值参数进行优化,其中,所述循环神经网络的输出包括所述翻转或所述不翻转,用以利用所述循环神经网络的输出来更新所述二值参数。4.根据权利要求3所述的神经网络训练方法,其特征在于,所述利用循环神经网络作为优化器对所述二值参数进行优化包括:对于根据二值网络的输入而得到的浮点形式的第一梯度,将所述第一梯度输入循环神经网络以得到第二梯度;其中,所述第二梯度包括所述翻转或不翻转。5.根据权利要求4所述的神经网络训练方法,其特征在于,所述利用所述循环神经网络的输出来更新所述二值参数包括:取所述循环神经网络的输出的符号,然后与待优化的所述二值参数相乘,以得到优化后的所述二值参数。6.根据权利要求3到5中任意一项所述的神经网络训练方法,其特征在于,所述循环神经网络为长短期记忆网络。7.根据权利要求2所述的神经网络训练方法,其特征在于,所述利用优化器对所述二值参数进行优化进一步包括:对于n个所述二值参数,从所述n个二值参数的全部的2
n
组可行取值中、或从所述n个二值参数的一部分可行取值中,利用所述翻转或不翻转来选取使得所述损失函数最小的取值,其中的n为正整数。8.根据权利要求7所述的神经网络训练方法,其特征在于,所述从所...

【专利技术属性】
技术研发人员:李皓翔
申请(专利权)人:虫极科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1