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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络结构如图12,其中子图的图(a)为前向网络结构,图(b)有反馈的前向网络结构、图(c)层内互边前向网络结构和图(d)互连网络结构。
根据有无反馈,亦可将神经网络划分为:无反馈网络和有反馈网络。无反馈网络为前馈神经网络(Feed Forward NNs,FFNNs),有反馈网络为递归神经网络和(Recurrent NNs,RNNs)。
(1)具有一组突触或连接,常用 表示神经元i和神经元j之间的连接强度。
(2)具有反映生物神经元时空整合功能的输入信号累加器 。
(3)具有一个激励函数 用于限制神经元输出。激励函数将输出信号限制在一个允许范围内。
一个典型的人工神经元模型如图11所示。
图11人工神经元模型
其中 为神经元i的输入信号, 为连接权重,b为外部刺激, 为激励函数, 为神经元的输出,其输出计算公式如。
Levenberg-Marqardt算法为:
其中,
当 增加时,此算法接近于有小的学习速度的最速下降算法,当 下降为0时,算法变成了高斯-牛顿法。
4
BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想。深度结构(涉及多个非线性处理单元层)非凸目标代价函数中普遍存在的局部最小是训练困难的主要来源。
DeepLearning训练过程具体如下:
(1)使用自下上升非监督学习
采用无标定数据(有标定数据也可)分层训练各层参数,这一步可以看作是一个无监督训练过程,是和传统神经网络区别最大的部分(这个过程可以看作是feature learning过程):
具体的,先用无标定数据训练第一层,训练时先学习第一层的参数(这一层可以看作是得到一个使得输出和输入差别最小的三层神经网络的隐层),由于模型capacity的限制以及稀疏性约束,使得得到的模型能够学习到数据本身的结构,从而得到比输入更具有表示能力的特征;在学习得到第n-1层后,将n-1层的输出作为第n层的输入,训练第n层,由此分别得到各层的参数;
2.1
BP网络的基本结构如图21所示,其模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)三层结构。
输入层各神经元负责接收来自外界的输入信息,并传递给中间层各神经元;中间层是内部信息处理层,负责信息变换,根据信息变化能力的需求。中间层可以设计为单隐层或者多隐层结构;最后一个隐层传递到输出层各神经元的信息,经进一步处理后,完成一次学习的正向传播处理过程,由输出层向外界输出信息处理结果。隐层节点一般采用Sigmoid型函数,输入和输出节点可以采用Sigmoid型函数或者线性函数。
(3)网络的结构设计,即隐节点数的选择,尚无理论指导,具有很大的盲目性。
(4)新加入的样本对已经学好的样本影响较大,且每个输入样本的特征数目要求相同,泛化能力较差。
针对BP算法存在的缺陷,目前国内外已有不少人对BP网络进行了大量的研究,提出了各种不同的改进方案,如优化训练输入参数,加入动量参数,以及学习步长的适应调整,采用带动量的自学习率BP算法,动态全参数自调整学习算法,记忆式初值权值和阀值方法,快速自适应学习算法等,这些方案均提高BP神经网络收敛速度。
(2)自顶向下的监督学习
基于第一步得到的各层参数进一步fine-tune整个多层模型的参数,这一步是一个有监督训练过程;第一步类似神经网络的随机初始化初值过程,由于DL的第一步不是随机初始化,而是通过学习输入数据的结构得到的,因而这个初值更接近全局最优,从而能够取得更好的效果;所以DeepLearning效果好很大程度上归功于第一步的feature learning过程
图(a)前向网络
图(b)有反馈前向网络
图(c)层内互边前向网络
图(d)互联网络
图12神经网络拓扑结构图
2
BP神经网络是一种按误差逆传播BP(Back Propagation)算法训练的多层前馈网络,由它最初是由Pau1werboSS在1974年提出,但未传播,直到20世纪80年代中期Rumelhart[4]、Hinton和Williams、DavidParker[5]和YannLeCun[6]重新发现了BP算法,同时因此算法被包括在《并行分布处理》(ParallelDistributedProcessing),此算法才广为人知。目前BP算法已成为应用最广泛的神经网络学习算法,据统计有近90%的神经网络应用是基于BP算法的。
误差计算模型是反映神经网络期望输出与计算输出之间误差大小的函数,其计算如下:
其中 网络目标输出。
(4)自学习模型
神经网络的学习过程,即连接下层节点和上层节点之间的权重矩阵 的设定和误差修正过程。BP网络学习分为有监督学习和无监督学习。有监督学习需要设定期望值,无监督学习方式只需输入模式之分。自学习模型为
其中, 为学习因子; 输出节点 的计算误差; 为输出节点 的计算输出; 为动量因子。
BP模型把一组输入输出样本的函数问题转变为一个非线性优化问题,并使用了优化技术中最普通的梯度下降法。如果把神经网络看成是输入到输出的映射,则这个映射是一个高度非线性映射。BP算法程序框图如图22所示。
图22BP学习算法框图
3
BP算法现在已成为目前应用最广泛的神经网络学习算法,它在函数逼近、模式识别、分类、数据压缩等领域有着更加广泛的应用。但它存在学习收敛速度慢、容易陷入局部极小点而无法得到全局最优解、且对初始权值的选取很敏感等缺点。具体如下:
(1)在权值调整上采用梯度下降法作为优化算法,极易陷入局部极小。
(2)学习算法的收敛速度很慢,收敛速度还与初始权值和传输函数的选择有关。
人工神经网络最有吸引力的特点就是它的学习能力。因此从20世纪40年代人工神经网络萌芽开始,历经两个高潮期及一个反思期至1991年后进入再认识与应用研究期,涌现出无数的相关研究理论及成果,包括理论研究及应用研究。最富有成果的研究工作是多层网络BP算法,Hopfield网络模型,自适应共振理论,自组织特征映射理论等。因为其应用价值,该研究呈愈演愈烈的趋势,学者们在多领域中应用[1]人工神经网络模型对问题进行研究优化解决。
人工神经网络是由多个神经元连接构成,因此欲建立人工神经网络模型必先建立人工神经元模型,再根据神经元的连接方式及控制方式不同建立不同类型的人工神经网络模型。现在分别介绍人工神经元模型及人工神经网络模型。
1.1
仿生学在科技发展中起着重要作用,人工神经元模型的建立来源于生物神经元结构的仿生模拟,用来模拟人工神经网络[2]。人们提出的神经元模型有很多,其中最早提出并且影响较大的是1943年心理学家McCulloch和数学家W.Pitts在分析总结神经元基本特性的基础上首先提出的MP模型。该模型经过不断改进后,形成现在广泛应用的BP神经元模型。人工神经元模型是由人量处理单元厂泛互连而成的网络,是人脑的抽象、简化、模拟,反映人脑的基本特性。一般来说,作为人工神经元模型应具备三个要素:
BP算法存在的问题:
(1)梯度越来越稀疏:从顶层越往下,误差校正信号越来越小;
(2)收敛到局部最小值:尤其是从远离最优Leabharlann Baidu域开始的时候(随机值初始化会导致这种情况的发生);
(3)一般,我们只能用有标签的数据来训练:但大部分的数据是没标签的,而大脑可以从没有标签的的数据中学习;
深度学习[8]是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,是神经网络的发展。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。
1.2
建立神经元模型后,将多个神经元进行连接即可建立人工神经网络模型。神经网络的类型多种多样,它们是从不同角度对生物神经系统不同层次的抽象和模拟。从功能特性和学习特性来分,典型的神经网络模型主要包括感知器、线性神经网络、BP网络、径向基函数网络、自组织映射网络和反馈神经网络等。一般来说,当神经元模型确定后,一个神经网络的特性及其功能主要取决于网络的拓扑结构及学习方法。从网络拓扑结构角度来看,神经网络可以分为以下四种基本形式[3]:前向网络、有反馈的前向网络、层内互边前向网络和互连网络。
摘要:人工神经网络是一门交叉性学科,已广泛于医学、生物学、生理学、哲学、信息学、计算机科学、认知学等多学科交叉技术领域,并取得了重要成果。BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。本文将主要介绍神经网络结构,重点研究BP神经网络原理、BP神经网络算法分析及改进和深度学习的研究。
(2)BP算法的数值优化
采用共轭梯度法和Levenberg-Marqardt算法可以提高数值精度。共轭梯度法选择与梯度相反的方向作为第一次搜索方向,再使函数沿搜索方向极小化,再确定下一个搜索方向,直至收敛。而Levenberg-Marqardt算法是牛顿法的变形,用以最小化那些作为其他非线性函数平方和的函数,这非常适合于性能指数是均方误差的神经网络训练。
作用函数是反映下层输入对上层节点刺激脉冲强度的函数又称刺激函数,一般取为(0,1)内连续取值Sigmoid函数:
它反映了神经元的饱和特性。上式中,Q为表示神经元非线性的参数,称增益值(Gain),也称调节参数。Q值越大,S形曲线越陡峭;反之,Q值越小,S形曲线越平坦;一般取Q=1。
(3)误差计算模型
关键词:BP神经网络、算法分析、应用
1
人工神经网络(Artificial Neural Network,即ANN),作为对人脑最简单的一种抽象和模拟,是人们模仿人的大脑神经系统信息处理功能的一个智能化系统,是20世纪80年代以来人工智能领域兴起的研究热点。人工神经网络以数学和物理方法以及信息处理的角度对人脑神经网络进行抽象,并建立某种简化模型,旨在模仿人脑结构及其功能的信息处理系统。
图21BP神经网络结构图
2.2
BP算法由正向传播和反向传播两部分组成。在正向传播过程中,输入信息从输入层经隐层单元处理后,传至输出层。每一层神经元的状态只影响下一层神经元的状态。当实际输出与期望输出不符时,进入误差的反向传播阶段。把误差通过输出层沿连接路径返回,按误差梯度下降的方式修正各层权值,向隐层、输入层逐层反传。周而复始的信息正向传播和误差反向传播过程,是各层权值不断调整的过程,通过修改各层神经元之间的连接权值,也是神经网络学习训练的过程,此过程一直进行到网络输出的误差信号减少到可以接受的程度,或者预先设定的学习次数为止。
BP神经网络模型[7]包括其输入输出模型、作用函数模型、误差计算模型和自学习模型。
(1)节点的输出模型
BP神经网络的节点输出包括隐层节点输出和输出节点输出。其中,隐层节点输出模型为:
输出节点输出模型为:
其中, 为非线形作用函数, 为神经单元的阈值, 为输入节点 对隐层节点 的影响权重。
(2)作用函数模型
比较典型的改进方法如下:
(1)启发式改进
为了使学习速率足够大,又不易产生振荡,根据Rumelhart的建议,在权值调整算式中,加入“动量项”,,即
其中上式第二项为常规BP算法的修正量,第三项为动量项,其中 为调节因子。
通过可变学习步长可以提高收敛速度。可变学习速度(可变步长)的基本思想为:先设一初始步长:若一次迭代后误差函数E增大,则将步长乘以小于1的常数,沿原来方向重新计算下一个迭代点;若一次迭代后误差函数E减少,则将步长乘以大于l的常数。
深度学习是关于自动学习要建模的数据的潜在(隐含)分布的多层(复杂)表达的算法。换句话来说,深度学习算法自动的提取分类需要的低层次或者高层次特征。高层次特征,一是指该特征可以分级(层次)地依赖其他特征,例如:对于机器视觉,深度学习算法从原始图像去学习得到它的一个低层次表达,例如边缘检测器,小波滤波器等,然后在这些低层次表达的基础上再建立表达,例如这些低层次表达的线性或者非线性组合,然后重复这个过程,最后得到一个高层次的表达。
BP神经网络学习是由信息的正向传播和误差的反向传播两个过程组成。BP神经网络的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP网络的神经元采用的传递函数通常是Sigmoid型可微函数,所以可以实现输入和输出间的任意非线性映射,这使得它在诸如信号处理、计算机网络、过程控制、语音识别、函数逼近、模式识别及数据压缩等领域均取得了成功的应用。
相关文档
最新文档