CN113705724B - 基于自适应l-bfgs算法的深度神经网络的批量学习方法 - Google Patents
基于自适应l-bfgs算法的深度神经网络的批量学习方法 Download PDFInfo
- Publication number
- CN113705724B CN113705724B CN202111069585.9A CN202111069585A CN113705724B CN 113705724 B CN113705724 B CN 113705724B CN 202111069585 A CN202111069585 A CN 202111069585A CN 113705724 B CN113705724 B CN 113705724B
- Authority
- CN
- China
- Prior art keywords
- layer
- output
- neural network
- deep neural
- value
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, 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算法的深度神经网络的批量学习方法,包括:
S1.根据实际问题构建合适的深度神经网络模型,并将模型中所有可调参数即权值和偏置组成的向量初始化为x0,设置最大迭代次数为N,记忆尺度的个数为K;
S2.从训练集中随机选取小批量样本输入到深度神经网络中,根据网络结构逐层计算各神经元的输出,最后得到输出层所有神经元的输出,记为向量o;
S9.将平均方向dt作为当前迭代时刻的搜索方向,采用强Wolfe线搜计算出步长即学习率μt后,对网络参数进行更新xt+1=xt+μtdt;若随着迭代次数的增加,损失函数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));其中,是第l-1层到第l层的权重矩阵,是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数。
在其中一个实施例中,在步骤S2中,需将获取的数据集按照一定比例划分为训练集和测试集,并归一化使取值范围在0到1之间,归一化公式如下:
其中,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,构建合适的损失函数,用来评价网络模型的输出值和真实值即标签的不一致程度;
在其中一个实施例中,在步骤S7中,Hm,2是由向量对(γM-m,ωM-m),...,(γM-2,ωM-2)计算得到的拟牛顿矩阵,计算公式如下:
dK=-HKgt
基于同样的发明构思,本申请还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述方法的步骤。
基于同样的发明构思,本申请还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一项所述方法的步骤。
基于同样的发明构思,本申请还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任一项所述的方法。
本发明的有益效果:
本发明提出的基于自适应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
对于一个实数值无约束优化问题
采用L-BFGS算法得到的更新公式为
xt+1=xt-ηtHtgt
这里,ηt是步长,gt是f(x)在xt处梯度向量,Ht表示海塞矩阵的逆在第t次迭代时的近似矩阵。在L-BFGS算法中,Ht由以下公式计算得到:
这里m是记忆尺度,表示需存储的向量对(si,yi)的组数,i=t-1,t-2,...,t-m。并且
这里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是一个较大的正整数。衡量近似程度的计算公式如下:
其中,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.根据所选的小批量样本的标签和S2中得到的输出o计算损失函数值这里可以是深度神经网络训练中常用的交叉熵函数或者均方误差函数。在第t次训练时,通过反向传播公式计算出损失函数的梯度并计算相应的st和yt。其中,st=xt-xt-1,yt=gt-gt-1。
S9.将平均方向dt作为当前迭代时刻的搜索方向,采用强Wolfe线搜计算出步长即学习率μt后,对网络参数进行更新xt+1=xt+μtdt。若随着迭代次数的增加,损失函数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))。其中,是第l-1层到第l层的权重矩阵,是第l-1层到第l层的偏置,fl(·)表示第l层神经元的激活函数。常见的激活函数有如下几个:
(1)Sigmoid函数:
(2)tanh函数:
(3)ReLU函数:
因此,在这一步还需确定所选激活函数的种类。若深度神经模型为卷积神经网络,其隐含层由卷积层和池化层组成,最后经全连接层连到输出层。卷积层的净输入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之间,归一化公式如下:
其中,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,构建合适的损失函数,用来评价网络模型的输出值和真实值即标签的不一致程度。对于分类问题一般用交叉熵函数,其计算公式如下:
在步骤S7中,Hm,2是由向量对(γM-m,ωM-m),...,(γM-2,ωM-2)计算得到的拟牛顿矩阵,计算公式如下:
dK=-HKgt
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型函数,公式如下:
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函数的计算公式如下:
(二)训练此CNN
将6万个训练集数据随机排序并打包,batchsize大小为150,即将训练集分为400份样本包。每次训练只用其中一个样本包。损失函数选用交叉熵函数,其计算公式如下:
其中表示标签值,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算法的深度神经网络的批量学习方法,应用于图像识别系统,其特征在于,包括:
S2.创建包括若干图片样本的数据集,所述数据集中包括训练集和测试集,从训练集中随机选取小批量图片样本输入到深度神经网络中,根据网络结构逐层计算各神经元的输出,最后得到输出层所有神经元的输出,记为向量;
在步骤S2中,所述深度神经网络模型为5层卷积神经网络CNN模型,其包括:
第一层卷积层,包括6个卷积核,图片样本输入后生成6个24*24的特征图;
第二池化层,采用窗口大小为2*2,并采用平均池化,6个24*24的特征图输入后生成6个12*12的特征图;
第三层卷积层,包括8个卷积核,kernel size=5*5*6,步长为1,无填充,6个12*12的特征图输入后生成8个8*8的特征图;
第四层池化层,采用窗口大小为2*2,采用平均池化,8个8*8的特征图输入后生成8个4*4的特征图;
第五层输出层,手写数字分为0到9这10个类别,第五层输出层神经元个数为10,其与第四层池化层采用全连接方式连接,并且采用Softmax函数使每个神经元输出对应类别的概率,取概率最大的类别作为最终的分类结果,即向量;
S9.将平均方向作为当前迭代时刻的搜索方向,采用强Wolfe线搜计算出步长即学习率后,对网络参数进行更新;若随着迭代次数的增加,损失函数loss的值下降得很慢趋于平稳即网络收敛,并且迭代次数达到设定的最大迭代次数,则训练结束,得到最终训练好的深度神经网络;否则,令,转S2继续训练;
S10、将测试集输入最终训练好的深度神经网络,得到测试集图片识别结果。
5.如权利要求4所述的基于自适应L-BFGS算法的深度神经网络的批量学习方法,其特征在于,具体流程为:对于全连接前馈神经网络,输入层接收输入的样本数据直接传给下一个隐含层,即;代表输入层的输出,指输入的样本数据;之后根据第层神经元的输出计算出第层神经元的净输入,然后经过一个激活函数得到第层神经元的输出,这样一层一层地计算直到计算出输出层的输出;这里,是第层到第层的权重矩阵,是第层到第层的偏置,表示第层神经元的激活函数;代表深度神经网络总共的层数;对于卷积神经网络,输入层接收输入的样本数据直接传给下一层卷积层,经过卷积操作得到卷积层的净输入,再经过激活函数得到输出特征映射为;这里,代表卷积核,是偏置,是激活函数;之后,将卷积层得到的输出特征映射输入到下一层池化层,进行池化操作;池化包括最大池化和平均池化;最大池化是将一个区域内所有神经元最大输出值作为这个区域的表示;平均池化是取一个区域内所有神经元输出值的平均值作为这个区域的表示;接着将池化层结果输入到下一个卷积层,这样卷积层与池化层交替进行,最后通过全连接层连到输出层输出结果。
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 CN113705724A (zh) | 2021-11-26 |
CN113705724B true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146707B (zh) * | 2022-06-07 | 2023-07-07 | 湖南雪墨电气科技有限公司 | 一种多功能物联网功率因素检测方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111476346B (zh) * | 2020-02-28 | 2022-11-29 | 之江实验室 | 一种基于牛顿共轭梯度法的深度学习网络架构 |
CN111461229B (zh) * | 2020-04-01 | 2023-10-31 | 北京工业大学 | 一种基于目标传递和线搜索的深层神经网络优化及图像分类方法 |
CN111950711A (zh) * | 2020-08-14 | 2020-11-17 | 苏州大学 | 复值前向神经网络的二阶混合构建方法及系统 |
CN113158582A (zh) * | 2021-05-24 | 2021-07-23 | 苏州大学 | 基于复数值前向神经网络的风速预测方法 |
-
2021
- 2021-09-13 CN CN202111069585.9A patent/CN113705724B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113705724A (zh) | 2021-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948029B (zh) | 基于神经网络自适应的深度哈希图像搜索方法 | |
CN107358293B (zh) | 一种神经网络训练方法及装置 | |
USRE42440E1 (en) | Robust modeling | |
CN112288086B (zh) | 一种神经网络的训练方法、装置以及计算机设备 | |
CN107729999A (zh) | 考虑矩阵相关性的深度神经网络压缩方法 | |
CN110097178A (zh) | 一种基于熵注意的神经网络模型压缩与加速方法 | |
CN114049513A (zh) | 一种基于多学生讨论的知识蒸馏方法和系统 | |
WO2022105108A1 (zh) | 一种网络数据分类方法、装置、设备及可读存储介质 | |
CN111008690B (zh) | 以自适应学习率学习神经网络的方法及装置 | |
CN112465120A (zh) | 一种基于进化方法的快速注意力神经网络架构搜索方法 | |
CN109740734B (zh) | 一种利用优化神经元空间排布的卷积神经网络的图像分类方法 | |
Zahavy et al. | Deep neural linear bandits: Overcoming catastrophic forgetting through likelihood matching | |
CN112686376A (zh) | 一种基于时序图神经网络的节点表示方法及增量学习方法 | |
CN113128432B (zh) | 基于演化计算的机器视觉多任务神经网络架构搜索方法 | |
CN109740695A (zh) | 基于自适应全卷积注意力网络的图像识别方法 | |
CN113705724B (zh) | 基于自适应l-bfgs算法的深度神经网络的批量学习方法 | |
CN114358197A (zh) | 分类模型的训练方法及装置、电子设备、存储介质 | |
CN115358305A (zh) | 一种基于边界样本迭代生成的增量学习鲁棒性提升方法 | |
CN112580728A (zh) | 一种基于强化学习的动态链路预测模型鲁棒性增强方法 | |
CN114782742A (zh) | 基于教师模型分类层权重的输出正则化方法 | |
CN116645130A (zh) | 基于联邦学习与gru结合的汽车订单需求量预测方法 | |
CN116152644A (zh) | 一种基于人工合成数据和多源迁移学习的长尾物体识别方法 | |
CN113516163B (zh) | 基于网络剪枝的车辆分类模型压缩方法、装置及存储介质 | |
CN114219043A (zh) | 基于对抗样本的多教师知识蒸馏方法及装置 | |
CN112215272A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |