CN112446487A - 神经网络模型的训练和应用方法、装置、系统及存储介质 - Google Patents

神经网络模型的训练和应用方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN112446487A
CN112446487A CN201911115314.5A CN201911115314A CN112446487A CN 112446487 A CN112446487 A CN 112446487A CN 201911115314 A CN201911115314 A CN 201911115314A CN 112446487 A CN112446487 A CN 112446487A
Authority
CN
China
Prior art keywords
network model
gradient
training
threshold range
neural network
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
CN201911115314.5A
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to US17/003,384 priority Critical patent/US20210065011A1/en
Priority to JP2020144863A priority patent/JP7009020B2/ja
Publication of CN112446487A publication Critical patent/CN112446487A/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/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供一种神经网络模型的训练和应用方法、装置、系统及存储介质。所述训练方法包括:根据神经网络模型的训练迭代次数和计算精度确定约束阈值范围,将权重的梯度约束在所述约束阈值范围内,使得当由于量化误差导致低精度的权重的梯度出现畸变的时候,通过对梯度的约束,修正梯度出现的畸变,使训练后的网络模型能够达到预期的性能。

Description

神经网络模型的训练和应用方法、装置、系统及存储介质
本发明请求2019年08月29日提交的、申请号为201910807591.6、发明创造名称为“神经网络模型的训练和应用方法、装置、系统及存储介质”的中国发明申请的优先权,以全文引用方式并入到本文中。
技术领域
本发明涉及深度神经网络(Deep Neural Networks,DNN)的建模领域,尤其涉及一种适用于不同计算精度的神经网络模型的训练方法。
背景技术
深度神经网络是一种具有复杂网络架构的模型,常见的神经网络模型有卷积神经网络(Convolutional Neural Network,CNN)模型、循环神经网络(Recurrent NeuralNetwork,RNN)模型和图神经网络(Graph Neural Network,GNN)模型等。图1例示了一个简单的神经网络模型架构(未示出具体的网络架构)。将待训练的数据x(特征图)输入到神经网络模型F中后,x在网络模型F中至上而下逐层进行运算,最终从模型F输出符合一定分布要求的输出结果y。
以图2和图3所示的CNN模型为例,假设该模型中存在包括三个权重w1、w2和w3的卷积层,在图2所示的前向传播(Forward Propagation)过程中,该卷积层的输入特征图与权重w1、w2和w3分别进行卷积运算后,得到该卷积层的输出特征图并向下一层输出。通过逐层运算,最终得到网络模型的输出结果y。将该输出结果y与用户期望的输出结果y*进行比较,如果两者的误差没有超过预定阈值,则表示当前网络模型的性能较好;反之,如果两者的误差超过了预定阈值,则需要利用实际输出结果y和期望输出结果y*之间的误差,在图3所示的反向传播(BackPropagation)过程中,对卷积层中的权重w1、w2和w3进行更新,以使网络模型的性能更优。这里,对网络模型中各权重的更新过程即为网络模型的训练过程。
在对网络模型中的各权重进行更新的过程中,根据误差评估函数L(y,y*)(其输入为实际输出结果y和期望输出结果y*,用于表示两者间的误差的函数),在网络模型中由下至上逐层计算各权重w的偏导数(梯度)g。假设当前待训练的网络模型已经过了t次训练(即训练迭代次数为t),网络模型中有若干个要被更新的权重,当前正要被更新的权重是wt。首先,根据以下公式(1)计算权重wt的梯度gt;然后,再根据以下公式(2)来更新权重wt,得到第t+1次(本次)训练后的权重wt+1
Figure BDA0002273873710000021
wt+1=wtt gt 公式(2)
其中,ηt是更新步伐尺度(又名学习率),其可为常量亦可为变量,用于尺度化梯度gt
根据以上针对权重wt的更新过程可知,计算梯度是权重更新过程的重要步骤,但是,以上公式(2)中仅考虑了权重wt与梯度的关系,即仅考虑了最近一次更新后的梯度,而没有考虑到历史梯度(前若干次训练迭代中的梯度)对本次训练迭代中的梯度的影响,从而使得在梯度位置产生的方向惯性较小,不利于神经网络模型训练的加速。
发明内容
为了使传统的权重更新过程更优,提高神经网络模型的收敛速度,使神经网络模型的训练加速,业界提出了一种ADAM(Adaptive Moment Estimation)的训练方法。在对神经网络模型中的某一权重进行更新时,利用该权重在之前的若干次更新(训练)时的历史梯度来更新该权重在本次更新(训练)时的梯度,进而利用新梯度来更新权重。图4示出了基于ADAM来更新权重的方法流程图,假设待训练的神经网络模型已经过t次训练(训练迭代次数为t),当前正要对神经网络模型中的权重wt进行更新,具体过程包括:
首先,利用前述的公式(1)计算权重wt的梯度gt
然后,利用以下推导出的公式(3)计算权重wt的历史梯度的滑动平均一阶矩,即历史梯度一阶矩的加权求和。
Figure BDA0002273873710000031
其中,β1mt-1+(1-β1)gt是递归式,mt-1是利用mt-2与该公式计算出的,以此类推,从第一次训练的m1开始,依次计算m2、m3……mt-1,从而推导出一阶的加权求和式
Figure BDA0002273873710000037
所述β1是加权值,表示梯度衰减率,其可以是常数,如0.9。公式(3)中的
Figure BDA0002273873710000038
表示β1的t-i次幂。
接着,利用以下推导出的公式(4)计算历史梯度的滑动平均二阶矩,即历史梯度二阶矩的加权求和。
Figure BDA0002273873710000032
其中,β2Vt-1+(1–β2)gt 2是递归式,与公式(3)中类似的,从第一次训练的V1开始,依次计算V2、V3……Vt-1,从而推导出二阶的加权求和式
Figure BDA0002273873710000033
所述β2是加权值,表示梯度衰减率,其可以是常数,如0.999。公式(4)中的
Figure BDA0002273873710000034
表示β2的t-i次幂。
最后,根据公式(3)和公式(4)的计算结果,利用公式(5)更新梯度gt,得到更新后的梯度gt’;然后再利用更新后的梯度gt’按照公式(6)更新权重wt,得到本次训练后的权重wt+1
Figure BDA0002273873710000035
Figure BDA0002273873710000036
在基于ADAM的权重更新方法中,不仅利用本次训练时预先计算出的权重wt的梯度gt,还利用加权求和的方式引入了该权重在之前训练时的历史梯度来得到本次训练时可用的梯度gt’,从而能够自适应地在梯度连续的位置处产生更大的惯性,以便加速神经网络模型的训练。
虽然ADAM方法较好地克服了传统神经网络模型训练速度慢的问题,但是ADAM方法的应用前提是:被训练的神经网络模型是高精度的模型(权重和输入x是高精度),例如,模型中的权重w是32位浮点型。随着训练迭代次数的增加,权重w的变化如图5(a)所示,其梯度为权重值的切线。在训练迭代次数为10时,权重w10的梯度为g10;在训练迭代次数为20时,权重w20的梯度为g20。这里的梯度g是按照前述的ADAM方法更新后的梯度。如图6(a)所示,在对高精度的神经网络模型进行训练时,随着训练迭代次数的增加,梯度合理变化,网络模型的实际输出结果y和期望输出结果y*之间的差值逐渐变小(即总损失逐渐变小),直至到达最低点(总损失没有超过预定阈值),使训练后的神经网络的性能达到预期。
在将高精度的神经网络模型量化成低精度时,例如,将32为浮点型的权重w量化成布尔型的权重wb,其取值仅为-1或1。
其中,wb=sign(w)。
此时,随着训练迭代次数的增加,权重wb的梯度变化如图5(b)所示,在训练迭代次数为10时,权重w10b的梯度为
Figure BDA0002273873710000041
在训练迭代次数为20时,权重w20b的梯度为
Figure BDA0002273873710000042
其中,
Figure BDA0002273873710000043
的梯度通过求导如下
Figure BDA0002273873710000044
可得:
Figure BDA0002273873710000045
其中,α为量化尺度因子。
比较图5(a)和图5(b)可知,
Figure BDA0002273873710000046
理论上为无限大,且
Figure BDA0002273873710000047
理论上为零。这是因为,在将高精度浮点型的权重w量化成低精度定点型的wb时存在量化误差
Figure BDA0002273873710000048
(其中,
Figure BDA0002273873710000049
Figure BDA00022738737100000410
的计算与Υt+1相同,区别在于Υt+1是基于全精网络,
Figure BDA00022738737100000411
是基于量化网络),这导致权重w的梯度g与权重wb的梯度
Figure BDA00022738737100000412
有差异。在对低精度的网络模型进行训练时,如果持续使用不适当的梯度
Figure BDA00022738737100000413
来更新权重,则由于梯度差异的累积,可能会使得该网络模型无法达到预期的性能。另一方面,由于ADAM方法要对历史梯度加权求和,但由于量化误差的存在,会在历史梯度加权求和的同时累积过往的量化误差,导致方向惯性发生偏移,从而影响网络模型的训练精度。
如图6(b)所示,在对低精度的神经网络模型进行训练时,在训练的前期,随着训练迭代次数的增加,网络模型的实际输出结果y和期望输出结果y*之间的差值逐渐变小。但是,随着训练迭代次数的增加,由于梯度
Figure BDA0002273873710000051
的不适当,梯度变化不合理,实际输出结果y和期望输出结果y*之间的差值(即总损失)始终超过预定阈值,使训练后的神经网络的性能达不到预期。
为说明本公开对于ADAM方法缺陷的论述,现提供以下三条定理作为补充说明。
定理1:假设存在量化尺度因子α和二值量化函数sign(w),这里存在一个在线凸优化问题,对于优化量化神经网络,给定任意初始步伐尺度η,ADAM并不能收敛至最优解,因为其拥有非零regret,即,当T→∞时,
Figure BDA0002273873710000057
定理2:假设存在量化尺度因子α和二值量化函数sign(w),给定任意的β1,β2,其属于[0,1),并且
Figure BDA0002273873710000052
这里存在一个在线凸优化问题,对于优化量化神经网络,给定任意初始步伐尺度η,ADAM并不能收敛至最优解,因为其拥有非零regret,即,当T→∞时,
Figure BDA0002273873710000053
对于任意凸函数
Figure BDA0002273873710000054
随着约束梯度在于泛函(F)拥有约束值G
定理3:假设存在量化尺度因子α和二值量化函数sign(w),给定任意的β1,β2,其属于[0,1),并且
Figure BDA0002273873710000055
这里存在一个随机凸优化问题,对于优化量化神经网络,给定任意初始步伐尺度η,收敛速度C基于ADAM,而ADAM由β12,α和G决定,对于任意凸函数
Figure BDA0002273873710000056
随着约束梯度在于泛函(F)拥有约束值G
其中,上述定理1、定理2和定理3的详细说明请参见说明书最后部分。
由于已有的ADAM方法存在上述问题,本公开提出了一种对多层神经网络模型的训练方案,相较于ADAM方法,本公开的方案不限于应用在高精度的神经网络模型,在对低精度的神经网络模型的训练中也有较好的表现。
根据本发明的一方面,提供一种神经网络模型的训练方法,包括:在反向传播中,确定所述神经网络模型中的权重的梯度;针对确定的梯度中的至少一个梯度,执行以下处理:确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束到所述约束阈值范围内,其中,所述约束阈值范围是根据所述神经网络模型的训练迭代次数和计算精度确定的;利用约束后的梯度更新权重。
根据本发明的另一方面,提供一种神经网络模型的训练系统,包括:服务器,其存储至少一个第一网络模型,所述第一网络模型提供用于对第二网络模型进行同步的信息,所述服务器用于在反向传播中,确定所述第一网络模型中的权重的梯度,并针对确定的梯度中的一个梯度,执行以下处理:确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束到所述约束阈值范围内,利用约束后的梯度更新权重,并将更新后的权重输出,其中,所述约束阈值范围是根据所述第一网络模型的训练迭代次数和计算精度确定的;终端,其存储所述第二网络模型,所述终端用于利用服务器输出的权重对所述第二网络模型进行同步。
根据本发明的另一方面,提供一种神经网络模型的训练装置,包括:梯度确定单元,其被构造为在反向传播中,确定所述神经网络模型中的权重的梯度;梯度约束单元,其被构造为针对所述梯度确定单元确定的梯度中的至少一个梯度,执行以下处理:确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束到所述约束阈值范围内,其中,所述约束阈值范围是根据所述神经网络模型的训练迭代次数和计算精度确定的;更新单元,其被构造为利用约束后的梯度更新权重。
根据本发明的另一方面,提供一种神经网络模型的应用方法,包括:存储基于上述的训练方法训练后的神经网络模型;接收存储的神经网络模型所能执行的任务要求对应的数据集;将所述数据集在存储的神经网络模型中自上而下地在各层中进行运算,并输出结果。
根据本发明的另一方面,提供一种神经网络模型的应用装置,包括:存储模块,其被配置为存储基于上述训练方法训练后的神经网络模型;接收模块,其被配置为接收存储的神经网络模型所能执行的任务要求对应的数据集;处理模块,其被配置为将所述数据集在存储的神经网络模型中自上而下地在各层中进行运算,并输出结果。
根据本发明的另一方面,提供一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行基于上述神经网络模型的训练方法。
从以下参照附图对示例性实施例的描述,本发明的其它特征将变得清楚。
附图说明
并入说明书中并且构成说明书的一部分的附图示出了本发明的示例性实施例,并且与示例性实施例的描述一起用于解释本发明的原理。
图1例示了神经网络模型架构。
图2例示了前向传播过程。
图3例示了反向传播过程。
图4例示了ADAM方法的流程图。
图5(a)和图5(b)分别例示了在高精度和低精度情况下的权重值和梯度值。
图6(a)、图6(b)和图6(c)分别例示了在高精度、低精度和本公开情况下的训练结果。
图7是本公开第一示例性实施例的神经网络模型的训练方法流程图。
图8例示了衰减率在ADAM方法和本公开方法下的变化情况。
图9(a)和图9(b)例示了在高精度、低精度(未采用本公开技术)和低精度(采用本公开技术)下的梯度变化。
图10例示了本公开第二示例性实施例的训练系统的示意图。
图11例示了本公开第三示例性实施例的训练装置的示意图。
图12例示了本公开第三示例性实施例的训练装置的硬件环境的示意图。
图13例示了本公开第三示例性实施例的训练装置的应用环境的示意图。
具体实施方式
在基于ADAM方法对低精度的网络模型进行训练时,相较于高精度网络模型的训练,对权重的量化存在量化误差Υ,其中,w表示高精度的权重,wb表示高精度的权重量化后的低精度的权重。比较图5(a)和图5(b)可知,权重w的梯度g与权重wb的梯度
Figure BDA0002273873710000082
有明显差异,因此,直接利用梯度
Figure BDA0002273873710000081
进行权重更新会导致无法获取网络模型的预期性能。有鉴于此,本公开提供了一种优化的神经网络模型的训练方法,在充分考虑到量化误差对低精度的权重的梯度运算带来的不利影响的情况下,基于神经网络模型的训练迭代次数和计算精度设定出梯度的约束阈值范围,使得当由于量化误差导致低精度的权重的梯度出现畸变的时候,将畸变的梯度约束到设定的约束阈值范围内,修正梯度出现的畸变,使训练后的网络模型能够达到预期的性能。在本公开的方案中,不论对网络模型的计算精度如何(例如,是二值神经网络模型(BNNs)),随着训练迭代次数的增加,通过对梯度的约束,使梯度的变化合理,从而使网络模型的实际输出结果y和期望输出结果y*之间的差值(即总损失)能够到达最低点(误差没有超过预定阈值),使训练后的神经网络的性能达到预期,如图6(c)所示。
在下文中将结合附图对本公开的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实施例的所有特征。然而,应该了解,在对实施例进行实施的过程中必须做出很多特定于实施方式的设置,以便实现开发人员的具体目标,例如,符合与设备及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
在此,还应当注意,为了避免因不必要的细节而模糊了本公开,在附图中仅仅示出了与至少根据本公开的方案密切相关的处理步骤和/或系统结构,而省略了与本公开关系不大的其他细节。
接下来,将对本公开的各个方面进行描述。
<第一示例性实施例>
图7例示了本公开第一示例性实施例的神经网络模型的训练方法,该训练方法的具体描述如下。
步骤S101:进行本次训练的前向传播,确定神经网络模型的实际输出结果和期望输出结果的差值。
对神经网络模型的训练过程是循环、重复的过程,每次训练包括前向传播和反向传播,其中,前向传播是将待训练的数据x在神经网络模型中从上至下逐层运算的过程,本公开所述的前向传播过程可以是已知的前向传播过程,在前向传播过程中可以包括任意比特的权重和特征图的量化过程,本公开并不对此做限定。如果神经网络模型的实际输出结果和期望输出结果的差值没有超过预定阈值,则表示神经网络模型中的权重是优解,训练的神经网络模型的性能已达到期望性能,完成对神经网络模型的训练。反之,如果神经网络模型的实际输出结果和期望输出结果的差值超过了预定阈值,则需要继续执行反向传播过程,即,基于实际输出结果和期望输出结果的差值,在神经网络模型中从下至上逐层进行运算,更新模型中的权重,以使权重更新后的网络模型的性能更接近期望性能。
适用于本公开的神经网络模型可以是已知的任意模型,例如卷积神经网络模型、循环神经网络模型和图神经网络模型等,本公开并不对网络模型的类型做限定。
适用于本公开的神经网络模型的计算精度可以是任意精度,高精度和低精度皆可,术语“高精度”和术语“低精度”是精度的相对高低,而并不限定具体的数值。例如,高精度可以是32位浮点型,低精度可以是1位定点型,当然,其他的诸如16位、8位、4位、2位精度也都包含在本公开的方案所适用的计算精度范围内。术语“计算精度”可以是指神经网络模型中权重的精度,也可以是指待训练的输入x的精度,本公开并不对此做限定。本公开所述的神经网络模型可以是二值神经网络模型(BNNs),当然,也不限于其他计算精度的神经网络模型。
步骤S102:在反向传播中,计算网络模型中各权重的梯度,并针对至少一个权重的梯度执行后续优化处理。
在反向传播中,对前向传播中涉及量化处理的层使用STE(梯度估计)技术处理。
假设,本实施例中针对权重w的梯度执行后续优化处理。
由于神经网络模型是多层结构,在反向传播中,根据误差评估函数L(y,y*)(又名损失函数),采用链式法则由下至上逐层计算各层中权重的梯度值。在本步骤S102中,计算权重的梯度的方法可以是已知的任意方法,本公开并不对此做限定。
这里,可以在每计算出一个权重的梯度后,就对该梯度执行后续优化处理,例如,当有多个权重的梯度需要执行后续优化处理时,各权重的梯度之间串行执行后续优化处理;也可以在计算出属于同一层中的多个权重的梯度后,对该层中的权重的梯度执行后续优化处理,例如,同层中的权重的梯度可以并行执行后续优化处理,不同层的权重的梯度串行执行后续优化处理;还可以在计算出神经网络模型中的所有权重的梯度后,再对其中的部分或全部权重的梯度执行后续优化处理,例如,各权重的梯度之间串行执行后续优化处理,或者,按照神经网络模型中的层由下至上的顺序,同层中的权重的梯度并行执行后续优化处理,不同层的权重的梯度串行执行后续优化处理。本公开并不对使哪些权重的梯度执行后续优化处理做限定,例如,可对所有权重的梯度值执行后续优化处理,或者,仅对诸如卷积层中的权重的梯度执行后续优化处理。
步骤S103:从权重w在步骤S102中计算出的梯度以及权重w在前N次训练中的梯度中,确定加权最大值,N是大于等于1的整数。
假设待训练的网络模型已经过t次训练(训练迭代次数为t),在步骤S102中,计算出权重w的梯度为gt。在本步骤S103中,考虑到历史梯度对本次训练的梯度的影响,将包括gt以及前N次训练中的梯度进行加权,取其中的最大值。前N次训练中的梯度可以是采用本公开的方法更新后的梯度,也可以是采用ADAM方法利用公式(3)、公式(4)和公式(5)计算出的梯度。这里采用的历史梯度的数量N不大于t。
本步骤S103中确定加权最大值的一种可选的算法是如公式(7)所示的计算历史梯度二阶矩的加权最大值。
Figure BDA0002273873710000111
其中,β2vt-1+(1–β2)gt 2是递归式,将计算出的vt
Figure BDA0002273873710000112
进行比较,将其中的较大值作为本步骤S103中一次优化处理后的梯度。由于每次训练时在本步骤S103中都确定出了加权最大值,因此,本次训练中在递归式计算出的vt和上一次训练中的加权最大值
Figure BDA0002273873710000113
中选择较大值,可确保本步骤S103中确定的是历史梯度二阶矩的加权最大值。
公式(7)中的β2可以是与公式(4)中的β2相同的加权值0.999,也可以根据神经网络模型的计算精度确定的加权值。一种可选的基于计算精度确定β2的算法如公式(8)所示。
Figure BDA0002273873710000114
其中,β2(t)表示第t次训练时的β2,例如,0.999;β2(t-1)表示第t-1次训练时的β2,其由β2(t)和计算精度共同确定。
图8例示了基于ADAM技术(衰减率β(β1和β2)固定取值)和本公开基于计算精度计算衰减率β的情况下衰减率的变化。从图8中可以看出,在ADAM技术中,从当前第t次训练开始,大约从t-40次迭代起,之前的衰减率趋近于零;利用本公开的方法,从当前第t次训练开始,大约从t-20次迭代起,之前的衰减率趋近于零。也就是说,在ADAM技术中,当前迭代的前40次迭代的梯度对第t次迭代的梯度影响较大,而在本公开的技术中,当前迭代的前20次迭代的梯度对第t次迭代的梯度影响较大,相较于ADAM技术,在本公开的技术中,历史梯度对当前第t次训练中的梯度影响较小。即,神经网络模型的计算精度越低,所需的前多次训练的训练次数就越少,性能越好。
进一步地,可将加权最大值vt转换成对角矩阵的形式,参见公式(9)。
Figure BDA0002273873710000121
需要说明的是,公式(9)中的Vt是历史梯度的加权最大值的对角矩阵,其不等同于公式(4)的历史梯度的加权求和的对角矩阵Vt
相较于ADAM方法中对历史梯度二阶矩加权求和的方式,本实施例一中的对历史梯度二阶矩加权取最大值能够较好地表示当前神经网络模型梯度的方向惯性,采用加权最大值的方式可以使网络模型的性能与采用加权求和值的性能相似;在确保性能不变差的情况下,由于采用的是加权最大值而非加权求和值,避免了量化误差的累积。
本步骤S103是对步骤S102中计算出的梯度的一次优化处理,这是本实施例的优选步骤,本实施例也不限于从步骤S102直接进入步骤S104的情况。
步骤S104:确定约束阈值范围。
在神经网络模型的训练过程中,特别是在训练后期,除了要利用方向惯性加速收敛外,还需要设置合适的梯度从而以恰当的步长进行收敛。但是,由于量化误差的存在,特别是在低精度情况下量化误差对训练有不可忽略影响,需要对步骤S103中执行了一次优化处理的梯度再次进行约束,因此,如何确定约束阈值范围就显得尤为重要。
通过以上描述可知,在训练的后期且精度较低的情况下,对梯度进行约束的必要性很高,也就是说,训练迭代次数和模型的计算精度对梯度的影响较大,因此,可综合考虑神经网络模型的训练迭代次数和计算精度两者来确定约束阈值范围。进一步地,由于神经网络模型的计算精度直接决定了量化误差,因此,基于训练迭代次数和计算精度两者来确定约束阈值范围也可看作是基于训练迭代次数和量化误差来确定约束阈值范围。
这里用于确定约束阈值范围的量化误差可以是针对神经网络模型整体而言的量化误差,也可以是针对神经网络模型中的各权重而言的量化误差,根据量化误差的不同意义,确定的约束阈值范围的意义也不同。具体来说,一方面,如果用于确定约束阈值范围的量化误差是针对神经网络模型整体而言的量化误差(即,计算神经网络模型中所有权重的量化误差,将其中的最大量化误差作为神经网络模型的量化误差),则确定的约束阈值范围也是针对神经网络模型整体的。在此情况下,神经网络模型中的任何权重的梯度在进行优化处理时,都采用相同的约束阈值范围来对梯度进行约束。另一方面,如果用于确定约束阈值范围的量化误差是针对各权重的量化误差,则针对各权重确定约束阈值范围,确定的约束阈值范围对该权重的梯度进行约束。
假设约束阈值范围的上限值和下限值分别是cu和cl这两个抽象界限函数,一种可选的计算上限值cu和下限值cl的方式是采用如下公式(10)和公式(11)的方式。在公式(10)和公式(11)所示的算法中,表示上限值cu和下限值cl抽象界限函数分别为单调递减和单调递增。
Figure BDA0002273873710000131
Figure BDA0002273873710000132
其中,t是训练迭代次数;Υt+1是量化误差;β是加权值,其可以是公式(3)中的β1,取值为0.9,也可以是按照公式(8)所示的方式,根据神经网络的计算精度计算确定;当然,β也可以是公式(4)中的β2,取值为0.999,或是按照公式(8)所示的方式,根据神经网络的计算精度计算确定。这里的β是表示梯度衰减率的加权值,除了以上将β1或β2选作为β外,本实施例也不限于通过其他方式来设置β。
通过公式(10)和公式(11)可以看出,约束阈值范围的上限值和下限值是由神经网络模型的量化误差l(w,wb)和训练迭代次数t确定的,由于β的取值恒小于1且l(w,wb)恒大于0,因此,当训练迭代次数t很大(接近于无穷大)时,cu和cl这两个抽象界限函数相互逼近。
在一种可选的方式中,不论神经网络模型是首次开始进行训练还是训练中断后重新开始训练,t都从0开始;在另一种可选的方式中,神经网络模型首次开始进行训练时,t从0开始,在训练中断后重新开始训练,t从中断处开始。
以上公式(10)和公式(11)是实现本步骤的一种可选方式,本公开并不限于对公式(10)和公式(11)的合理变形,或其他的基于神经网络模型的训练迭代次数和量化误差来确定约束阈值范围的方式。
步骤S105:判断梯度是否在约束阈值范围内,若是,则进入步骤S106;若否,则将梯度约束成约束阈值范围内的值。
在经过步骤S103的一次优化处理后的梯度值要在本步骤S105中进行二次优化处理(约束)。一种可选的约束方式为公式(12)所示的方式。
Figure BDA0002273873710000141
其中,F为约束映射值域[μ,ι];Vt是公式(9)中的历史梯度二阶矩的加权最大值的对角矩阵;∏F()是约束映射操作,表示将Vt映射到[cl,cu]内;
Figure BDA0002273873710000142
表示约束后的梯度。在Vt大于ι的情况下,将Vt约束到[cl,cu]内,例如,将Vt约束为上限值ι;在Vt小于μ的情况下,将Vt约束到[cl,cu]内,例如,将Vt约束为下限值μ。本公开也不限于将Vt约束成[cl,cu]内的其他值,例如,在Vt不在[cl,cu]中情况下,将Vt约束成上限值和下限值的平均值。
经过本步骤S105对梯度的约束处理可以克服由于量化误差带来的梯度畸变,约束后的梯度能够基本接近在高精度下的网络模型中权重的实际梯度。参见图9(a)所示,在高精度网络下的梯度是正常梯度,在量化网络模型(低精度)下估计的梯度值相较于高精度网络模型下的梯度值有明显的偏差,即为有偏梯度。再参见图9(b),在量化网络模型下估计的有偏累积梯度值相较于同样在量化网络模型下的基于本实施例方案的梯度值也有明显的偏差,但在量化网络模型下的基于本实施例方案的梯度值接近于高精度网络模型下的梯度值。因此,本实施例能够较好地约束由于量化误差产生的梯度畸变,在多次训练后也不会出现畸变累积的问题。
步骤S106:利用约束后的梯度更新权重。
一种可选的方式是采用公式(6)来更新权重,由于本步骤中的梯度是约束处理后的梯度,因此,公式(6)可变形为公式(13)。
Figure BDA0002273873710000151
其中,mt可按照公式(3)进行计算;优选地,公式(3)中的β1可以是常数0.9,也可以是基于公式(8)所示的方式,根据神经网络的计算精度计算确定的。
由于在步骤S103和步骤S105中对权重的梯度进行了两次优化处理,因此,在本步骤S106中,利用优化后的梯度来更新权重,即对神经网络模型的训练,使任意计算精度的神经网络模型的性能都能接近期望的性能。为论证本公开的方法,提供定理和推论如下。
定理4:假设存在量化尺度因子α和二值量化函数sign(w)以及量化尺度域
Figure BDA0002273873710000152
使
Figure BDA0002273873710000153
和{vt}成为序列函数(基于定理1),其中β1=β11,β1t1
Figure BDA0002273873710000154
Figure BDA0002273873710000155
假设
Figure BDA0002273873710000156
Figure BDA0002273873710000157
Figure BDA0002273873710000158
Figure BDA0002273873710000159
假定
Figure BDA00022738737100001510
Figure BDA00022738737100001511
和‖C(α)‖≤L。对于
Figure BDA00022738737100001512
生成本公开的方法,可以有以下公式(14)所示的约束解:
Figure BDA00022738737100001513
根据上述约束解可得推论如下:
推论1:假定β1t=β1λt-1于定理4,其中,
Figure BDA00022738737100001514
可得公式(15)
Figure BDA00022738737100001515
其中,上述定理4与推论1的详情请参见说明书的最后部分。
步骤S107:是否还存在未更新权重,若是,则执行步骤S103,继续对其他权重进行更新;反之,本次训练结束,进入步骤S101。
需要说明的是,本实施例一中网络模型的超参数可被预先存储,或通过网络从外界获取,或在本地运算获得,本公开并不对此做限定。所述超参数包括但不限于网络模型的计算精度、学习率ηt、β1和β2等。
在本实施例中,重复执行步骤S101至步骤S107,直至满足训练结束条件。这里,训练结束条件可以是预先设定的任何条件,神经网络模型的实际输出结果与期望输出结果之间的差值没有超出预定阈值,或是网络模型的训练次数达到预定次数等。
通过本公开第一示例性实施例的方案,即使神经网络模型的计算精度较低,产生了较大的量化误差,进而导致权重的梯度出现畸变,但是,本公开利用设定的约束阈值范围对出现畸变的梯度进行约束,使得从梯度中获得的步长恰当,参见图6(c),不会出现图6(b)所示的由于梯度畸变导致的无法实现最优解的情况。
<第二示例性实施例>
基于前述的第一示例性实施例,本发明的第二示例性实施例描述了一种网络模型训练系统,该训练系统包括终端、通信网络和服务器,终端和服务器之间通过通信网络进行通信,服务器利用本地存储的网络模型,在线地训练终端内存储的网络模型,使终端可利用训练好的网络模型进行实时业务。下面对本发明第二示例性实施例的训练系统中的各部分进行描述。
训练系统中的终端可以是诸如安防摄像头等的嵌入式图像采集设备,也可以是智能手机、PAD等设备,当然,终端也可以不是诸如嵌入式设备等的运算能力较弱的终端,而是其他具有较强运算能力的终端。训练系统中的终端数量可根据实际需要而定,例如,如果训练系统是要对商场内的安防摄像头进行训练,则商场内的所有安防摄像头都可视为终端,此时,训练系统中的终端数量是固定的。再例如,如果训练系统是要对商场内的用户的智能手机进行训练,则接入商场的无线局域网的智能手机都可视为终端,此时,训练系统中的终端数量是不固定的。在本发明第二示例性实施例中并不对训练系统中的终端类型和数量做限定,只要该终端内能够存储、训练网络模型即可。
训练系统中的服务器可以是具有较强运算能力的高性能服务器,例如云服务器。训练系统中服务器的数量可根据其所服务的终端数量来确定,例如,如果训练系统中待训练的终端数量较少或终端分布的地域范围较小,则训练系统中的服务器数量较少,例如仅一台服务器。如果训练系统中待训练的终端数量较多或终端分布的地域范围较大,则训练系统中的服务器数量较多,例如建立服务器集群。在本发明第二示例性实施例中并不对训练系统中的服务器类型和数量做限定,只要服务器内能够存储至少一个网络模型、提供用于训练终端内存储的网络模型的信息即可。
本发明第二示例性实施例中的通信网络是用于实现终端和服务器之间的信息传递的无线网络或有线网络,目前在网络服务器和终端之间进行上/下行传输时可用的网络都可作为本实施例中的通信网络,本发明第二示例性实施例并不对通信网络的类型和通信方式做限定。当然,本发明第二示例性实施例也不限于其他通信方式,例如,为此训练系统分配第三方存储区域,当终端和服务器要向对方传递信息时,将要传递的信息存储在第三方存储区域中,终端和服务器定时读取第三方存储区域中的信息,实现两者之间的信息传递。
下面结合图10,对本发明第二示例性实施例的训练系统的在线训练过程进行详细描述。图10示出了训练系统的一种示例,假设该训练系统中包含三个终端(终端1至终端3)和一台服务器。终端可以进行实时拍摄,其中终端1拍摄一组人体图片,终端2拍摄一组汽车图片,终端3拍摄一组风景图片。假设三个终端内分别存储有可被训练的且能够对图片进行处理的网络模型,服务器中存储有相同的网络模型,训练系统的训练过程描述如下。
步骤S201:终端经由通信网络向服务器发起训练请求。
终端通过通信网络向服务器发起训练请求,在该请求中包括了终端标识等信息。终端标识是唯一表示终端身份的信息(例如,终端的ID或IP地址等)。
本步骤S201是以一个终端发起训练请求为例进行说明的,当然也可以是多个终端并行发起训练请求。对于多个终端的处理过程与一个终端的处理过程类似,这里将不再赘述。
步骤S202:服务器接收训练请求。
在图10所示的训练系统中仅包括一个服务器,因此,通信网络可将终端发起的训练请求传输至该服务器。若训练系统中包括多个服务器,则可根据服务器的空闲状况将训练请求传输给一个相对空闲的服务器。
步骤S203:服务器响应接收到的训练请求。
服务器根据接收到的训练请求中包含的终端标识确定发起请求的终端,进而确定终端内存储的待训练的网络模型。一种可选的方式为,服务器根据终端和待训练的网络模型的对照表,确定发起请求的终端内存储的待训练的网络模型;另一种可选的方式为,训练请求中包含待训练的网络模型的信息,服务器可根据该信息确定待训练的网络模型。这里,确定待训练的网络模型包括但不限于确定网络模型的网络架构、超参数等表征该网络模型的信息。
当服务器确定待训练的网络模型后,可采用本发明第一示例性实施例的方法,将利用服务器本地存储的相同的网络模型对发起请求的终端内存储的网络模型进行训练。具体而言,服务器按照第一示例性实施例中的步骤S101至步骤S106的方法,在本地对网络模型中的权重进行更新,并将更新后的权重传输给终端,使终端根据接收到的更新后的权重对终端内存储的待训练的网络模型进行同步。这里,服务器中的网络模型和终端内被训练的网络模型可以是相同的网络模型,也可以是服务器中的网络模型相较于终端内的网络模型更复杂,但两者的输出接近。本公开并不对服务器内的用于训练的网络模型和终端内的被训练的网络模型的类型做限定,只要从服务器输出的更新后的权重能够使终端内的网络模型同步,以使终端内同步后的网络模型的输出更接近于期望输出即可。
在图10所示的训练系统中,是由终端主动发起训练请求的,可选的,本发明第二示例性实施例也不限于由服务器广播询问消息,再由终端响应该询问消息后进行上述训练过程。
通过本发明第二示例性实施例所描述的训练系统,服务器可对终端内的网络模型进行在线训练,提高了训练的灵活性;同时也极大地增强了终端的业务处理能力,扩展了终端的业务处理场景。以上第二示例性实施例是以在线训练为例来描述训练系统的,但本发明也不限于线下的训练过程,此处不再赘述。
<第三示例性实施例>
本发明第三示例性实施例描述了一种神经网络模型的训练装置,该装置可执行第一示例性实施例的中描述的训练方法,且当该装置应用在在线训练系统中时,可以是第二示例性实施例中描述的服务器中的装置。下面结合图11对该装置软件结构进行详细描述。
本实施例三中的训练装置包括梯度确定单元11、梯度约束单元12和更新单元13,其中,梯度确定单元11用于在反向传播中,确定所述网络模型中的权重的梯度;梯度约束单元12用于针对所述梯度确定单元11确定的梯度中的至少一个梯度,执行以下处理:确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束成所述约束阈值范围内的值,其中,所述约束阈值范围是根据所述神经网络模型的训练迭代次数和计算精度确定的;更新单元13用于利用约束后的梯度更新权重。
优选的,所述梯度约束单元12还用于:确定所述神经网络模型中各权重的量化误差,并将其中最大的量化误差作为所述神经网络模型的量化误差;以及,利用所述神经网络模型的量化误差和训练迭代次数确定约束阈值范围,其中,确定的所述约束阈值范围对所述至少一个梯度进行约束。也就是说,为整个神经网络模型设定一个共用的约束阈值范围,用于对所有待约束的梯度进行约束。
优选的,所述梯度约束单元12还用于:针对所述网络模型中的至少一个权重,确定该权重的量化误差;以及,利用权重的量化误差和训练迭代次数确定约束阈值范围,其中,确定的约束阈值范围对该权重的梯度进行约束。也就是说,针对每个权重设定各自独立的约束阈值范围,仅用于对对应权重的梯度进行约束。
所述训练装置还包括梯度更新单元14,用于针对所述网络模型中的至少一个权重,从该权重在本次训练确定的梯度以及该权重在前多次训练约束后的梯度中,确定加权最大值;所述梯度约束单元12用于确定所述加权最大值是否在约束阈值范围内,并将超出所述约束阈值范围的加权最大值约束成所述约束阈值范围内的值。
本实施例的训练装置还具有实现训练系统中的服务器的功能的模块,例如对接收到的数据的识别功能、数据封装功能、网络通信功能等,此处不再赘述。
本发明第三示例性实施例的训练装置可在图12所示的结构中运行,当图12所示的结构接收到数据集时,可对接收到的数据集进行处理,如果最终的输出结果与期望的输出结果的差值较大,则执行第一实施例中所述的训练方法。参见图12,训练装置的硬件结构包括:网络模型存储单元20、特征图存储单元21、卷积单元22、池化/激活单元23、量化单元24以及控制单元25。下面分别对各单元进行描述。
网络模型存储单元20中存储了本发明第一示例性实施例中所述的待训练的网络模型的超参数,包括但不限于:网络模型的结构信息、在各层中进行运算所需的信息(如网络模型的计算精度、学习率ηt、β1和β2等)。特征图存储单元21中存储了网络模型中各层在运算时所需的特征图信息。
在正向传播中,卷积单元22用于根据网络模型存储单元20输入的信息和特征图存储单元21输入的信息(例如第i层的输入特征图)对数据集进行卷积处理。在反向传播中,根据第一实施例的方法,根据卷积层中权重的计算精度和训练次数确定出用于约束的约束阈值范围,并对卷积层中权重的梯度进行约束,利用约束后的梯度更新卷积层中的权重。
其他的诸如池化/激活单元23、量化单元24等单元并不是实现本公开的必要单元,图12以包括了池化/激活单元23和量化单元24为例来进行说明的,当然,训练装置也可以不包括池化/激活单元23和量化单元24,或者,训练装置还可以包括能够进行规则化处理和缩放处理的其他单元,此处不再赘述。如果这些单元所管理的层中包含有权重,则可按照第一实施例的方法在反向传播时对层中的权重进行更新。
控制单元25通过对图12中的各单元输出控制信号,来控制网络模型存储单元20至量化单元24的运行。
下面结合图13来描述本发明第三示例性实施例中的神经网络模型的训练装置所应用的环境。在图13所示的应用环境中,包括处理器30、内部存储器31、网络接口32、输入单元33、外部存储器34以及总线35在内的设备支持训练装置的正常运行。
所述处理器30可以是CPU或GPU,用于对训练装置进行整体控制。所述内部存储器31包括随机存取存储器(RAM)、只读存储器(ROM)等。所述RAM可用作处理器30的主存储器、工作区域等。ROM可用于存储处理器30的控制程序,此外,还可以用于存储在运行控制程序时要使用的文件或其他数据。网络接口32可连接到网络并实施网络通信。输入单元33控制来自键盘、鼠标等设备的输入。外部存储器34存储启动程序以及各种应用等。总线35用于使上述各部件相连接。
在采用本公开第一示例性实施例的方案实现了对神经网络模型的训练后,可利用训练后的网络模型执行应用业务。以在安防摄像头中存储有已按照第一示例性实施例的方式训练好的网络模型为例,假设该安防摄像头要执行目标检测应用,则该安防摄像头拍摄作为数据集的图片后,将拍摄的图片输入网络模型,使图片在网络模型中自上而下地在各层中进行运算,并输出目标检测结果。本公开也不限于进一步地对输出的结果执行后处理,例如数据分类等。
与此处描述的应用方法相对应的,本公开还描述了神经网络模型的应用装置,该应用装置包括:存储模块,用于存储训练后的网络模型;接收模块,用于接收存储的网络模型所能执行的任务要求对应的数据集;处理模块,用于将所述数据集在存储的网络模型中自上而下地在各层中进行运算,并输出结果。
其他实施例
本发明的实施例还可以通过读出并执行记录在存储介质(也可以更完全地被称为“非暂时的计算机可读存储介质”)上的计算机可执行指令(例如,一个或多个程序)以执行一个或多个上述实施例的功能并且/或者包括用于执行一个或多个上述实施例的功能的一个或多个电路(例如,专用集成电路(ASIC))的系统或装置的计算机来实现,并且通过由系统或装置的计算机执行的方法来实现,通过例如从存储介质读出并执行计算机可读指令以执行一个或多个上述实施例的功能并且/或者控制一个或多个电路以执行一个或多个上述实施例的功能。该计算机可以包括一个或多个处理器(例如,中央处理单元(CPU),微处理单元(MPU)),并且可以包括独立的计算机或独立的处理器的网络来读出并执行计算机可执行指令。该计算机可执行指令可以从例如网络或存储介质提供给计算机。该存储介质可以包括例如硬盘、随机存取存储器(RAM)、只读存储器(ROM)、分布式计算系统的存储、光盘(诸如压缩盘(CD)、数字通用盘(DVD)或蓝光盘(BD)(注册商标))、闪存设备、存储卡等中的一个或多个。
本发明的实施例还可以通过如下的方法来实现,即,通过网络或者各种存储介质将执行上述实施例的功能的软件(程序)提供给系统或装置,该系统或装置的计算机或是中央处理单元(CPU)、微处理单元(MPU)读出并执行程序的方法。
虽然参照示例性实施例对本发明进行了描述,但是应当理解,本发明不限于所公开的示例性实施例。应当对所附权利要求的范围给予最宽的解释,以使其涵盖所有变型、等同结构和功能。
对第一示例性实施例中的定理和推论的详细说明。
证明需要的引理:
引理1。对于任意wt∈Rd和凸泛函
Figure BDA0002273873710000221
假定
Figure BDA0002273873710000222
Figure BDA0002273873710000231
Figure BDA0002273873710000232
其中,αt∈R,对于任意t∈N,有αt≥0。
证明。因为
Figure BDA0002273873710000233
Figure BDA0002273873710000234
可得公式(16):
Figure BDA0002273873710000235
通过重新排列,给定t∈N,我们假设αt<0,可得公式(17):
Figure BDA0002273873710000236
根据投影属性
Figure BDA0002273873710000237
和凸泛函F,可得公式(18):
Figure BDA0002273873710000238
易知,因为公式(18)不成立,所以,只有当αt>0时,公式(18)才为真。
引理2。假定vt=β2vt-1+(1–β2)gt 2且v0=0和0≤β2<1。给定‖gt‖<G,可得公式(19):
Figure BDA0002273873710000239
如果β2=0,vt=g2 t,则满足上述假定。另外,如果0<β2<1,可得公式(20):
Figure BDA00022738737100002310
公式(20)来自梯度约束‖gt‖<G。同时,因为v0=0,可得公式(21):
Figure BDA00022738737100002311
对公式(21)求和,其中t=[1,T],可得公式(22):
Figure BDA0002273873710000241
公式(22)来自以下公式(23)的约束:
Figure BDA0002273873710000242
引理3。对于定理3中假设的参数设定和条件,可得公式(24):
Figure BDA0002273873710000243
参见公式(25)对公式(24)的证明。
Figure BDA0002273873710000244
根据β1t<1t<1可证明公式(25)中的第一个不等式。根据当前迭代步骤之前的αT,i,vT,i,中的最大值的定义以及后述的算法1可证明公式(25)中的第二个不等式。根据Cauchy-Schwarz不等式可证明公式(25)中的第三个不等式。根据β1k1(其中k∈[T])和
Figure BDA0002273873710000251
可证明公式(25)中的第四个不等式。进一步可得公式(26):
Figure BDA0002273873710000252
因为公式(27)的成立,所以公式(26)中的最后一个不等式也成立。
Figure BDA0002273873710000253
定理1证明。
我们考虑以下设定:ft是包含隐性量化权重的线性函数,权重的定义域F=[-1,1]。具体而说,我们考虑以下公式(28)所示的函数序列:
Figure BDA0002273873710000254
其中
Figure BDA0002273873710000255
是隐性量化权重,其目的在于使量化误差最小化,即得到
Figure BDA0002273873710000256
公式(28)可变形为公式(29):
Figure BDA0002273873710000261
其中,对于C∈N,满足以下公式(30):
Figure BDA0002273873710000262
由于求解问题是一维问题,为了简化表示,可省去⊙。同时还可进一步省去坐标索引。
对于公式(29),不难看出当
Figure BDA0002273873710000263
时,提供最小的regret。
因对公式(29)进行ADAM的处理,可得公式(31):
Figure BDA0002273873710000264
F有L域限制,此时,所有参数设定满足Adam算法。
为了提供定理证明,假定任意学习率η,有
Figure BDA0002273873710000265
其中,
Figure BDA0002273873710000266
同时进一步
Figure BDA0002273873710000267
其中,
Figure BDA0002273873710000268
可重新排列参数的下标。对于任意C步长,假定t∈N,可以有
Figure BDA0002273873710000269
我们的目标是提供
Figure BDA00022738737100002610
其中,
Figure BDA00022738737100002611
这不难看出:当
Figure BDA00022738737100002612
成立时,上述假定成立。再假设
Figure BDA00022738737100002613
因为wb=sign(w)和
Figure BDA00022738737100002614
成立,观察到对应梯度如公式(32)所示:
Figure BDA00022738737100002615
对于ADAM算法的(Ct+1)次更新,可得公式(33):
Figure BDA00022738737100002616
当β2vCt≥0,其中
Figure BDA00022738737100002715
成立时,可得公式(34):
Figure BDA0002273873710000271
Figure BDA0002273873710000272
成立,上述公式(34)的第二个不等式成立。
因此,可得
Figure BDA0002273873710000273
Figure BDA0002273873710000274
为了完成上述证明,我们需要证明
Figure BDA0002273873710000275
为了证明该定理,在
Figure BDA0002273873710000276
时,可得:如果
Figure BDA0002273873710000277
和F=[-1,1](其中,F是简单欧式映射)成立时,则
Figure BDA0002273873710000278
成立。
我们再考虑以下情况,如果
Figure BDA0002273873710000279
则在第(Ct+2)次更新时,可得公式(35):
Figure BDA00022738737100002710
由于
Figure BDA00022738737100002711
成立,则公式(35)的第二个等式也成立。为了证明
Figure BDA00022738737100002712
我们需要证明以下公式(36):
Figure BDA00022738737100002713
对公式(36)进行重新排列,可得公式(37):
Figure BDA00022738737100002714
Figure BDA0002273873710000281
公式(37)中最后一个不等式来自以下公式(38)的约束:
Figure BDA0002273873710000282
因为引理1和F=[-1,1],上述公式(38)中的第二个不等式成立。
进一步,在
Figure BDA0002273873710000283
且i mod C不等于1或2时,因为梯度将等于0,可得公式(39):
Figure BDA0002273873710000284
Figure BDA0002273873710000285
Figure BDA0002273873710000286
因此,给定w1=1时,公式(39)在所有
Figure BDA0002273873710000287
时成立,因此可得公式(40):
Figure BDA0002273873710000288
其中,k∈N。因此,对于每C步,ADAM算法的regret为C。因此,当T→∞时,
Figure BDA0002273873710000289
成立。
定理1证明完成。
定理2的证明。
定理2泛化了定理1的优化设定。具体来说,我们能构造二值优化算法。我们定义了一个更加通用的情况,在ADAM算法的更新过程中设计了一个常数偏差∈,参见公式(41):
Figure BDA0002273873710000291
我们考虑以下设定:ft是包含隐性量化权重的线性函数,权重的定义域F=[-1,1]。具体而说,我们考虑以下公式(42)所示的函数序列:
Figure BDA0002273873710000292
其中,常数C∈N满足公式(43)
Figure BDA0002273873710000293
Figure BDA0002273873710000294
Figure BDA0002273873710000295
其中,
Figure BDA0002273873710000296
C是一个基于β1,β2和α的常数。
如果mkC≤0(其中
Figure BDA0002273873710000297
)成立,则在更一般情况下,mkC+C如公式(44)所示:
Figure BDA0002273873710000298
如果mkC<0,则mkC+C<0仍然满足。
在时间迭代t时,可得公式(45):
xt+C≥min{xt+ct,1} 公式(45):
在ct>0时,对于包含隐性量化权重的序列函数,可得公式(46):
Figure BDA0002273873710000299
Figure BDA00022738737100002910
其中i∈{1,...,C}。如果δt+j≥,则对于j∈{1,...,C-1}而言,δt+s≥0(其中
Figure BDA0002273873710000301
)成立。使用已知引理,可得公式(47):
Figure BDA0002273873710000302
使i'=C/2成立,为了证明上述公式(45),我们需要进一步证明以下公式(48):
Figure BDA0002273873710000303
最后,可得公式(49):
Figure BDA0002273873710000304
根据引理2和以下公式(50),其中i'≤i≤C,可得以下公式(51)。
Figure BDA0002273873710000305
Figure BDA0002273873710000306
当t≥T'时,对于每C步,可得在T→∞时
Figure BDA0002273873710000307
成立。
定理2证明完成。
定理3的证明。
设置ξ为任意小的正值实数,考虑到在域[-1,1]上的一维随机凸优化设定,针对每一迭代次数t,ft(w)的梯度如公式(52)所示:
Figure BDA0002273873710000311
其中,C是基于β12,ξ和α*的常数。期望函数为F(w)=ξw。因此,在[-1,1]域中的最优解为w*=-1。
因此,通过Adam更新步长为公式(53):
Figure BDA0002273873710000312
此处存在一个足够大的实数C,使公式(53)中Δt的均值E[Δt]的下限如公式(54)所示:
Figure BDA0002273873710000313
其中,C是一个函数,其由β12,ξ和α*决定。
定理4的证明。
该定理4的结果用于证明算法1的有效性,其中算法1为:
Figure BDA0002273873710000314
Figure BDA0002273873710000321
上述算法1是以二元神经网络模型为例进行描述的,本公开并不限于其他类型的神经网络模型。
下述定理4提供了算法1的收敛性证明。
使
Figure BDA0002273873710000322
成立,其中w*存在于F是闭合凸解的情况。
已知公式(55):
Figure BDA0002273873710000323
其中
Figure BDA0002273873710000324
使用引理4和
Figure BDA0002273873710000325
可得公式(56):
Figure BDA0002273873710000326
重新排列上述公式(56),可得公式(57):
Figure BDA0002273873710000331
公式(54)中的第二个不等式可由Cauchy-Schwarz和Young's不等式证明。我们利用ft函数的凸性,在每一步对regret进行限制,可得以下公式(58):
Figure BDA0002273873710000332
通过使用引理3,我们可得公式(59):
Figure BDA0002273873710000333
因为β1t≤β1<1,根据上述公式(59)可得公式(60)。
Figure BDA0002273873710000341
公式(60)
基于对Υt的约束,可得公式(61):
Figure BDA0002273873710000342
在函数的可行域,使用L和上述所有公式,可得公式(62):
Figure BDA0002273873710000343
根据以下公式(63),
Figure BDA0002273873710000344
可得以下公式(64)。
Figure BDA0002273873710000345

