CN113705724A - 基于自适应l-bfgs算法的深度神经网络的批量学习方法 - Google Patents

基于自适应l-bfgs算法的深度神经网络的批量学习方法 Download PDF

Info

Publication number
CN113705724A
CN113705724A CN202111069585.9A CN202111069585A CN113705724A CN 113705724 A CN113705724 A CN 113705724A CN 202111069585 A CN202111069585 A CN 202111069585A CN 113705724 A CN113705724 A CN 113705724A
Authority
CN
China
Prior art keywords
layer
output
neural network
value
deep neural
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.)
Granted
Application number
CN202111069585.9A
Other languages
English (en)
Other versions
CN113705724B (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.)
Suzhou University
Original Assignee
Suzhou University
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 Suzhou University filed Critical Suzhou University
Priority to CN202111069585.9A priority Critical patent/CN113705724B/zh
Publication of CN113705724A publication Critical patent/CN113705724A/zh
Application granted granted Critical
Publication of CN113705724B publication Critical patent/CN113705724B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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
    • 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/048Activation functions
    • 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

Landscapes

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

Abstract

本发明提出一种基于自适应的L‑BFGS算法的批量学习方法,用于深度神经网络的训练,每次训练时按一定规则选取一部分样本计算更新参数,以减少计算复杂度,同时解决一阶算法(如Mini‑Batch GD)训练时存在的收敛速度慢,易陷入局部最优点等缺点。本发明提出的算法解决了L‑BFGS算法中记忆尺度选择困难的问题。本发明提出的算法引入了多步拟牛顿理论对AL‑BFGS中衡量近似程度的计算公式进行了改进,使得到海塞矩阵逆的近似矩阵与海塞矩阵的逆矩阵之间近似程度更高。本发明提出的算法选取多个记忆尺度,计算出不同的方向进行叠加,得到最终的搜索方向,从而加强对最近曲率信息的使用,加快了收敛速度。

Description

基于自适应L-BFGS算法的深度神经网络的批量学习方法
技术领域
本发明涉及深度神经网络领域,具体涉及一种基于自适应L-BFGS算法的深度神经网络的批量学习方法。
背景技术
近年来,由于计算机算力的提高,人工神经网络在计算机视觉,自然语言处理等不同领域取得了巨大成功。而神经网络的训练速度及最终获得的准确率等性能指标主要取决于所采用的训练算法。一些用于训练神经网络的一阶或二阶优化算法相继被提出。目前,在深度学习领域,一阶优化算法得到了快速发展,人们主要设计一阶优化算法来训练深度神经网络。相对来说,二阶优化算法的研究及应用要少很多。L-BFGS算法作为最流行的二阶优化算法之一,对其进行研究并用于训练深度神经网络,不仅可以改进和完善L-BFGS算法,更有助于拓展二阶优化算法在深度学习中的广泛应用,进一步提升深度学习在计算机视觉、自然语言处理等任务中的性能。
发明内容
本发明要解决的技术问题是提供一种基于自适应L-BFGS算法的深度神经网络的批量学习方法。
为了解决上述技术问题,本发明提供了一种基于自适应L-BFGS算法的深度神经网络的批量学习方法,包括:
S1.根据实际问题构建合适的深度神经网络模型,并将模型中所有可调参数即权值和偏置组成的向量初始化为x0,设置最大迭代次数为N,记忆尺度的个数为K;
S2.从训练集中随机选取小批量样本输入到深度神经网络中,根据网络结构逐层计算各神经元的输出,最后得到输出层所有神经元的输出,记为向量o;
S3.根据所选的小批量样本的标签
Figure BDA0003259614750000021
和S2中得到的输出o计算损失函数值
Figure BDA0003259614750000022
在第t次训练时,通过反向传播公式计算出损失函数的梯度
Figure BDA0003259614750000023
并计算相应的st和yt;其中,st=xt-xt-1,yt=gt-gt-1
S4.根据指数平滑法预测当前迭代的记忆尺度值
Figure BDA0003259614750000024
其中,
Figure BDA0003259614750000025
表示前一时刻所选K个记忆尺度的平均值,
Figure BDA0003259614750000026
表示前一时刻预测的记忆尺度值,α∈(0,1);
S5.根据公式
Figure BDA0003259614750000027
调整候选区间{1,2,...,M}的上界M;其中,c1∈(0,1),
Figure BDA0003259614750000028
d是预先设定的一个常量,Mt-1是前一时刻候选区间的上界;
S6.利用多步拟牛顿公式
Figure BDA0003259614750000029
计算和更新最近M组向量对
Figure BDA00032596147500000210
S7.令m=1,...,M,根据公式
Figure BDA00032596147500000211
计算e1,e2,...,eM;其中,
Figure BDA00032596147500000212
Hm,2是由向量对(γM-mM-m),...,(γM-2M-2)计算得到的拟牛顿矩阵;
S8.将得到的e1,e2,...,eM从小到大排序,选出前K个值所对应的记忆尺度m1,m2,...,mK,并根据这K个记忆尺度计算出K个方向d1,d2,...,dK;计算记忆尺度的平均值
Figure BDA0003259614750000031
和平均方向
Figure BDA0003259614750000032
S9.将平均方向dt作为当前迭代时刻的搜索方向,采用强Wolfe线搜计算出步长即学习率μt后,对网络参数进行更新xt+1=xttdt;若随着迭代次数的增加,损失函数loss的值下降得很慢趋于平稳即网络收敛,并且迭代次数达到设定的最大迭代次数N,则训练结束;否则,令t=t+1,转S2继续训练。
在其中一个实施例中,所述
Figure BDA0003259614750000033
是深度神经网络训练中的交叉熵函数或者均方误差函数。
在其中一个实施例中,在步骤S1中,所述神经网络模型由输入层,隐含层和输出层组成;输入层和输出层神经元个数是固定的;每一层中的神经元接收前一层神经元的输出,并输出到下一层,最终得到神经网络的输出;对于全连接前馈神经网络,假设第l层神经元个数为Ml,则第l层神经元的净输入为z(l)=W(l)a(l-1)+b(l),第l层神经元的输出为a(l)=fl(z(l));其中,
Figure BDA0003259614750000034
是第l-1层到第l层的权重矩阵,
Figure BDA0003259614750000035
是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数。
在其中一个实施例中,在步骤S2中,需将获取的数据集按照一定比例划分为训练集和测试集,并归一化使取值范围在0到1之间,归一化公式如下:
Figure BDA0003259614750000036
其中,xmin表示样本数据中最小值,xmax为最大值;然后将训练集数据随机排序并打包,即分为多批的样本包,每次迭代只选择其中的一个样本包输入到神经网络中,并且每次选择的样本包不一样;接着利用前向传播计算各层神经元的输出。
在其中一个实施例中,具体流程为:对于全连接前馈神经网络,输入层接收输入的样本数据直接传给下一个隐含层,即a(0)=x;a(0)代表输入层的输出,x指输入的样本数据;之后根据第l-1层神经元的输出a(l-1)计算出第l层神经元的净输入Z(l)=W(l)a(l-1)+b(l),然后经过一个激活函数得到第l层神经元的输出a(l)=fl(z(l)),这样一层一层地计算直到计算出输出层的输出o=a(L);这里,W(l)是第l-1层到第l层的权重矩阵,b(l)是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数;L代表深度神经网络总共的层数;对于卷积神经网络,输入层接收输入的样本数据X直接传给下一层,一般为卷积层,经过卷积操作得到卷积层的净输入Z=W*X+b,再经过激活函数得到输出特征映射为Y=fl(Z);这里,W代表卷积核,b是偏置,fl(·)是激活函数;之后,将卷积层得到的输出特征映射Y输入到下一层,一般为池化层,进行池化操作;池化包括最大池化和平均池化;最大池化是将一个区域内所有神经元最大输出值作为这个区域的表示;平均池化是取一个区域内所有神经元输出值的平均值作为这个区域的表示;接着将池化层结果输入到下一个卷积层,这样卷积层与池化层交替进行,最后通过全连接层连到输出层输出结果o。
在其中一个实施例中,在步骤S3中,由于每个输入的样本都有标签,根据在上一步计算得到的输出层的输出o,构建合适的损失函数,用来评价网络模型的输出值和真实值即标签的不一致程度;
构建好损失函数后,利用反向传播计算出损失函数关于网络中参数的梯度
Figure BDA0003259614750000041
便于后面参数更新。
在其中一个实施例中,S4-S5步骤用来调整选择区间{1,2,...,M}的上界M;首先在S4中利用指数平滑法,基于以前的记忆尺度预测本次迭代时记忆尺度的平均值
Figure BDA0003259614750000042
计算公式如下:
Figure BDA0003259614750000051
这里,
Figure BDA0003259614750000052
表示前一时刻所选K个记忆尺度的平均值,
Figure BDA0003259614750000053
表示前一时刻预测的记忆尺度值;在本发明中,预测值的初始值
Figure BDA0003259614750000054
设定为第一次迭代时的真实值
Figure BDA0003259614750000055
然后,在S5中基于预测值
Figure BDA0003259614750000056
利用公式
Figure BDA0003259614750000057
调整选择区间上界。
在其中一个实施例中,步骤S6则根据前两步得到的M,更新最近M组向量对
Figure BDA0003259614750000058
我们需把最新产生的向量对存储下来,若发现向量对个数超过了M,则将超过部分的向量对丢弃,即只存储最近的M组向量对。
在其中一个实施例中,在步骤S7中,Hm,2是由向量对(γM-mM-m),...,(γM-2M-2)计算得到的拟牛顿矩阵,计算公式如下:
Figure BDA0003259614750000059
其中,
Figure BDA00032596147500000510
I是单位阵。
在其中一个实施例中,在步骤S8中,根据不同的记忆尺度可以得到不同方向;其中,dK是由mK个向量对
Figure BDA00032596147500000511
得到的方向,其计算公式如下:
dK=-HKgt
gt是当前时刻损失函数对网络参数的梯度即
Figure BDA00032596147500000512
HK的计算公式如下:
Figure BDA0003259614750000061
其中,
Figure BDA0003259614750000062
I是单位阵。
基于同样的发明构思,本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述方法的步骤。
基于同样的发明构思,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述方法的步骤。
基于同样的发明构思,本申请还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一项所述的方法。
本发明的有益效果:
本发明提出的基于自适应L-BFGS算法的深度神经网络的批量学习方法,将二阶优化算法用于深度学习中,相对于目前主流的一阶优化算法Mini-Batch GD,收敛速度得到明显提升,准确率也得到提升。
附图说明
图1为本发明基于自适应L-BFGS算法的深度神经网络的批量学习方法中所述的训练一般的深度神经网络的流程图。
图2为本发明基于自适应L-BFGS算法的深度神经网络的批量学习方法中所述的基于自适应L-BFGS算法的批量学习方法的流程图。
图3为本发明基于自适应L-BFGS算法的深度神经网络的批量学习方法中所述的调整选择区间上界的流程图。
图4为本发明基于自适应L-BFGS算法的深度神经网络的批量学习方法中所述的构建搜索方向的流程图。
图5为本发明基于自适应L-BFGS算法的深度神经网络的批量学习方法中的CNN的网络结构示意图。
图6为本发明基于自适应L-BFGS算法的深度神经网络的批量学习方法中的loss函数的收敛曲线的示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
优化算法根据在训练过程中使用的导数信息可分为一阶和二阶优化算法。
一、一阶优化算法
一阶优化算法只利用梯度信息最小化损失函数,应用最广泛的是梯度下降法(Gradient Descent,GD),通过反向传播的方法计算梯度,并使用负梯度作为搜索方向。而梯度下降法每次参数更新需对整个数据集进行计算,这在深度学习中是不可行的。因为深度神经网络的层数和神经元较多,神经元之间的连接权值等参数也相应很多,这将导致需要的计算量和存储量很大。于是人们提出随机梯度下降法(Stochastic GradientDescent,SGD),每次迭代只使用一个样本,计算这个样本损失函数的梯度并更新参数。但是此方法会导致损失函数剧烈波动,精确度不高。于是提出了小批量梯度下降法(Mini-BatchGradient Descent,Mini-Batch GD),每次迭代时,随机选取一小部分训练样本计算梯度并更新参数,是以上两种算法的折中,兼顾了梯度下降算法的优点也提高了训练效率。但是,以上基于梯度的一阶优化算法存在着一些缺点:(1)学习步长难以设置。步长太小导致收敛速度缓慢,步长太大导致算法发生振荡,无法收敛。(2)收敛速度较慢。尤其当迭代到最优点附近。(3)容易陷入局部最优点。负梯度方向是局部下降最快的方向,在整体优化的过程中并不是最好的方向,所以很容易收敛到局部最优解。
二、二阶优化算法
二阶优化算法由于二阶导数信息的使用使得算法的收敛速度通常更快,精度也更高。其中最常用的是牛顿法和拟牛顿法。牛顿法采用牛顿方向作为搜索方向,这将导致每次迭代除了要计算梯度外还要计算二阶偏导数矩阵即海塞矩阵,计算相当复杂。另外还需要海塞矩阵是正定的,否则不能保证牛顿方向是下降方向。为了克服以上问题,人们提出了拟牛顿算法BFGS,其基本思想是不用二阶偏导数而构造出可以近似海塞矩阵的正定对称矩阵。然而,在深度学习里,参数量是巨大的,这将导致存储的对称正定矩阵的维数很大,耗费大量计算资源。因此,人们对BFGS算法进行了改进,得到了L-BFGS算法,即有限存储的BFGS。
1.L-BFGS
对于一个实数值无约束优化问题
Figure BDA0003259614750000081
采用L-BFGS算法得到的更新公式为
xt+1=xttHtgt
这里,ηt是步长,gt是f(x)在xt处梯度向量,Ht表示海塞矩阵的逆在第t次迭代时的近似矩阵。在L-BFGS算法中,Ht由以下公式计算得到:
Figure BDA0003259614750000091
这里m是记忆尺度,表示需存储的向量对(si,yi)的组数,i=t-1,t-2,...,t-m。并且
st=xt+1-xt,yt=gt+1-gt,
Figure BDA0003259614750000092
这里I表示单位矩阵。由此可见,L-BFGS不需要直接存储海塞矩阵逆的近似矩阵Ht,只需存储m个向量对(si,yi),便可计算得到Ht,从而得到下降方向dt=-Htgt。因此存储量相对于BFGS算法大大减少。但是,记忆尺度m是人为指定的,在迭代过程中保持不变并且决定着L-BFGS算法的性能好坏。
2.AL-BFGS
为了解决记忆尺度m的选择问题,人们提出了AL-BFGS算法,通过比较拟牛顿矩阵的逆和海塞矩阵的逆之间的相似程度来从固定的区间{1,2,...,M}中选择合适的记忆尺度m,从而能够自适应地确定当前迭代时m的值,其中M是一个较大的正整数。衡量近似程度的计算公式如下:
Figure BDA0003259614750000093
其中,Hm,2表示由向量对(sM-m,yM-m),...,(sM-2,yM-2)计算得到的拟牛顿矩阵。em越小代表近似程度越高。因此在每次迭代的过程中选择使得em最小的m来作为当前迭代时刻的记忆尺度。
一阶优化算法存在着这样一些缺点:(1)学习步长难以设置。步长太小导致收敛速度缓慢,步长太大导致算法发生振荡,无法收敛。(2)收敛速度较慢。尤其当迭代到最优点附近。(3)容易陷入局部最优点。负梯度方向是局部下降最快的方向,在整体优化的过程中并不是最好的方向,所以很容易收敛到局部最优解。
对于二阶算法L-BFGS,虽然相对于其它二阶优化算法计算和存储量大为降低,但是如果直接将其运用到深度学习中,由于深度学习中数据集很大,每次迭代对所有的训练样本计算二阶信息并进行参数更新,计算量也是相当大的。另外,L-BFGS算法存在记忆尺度m的选取问题,性能深受m的影响,不恰当的m将导致性能的下降。
对于AL-BFGS算法,存在如下一些缺点:(1)记忆尺度m每次都是从固定区间{1,2,...,M}中选取。为了取得满意的性能,M通常取较大的值。这意味着,每次迭代都要进行M次的计算判断,使得计算量增大。若M一直固定在较小值,则m选择范围变小,不能够取到最优的值,从而降低AL-BFGS的性能。(2)每次迭代只选择一个使em最小的m作为记忆尺度,并由此计算出对应的搜索方向,这不能强化对最近曲率信息的利用,因而收敛速度提升不会很明显.(3)此算法仍属于单步拟牛顿,可引入多步拟牛顿法,利用多步拟牛顿的优势对AL-BFGS进一步改进。
为了克服上述缺点:
1.本发明提出一种自适应的L-BFGS算法,用于深度神经网络的训练,每次训练时按一定规则选取一部分样本计算更新参数,以减少计算复杂度,同时解决一阶算法(如Mini-Batch GD)训练时存在的收敛速度慢,易陷入局部最优点等缺点。
2.提出一种自适应策略解决传统L-BFGS算法中记忆尺度的选择问题。
3.为了进一步降低计算复杂度,针对记忆尺度的上界提出一种自适应调整方法,以解决AL-BFGS中固定M所带来的问题。
4.保留多个记忆尺度m,并相应地计算出多个方向后进行叠加,得到最终的搜索方向,这样可以加强近期曲率信息的使用,提升收敛速度。
5.采用多步拟牛顿方法进一步改进传统的AL-BFGS。
本发明提出了一种基于自适应L-BFGS算法的深度神经网络的批量学习方法,该发明的具体流程为:
S1.根据实际问题构建合适的深度神经网络模型,并将模型中所有可调参数(即权值和偏置组成的向量)初始化为x0,设置最大迭代次数为N,记忆尺度的个数为K。
S2.从训练集中随机选取小批量样本输入到深度神经网络中,根据网络结构逐层计算各神经元的输出,最后得到输出层所有神经元的输出,记为向量o。
S3.根据所选的小批量样本的标签
Figure BDA0003259614750000111
和S2中得到的输出o计算损失函数值
Figure BDA0003259614750000112
这里
Figure BDA0003259614750000113
可以是深度神经网络训练中常用的交叉熵函数或者均方误差函数。在第t次训练时,通过反向传播公式计算出损失函数的梯度
Figure BDA0003259614750000114
并计算相应的st和yt。其中,st=xt-xt-1,yt=gt-gt-1
S4.根据指数平滑法预测当前迭代的记忆尺度值
Figure BDA0003259614750000115
其中,
Figure BDA0003259614750000116
表示前一时刻所选K个记忆尺度的平均值,
Figure BDA0003259614750000117
表示前一时刻预测的记忆尺度值,α∈(0,1)。
S5.根据公式
Figure BDA0003259614750000118
调整候选区间{1,2,...,M}的上界M。其中,c1∈(0,1),
Figure BDA0003259614750000119
d是预先设定的一个常量,Mt-1是前一时刻候选区间的上界。
S6.利用多步拟牛顿公式
Figure BDA00032596147500001110
计算和更新最近M组向量对
Figure BDA00032596147500001111
S7.令m=1,...,M,根据公式
Figure BDA0003259614750000121
计算e1,e2,...,eM。其中,
Figure BDA0003259614750000122
Hm,2是由向量对(γM-mM-m),...,(γM-2M-2)计算得到的拟牛顿矩阵。
S8.将得到的e1,e2,...,eM从小到大排序,选出前K个值所对应的记忆尺度m1,m2,...,mK,并根据这K个记忆尺度计算出K个方向d1,d2,...,dK。计算记忆尺度的平均值
Figure BDA0003259614750000123
和平均方向
Figure BDA0003259614750000124
S9.将平均方向dt作为当前迭代时刻的搜索方向,采用强Wolfe线搜计算出步长即学习率μt后,对网络参数进行更新xt+1=xttdt。若随着迭代次数的增加,损失函数loss的值下降得很慢趋于平稳即网络收敛,并且迭代次数达到设定的最大迭代次数N,则训练结束。否则,令t=t+1,转S2继续训练。
下面对其中一些步骤做详细说明:
在步骤S1中,神经网络模型由输入层,隐含层和输出层组成。输入层和输出层神经元个数是固定的,以分类问题为例,输入层的神经元个数等于输入数据的维数,输出层神经元个数为分类类别数。隐含层层数及神经元个数则不固定,在实际中需要根据模型的效果选择合理的隐含层层数及神经元。每一层中的神经元接收前一层神经元的输出,并输出到下一层,最终得到神经网络的输出。对于全连接前馈神经网络,假设第l层神经元个数为Ml,则第l层神经元的净输入为z(l)=W(l)a(l-1)+b(l),第l层神经元的输出为a(l)=fl(z(l))。其中,
Figure BDA0003259614750000125
是第l-1层到第l层的权重矩阵,
Figure BDA0003259614750000126
是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数。常见的激活函数有如下几个:
(1)Sigmoid函数:
Figure BDA0003259614750000127
(2)tanh函数:
Figure BDA0003259614750000131
(3)ReLU函数:
Figure BDA0003259614750000132
因此,在这一步还需确定所选激活函数的种类。若深度神经模型为卷积神经网络,其隐含层由卷积层和池化层组成,最后经全连接层连到输出层。卷积层的净输入Z(l)=W(l)*X(l)+b(l),输出特征映射为Y(l)=fl(Z(l))。其中,W(l)代表第l层的卷积核,X(l)是输入特征映射,b(l)是偏置,“*”表示卷积操作,fl(·)是第l层神经元的激活函数。因此在这一步,需要随机初始化的参数包括权重矩阵,卷积核和偏置。
在步骤S2中,需将获取的数据集按照一定比例划分为训练集和测试集,并归一化使取值范围在0到1之间,归一化公式如下:
Figure BDA0003259614750000133
其中,xmin表示样本数据中最小值,xmax为最大值。然后将训练集数据随机排序并打包,即分为多批的样本包,每次迭代只选择其中的一个样本包输入到神经网络中,并且每次选择的样本包不一样。接着利用前向传播计算各层神经元的输出,具体流程为:对于全连接前馈神经网络,输入层接收输入的样本数据直接传给下一个隐含层,即a(0)=x。a(0)代表输入层的输出,x指输入的样本数据。之后根据第l-1层神经元的输出a(l-1)计算出第l层神经元的净输入Z(l)=W(l)a(l-1)+b(l),然后经过一个激活函数得到第l层神经元的输出a(l)=fl(z(l)),这样一层一层地计算直到计算出输出层的输出o=a(L)。这里,W(l)是第l-1层到第l层的权重矩阵,b(l)是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数。L代表深度神经网络总共的层数。对于卷积神经网络,输入层接收输入的样本数据X直接传给下一层,一般为卷积层,经过卷积操作得到卷积层的净输入Z=W*X+b,再经过激活函数得到输出特征映射为Y=fl(Z)。这里,W代表卷积核,b是偏置,fl(·)是激活函数。之后,将卷积层得到的输出特征映射Y输入到下一层,一般为池化层,进行池化操作。池化包括最大池化和平均池化。最大池化是将一个区域内所有神经元最大输出值作为这个区域的表示。平均池化是取一个区域内所有神经元输出值的平均值作为这个区域的表示。接着将池化层结果输入到下一个卷积层,这样卷积层与池化层交替进行,最后通过全连接层连到输出层输出结果o。
在步骤S3中,由于每个输入的样本都有标签,根据在上一步计算得到的输出层的输出o,构建合适的损失函数,用来评价网络模型的输出值和真实值即标签的不一致程度。对于分类问题一般用交叉熵函数,其计算公式如下:
Figure BDA0003259614750000141
其中
Figure BDA0003259614750000142
表示标签值,ok为神经网络的输出值。对于回归问题,一般用均方误差即RMSE,计算公式如下:
Figure BDA0003259614750000143
构建好损失函数后,利用反向传播计算出损失函数关于网络中参数的梯度
Figure BDA0003259614750000144
便于后面参数更新。
S4-S5步骤用来调整选择区间{1,2,...,M}的上界M。首先,在S4中利用指数平滑法,基于以前的记忆尺度预测本次迭代时记忆尺度的平均值
Figure BDA0003259614750000145
计算公式如下:
Figure BDA0003259614750000146
这里,
Figure BDA0003259614750000151
表示前一时刻所选K个记忆尺度的平均值,
Figure BDA0003259614750000152
表示前一时刻预测的记忆尺度的平均值。在本发明中,预测值的初始值
Figure BDA0003259614750000153
设定为第一次迭代时的真实值
Figure BDA0003259614750000154
然后,在S5中基于预测值
Figure BDA0003259614750000155
利用公式
Figure BDA0003259614750000156
调整选择区间上界。
步骤S6则根据前两步得到的M,更新最近M组向量对
Figure BDA0003259614750000157
我们需把最新产生的向量对存储下来,若向量对个数超过了M,则将超过部分的向量对丢弃,即只存储最近的M组向量对。
在步骤S7中,Hm,2是由向量对(γM-mM-m),...,(γM-2M-2)计算得到的拟牛顿矩阵,计算公式如下:
Figure BDA0003259614750000158
其中,
Figure BDA0003259614750000159
I是单位阵。
在步骤S8中,根据不同的记忆尺度可以得到不同方向。其中,dK是由mK个向量对
Figure BDA00032596147500001510
得到的方向,其计算公式如下:
dK=-HKgt
其中,gt是当前时刻损失函数对网络参数的梯度即
Figure BDA00032596147500001511
HK的计算公式如下:
Figure BDA0003259614750000161
其中,
Figure BDA0003259614750000162
I是单位阵。
1、本发明提出的基于自适应L-BFGS算法的深度神经网络的批量学习方法,将二阶优化算法用于深度学习中,相对于目前主流的一阶优化算法Mini-Batch GD,收敛速度得到明显提升,准确率也得到提升。
2、本发明提出的算法解决了L-BFGS算法中记忆尺度m选择困难的问题。
3、本发明提出的算法解决了AL-BFGS算法中因选择区间的上界固定而导致其算法性能下降的问题,相对于AL-BFGS,计算量得到降低。
4、本发明提出的算法引入了多步拟牛顿理论对AL-BFGS中衡量近似程度的计算公式进行了改进,使得到海塞矩阵逆的近似矩阵与海塞矩阵的逆矩阵之间近似程度更高。
本发明提出的算法每次迭代时选择多个记忆尺度,并相应地计算出多个方向进行混合,加强了近期曲率信息的使用,相对于AL-BFGS收敛速度得到了进一步提升。
本发明提出的基于自适应L-BFGS算法的批量学习方法用于训练一般的深度神经网络。以训练5层卷积神经网络(CNN)为例。采用MNIST手写数字数据集,其中训练集6万张图片,测试集1万张图片,每张手写数字图片大小为28*28。
(一)本实施例设计的CNN的网络结构如图5所示:
1.输入
要求输入的数据是大小为28*28的1通道图像,并对其归一化。
2.第一层:卷积层
6个卷积核,kernel size=5*5*1,步长为1,无填充。共生成6个24*24的特征图。其中激活函数为Sigmoid型函数,公式如下:
Figure BDA0003259614750000171
3.第二层:池化层
窗口大小为2*2,采用平均池化,共生成6个12*12的特征图。
4.第三层:卷积层
8个卷积核,kernel size=5*5*6,步长为1,无填充。共生成8个8*8的特征图。其中激活函数为Sigmoid型函数。
5.第四层:池化层
采用窗口大小为2*2,采用平均池化,共生成8个4*4的特征图。
6.第五层:输出层
因为手写数字共分为0到9这10个类别,所以输出层神经元个数为10。与前一层8*4*4=128个神经元采用全连接方式连接。并且采用Softmax函数使每个神经元输出对应类别的概率,取概率最大的类别作为最终的分类结果。Softmax函数的计算公式如下:
Figure BDA0003259614750000172
(二)训练此CNN
将6万个训练集数据随机排序并打包,batchsize大小为150,即将训练集分为400份样本包。每次训练只用其中一个样本包。损失函数选用交叉熵函数,其计算公式如下:
Figure BDA0003259614750000173
其中
Figure BDA0003259614750000174
表示标签值,yk为神经网络的输出值。然后用本发明提出的基于自适应L-BFGS算法的批量学习方法和Mini-Batch GD分别训练此网络。在本实施例中基于自适应L-BFGS算法的批量学习方法的下降阈值c1=0.3,d=2,平滑因子α=0.9,选择的记忆尺度个数K=10。
(三)本实施例的结果
用本发明提出的基于自适应L-BFGS算法的批量学习方法和Mini-Batch GD训练CNN得到的loss函数的收敛曲线如图6所示。其中,横坐标表示迭代次数,纵坐标表示loss值。红色曲线代表用基于自适应L-BFGS算法的批量学习方法训练的loss曲线,蓝色代表用Mini-Batch GD训练得到的loss曲线。
实验结果表明,基于自适应L-BFGS算法的批量学习方法迭代至1600次时,loss值便可到达16.85,而Mini-Batch GD迭代3600次时,只可让loss下降到85.22。由此可见,本发明提出的基于自适应L-BFGS算法的深度神经网络的批量学习方法相对于一阶优化算法Mini-Batch GD,可以明显加快收敛速度。另外,用基于自适应L-BFGS算法的批量学习方法训练卷积神经网络1600次后加载测试集,得到准确率为96.00。然而,用Mini-Batch GD训练3600次后加载测试集,得到的准确率只有84.31。由此可见,本发明提出的算法不仅可以加快收敛速度还可以提高准确率。
本发明的关键构思如下:
1.采用了小批量的方式将二阶优化算法L-BFGS用于深度学习中,并对其进行改进,提出了基于自适应L-BFGS算法的深度神经网络的批量学习方法。解决了一阶优化算法(如Mini-Batch GD)存在的收敛速度缓慢,易陷入局部最优点的问题,并提高了准确率。
2.本发明提出的算法让记忆尺度m每次迭代都自适应变化,得到最优的值。解决了L-BFGS存在的m选择困难问题。
3.使用指数平滑法对记忆尺度进行预测,从而自适应调整选择区间上界M,可降低计算量。
4.引入多步拟牛顿理论,提高算法性能。
5.每次迭代选择多个记忆尺度,由此构建出多个方向,进行混合相加求平均得到最终的搜索方向。能够对近期的曲率信息加强,大大提高了收敛速度。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

