BP神经网络及深度学习研究 - 综述

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

BP神经网络及深度学习研究1BP神经网络及深度学习研究摘要:人工神经网络是一门交叉性学科,已广泛于医学、生物学、生理学、哲学、信息学、计算机科学、认知学等多学科交叉技术领域,并取得了重要成果。BP(BackPropagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。本文将主要介绍神经网络结构,重点研究BP神经网络原理、BP神经网络算法分析及改进和深度学习的研究。关键词:BP神经网络、算法分析、应用1引言人工神经网络(ArtificialNeuralNetwork,即ANN),作为对人脑最简单的一种抽象和模拟,是人们模仿人的大脑神经系统信息处理功能的一个智能化系统,是20世纪80年代以来人工智能领域兴起的研究热点。人工神经网络以数学和物理方法以及信息处理的角度对人脑神经网络进行抽象,并建立某种简化模型,旨在模仿人脑结构及其功能的信息处理系统。人工神经网络最有吸引力的特点就是它的学习能力。因此从20世纪40年代人工神经网络萌芽开始,历经两个高潮期及一个反思期至1991年后进入再认识与应用研究期,涌现出无数的相关研究理论及成果,包括理论研究及应用研究。最富有成果的研究工作是多层网络BP算法,Hopfield网络模型,自适应共振理论,自组织特征映射理论等。因为其应用价值,该研究呈愈演愈烈的趋势,学者们在多领域中应用[1]人工神经网络模型对问题进行研究优化解决。人工神经网络是由多个神经元连接构成,因此欲建立人工神经网络模型必先建立人工神经元模型,再根据神经元的连接方式及控制方式不同建立不同类型的人工神经网络模型。现在分别介绍人工神经元模型及人工神经网络模型。1.1人工神经元模型仿生学在科技发展中起着重要作用,人工神经元模型的建立来源于生物神经元结构的仿生模拟,用来模拟人工神经网络[2]。人们提出的神经元模型有很多,其中最早提出并且影响较大的是1943年心理学家McCulloch和数学家W.Pitts在分析总结神经元基本特性的基础上首先提出的MP模型。该模型经过不断改进后,形成现在广泛应用的BP神经元模型。人工神经元模型是由人量处理单元厂泛互连而成的网络,是人脑的抽象、简化、模拟,反映人脑的基本特性。一般来说,作为人工神经元模型应具备三个要素:(1)具有一组突触或连接,常用ijw表示神经元i和神经元j之间的连接强度。(2)具有反映生物神经元时空整合功能的输入信号累加器。BP神经网络及深度学习研究2(3)具有一个激励函数f用于限制神经元输出。激励函数将输出信号限制在一个允许范围内。一个典型的人工神经元模型如图1-1所示。1iw2x2iwijwiNw1xjxNxfbiiy图1-1人工神经元模型其中jx为神经元i的输入信号,ijw为连接权重,b为外部刺激,f为激励函数,iy为神经元的输出,其输出计算公式如(1.1)。1Niijjjyfwxb(1.1)1.2人工神经网络模型建立神经元模型后,将多个神经元进行连接即可建立人工神经网络模型。神经网络的类型多种多样,它们是从不同角度对生物神经系统不同层次的抽象和模拟。从功能特性和学习特性来分,典型的神经网络模型主要包括感知器、线性神经网络、BP网络、径向基函数网络、自组织映射网络和反馈神经网络等。一般来说,当神经元模型确定后,一个神经网络的特性及其功能主要取决于网络的拓扑结构及学习方法。从网络拓扑结构角度来看,神经网络可以分为以下四种基本形式[3]:前向网络、有反馈的前向网络、层内互边前向网络和互连网络。神经网络结构如图1-2,其中子图的图(a)为前向网络结构,图(b)有反馈的前向网络结构、图(c)层内互边前向网络结构和图(d)互连网络结构。根据有无反馈,亦可将神经网络划分为:无反馈网络和有反馈网络。无反馈网络为前馈神经网络(FeedForwardNNs,FFNNs),有反馈网络为递归神经网络和(RecurrentNNs,RNNs)。BP神经网络及深度学习研究3图(a)前向网络图(b)有反馈前向网络图(c)层内互边前向网络图(d)互联网络图1-2神经网络拓扑结构图2BP神经网络原理BP神经网络是一种按误差逆传播BP(BackPropagation)算法训练的多层前馈网络,由它最初是由Pau1werboSS在1974年提出,但未传播,直到20世纪80年代中期Rumelhart[4]、Hinton和Williams、DavidParker[5]和YannLeCun[6]重新发现了BP算法,同时因此算法被包括在《并行分布处理》(ParallelDistributedProcessing),此算法才广为人知。目前BP算法已成为应用最广泛的神经网络学习算法,据统计有近90%的神经网络应用是基于BP算法的。BP神经网络学习是由信息的正向传播和误差的反向传播两个过程组成。BP神经网络的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP网络的神经元采用的传递函数通常是BP神经网络及深度学习研究4Sigmoid型可微函数,所以可以实现输入和输出间的任意非线性映射,这使得它在诸如信号处理、计算机网络、过程控制、语音识别、函数逼近、模式识别及数据压缩等领域均取得了成功的应用。2.1BP神经网络结构BP网络的基本结构如图2-1所示,其模型拓扑结构包括输入层(input)、隐层(hiddenlayer)和输出层(outputlayer)三层结构。输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求。中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。隐层节点一般采用Sigmoid型函数,输入和输出节点可以采用Sigmoid型函数或者线性函数。输入层隐层输出层图2-1BP神经网络结构图2.2BP神经算法原理BP算法由正向传播和反向传播两部分组成。在正向传播过程中,输入信息从输入层经隐层单元处理后,传至输出层。每一层神经元的状态只影响下一层神经元的状态。当实际输出与期望输出不符时,进入误差的反向传播阶段。把误差通过输出层沿连接路径返回,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,通过修改各层神经元之间的连接权值,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差信号减少到可以接受的程度,或者预先设定的学习次数为止。BP神经网络及深度学习研究5BP神经网络模型[7]包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。(1)节点的输出模型BP神经网络的节点输出包括隐层节点输出和输出节点输出。其中,隐层节点输出模型为:()ijijjwxqQf(1.2)输出节点输出模型为:()jkjkkTOfqY(1.3)其中,f为非线形作用函数,q为神经单元的阈值,ijw为输入节点ix对隐层节点jx的影响权重。(2)作用函数模型作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数:1()1Qxfxe(1.4)它反映了神经元的饱和特性。上式中,Q为表示神经元非线性的参数,称增益值(Gain),也称调节参数。Q值越大,S形曲线越陡峭;反之,Q值越小,S形曲线越平坦;一般取Q=1。(3)误差计算模型误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数,其计算如下:211 ()2NpppETQN(1.5)其中pT网络目标输出。(4)自学习模型神经网络的学习过程,即连接下层节点和上层节点之间的权重矩阵ijW的设定和误差修正过程。BP网络学习分为有监督学习和无监督学习。有监督学习需要设定期望值,无监督学习方式只需输入模式之分。自学习模型为1?ijijijWnhФOWn(1.6)其中,h为学习因子;i输出节点i的计算误差;jQ为输出节点j的计算输出;为动量因子。BP模型把一组输入输出样本的函数问题转变为一个非线性优化问题,并使用了优化技术中最普通的梯度下降法。如果把神经网络看成是输入到输出的映射,则这个映射是一个高度非线性映射。BP算法程序框图如图2-2所示。BP神经网络及深度学习研究6给定输入/输出样本对计算隐层单元的输出计算输出层单元的输出权值调整求误差梯度计算隐层单元误差结束设置初始权系数误差满足要求?计算输出层单元的误差YN图2-2BP学习算法框图3BP神经网络算法分析及改进BP算法现在已成为目前应用最广泛的神经网络学习算法,它在函数逼近、模式识别、分类、数据压缩等领域有着更加广泛的应用。但它存在学习收敛速度慢、容易陷入局部极小点而无法得到全局最优解、且对初始权值的选取很敏感等缺点。具体如下:(1)在权值调整上采用梯度下降法作为优化算法,极易陷入局部极小。(2)学习算法的收敛速度很慢,收敛速度还与初始权值和传输函数的选择有关。(3)网络的结构设计,即隐节点数的选择,尚无理论指导,具有很大的盲目性。(4)新加入的样本对已经学好的样本影响较大,且每个输入样本的特征数目要求相同,泛化能力较差。针对BP算法存在的缺陷,目前国内外已有不少人对BP网络进行了大量的研究,提出了各种不同的改进方案,如优化训练输入参数,加入动量参数,以及学习步长的适应调整,采用带动量的自学习率BP算法,动态全参数自调整学习算法,记忆式初值权值和阀值方法,快速自适应学习算法等,这些方案均提高BP神经网络及深度学习研究7BP神经网络收敛速度。比较典型的改进方法如下:(1)启发式改进为了使学习速率足够大,又不易产生振荡,根据Rumelhart的建议,在权值调整算式中,加入“动量项”,,即()(1)()[()(1)]()jijijijijiEtWtWtWtWtWt(1.7)其中上式第二项为常规BP算法的修正量,第三项为动量项,其中为调节因子。通过可变学习步长可以提高收敛速度。可变学习速度(可变步长)的基本思想为:先设一初始步长:若一次迭代后误差函数E增大,则将步长乘以小于1的常数,沿原来方向重新计算下一个迭代点;若一次迭代后误差函数E减少,则将步长乘以大于l的常数。(2)BP算法的数值优化采用共轭梯度法和Levenberg-Marqardt算法可以提高数值精度。共轭梯度法选择与梯度相反的方向作为第一次搜索方向,再使函数沿搜索方向极小化,再确定下一个搜索方向,直至收敛。而Levenberg-Marqardt算法是牛顿法的变形,用以最小化那些作为其他非线性函数平方和的函数,这非常适合于性能指数是均方误差的神经网络训练。Levenberg-Marqardt算法为:1[()()]()()TTkkkkkkXJXJXIJXVX(1.8)其中,121,12,11,2,1,[,][,]MMTnSSQVvvveeeee111111112121,11,2121,1,[][]MTMnSRSSXxxx11111,11,11,11,111111,11,21,2,12,12,12,111111,11,21,,1,1,1,111111,11,21,1,21,21,21,211111,11,21,()MMMMSRSRSSSSSRSReeee(1.9)当k增加时,此算法接近于有小的学习速度的最速下降算法,当k下降为BP神经网络及深度学习研究80时,算法变成了高斯-牛顿法。4深度学习的研究BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。BP算法存在的问题:(1)梯度越来越稀疏:从顶层越往下

1 / 10
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功