Claims (18)

1.一种神经网络模型的训练方法,其特征在于,所述训练方法包括:
在反向传播中,确定所述神经网络模型中的权重的梯度;
针对确定的梯度中的至少一个梯度,执行以下处理:
确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束到所述约束阈值范围内,
其中,所述约束阈值范围是根据所述神经网络模型的训练迭代次数和计算精度确定的;
利用约束后的梯度更新权重。
2.根据权利要求1所述的训练方法,其特征在于,
其中,在梯度大于所述约束阈值范围的上限值的情况下,将所述梯度约束成所述上限值;
在梯度小于所述约束阈值范围的下限值的情况下,将所述梯度约束成所述下限值。
3.根据权利要求1所述的训练方法,其特征在于,
其中,所述约束阈值范围的上限值在逐次训练中单调递减,所述约束阈值范围的下限值在逐次训练中单调递增。
4.根据权利要求1所述的训练方法,其特征在于,所述训练方法还包括:
确定所述神经网络模型中各权重的量化误差,并将其中最大的量化误差作为所述神经网络模型的量化误差;
利用所述神经网络模型的量化误差和训练迭代次数确定约束阈值范围,其中,确定的所述约束阈值范围用于对所述至少一个梯度进行约束。
5.根据权利要求1所述的训练方法,其特征在于,所述训练方法还包括:
针对所述神经网络模型中的至少一个权重,确定该权重的量化误差;
利用权重的量化误差和训练迭代次数确定约束阈值范围,其中,确定的约束阈值范围用于对该权重的梯度进行约束。
6.根据权利要求1所述的训练方法,其特征在于,所述训练方法还包括:
针对所述神经网络模型中的至少一个权重,从该权重在本次训练确定的梯度以及该权重在前多次训练约束后的梯度中,确定加权最大值;
确定所述加权最大值是否在约束阈值范围内,并将超出所述约束阈值范围的加权最大值约束到所述约束阈值范围内。
7.根据权利要求6所述的训练方法,其特征在于,其中,所述神经网络模型的计算精度越低,确定加权最大值时所需的前多次训练的训练次数就越少。
8.一种神经网络模型的训练系统,其特征在于,所述训练系统包括:
服务器,其存储至少一个第一网络模型,所述第一网络模型提供用于对第二网络模型进行同步的信息,所述服务器用于在反向传播中,确定所述第一网络模型中的权重的梯度,并针对确定的梯度中的一个梯度,执行以下处理:
确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束到所述约束阈值范围内,利用约束后的梯度更新权重,并将更新后的权重输出,
其中,所述约束阈值范围是根据所述第一网络模型的训练迭代次数和计算精度确定的;
终端,其存储所述第二网络模型,所述终端用于利用服务器输出的权重对所述第二网络模型进行同步。
9.根据权利要求8所述的训练系统,其特征在于,其中,所述服务器还用于:
确定所述第一网络模型中各权重的量化误差,并将其中最大的量化误差作为所述第一网络模型的量化误差;
利用所述第一网络模型的量化误差和训练迭代次数确定约束阈值范围,其中,确定的所述约束阈值范围用于对所述至少一个梯度进行约束。
10.根据权利要求8所述的训练系统,其特征在于,其中,所述服务器还用于:
针对所述第一网络模型中的至少一个权重,确定该权重的量化误差;
利用权重的量化误差和训练迭代次数确定约束阈值范围,其中,确定的约束阈值范围用于对该权重的梯度进行约束。
11.根据权利要求8所述的训练系统,其特征在于,其中,所述服务器还用于:
针对所述第一网络模型中的至少一个权重,从该权重在本次训练确定的梯度以及该权重在前多次训练约束后的梯度中,确定加权最大值;
确定所述加权最大值是否在约束阈值范围内,并将超出所述约束阈值范围的加权最大值约束到所述约束阈值范围内。
12.一种神经网络模型的训练装置,其特征在于,所述训练装置包括:
梯度确定单元,其被构造为在反向传播中,确定所述神经网络模型中的权重的梯度;
梯度约束单元,其被构造为针对所述梯度确定单元确定的梯度中的至少一个梯度,执行以下处理:
确定梯度是否在约束阈值范围内,并将超出所述约束阈值范围的梯度约束到所述约束阈值范围内,
其中,所述约束阈值范围是根据所述神经网络模型的训练迭代次数和计算精度确定的;
更新单元,其被构造为利用约束后的梯度更新权重。
13.根据权利要求12所述的训练装置,其特征在于,其中,所述梯度约束单元还用于:
确定所述神经网络模型中各权重的量化误差,并将其中最大的量化误差作为所述神经网络模型的量化误差;以及,利用所述神经网络模型的量化误差和训练迭代次数确定约束阈值范围,其中,确定的所述约束阈值范围用于对所述至少一个梯度进行约束。
14.根据权利要求12所述的训练装置,其特征在于,其中,所述梯度约束单元还用于:
针对所述网络模型中的至少一个权重,确定该权重的量化误差;以及,利用权重的量化误差和训练迭代次数确定约束阈值范围,其中,确定的约束阈值范围用于对该权重的梯度进行约束。
15.根据权利要求12所述的训练装置,其特征在于,所述训练装置还包括:
梯度更新单元,其被构造为针对所述神经网络模型中的至少一个权重,从该权重在本次训练确定的梯度以及该权重在前多次训练约束后的梯度中,确定加权最大值;
所述梯度约束单元,用于确定所述加权最大值是否在约束阈值范围内,并将超出所述约束阈值范围的加权最大值约束到所述约束阈值范围内。
16.一种神经网络模型的应用方法,其特征在于,所述应用方法包括:
存储基于权利要求1至7任一所述的训练方法训练后的神经网络模型;
接收存储的神经网络模型所能执行的任务要求对应的数据集;
将所述数据集在存储的神经网络模型中自上而下地在各层中进行运算,并输出结果。
17.一种神经网络模型的应用装置,其特征在于,所述应用装置包括:
存储模块,其被配置为存储基于权利要求1至7任一所述的训练方法训练后的神经网络模型;
接收模块,其被配置为接收存储的神经网络模型所能执行的任务要求对应的数据集;
处理模块,其被配置为将所述数据集在存储的神经网络模型中自上而下地在各层中进行运算,并输出结果。
18.一种存储指令的非暂时性计算机可读存储介质,所述指令在由计算机执行时使所述计算机进行基于所述权利要求1至7任一的神经网络模型的训练方法。
CN201911115314.5A 2019-08-29 2019-11-14 神经网络模型的训练和应用方法、装置、系统及存储介质 Pending CN112446487A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/003,384 US20210065011A1 (en) 2019-08-29 2020-08-26 Training and application method apparatus system and stroage medium of neural network model
JP2020144863A JP7009020B2 (ja) 2019-08-29 2020-08-28 学習方法、学習システム、学習装置、方法、適用装置、及びコンピュータプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910807591 2019-08-29
CN2019108075916 2019-08-29