Claims (10)

1.一种基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,包括:
S1.根据实际问题构建合适的深度神经网络模型,并将模型中所有可调参数即权值和偏置组成的向量初始化为x0,设置最大迭代次数为N,记忆尺度的个数为K;
S2.从训练集中随机选取小批量样本输入到深度神经网络中,根据网络结构逐层计算各神经元的输出,最后得到输出层所有神经元的输出,记为向量o;
S3.根据所选的小批量样本的标签
Figure FDA0003259614740000011
和S2中得到的输出o计算损失函数值
Figure FDA0003259614740000012
在第t次训练时,通过反向传播公式计算出损失函数的梯度
Figure FDA0003259614740000013
并计算相应的st和yt;其中,st=xt-xt-1,yt=gt-gt-1
S4.根据指数平滑法预测当前迭代的记忆尺度值
Figure FDA0003259614740000014
其中,
Figure FDA0003259614740000015
表示前一时刻所选K个记忆尺度的平均值,
Figure FDA0003259614740000016
表示前一时刻预测的记忆尺度值,α∈(0,1);
S5.根据公式
Figure FDA0003259614740000017
调整候选区间{1,2,...,M}的上界M;其中,c1∈(0,1),
Figure FDA0003259614740000018
d是预先设定的一个常量,Mt-1是前一时刻候选区间的上界;
S6.利用多步拟牛顿公式
Figure FDA0003259614740000019
计算和更新最近M组向量对
Figure FDA00032596147400000110
S7.令m=1,…,M,根据公式
Figure FDA0003259614740000021
计算e1,e2,...,eM;其中,
Figure FDA0003259614740000022
Hm,2是由向量对(γM-mM-m),...,(γM-2M-2)计算得到的拟牛顿矩阵;
S8.将得到的e1,e2,...,eM从小到大排序,选出前K个值所对应的记忆尺度m1,m2,...,mK,并根据这K个记忆尺度计算出K个方向d1,d2,...,dK;计算记忆尺度的平均值
Figure FDA0003259614740000023
和平均方向
Figure FDA0003259614740000024
S9.将平均方向dt作为当前迭代时刻的搜索方向,采用强Wolfe线搜计算出步长即学习率μt后,对网络参数进行更新xt+1=xttdt;若随着迭代次数的增加,损失函数loss的值下降得很慢趋于平稳即网络收敛,并且迭代次数达到设定的最大迭代次数N,则训练结束;否则,令t=t+1,转S2继续训练。
2.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,所述
Figure FDA0003259614740000025
是深度神经网络训练中的交叉熵函数或者均方误差函数。
3.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,在步骤S1中,所述神经网络模型由输入层,隐含层和输出层组成;输入层和输出层神经元个数是固定的;每一层中的神经元接收前一层神经元的输出,并输出到下一层,最终得到神经网络的输出;对于全连接前馈神经网络,假设第l层神经元个数为Ml,则第l层神经元的净输入为z(l)=W(l)a(l-1)+b(l),第l层神经元的输出为a(l)=fl(z(l));其中,
Figure FDA0003259614740000026
是第l-1层到第l层的权重矩阵,
Figure FDA0003259614740000027
是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数。
4.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,在步骤S2中,需将获取的数据集按照一定比例划分为训练集和测试集,并归一化使取值范围在0到1之间,归一化公式如下:
Figure FDA0003259614740000031
其中,xmin表示样本数据中最小值,xmax为最大值;然后将训练集数据随机排序并打包,即分为多批的样本包,每次迭代只选择其中的一个样本包输入到神经网络中,并且每次选择的样本包不一样;接着利用前向传播计算各层神经元的输出。
5.如权利要求4所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,具体流程为:对于全连接前馈神经网络,输入层接收输入的样本数据直接传给下一个隐含层,即a(0)=x;a(0)代表输入层的输出,x指输入的样本数据;之后根据第l-1层神经元的输出a(l-1)计算出第l层神经元的净输入Z(l)=W(l)a(l-1)+b(l),然后经过一个激活函数得到第l层神经元的输出a(l)=fl(z(l)),这样一层一层地计算直到计算出输出层的输出o=a(L);这里,W(l)是第l-1层到第l层的权重矩阵,b(l)是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数;L代表深度神经网络总共的层数;对于卷积神经网络,输入层接收输入的样本数据X直接传给下一层,一般为卷积层,经过卷积操作得到卷积层的净输入Z=W*X+b,再经过激活函数得到输出特征映射为Y=fl(Z);这里,W代表卷积核,b是偏置,fl(·)是激活函数;之后,将卷积层得到的输出特征映射Y输入到下一层,一般为池化层,进行池化操作;池化包括最大池化和平均池化;最大池化是将一个区域内所有神经元最大输出值作为这个区域的表示;平均池化是取一个区域内所有神经元输出值的平均值作为这个区域的表示;接着将池化层结果输入到下一个卷积层,这样卷积层与池化层交替进行,最后通过全连接层连到输出层输出结果o。
6.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,在步骤S3中,由于每个输入的样本都有标签,根据在上一步计算得到的输出层的输出o,构建合适的损失函数,用来评价网络模型的输出值和真实值即标签的不一致程度;
构建好损失函数后,利用反向传播计算出损失函数关于网络中参数的梯度
Figure FDA0003259614740000041
便于后面参数更新。
7.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,S4-S5步骤用来调整候选区间{1,2,...,M}的上界M,首先在S4中利用指数平滑法,基于以前的记忆尺度预测本次迭代时记忆尺度的平均值
Figure FDA0003259614740000042
计算公式如下:
Figure FDA0003259614740000043
这里,
Figure FDA0003259614740000044
表示前一时刻所选K个记忆尺度的平均值,
Figure FDA0003259614740000045
表示前一时刻预测的记忆尺度值;预测值的初始值
Figure FDA0003259614740000046
设定为第一次迭代时的真实值
Figure FDA0003259614740000047
然后在S5中,基于预测值
Figure FDA0003259614740000048
利用公式
Figure FDA0003259614740000049
自适应调整选择区间上界。
8.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,步骤S6则根据前两步得到的M,更新最近M组向量对
Figure FDA00032596147400000410
需把最新产生的向量对存储下来,若向量对个数超过了M,则将超过部分的向量对丢弃,即只存储最近的M组向量对。
9.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,在步骤S7中,Hm,2是由向量对(γM-mM-m),...,(γM-2M-2)计算得到的拟牛顿矩阵,计算公式如下:
Figure FDA0003259614740000051
其中,
Figure FDA0003259614740000052
I是单位阵。
10.如权利要求1所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,在步骤S8中,根据不同的记忆尺度可以得到不同方向;
其中,dK是由mK个向量对
Figure FDA0003259614740000053
得到的方向,其计算公式如下:
dK=-HKgt
gt是当前时刻损失函数对网络参数的梯度即
Figure FDA0003259614740000054
HK的计算公式如下:
Figure FDA0003259614740000055
其中,
Figure FDA0003259614740000056
I是单位阵。
CN202111069585.9A 2021-09-13 2021-09-13 基于自适应l-bfgs算法的深度神经网络的批量学习方法 Active CN113705724B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111069585.9A CN113705724B (zh) 2021-09-13 2021-09-13 基于自适应l-bfgs算法的深度神经网络的批量学习方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111069585.9A CN113705724B (zh) 2021-09-13 2021-09-13 基于自适应l-bfgs算法的深度神经网络的批量学习方法

