本发明涉及机器学习、数值方法
技术领域:
,尤其涉及一种基于临界阻尼动量的深度神经网络的训练方法及系统。
背景技术:
:深度神经网络已经在计算机视觉、自然语言处理、计算机图形学等领域展现出优异的性能。随着深度神经网络在网络层数、拓扑结构等方面的日益复杂化,深度神经网络的参数量也与日俱增,目前业界最新的神经网络的参数数目已经达到107~108数量级。庞大的参数量虽然提升了神经网络的适用范围和效能,但也给网络的训练和优化带来了难题。大型网络的训练经常需要几天甚至更多的时间,同时也对研究者的图形处理器性能提出了新的要求。这无疑给神经网络的研究和应用带来了一定程度的不便。神经网络训练的优化经常需要借助于数值方法。近年来,在众多优化算法中,随机梯度下降(sgd)、自适应动量估计(adam)等数值算法在图像分类、语义分割等任务中表现较为出色,能够使目标网络的损失函数在一定的迭代次数后达到或接近其极小值,成为深度学习研究人员普遍采用的训练策略。然而,sgd算法的迭代速度比较慢,而且其学习率是一个仅能凭经验设定的超参数。当学习率设置得太小或太大时,神经网络参数的迭代很容易出现步幅过缓或者剧烈振荡的问题。adam算法虽然在一定条件下能够获得比sgd更快的速度,但它适用的网络类型比sgd少,而且在某些特殊情况下还可能不收敛。以上
背景技术:
内容的公开仅用于辅助理解本发明的构思及技术方案,其并不必然属于本专利申请的现有技术,在没有明确的证据表明上述内容在本专利申请的申请日已经公开的情况下,上述
背景技术:
不应当用于评价本申请的新颖性和创造性。技术实现要素:为解决上述技术问题,本发明提出一种基于临界阻尼动量的深度神经网络的训练方法及系统,对包含动量的随机梯度下降方法进行了改进,达到了较为理想的训练效果。为达到上述目的,本发明采用以下技术方案:本发明公开了一种基于临界阻尼动量的深度神经网络的训练方法,包括以下步骤:s1:开始新一轮的迭代;s2:输入一批新图像,计算神经网络的损失函数的海塞矩阵的迹,其中所述海塞矩阵是损失函数对神经网络各参数的二阶导数所构成的矩阵;s3:根据海塞矩阵的迹代入二阶微分方程的临界阻尼解,计算得到神经网络权重参数的动量系数;s4:配合学习率衰减策略,更新神经网络的参数;s5:判断是否所有图像批次都已计算,如果是,则执行步骤s6;如果否,则返回步骤s2;s6:判断迭代轮次是否达到最大,如果是,则结束训练,如果否,则返回步骤s1。优选地,步骤s2具体包括:s21:输入一批新图像;s22:前向传播,计算神经网络的损失函数l;s23:反向传播,计算神经网络的损失函数的梯度向量g;s24:生成拉特马赫随机向量v,以计算梯度向量积gtv;s25:根据梯度向量积gtv计算海塞矩阵h与拉特马赫随机向量v的乘积;s26:根据海塞矩阵h与拉特马赫随机向量v的乘积计算海塞矩阵的迹tr(h);s27:判断海塞矩阵的迹tr(h)的精度是否符合条件,如果是,则输出海塞矩阵的迹tr(h),如果否,则返回步骤s24。优选地,步骤s26具体包括:使用哈特钦森向量积迭代算法以根据海塞矩阵h与拉特马赫随机向量v的乘积计算神经网络的损失函数的海塞矩阵的迹:其中,e表示求均值,v为拉特马赫随机向量,h为海塞矩阵,下标m表示第m次迭代所得的值,m为所有计算出的拉特马赫随机向量v的总个数。优选地,步骤s25具体包括:采用下列反向传播方式计算海塞矩阵h与拉特马赫随机向量v的乘积:其中,为神经网络的损失函数l的梯度向量,w为神经网络权重参数向量,且神经网络权重参数向量w与拉特马赫随机向量v的尺寸相同。优选地,步骤s27中判断海塞矩阵的迹tr(h)的精度是否符合条件具体包括:根据下式的控制条件来确定m的取值:其中,ε为误差控制阈值,如果上式的控制条件被满足时,则海塞矩阵的迹tr(h)的精度符合条件,停止计算,输出海塞矩阵的迹tr(h);否则海塞矩阵的迹tr(h)的精度不符合条件,继续增大m值进行计算;进一步地,ε≤10-3。优选地,步骤s3具体包括:采用下式计算动量系数:其中,ρk 1、ρk分别为第k次、第k-1次迭代计算所得的动量系数,n为抽取的神经网络权重参数向量的维数,αk为第k次迭代时神经网络的学习率,tr(h)为神经网络的损失函数的海塞矩阵的迹。优选地,步骤s4具体包括:将步骤s3计算得到的动量系数ρk与初始设定值ρ0进行比较,如果ρk≤ρ0,则将神经网络迭代所调用的动量系数设定为ρk,然后配合学习率衰减策略,更新神经网络的参数;否则直接配合学习率衰减策略,更新神经网络的参数。优选地,步骤s4中配合学习率衰减策略,更新神经网络的参数具体包括:采用下式对学习率进行衰减:其中,αp、αp 1分别表示更新前和更新后的学习率,c为衰减系数,epoch为当前迭代轮次,表示向下取整,参数n为整数;在根据上式对学习率进行衰减后,对动量系数的值进行调节更新;进一步地,衰减系数c设置为0.1,n=50。本发明还公开了一种基于临界阻尼动量的深度神经网络的训练系统,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现上述的深度神经网络的训练方法的步骤。本发明另外还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使处理器实现上述的深度神经网络的训练方法的步骤。与现有技术相比,本发明的有益效果在于:本发明提出了一种基于临界阻尼动量的深度神经网络训练方法及系统,对于输入的每一批图像数据使用哈特钦森向量积迭代算法计算其海塞矩阵的迹,利用二阶微分方程解的临界阻尼特性计算得到动量系数,并在训练过程中对优化器的参数设置进行平滑切换;本方法将神经网络的训练过程转化为二阶微分方程解的最速收敛问题,对随机梯度下降算法中的动量信息进行了动态更新。相比于其他常用的训练算法,本方法利用了神经网络参数隐含的二阶信息(即网络损失函数对网络参数的海塞矩阵),结合二阶微分方程解的临界阻尼特性计算出更优化的动量系数,从而在训练中后期达到更快的收敛速度;经过同样的训练循环次数,采用本方法的神经网络模型在统计意义上具有更高的准确度和更小的损失,有利于加速神经网络训练和部署的进程。附图说明图1是本发明优选实施例的基于临界阻尼动量的深度神经网络训练方法的流程图;图2是图1中的步骤s2的具体流程图;图3是本发明进一步的实施例的基于临界阻尼动量的深度神经网络训练方法的流程图。具体实施方式为了使本发明实施例所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,本发明优选实施例公开了一种基于临界阻尼动量的深度神经网络训练方法,包括以下步骤:s1:开始新一轮的迭代;s2:输入一批新图像,计算神经网络的损失函数的海塞矩阵的迹;具体地,对于输入的每一批图像数据使用哈特钦森(hutchinson)向量积迭代算法计算其损失函数海塞(hessian)矩阵的迹(即海塞矩阵对角线元素之和)。如图2所示,步骤s2具体包括:s21:输入一批新图像;s22:前向传播,计算神经网络的损失函数l;s23:反向传播,计算神经网络的损失函数的梯度向量g;s24:生成拉特马赫随机向量v,以计算梯度向量积gtv;s25:根据梯度向量积gtv计算海塞矩阵h与拉特马赫随机向量v的乘积;其中,采用下列反向传播方式计算海塞矩阵h与拉特马赫随机向量v的乘积:式中,为神经网络损失函数l的梯度向量,由神经网络反向传播机制计算。这一反向传播过程的计算图将被保留,以便再次计算gtv对参数向量w的导数。为节省内存,完成两次求导后计算图将被销毁。s26:根据海塞矩阵h与拉特马赫随机向量v的乘积计算海塞矩阵的迹tr(h);其中,采用如下的哈特钦森向量积迭代算法计算其损失函数海塞矩阵的迹:式中,e表示求均值,v为与神经网络权重参数向量w尺寸相同的拉特马赫(rademacher)随机向量,h为损失函数对神经网络各参数的二阶导数所构成的海塞矩阵,下标m表示第m次迭代所得的值,m为所有计算出的向量v的总个数。为节约计算和存储成本,每次迭代从网络中随机抽取相同尺寸的向量w。s27:判断海塞矩阵的迹tr(h)的精度是否符合条件,如果是,则输出海塞矩阵的迹tr(h),如果否,则返回步骤s24。其中,采用如下的控制条件确定m的取值以保证海塞矩阵的迹的精度:式中,ε为误差控制阈值。在本实施例中,ε=10-3,此时能够较好地兼顾计算时间和精度的平衡。当上述控制条件被满足时,则海塞矩阵的迹tr(h)的精度符合条件,停止计算;否则海塞矩阵的迹tr(h)的精度不符合条件,继续增大m值进行计算。也即根据上式对m的取值的控制可以保证海塞矩阵的迹的精度。s3:将海塞矩阵的迹代入二阶微分方程的临界阻尼解,计算得到神经网络权重参数的动量系数;具体地,采用下述公式计算神经网络权重参数的动量系数:式中,ρk 1、ρk分别为第k次、第k-1次迭代计算所得的动量系数,n为抽取的神经网络权重参数向量的维数,αk为第k次迭代时神经网络的学习率。s4:配合学习率衰减策略,随网络训练迭代次数的增加对优化器的参数设置进行平滑切换。具体地,如图3所示,将步骤s3计算得到的动量系数ρk与初始设定值ρ0进行比较,如果ρk≤ρ0,则将神经网络迭代所调用的动量系数设定为ρk,然后配合学习率衰减策略,更新神经网络的参数;否则直接配合学习率衰减策略,更新神经网络的参数。其中具体操作如下:将每次计算得到的动量系数ρk与初始设定值ρ0(例如可以设定为0.9)进行比较,随着网络迭代次数的增加,ρk会逐渐下降,当第一次出现ρk≤ρ0时,将网络迭代所调用的动量系数设定为ρk,并使动量系数随迭代更新。随着迭代次数的增加采用学习率衰减(steplr)策略,在控制更新步长的同时对动量系数ρk的值进行微调。steplr的公式如下:其中,αp、αp 1分别表示更新前和更新后的学习率,衰减系数c例如可以设置为0.1,epoch为当前迭代轮次,表示向下取整,取n=50。s5:判断是否所有图像批次都已计算,如果是,则执行步骤s6;如果否,则返回步骤s2;s6:判断迭代轮次是否达到最大,如果是,则结束训练,如果否,则返回步骤s1。本发明公开的基于临界阻尼动量的深度神经网络训练方法,该方法包括:对于输入的每一批图像数据使用哈特钦森(hutchinson)向量积迭代算法计算其海森(hessian)矩阵的迹,利用二阶微分方程解的临界阻尼特性计算得到动量系数,并在训练过程中对优化器的参数设置进行平滑切换。本方法将神经网络的训练过程转化为二阶微分方程解的最速收敛问题,对随机梯度下降算法中的动量信息进行了动态更新。相比于其他常用的训练算法,本方法利用了神经网络参数隐含的二阶信息(即网络损失函数对网络参数的海塞矩阵),结合二阶微分方程解的临界阻尼特性计算出更优化的动量系数,从而在训练中后期达到更快的收敛速度。经过同样的训练循环次数,采用本方法的神经网络模型在统计意义上具有更高的准确度和更小的损失,有利于加速神经网络训练和部署的进程。下述以具体实例对本发明的基于临界阻尼动量的深度神经网络训练方法的效果进行测试。实验使用resnet-20、resnet-32、resnet-56等经典深度神经网络在cifar-10数据集上进行分类任务的训练。cifar-10数据集下载地址:http://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz。cifar-10数据集共有60000张彩色图片,共分为10类,其中50000张为训练集,10000张为测试集。训练时,设置初始学习率为0.1,初始动量系数为0.9,批大小(batchsize)为128。网络的损失函数采用交叉熵函数和均方差函数的线性组合。实验使用分类准确率(acc)作为网络训练效果的评价指标,acc的计算公式为:式中,tp代表正确分类图片张数,fp代表错误分类图片张数。下表为经过相同的迭代循环次数,本发明优选实施例的方法训练的准确率与实验所用的神经网络的作者所训练数据(下称原始数据)的对比,结果如表1所示。原始数据来源于:https://arxiv.org/pdf/1512.03385.pdf。表1本方法与原始数据的准确率的比较网络名称迭代循环次数本方法准确率原始数据准确率resnet-2020092.14%91.25%resnet-3220092.76%92.49%resnet-5620093.18%93.03%通过表1中的数据对比可以看出,本发明优选实施例提出的方法训练得到的深度神经网络的效果更佳,具有更高的准确度和更小的损失,从而有利于加速神经网络训练和部署的进程。本发明另一优选实施例还公开了一种基于临界阻尼动量的深度神经网络的训练系统,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求上述的深度神经网络的训练方法的步骤,在此不再赘述。本发明还有一优选实施例公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使处理器实现上述的深度神经网络的训练方法的步骤,在此不再赘述。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属
技术领域:
的技术人员来说,在不脱离本发明构思的前提下,还可以做出若干等同替代或明显变型,而且性能或用途相同,都应当视为属于本发明的保护范围。当前第1页1 2 3 
技术特征:1.一种基于临界阻尼动量的深度神经网络的训练方法,其特征在于,包括以下步骤:
s1:开始新一轮的迭代;
s2:输入一批新图像,计算神经网络的损失函数的海塞矩阵的迹,其中所述海塞矩阵是损失函数对神经网络各参数的二阶导数所构成的矩阵;
s3:根据海塞矩阵的迹代入二阶微分方程的临界阻尼解,计算得到神经网络权重参数的动量系数;
s4:配合学习率衰减策略,更新神经网络的参数;
s5:判断是否所有图像批次都已计算,如果是,则执行步骤s6;如果否,则返回步骤s2;
s6:判断迭代轮次是否达到最大,如果是,则结束训练,如果否,则返回步骤s1。
2.根据权利要求1所述的深度神经网络的训练方法,其特征在于,步骤s2具体包括:
s21:输入一批新图像;
s22:前向传播,计算神经网络的损失函数l;
s23:反向传播,计算神经网络的损失函数的梯度向量g;
s24:生成拉特马赫随机向量v,以计算梯度向量积gtv;
s25:根据梯度向量积gtv计算海塞矩阵h与拉特马赫随机向量v的乘积;
s26:根据海塞矩阵h与拉特马赫随机向量v的乘积计算海塞矩阵的迹tr(h);
s27:判断海塞矩阵的迹tr(h)的精度是否符合条件,如果是,则输出海塞矩阵的迹tr(h),如果否,则返回步骤s24。
3.根据权利要求2所述的深度神经网络的训练方法,其特征在于,步骤s26具体包括:使用哈特钦森向量积迭代算法以根据海塞矩阵h与拉特马赫随机向量v的乘积计算神经网络的损失函数的海塞矩阵的迹:
其中,e表示求均值,v为拉特马赫随机向量,h为海塞矩阵,下标m表示第m次迭代所得的值,m为所有计算出的拉特马赫随机向量v的总个数。
4.根据权利要求3所述的深度神经网络的训练方法,其特征在于,步骤s25具体包括:采用下列反向传播方式计算海塞矩阵h与拉特马赫随机向量v的乘积:
其中,g=▽wl为神经网络的损失函数l的梯度向量,w为神经网络权重参数向量,且神经网络权重参数向量w与拉特马赫随机向量v的尺寸相同。
5.根据权利要求3所述的深度神经网络的训练方法,其特征在于,步骤s27中判断海塞矩阵的迹tr(h)的精度是否符合条件具体包括:
根据下式的控制条件来确定m的取值:
其中,ε为误差控制阈值,如果上式的控制条件被满足时,则海塞矩阵的迹tr(h)的精度符合条件,停止计算,输出海塞矩阵的迹tr(h);否则海塞矩阵的迹tr(h)的精度不符合条件,继续增大m值进行计算;进一步地,ε≤10-3。
6.根据权利要求1所述的深度神经网络的训练方法,其特征在于,步骤s3具体包括:采用下式计算动量系数:
其中,ρk 1、ρk分别为第k次、第k-1次迭代计算所得的动量系数,n为抽取的神经网络权重参数向量的维数,αk为第k次迭代时神经网络的学习率,tr(h)为神经网络的损失函数的海塞矩阵的迹。
7.根据权利要求1所述的深度神经网络的训练方法,其特征在于,步骤s4具体包括:将步骤s3计算得到的动量系数ρk与初始设定值ρ0进行比较,如果ρk≤ρ0,则将神经网络迭代所调用的动量系数设定为ρk,然后配合学习率衰减策略,更新神经网络的参数;否则直接配合学习率衰减策略,更新神经网络的参数。
8.根据权利要求1所述的深度神经网络的训练方法,其特征在于,步骤s4中配合学习率衰减策略,更新神经网络的参数具体包括:采用下式对学习率进行衰减:
αp 1=cpαp,
其中,αp、αp 1分别表示更新前和更新后的学习率,c为衰减系数,epoch为当前迭代轮次,表示向下取整,参数n为整数;在根据上式对学习率进行衰减后,对动量系数的值进行调节更新;
进一步地,衰减系数c设置为0.1,n=50。
9.一种基于临界阻尼动量的深度神经网络的训练系统,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至8任一项所述的深度神经网络的训练方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使处理器实现权利要求1至8任一项所述的深度神经网络的训练方法的步骤。
技术总结本发明公开了一种基于临界阻尼动量的深度神经网络的训练方法及系统,该方法包括:S1:开始新一轮的迭代;S2:输入一批新图像,计算神经网络的损失函数的海塞矩阵的迹,其中所述海塞矩阵是损失函数对神经网络各参数的二阶导数所构成的矩阵;S3:根据海塞矩阵的迹代入二阶微分方程的临界阻尼解,计算得到神经网络权重参数的动量系数;S4:配合学习率衰减策略,更新神经网络的参数;S5:判断是否所有图像批次都已计算,如果是,则执行步骤S6;如果否,则返回步骤S2;S6:判断迭代轮次是否达到最大,如果是,则结束训练,如果否,则返回步骤S1。本发明对包含动量的随机梯度下降方法进行了改进,达到了较为理想的训练效果。
技术研发人员:王好谦;蔡宇麟;王兴政
受保护的技术使用者:清华大学深圳国际研究生院
技术研发日:2020.12.21
技术公布日:2021.03.12