《bp神经网络与rbf神经网络》由会员分享,可在线阅读,更多相关《bp神经网络与rbf神经网络(80页珍藏版)》请在金锄头文库上搜索。
1、BP神经网络与RBF神经网络 主要内容 n一:神经网络的背景知识 n二:BP神经网络 n三:RBF神经网络 n四:两种神经网络的比较 人工神经网络简介 n人工神经网络(Artificial Neural Network )是基于仿生学理论上的对人脑某些已知 结构的模仿。它将人脑的神经元连接方式 加以抽象。用大量的神经元节点组成一个 庞大的神经网络,从而实现数据的非线性 处理,以及复杂的逻辑运算。 正因为人工神经网络是对生物神经网络的模仿 ,它具有一些传统逻辑运算不具有的优点。主 要包括: n一、非线性 非线性是自然界的普遍特性。人 脑的思考过程就是非线性的。人工神经网络通 过模仿人脑神经元结构
2、的信息传递过程,可以 进行线性或者非线性的运算,这是人工神经网 络的最特出的特性。 n二、自适应性 神经网络的结构中设置了权值 和阈值参数。网络能够随着输入输出端的环境 变化,自动调节神经节点上的权值和阈值。因 此,神经网络对在一定范围变化的环境有很强 的适应能力。适用于完成信号处理、模式识别 、自动控制等任务。系统运行起来也相当稳定 。 n三、较强的容错性 由若干个小的神经元组成 的网络十分庞大。信息存储在神经元之间的连 接权值上,采用的是分布式的存储方式。局部 的或部分的神经元损坏后,不会对全局的活动 造成大的影响。 神经网络的应用前景 n目前,神经网络主要应用于:信息领域、自动 化领域、
3、医学领域等。 n信息领域:主要包括信号处理和模式识别。目 前神经网络被广泛的用于自适应信号处理和非 线性信号处理。在这些方面已经有很多成功的 例子。例如信号传递的去噪声和运动目标的速 度估计。在模式识别方面,神经网络不仅可以 完成如图像的特征检测,边缘提取等任务还可 以进行如目标跟踪,语音识别等动态识别。 神经网络模型包括: n一、神经元 n二、网络拓扑 n三、学习算法 神经元 在介绍人工神经网络之前,首先简单了解一下 实际的生物神经元的基本情况。一个生物神经 元有两种状态,即兴奋状态和抑制状态。平时 处于抑制状态的生物神经元,会收到多个其他 生物神经元传来的兴奋电位,并且这多个输入 电位在该
4、神经元中以代数和的形式叠加,如果 输入的兴奋总量超过某个阈值,该生物神经元 就会被激发进入兴奋状态,发出输出脉冲并传 给其他神经元。 人工神经元模型 其中xj(j=1,2n)为神经元i的输入信号 ,wij为连接权,ui是由输入信号线性组合 后的输出,i 为神经元的阀值。 f()称为神经元的传递函数(活化函数或激活函 数)。 对于基本的感知器神经元,工作方式是将加权总和 与神经元的阈值进行比较,若大于阈值,神经元被 激活。信号被传送到与其相连的更高一层神经元。 常见的传递函数有三类 硬阈值型函数 分段线性函数 sigmoid函数 nSigmoid函数是最常用的传递函数之一, 这是由于sigmoi
5、d函数具有以下特点: n非线性和单调性 n无限次可微 n当权值很大时可近似阶跃函数 n当权值很小时可近似线性函数 网络拓扑 n网络拓扑是指网络的结构以及神经元之间的连 接方式。根据连接方式的不同,可分为反馈型 人工神经网络和非反馈型人工神经网络。前者 神经元之间存在反馈的环路,后者神经元之间 不存在反馈回路。 n对于非反馈神经网络,若结构是分层的,每一 层神经元只与上一层神经元相连,同层之间互 不相连,则称该网络为前馈型人工神经网络。 网络的学习算法 n网络的学习算法是以满足网络所需的性能为目 标,决定连接各神经元的初始权值及在训练时 调整权值的方法。学习方法可分为监督学习和 非监督学习。前者
6、为有导师学习,训练时,同 时向网络提供输入模式以及输出的样板模式, 在不断输入不同训练模式的同时调整权值,从 而使输出尽量接近样板模式。后者是无导师学 习,它是一种自动的聚类过程。 三种用于模式识别的网络结构和算法 n单层感知器(Single Layer Pereceptron,简称为SLP ) 可作为分类器。单输出的SLP,其结构就是单个人 工神经元。输入的N个元可为连续的或二进制的标量信 号。 表示一个维空间的超平面。图6-3表 示可由这个超平面对A、B类进行分类。SLP结构的前部 分为一线性加权装置(权为 ,附有阀值 ),其输 出经一个性能函数为 的硬限幅非线性装置,然后输 出到判决器。
7、按当其输入为+1时判属A类;当其输入为 -1时判属B类的准则来判类。 两类分类处理 训练步骤 第一步:设置初始权值及阈值。置初始的权值及阈值为 一个小的随机数。 第二步:启用新的输入信号x1,x2,xn及给定相应 的理想输出信号d(t),其中 d(t)=+1(若实际属于A类) d(t)= -1(若实际属于B类) 第三步:计算实际输出 第四步:调整权值 式中的为小于1的正的增益因子。由上式可见,只是 在出现判决误差时权值 才变动 。 第五步:转到第二步重复进行。 双层感知器 n实际上实用的最简单的M类分类的感知器(Pereceptron)也应该是一 种双层神经网络模型。它是一个两层前馈神经网络,
8、一层为输入层, 另一层具有计算单元,可以通过监督学习建立模式判别的能力,如图 所示。 x2 xN x1 yM y1 y2 n学习的目标是通过改变权值使神经网络由给定的输入得到给定的输出。作为 分类器,可以用已知类别的模式向量(向量维数等于输入节点数)作为训练 集,当输入为属于第j类的特征向量 时,应使对应于该类的输出神经元的 输出为1,而其它输出神经元的输出则为0(或1)。应使对应于该类的输 出神经元的输出为1,而其它输出神经元的输出则为0(或1)。 n设理想的输出为: 实际的输出为: 为了使实际的输出逼近理想输出,可以反复依次输入训练集中的输入向量 ,然后计算出实际的输出 ,再对权值 作如下
9、的修改 双层感知器的学习过程与求取线性判别函数的过程是等价的,它只能用于解 决线性可分问题。它的特点是学习过程收敛很快,且与初始值无关。 多层感知器 n当类别不能用一超平面完善分割时,需用更复杂结构 的感知器,即所谓的“多层感知器”。(Multi-Layer Perceptron,简称为MLP)如果感知器的传递函数具有 非线性,则这种网络具有较强的分类能力。多层感知 器网是由若干层感知器以及可修正的权连接而构成的 多层前馈网络。 n多层感知器的结构由一个输入层,一个以上隐藏层和一个输出层组成 。所有的连接均为相邻层之间的节点的连接,同层之间不连接。输入 层不作任何运算,它只是将每个输入量分配到
10、各个输入节点。图6-5 是一个三层MLP神经网络。 x2 xN y1 yM n对于多层感知器,Werbos曾于1974年提出,并且 由Rumelhart等人的工作而得到完善和推广的一种 学习算法,即著名的BP(Back Propagation)算 法,它是一种修正连接权的算法。所以MLP的训练 大都采用这种反向传播算法。 BP神经网络 BP (Back Propagation)神经网络,即误差反向传播算法的 学习过程,由信息的正向传播和误差的反向传播两个过程组 成。输入层各神经元负责接收来自外界的输入信息,并传递 给中间层各神经元;中间层是内部信息处理层,负责信息变 换,根据信息变化能力的需求
11、,中间层可以设计为单隐层或 者多隐层结构;最后一个隐层传递到输出层各神经元的信息 ,经进一步处理后,完成一次学习的正向传播处理过程,由 输出层向外界输出信息处理结果。 当实际输出与期望输出不符时,进入误差的反向传播 阶段。误差通过输出层,按误差梯度下降的方式修正 各层权值,向隐层、输入层逐层反传。 周而复始的信息正向传播和误差反向传播过程,是各 层权值不断调整的过程,也是神经网络学习训练的过 程,此过程一直进行到网络输出的误差减少到可以接 受的程度,或者预先设定的学习次数为止。 BP神经网络结构 2.1 输入/输出变量的确定 若输入变量较多,一般可通过主成份分析方法压减输入变 量,也可根据剔除
12、某一变量引起的系统误差与原系统误差 的比值的大小来压减输入变量。 输出变量可以是一个,也可以是多个。 一般将一个具有多个输出的网络模型转化为多个具有一个 输出的网络模型效果会更好,训练也更方便。 Hornik等早已证明:若输入层和输出层采用线性传 递函数,隐层采用Sigmoid传递函数,则含一个隐层 的MLP网络能够以任意精度逼近任何有理函数。显然 ,这是一个存在性结论。在设计BP网络时可参考这 一点,应优先考虑3层BP网络(即有1个隐含层)。 在BP 网络中,隐层节点数的选择非常重要,它对建 立的神经网络模型的性能影响很大,但是目前理论上 还没有一种科学的和普遍的确定方法。 隐含层数和节点数
13、 n一些文献中提到的一种隐含层节点数选择的经 验公式: 其中N为隐含层神经元个数,m为输入神经元个 数,n为输出神经元个数,为110之间的一个 整数。 BP神经网络的学习算法 n为说明算法,假定BP网络中只有一个隐层,也 就是三层BP网络。 n上标h表示隐层, 上标o表示输出层, 下标p表示p次训练向量 隐层节点j输出和输入节点的关系: 输出节点k和隐层输出节点的关系: 学习过程:定义输出误差 学习的目的是要使以下定义的误差平方和最小: 因此,要求以下的偏导, 式中1/2是为了计算方便,不影响推导过程。 为了决定权值改变的方向和大小,必须计算EP对wkj的负梯度 然后调节权值,使总的误差减小
14、所以输出权值的更新: 对隐层权值的更新 n隐层的权值更新采用与输出层相仿的方法 n问题:我们知道这些节点的实际输出,确无法 提前知道正确的输出是什么 n解决方法:直接把总的误差和隐层的权值联系 起来 n我们要计算EP对隐层权值的梯度 而: 所以: n注意:隐层的权值更新取决于输出层的所有的误差 根据相应的公式可以求出各个偏微分 定义一个隐层误差项: n计算全局误差 m是样本数据个数,q是输出节点个数 n判断网络误差是否满足要求。当误差达 到预设精度或学习次数大于设定的最大次 数,则结束算法。否则,选取下一个学习 样本及对应的期望输出继续训练网络。 BP网络主要用途 BP网络作为一种很重要的神经
15、网络模型在许多领域都得到了应用( 图像压缩编码、人脸识别、故障诊断、最优预测、分类)。 1、函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函 数。 2、模式识别:用一个特定的输出向量将它与输入向量联系起来。 3、分类:把输入向量 以所定义的合适方式进行分类。 4、数据压缩:减少输出向量维数以便于传输或存储。 标准BP算法的缺陷 标准的BP算法在应用中暴露出不少内在的缺陷: 易形成局部极小而得不到全局最优; 训练次数多使得学习效率低,收敛速度慢; 隐节点的选取缺乏理论指导; 训练时学习新样本有遗忘旧样本的趋势。 目前有效改进方法: 增加动量项 一些学者指出,标准BP算法在调整权值时,只
16、按t时刻误差的梯度降方向调整,而没有 考虑t时刻前的梯度方向,从而常使训练过程发生震荡,收敛缓慢。为了提高网络的训 练速度,可以在权值调整公式中增加一动量项。 自适应调节学习率 学习率也称为步长,在标准的BP算法定为常数,然而在实际应用中,很难确定一个从 始至终都合适的最佳学习率。从误差曲面可以看出,在平坦区域内学习率太小会使训 练次数增加,因而希望增大学习率;而在误差变化剧烈的区域,学习率太大会因调整 量过大而跨过较窄的“坑凹”处,使训练出现震荡,反而使迭代次数增加。为了加速收 敛过程,一个较好的思想是自适应改变学习率,使其该大时增大,该小时减小。 引入陡度因子 误差曲面上存在着平坦区域。权值调整进入平坦区的原因是神经元输出进入了转移函 数的饱和区。如果在调整进入平坦区域后,设法压缩神经元的净输入,使其输出退出 转移函数的饱和区,就可以改变误差函数的形状,从而使调整脱离平坦区。实现这一 思路的具体作法是在原转移函数中引入一个陡度因子。 BP神经网络示例 n要求建立一个BP神经网