Publications (2)

Publication Number Publication Date
CN113705724A true CN113705724A (zh) 2021-11-26
CN113705724B CN113705724B (zh) 2022-08-30

Family

ID=78660151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111069585.9A Active CN113705724B (zh) 2021-09-13 2021-09-13 基于自适应l-bfgs算法的深度神经网络的批量学习方法

Country Status (1)

Country Link
CN (1) CN113705724B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113962369A (zh) * 2021-11-29 2022-01-21 北京工业大学 一种基于改进Levenberg-Marquardt的径向基神经网络优化方法
CN115146707A (zh) * 2022-06-07 2022-10-04 湖南雪墨电气科技有限公司 一种多功能物联网功率因素检测方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111461229A (zh) * 2020-04-01 2020-07-28 北京工业大学 一种基于目标传递和线搜索的深层神经网络优化及图像分类方法
CN111476346A (zh) * 2020-02-28 2020-07-31 之江实验室 一种基于牛顿共轭梯度法的深度学习网络架构
CN111950711A (zh) * 2020-08-14 2020-11-17 苏州大学 复值前向神经网络的二阶混合构建方法及系统
CN113158582A (zh) * 2021-05-24 2021-07-23 苏州大学 基于复数值前向神经网络的风速预测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111476346A (zh) * 2020-02-28 2020-07-31 之江实验室 一种基于牛顿共轭梯度法的深度学习网络架构
CN111461229A (zh) * 2020-04-01 2020-07-28 北京工业大学 一种基于目标传递和线搜索的深层神经网络优化及图像分类方法
CN111950711A (zh) * 2020-08-14 2020-11-17 苏州大学 复值前向神经网络的二阶混合构建方法及系统
CN113158582A (zh) * 2021-05-24 2021-07-23 苏州大学 基于复数值前向神经网络的风速预测方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113962369A (zh) * 2021-11-29 2022-01-21 北京工业大学 一种基于改进Levenberg-Marquardt的径向基神经网络优化方法
CN113962369B (zh) * 2021-11-29 2024-05-31 北京工业大学 一种基于改进Levenberg-Marquardt的径向基神经网络优化方法
CN115146707A (zh) * 2022-06-07 2022-10-04 湖南雪墨电气科技有限公司 一种多功能物联网功率因素检测方法