Publications (1)

Publication Number Publication Date
CN112446487A true CN112446487A (zh) 2021-03-05

Family

ID=74733134

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911115314.5A Pending CN112446487A (zh) 2019-08-29 2019-11-14 神经网络模型的训练和应用方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN112446487A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115660046A (zh) * 2022-10-24 2023-01-31 中电金信软件有限公司 二值神经网络的梯度重构方法、装置、设备及存储介质
WO2023125521A1 (zh) * 2021-12-29 2023-07-06 华为技术有限公司 一种深度学习模型训练方法、装置及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140081895A1 (en) * 2012-09-20 2014-03-20 Oliver Coenen Spiking neuron network adaptive control apparatus and methods
JP2018067039A (ja) * 2016-10-17 2018-04-26 日本電信電話株式会社 学習装置、学習方法および学習プログラム
US20190042945A1 (en) * 2017-12-12 2019-02-07 Somdeb Majumdar Methods and arrangements to quantize a neural network with machine learning
CN109740755A (zh) * 2019-01-08 2019-05-10 深圳市网心科技有限公司 一种基于梯度下降法的数据处理方法及相关装置
CN109754063A (zh) * 2017-11-07 2019-05-14 三星电子株式会社 用于学习低精度神经网络的方法及装置
CN110135573A (zh) * 2018-02-02 2019-08-16 阿里巴巴集团控股有限公司 一种深度学习模型的训练方法、计算设备以及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140081895A1 (en) * 2012-09-20 2014-03-20 Oliver Coenen Spiking neuron network adaptive control apparatus and methods
JP2018067039A (ja) * 2016-10-17 2018-04-26 日本電信電話株式会社 学習装置、学習方法および学習プログラム
CN109754063A (zh) * 2017-11-07 2019-05-14 三星电子株式会社 用于学习低精度神经网络的方法及装置
US20190042945A1 (en) * 2017-12-12 2019-02-07 Somdeb Majumdar Methods and arrangements to quantize a neural network with machine learning
CN110135573A (zh) * 2018-02-02 2019-08-16 阿里巴巴集团控股有限公司 一种深度学习模型的训练方法、计算设备以及系统
CN109740755A (zh) * 2019-01-08 2019-05-10 深圳市网心科技有限公司 一种基于梯度下降法的数据处理方法及相关装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JETFLOW: "TensorFlow中的梯度裁剪(Gradient Clipping)", Retrieved from the Internet <URL:https://blog.csdn.net/jetFlow/article/details/80161354?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170286484616777224420284%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=170286484616777224420284&biz_id=0&utm_medium=distribute.wap_search_result.none-task-blog-2~all~sobaiduend~default-2-80161354-null-null.wap_first_rank_v2_rank_v29&utm_term=tensorflow%E4%B8%AD%E7%9A%84%E6%A2%AF%E5%BA%A6%E8%A3%81%E5%89%AA&spm=1018.2118.3001.4187> *
SAMBHAV R. JAIN等: "Trained Uniform Quantization for Accurate and Efficient Neural Network Inference on Fixed-Point Hardware", Retrieved from the Internet <URL:https://arxiv.org/abs/1903.08066v1> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023125521A1 (zh) * 2021-12-29 2023-07-06 华为技术有限公司 一种深度学习模型训练方法、装置及相关设备
CN115660046A (zh) * 2022-10-24 2023-01-31 中电金信软件有限公司 二值神经网络的梯度重构方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
JP7009020B2 (ja) 学習方法、学習システム、学習装置、方法、適用装置、及びコンピュータプログラム
US10229356B1 (en) Error tolerant neural network model compression
US10152676B1 (en) Distributed training of models using stochastic gradient descent
TW201918939A (zh) 用於學習低精度神經網路的方法及裝置
CN111758104B (zh) 适合于硬件实现的神经网络参数优化方法、神经网络计算方法和装置
CN112149797B (zh) 神经网络结构优化方法和装置、电子设备
CN111178491A (zh) 神经网络模型的训练和应用方法、装置、系统及存储介质
EP3767549A1 (en) Delivery of compressed neural networks
CN112446487A (zh) 神经网络模型的训练和应用方法、装置、系统及存储介质
KR20190083127A (ko) 단말 클러스터 내 이미지를 이용하여 컨볼루션 뉴럴 네트워크 모델을 학습시키기 위한 시스템 및 방법
CN112948885A (zh) 实现隐私保护的多方协同更新模型的方法、装置及系统
KR20200049422A (ko) 시뮬레이션-가이드된 반복적 프루닝을 사용하는 효율적인 네트워크 압축
WO2022246986A1 (zh) 数据处理方法、装置、设备及计算机可读存储介质
CN114492746A (zh) 一种基于模型分割的联邦学习加速方法
US20220076115A1 (en) Data processing based on neural network
CN114830137A (zh) 用于生成预测模型的方法和系统
CN112446461A (zh) 一种神经网络模型训练方法及装置
CN115660116A (zh) 基于稀疏适配器的联邦学习方法及系统
CN115496181A (zh) 深度学习模型的芯片适配方法、装置、芯片及介质
CN113033653B (zh) 一种边-云协同的深度神经网络模型训练方法
CN112561050B (zh) 一种神经网络模型训练方法及装置
CN113177627B (zh) 优化系统、重新训练系统及其方法及处理器和可读介质
CN114118358A (zh) 图像处理方法、装置、电子设备、介质及程序产品
KR20220010419A (ko) 동적 예측 신뢰도 임계값 선택에 기반한 저복잡도 인공지능 모델 학습을 위한 전자 장치 및 학습 방법
CN114065913A (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