Also Published As

Publication number Publication date
CN113705724B (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN109948029B (zh) 基于神经网络自适应的深度哈希图像搜索方法
CN107358293B (zh) 一种神经网络训练方法及装置
CN112288086B (zh) 一种神经网络的训练方法、装置以及计算机设备
CN113705724B (zh) 基于自适应l-bfgs算法的深度神经网络的批量学习方法
CN107729999A (zh) 考虑矩阵相关性的深度神经网络压缩方法
CN110378208B (zh) 一种基于深度残差网络的行为识别方法
CN114049513A (zh) 一种基于多学生讨论的知识蒸馏方法和系统
CN111008690B (zh) 以自适应学习率学习神经网络的方法及装置
WO2022105108A1 (zh) 一种网络数据分类方法、装置、设备及可读存储介质
CN112465120A (zh) 一种基于进化方法的快速注意力神经网络架构搜索方法
CN111178520A (zh) 一种低计算能力处理设备的数据处理方法及装置
CN110427965A (zh) 基于进化策略的卷积神经网络结构简约及图像分类方法
EP1224562A2 (en) Robust modeling
CN111788585A (zh) 一种深度学习模型的训练方法、系统
CN112686376A (zh) 一种基于时序图神经网络的节点表示方法及增量学习方法
CN113128432B (zh) 基于演化计算的机器视觉多任务神经网络架构搜索方法
CN112183742A (zh) 基于渐进式量化和Hessian信息的神经网络混合量化方法
CN111667016A (zh) 一种基于prototype的增量式信息分类方法
CN111695590A (zh) 约束优化类激活映射的深度神经网络特征可视化方法
CN114358197A (zh) 分类模型的训练方法及装置、电子设备、存储介质
CN112580728A (zh) 一种基于强化学习的动态链路预测模型鲁棒性增强方法
CN112766496A (zh) 基于强化学习的深度学习模型安全性保障压缩方法与装置
CN114782742A (zh) 基于教师模型分类层权重的输出正则化方法
WO2022199719A1 (zh) 一种基于稀疏响应面的深度学习算法超参数优化方法
JP7073171B2 (ja) 学習装置、学習方法及びプログラム

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
GR01 Patent grant
GR01 Patent grant