《BP神经网络详解和实例》由会员分享,可在线阅读,更多相关《BP神经网络详解和实例(85页珍藏版)》请在金锄头文库上搜索。
1、人工神经网络人工神经网络 (Artificial Neural Netwroks -ANN) -HZAU 数模基地数模基地引引 言言v利用机器模仿人类的智能是长期以来人们认识自利用机器模仿人类的智能是长期以来人们认识自然、改造自然和认识自身的理想。然、改造自然和认识自身的理想。v 研究研究ANN目的:目的:v(1)探索和模拟人的感觉、思维和行为的规)探索和模拟人的感觉、思维和行为的规 律,律,设计设计 具有人类智能的计算机系统。具有人类智能的计算机系统。v(2)探讨人脑的智能活动,用物化了的智能来探讨人脑的智能活动,用物化了的智能来 考察和研考察和研 究人脑智能的物质过程及其规律。究人脑智能的
2、物质过程及其规律。 ANN的研究内容的研究内容(1)理论研究理论研究:ANN模型及其学习算法,试图从数模型及其学习算法,试图从数学上描述学上描述ANN的动力学过程,建立相应的的动力学过程,建立相应的ANN模模型,在该模型的基础上,对于给定的学习样本,型,在该模型的基础上,对于给定的学习样本,找出一种能以较快的速度和较高的精度调整神经找出一种能以较快的速度和较高的精度调整神经元间互连权值,使系统达到稳定状态,满足学习元间互连权值,使系统达到稳定状态,满足学习要求的算法。要求的算法。(2)实现技术的研究实现技术的研究:探讨利用电子、光学、生物:探讨利用电子、光学、生物等等 技术实现神经计算机的途径
3、。技术实现神经计算机的途径。(3)应用的研究应用的研究:探讨如何应用:探讨如何应用ANN解决实际问题,解决实际问题,如模式识别、故障检测、智能机器人等。如模式识别、故障检测、智能机器人等。 研究研究ANN方法方法(1)生理结构的模拟:生理结构的模拟: 用仿生学观点,探索人脑的生理结构,把用仿生学观点,探索人脑的生理结构,把对人脑的微观结构及其智能行为的研究结合起对人脑的微观结构及其智能行为的研究结合起来即人工神经网络(来即人工神经网络(Artificial Neural Netwroks,简称简称ANN)方法。方法。(2)宏观功能的模拟:)宏观功能的模拟: 从人的思维活动和智能行为的心理学特性
4、从人的思维活动和智能行为的心理学特性出发,利用计算机系统来对人脑智能进行宏观出发,利用计算机系统来对人脑智能进行宏观功能的模拟,即符号处理方法。功能的模拟,即符号处理方法。ANNANN研究的目的和意义研究的目的和意义(1)(1)通过揭示物理平面与认知平面之间的映射,了通过揭示物理平面与认知平面之间的映射,了解它们相互联系和相互作用的机理,从而揭示思解它们相互联系和相互作用的机理,从而揭示思维的本质,探索智能的本源。维的本质,探索智能的本源。(2)(2)争取构造出尽可能与人脑具有相似功能的计算争取构造出尽可能与人脑具有相似功能的计算机,即机,即ANNANN计算机。计算机。(3)研究仿照脑神经系统
5、的人工神经网络,将在模研究仿照脑神经系统的人工神经网络,将在模式识别、组合优化和决策判断等方面取得传统计式识别、组合优化和决策判断等方面取得传统计算机所难以达到的效果。算机所难以达到的效果。 神经网络研究的发展神经网络研究的发展(1)(1)第一次热潮第一次热潮(40-60(40-60年代未年代未) ) 1943 1943年年, ,美国心理学家美国心理学家W.McCullochW.McCulloch和数学家和数学家W.PittsW.Pitts在提出了一个简单的神经元模型,即在提出了一个简单的神经元模型,即MPMP模型。模型。19581958年,年,F.RosenblattF.Rosenblatt
6、等研制出了感知机等研制出了感知机( (PerceptronPerceptron)。)。(2)低潮低潮(70- -80年代初年代初) ):(3)第二次热潮第二次热潮 1982年,美国物理学家年,美国物理学家J.J.Hopfield提出提出Hopfield模型,它是一个互联的非线性动力学网络模型,它是一个互联的非线性动力学网络. .他解决问题的他解决问题的方法是一种反复运算的动态过程方法是一种反复运算的动态过程, ,这是符号逻辑处理方法这是符号逻辑处理方法所不具备的性质所不具备的性质. . 1987年首届国际年首届国际A ANN大会在圣地亚哥召大会在圣地亚哥召开,国际开,国际A ANN联合会成立,
7、创办了多种联合会成立,创办了多种A ANN国际刊物。国际刊物。1990年年12月,北京召开首届学术会议。月,北京召开首届学术会议。人工神经网络人工神经网络研究的局限性研究的局限性(1 1)ANNANN研究受到脑科学研究成果的限制。研究受到脑科学研究成果的限制。 (2 2)ANNANN缺少一个完整、成熟的理论体系。缺少一个完整、成熟的理论体系。(3 3)ANNANN研究带有浓厚的策略和经验色彩。研究带有浓厚的策略和经验色彩。(4)ANN与传统技术的接口不成熟。与传统技术的接口不成熟。 人工神经网络概述人工神经网络概述 v什么是什么是人工神经网络人工神经网络?vT.Koholen的定义:的定义:“
8、人工神经网络人工神经网络是由是由 具有具有适应性的简单单元组成的广泛并行互连的网络,适应性的简单单元组成的广泛并行互连的网络,它的组织能够模拟生物神经系统对真实世界物它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。体所作出的交互反应。” 二、神经元与神经网络二、神经元与神经网络v大脑可视作为1000多亿神经元组成的神经网络 图3 神经元的解剖图v神经元的信息传递和处理是一种电化学活动树突由于电化学作用接受外界的刺激;通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元从控制论的观点来看;这一过程可以看作一个多输入单输出非线
9、性系统的动态过程神经网络研究的两个方面从生理上、解剖学上进行研究从工程技术上、算法上进行研究脑神经信息活动的特征脑神经信息活动的特征(1)(1)巨量并行性。巨量并行性。(2)(2)信息处理和存储单元结合在一起。信息处理和存储单元结合在一起。(3)自组织自学习功能。自组织自学习功能。 神经网络基本模型神经网络基本模型v神经元的数学模型 图4神经元的数学模型 v其中x(x1,xm)T 输入向量,y为输出,wi是权系数;输入与输出具有如下关系:为阈值,f(X)是激发函数;它可以是线性函数,也可以是非线性函数 例如,若记 取激发函数为符号函数 则 S型激发函数: 或或 v注:若将阈值看作是一个权系数,
10、-1是一个固定的输入,另有m-1个正常的输入,则(1)式也可表示为: (1) 参数识别:假设函数形式已知,则可以从已有的输入输出数据确定出权系数及阈值。 2 2、神经网络的数学模型、神经网络的数学模型 v众多神经元之间组合形成神经网络,例如下图的含有中间层(隐层)的B-P网络 基本基本BP网络的拓扑结构网络的拓扑结构b1bia1c1cqcjahbpanWp1WiqWpjW1qW1jWijV11W11WpqWi1Vh1VhiV1iVn1VniV1pVhpVnp输出层输出层LC隐含层隐含层LB输入层输入层LAWV ANN类型与功能 一般而言, ANN与经典计算方法相比并非优越, 只有当常规方法解决
11、不了或效果不佳时ANN方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统,如故障诊断、特征提取和预测等问题,ANN往往是最有利的工具。另一方面, ANN对处理大量原始数据而不能用规则或公式描述的问题, 表现出极大的灵活性和自适应性。人工神经网络人工神经网络(Artificial Neuron Nets=ANN) 例 1981年生物学家格若根(W Grogan)和维什(WWirth)发现了两类蚊子(或飞蠓midges)他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:翼长 触角长 类别 1.64 1.38 Af 1.82 1.38 Af 1.90 1.38 Af 1.
12、70 1.40 Af 1.82 1.48 Af 1.82 1.54 Af 2.08 1.56 Af翼长 触角长 类别1.78 1.14 Apf1.96 1.18 Apf1.86 1.20 Apf1.72 1.24 Af2.00 1.26 Apf2.00 1.28 Apf1.96 1.30 Apf1.74 1.36 Afv问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80); (l.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类? 解法一: 把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点.其中 6个蚊子属于 APf类;用黑点
13、“”表示;9个蚊子属 Af类;用小圆圈“。”表示得到的结果见图1 图1飞蠓的触角长和翼长 v思路:作一直线将两类飞蠓分开 例如;取A(1.44,2.10)和 B(1.10,1.16),过A B两点作一条直线: y 1.47x - 0.017其中X表示触角长;y表示翼长 分类规则:设一个蚊子的数据为(x, y) 如果y1.47x - 0.017,则判断蚊子属Apf类; 如果y1.47x - 0.017;则判断蚊子属Af类 v分类结果:(1.24,1.80),(1.28,1.84)属于Af类;(1.40,2.04)属于 Apf类图2 分类直线图 缺陷:根据什么原则确定分类直线? 若取A=(1.46
14、,2.10), B=(1.1,1.6)不变,则分类直线变为 y=1.39x+0.071分类结果变为: (1.24,1.80), (1.40,2.04) 属于Apf类; (1.28,1.84)属于Af类 哪一分类直线才是正确的呢? 因此如何来确定这个判别直线是一个值得研究的问题一般地讲,应该充分利用已知的数据信息来确定判别直线v再如,如下的情形已经不能用分类直线的办法: 新思路:将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。基本基本BP网络的拓扑结构网络的拓扑结构b1bia1c1cqcjahbpanWp1WiqWpjW1qW1jWijV11W11WpqWi1V
15、h1VhiV1iVn1VniV1pVhpVnp输出层输出层LC隐含层隐含层LB输入层输入层LAWV四、反向传播算法(四、反向传播算法(B-PB-P算法)算法) Back propagation algorithm 1简单网络的简单网络的B-P算法算法 算法的目的:根据实际的输入与输出数据,计算模型的参数(权系数)图6 简单网络v假设有P个训练样本,即有P个输入输出对v(Ip, Tp),p=1,P, 其中 输入向量为 : 目标输出向量为(实际上的): 网络输出向量为 (理论上的) (p=1,P) (2) 记wij为从输入向量的第j (j=1,m) 个分量到输出向量的第i (i=1,n)个分量的权
16、重。通常理论值与实际值有一误差,网络学习则是指不断地把与比较,并根据极小原则修改参数wij,使误差平方和达最小:记Delta学习规则: (4) (3) 表示递推一次的修改量,则有称为学习的速率 ipm= -1 , wim= (第i个神经元的阈值) (5)注:由(1) 式,第i个神经元的输出可表示为特别当f是线性函数时 (6)图7 多层前馈网络 2多层前馈网络 (l)输入层不计在层数之内,它有N0个神经元设网络 共有L层;输出层为第L层;第 k层有Nk个神经元假设:假设: (2) 设表示第k层第i神经元所接收的信息 wk(i,j) 表示从第k-1层第j个元到第k层第i个元的权重, 表第k层第i个
17、元的输出 (3)设层与层间的神经元都有信息交换(否则,可设它们之间的权重为零);但同一层的神经元之间无信息传输 (4) 设信息传输的方向是从输入层到输出层方向;因此称为前向网络没有反向传播信息 (5) 表示输入的第j个分量 假设:假设: 在上述假定下网络的输入输出关系可以表示为:(7) 其中表示第k层第i个元的阈值. 定理2 对于具有多个隐层的前馈神经网络;设激发函数为S 函数;且指标函数取 (8 8)(9)则每个训练循环中按梯度下降时;其权重迭代公式为( 10 )表示第-1层第个元对第层第个元输入的第次迭代时的权重 其中其中 (11)(12)BP算法 Step1 选定学习的数据,p=1,P,
18、 随机确定初始权矩阵W(0)Step2 用(10)式反向修正,直到用完所有学习数据.用学习数据计算网络输出Step3 五应用之例:蚊子的分类五应用之例:蚊子的分类 已知的两类蚊子的数据如表1: v翼长 触角长 类别v1.78 1.14 Apfv1.96 1.18 Apfv1.86 1.20 Apfv1.72 1.24 Afv2.00 1.26 Apfv2.00 1.28 Apfv1.96 1.30 Apfv1.74 1.36 Af目标值目标值0.90.90.90.10.90.90.90.1 v翼长 触角长 类别v 1.64 1.38 Afv 1.82 1.38 Afv 1.90 1.38 Af
19、v 1.70 1.40 Afv 1.82 1.48 Afv 1.82 1.54 Afv 2.08 1.56 Af目标t0.10.10.10.10.10.10.1 v输入数据有15个,即 , p=1,15; j=1, 2; 对应15个输出。v建模:(输入层,中间层,输出层,每层的元素应取多少个?)v建立神经网络v规定目标为: 当t(1)=0.9 时表示属于Apf类,t(2)=0.1表示属于Af类。v设两个权重系数矩阵为:为阈值 其中分析如下: 为第一层的输出,同时作为第二层的输入。其中, 为阈值, 为激励函数若令 (作为一固定输入) (阈值作为固定输入神经元相应的权系数) 则有: 取激励函数为=
20、 则同样,取 (1)随机给出两个权矩阵的初值;例如用MATLAB软件时可以用以下语句: 令p=0具体算法如下:具体算法如下: =rand(2,3); =rand(1,3); (2) 根据输入数据利用公式算出网络的输出 =取取(3)计算 因为 所以 (4)取 (或其他正数,可调整大小) (5) 计算 和 j=1,2,3, i=1,2,3, 计算 j=1,2,3 j=1,2,3v(6) p=p+1,转(2) 注:仅计算一圈(p=1,2,15)是不够的,直到当各权重变化很小时停止,本例中,共计算了147圈,迭代了2205次。最后结果是:v即网络模型的解为: =BP网络建模特点:非线性映照能力:神经网
21、络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。并行分布处理方式:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。数据融合的能力:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。多变量系统:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系
22、统间的解耦问题。神经网络的应用神经网络的应用 人工神经网络以其具有自学习、自组织、较好的容错性和优良的非线性逼近能力,受到众多领域学者的关注。在实际应用中,80%90%的人工神经网络模型是采用误差反传算法或其变化形式的网络模型(简称BP网络),目前主要应用于函数逼近、模式识别、分类和数据压缩或数据挖掘。 基本基本BP网络的拓扑结构网络的拓扑结构b1bia1c1cqcjahbpanWp1WiqWpjW1qW1jWijV11W11WpqWi1Vh1VhiV1iVn1VniV1pVhpVnp输出层输出层LC隐含层隐含层LB输入层输入层LAWV1.样本数据样本数据1.1 收集和整理分组收集和整理分组
23、采用BP神经网络方法建模的首要和前提条件是有足够多典型性好和精度高的样本。而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型的性能和泛化能力,必须将收集到的数据随机分成训练样本、检验样本(10%以上)和测试样本(10%以上)3部分。此外,数据分组时还应尽可能考虑样本模式间的平衡。1.2 输入输入/输出变量的确定及其数据的预处理输出变量的确定及其数据的预处理 一般地,BP网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般根据专业知识确定。若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量
24、。输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。 由于BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速度和灵敏性以及有效避开Sigmoid函数的饱和区,一般要求输入数据的值在01之间。因此,要对输入数据进行预处理。一般要求对不同变量分别进行预处理,也可以对类似性质的变量进行统一的预处理。如果输出层节点也采用Sigmoid转换函数,输出变量也必须作相应的预处理,否则,输出变量也可以不做预处理。 预处理的方法有多种多样,各文献采用的公式也不尽相同。但必须注意
25、的是,预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。再者,为保证建立的模型具有一定的外推能力,最好使数据预处理后的值在0.20.8之间。2.神经网络拓扑结构的确定神经网络拓扑结构的确定2.1 隐层数隐层数 一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。Hornik等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数。显然,这是一个存在性结论。在设计BP网络时可参考这一点,应优先考虑3层BP网络(即
26、有1个隐层)。一般地,靠增加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。对于没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线性或非线性转换函数型式)回归模型。因此,一般认为,应将不含隐层的网络模型归入回归分析中,技术已很成熟,没有必要在神经网络理论中再讨论之。2.2 隐层节点数隐层节点数 在BP 网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。 目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的
27、情况,一般工程实践中很难满足,不宜采用。事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的型式以及样本数据的特性等因素有关。 在确定隐层节点数时必须满足下列条件:(1)隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。同理可推得:
28、输入层的节点数(变量数)必须小于N-1。(2)(2) 训练样本数必须多于网络模型的连接权数,一般为210倍,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。 总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。3.神经网络的训练神经网络的训练3.1 训练训练 BP网络的训练就是通过应用误差反传原理不断调整网络权
29、值使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值。虽然理论上早已经证明:具有1个隐层(采用Sigmoid转换函数)的BP网络可实现对任意函数的任意逼近。但遗憾的是,迄今为止还没有构造性结论,即在给定有限个(训练)样本的情况下,如何设计一个合理的BP网络模型并通过向所给的有限个样本的学习(训练)来满意地逼近样本所蕴含的规律(函数关系,不仅仅是使训练样本的误差达到很小)的问题,目前在很大程度上还需要依靠经验知识和设计者的经验。因此,通过训练样本的学习(训练)建立合理的BP神经网络模型的过程,在国外被称为“艺术创造的过程”,是一个复杂而又十分烦琐和困难的过程。 由于B
30、P网络采用误差反传算法,其实质是一个无约束的非线性最优化计算过程,在网络结构较大时不仅计算时间长,而且很容易限入局部极小点而得不到最优结果。目前虽已有改进BP法、遗传算法(GA)和模拟退火算法等多种优化方法用于BP网络的训练(这些方法从原理上讲可通过调整某些参数求得全局极小点),但在应用中,这些参数的调整往往因问题不同而异,较难求得全局极小点。这些方法中应用最广的是增加了冲量(动量)项的改进BP算法。 3.2 学习率和冲量系数学习率和冲量系数 学习率影响系统学习过程的稳定性。大的学习率可能使网络权值每一次的修正量过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛;但过小的
31、学习率导致学习时间过长,不过能保证收敛于某个极小值。所以,一般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在0.010.8之间。 增加冲量项的目的是为了避免网络训练陷于较浅的局部极小点。理论上其值大小应与权值修正量的大小有关,但实际应用中一般取常量。通常在01之间,而且一般比学习率要大。 4 网络的初始连接权值网络的初始连接权值 BP算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值直接决定了BP算法收敛于哪个局部极小点或是全局极小点。因此,要求计算程序(建议采用标准通用软件,如Statsoft公司出品的Statistica Neural Networks软件和M
32、atlab 软件)必须能够自由改变网络初始连接权值。由于Sigmoid转换函数的特性,一般要求初始权值分布在-0.50.5之间比较有效。5.网络模型的性能和泛化能力网络模型的性能和泛化能力 训练神经网络的首要和根本任务是确保训练好的网络模型对非训练样本具有好的泛化能力(推广性),即有效逼近样本蕴含的内在规律,而不是看网络模型对训练样本的拟合能力。从存在性结论可知,即使每个训练样本的误差都很小(可以为零),并不意味着建立的模型已逼近训练样本所蕴含的规律。因此,仅给出训练样本误差(通常是指均方根误差RSME或均方误差、AAE或MAPE等)的大小而不给出非训练样本误差的大小是没有任何意义的。 要分析
33、建立的网络模型对样本所蕴含的规律的逼近情况(能力),即泛化能力,应该也必须用非训练样本(本文称为检验样本和测试样本)误差的大小来表示和评价,这也是之所以必须将总样本分成训练样本和非训练样本而绝不能将全部样本用于网络训练的主要原因之一。判断建立的模型是否已有效逼近样本所蕴含的规律,最直接和客观的指标是从总样本中随机抽取的非训练样本(检验样本和测试样本)误差是否和训练样本的误差一样小或稍大。非训练样本误差很接近训练样本误差或比其小,一般可认为建立的网络模型已有效逼近训练样本所蕴含的规律,否则,若相差很多(如几倍、几十倍甚至上千倍)就说明建立的网络模型并没有有效逼近训练样本所蕴含的规律,而只是在这些
34、训练样本点上逼近而已,而建立的网络模型是对训练样本所蕴含规律的错误反映。 因为训练样本的误差可以达到很小,因此,因为训练样本的误差可以达到很小,因此,用从总样本中随机抽取的一部分测试样本的误差表用从总样本中随机抽取的一部分测试样本的误差表示网络模型计算和预测所具有的精度(网络性能)示网络模型计算和预测所具有的精度(网络性能)是合理的和可靠的。是合理的和可靠的。 值得注意的是,判断网络模型泛化能力的好值得注意的是,判断网络模型泛化能力的好坏,主要不是看测试样本误差大小的本身,而是要坏,主要不是看测试样本误差大小的本身,而是要看测试样本的误差是否接近于训练样本和检验样本看测试样本的误差是否接近于训
35、练样本和检验样本的误差。的误差。6.合理网络模型的确定合理网络模型的确定 对同一结构的网络,由于BP算法存在(很)多个局部极小点,因此,必须通过多次(通常是几十次)改变网络初始连接权值求得相应的极小点,才能通过比较这些极小点的网络误差的大小,确定全局极小点,从而得到该网络结构的最佳网络连接权值。必须注意的是,神经网络的训练过程本质上是求非线性函数的极小点问题,因此,在全局极小点邻域内(即使网络误差相同),各个网络连接权值也可能有较大的差异,这有时也会使各个输入变量的重要性发生变化,但这与具有多个零极小点(一般称为多模式现象)(如训练样本数少于连接权数时)的情况是截然不同的。此外,在不满足隐层节
36、点数条件时,总也可以求得训练样本误差很小或为零的极小点,但此时检验样本和测试样本的误差可能要大得多;若改变网络连接权初始值,检验样本和测试样本的网络计算结果会产生很大变化,即多模式现象。 对于不同的网络结构,网络模型的误差或性能和泛化能力也不一样。因此,还必须比较不同网络结构的模型的优劣。一般地,随着网络结构的变大,误差变小。通常,在网络结构扩大(隐层节点数增加)的过程中,网络误差会出现迅速减小然后趋于稳定的一个阶段,因此,合理隐层节点数应取误差迅速减小后基本稳定时的隐层节点数。 总之,合理网络模型是必须在具有合理隐层节点数、训练时没有发生“过拟合”现象、求得全局极小点和同时考虑网络结构复杂程
37、度和误差大小的综合结果。设计合理BP网络模型的过程是一个不断调整参数的过程,也是一个不断对比结果的过程,比较复杂且有时还带有经验性。这个过程并不是有些作者想象的(实际也是这么做的)那样,随便套用一个公式确定隐层节点数,经过一次训练就能得到合理的网络模型(这样建立的模型极有可能是训练样本的错误反映,没有任何实用价值)。 虽然神经网络的类型很多,建立神经网络模型时,根据研究对象的特点,可以考虑不同的神经网络模型。 前馈型BP网络即误差逆传播神经网络是最常用、最流行的神经网络。BP网络的输入和输出关系可以看成是一种映射关系,即每一组输入对应一组输出。由于网络中神经元作用函数的非线性,网络实现是复杂的
38、非线性映射。关于这类网络对非线性的逼近能力,Hornikl等分别利用不同的方法证明了如下一个事实:仅含有一个隐层的前向网络能以任意精度逼近定义在Rn的一个紧集上的任意非线性函数。误差反向算法是最著名的多层前向网络训练算法,尽管存在收敛速度慢、局部极值等缺点,但可通过各种改进措施来提高它的收敛速度、克服局部极值现象,而且具有简单、易行、计算量小、并行性强等特点,目前仍是多层前向网络的首选算法。神经网络模型参数的确定: 由于传统的误差反传BP算法较为成熟,且应用广泛,因此努力提高该方法的学习速度具有较高的实用价值。BP算法中有几个常用的参数,包括学习率,动量因子,形状因子及收敛误差界值E等。这些参
39、数对训练速度的影响最为关键。 MATLAB神经网络工具箱的应用 在网络训练过程中使用的是Matlab 7.0 for Windows软件,对于BP神经元网络的训练可以使用Neural Networks Toolbox for Matlab。美国的Mathwork公司推出的MATLAB软件包既是一种非常实用有效的科研编程软件环境,又是一种进行科学和工程计算的交互式程序。MATLAB本身带有神经网络工具箱,可以大大方便权值训练,减少训练程序工作量,有效的提高工作效率. 隐层的数目: 理论上虽然证明了这类网络的逼近能力,对于网络结构的要求,并没有给出明确的说明。因而在应用中神经网络模型的结构确定常常
40、有人为的主观性和艺术性,缺乏一个指导原则。而网络训练与结构紧密相关,太大的网络结构在训练时效率不高,而且还会由于过拟合(overfitting)造成网络的性能脆弱,泛化能力(generalization ability)下降;太小的网络可能就根本不收敛。当选取隐层数为1时,BP网络不收敛,而当选取隐层数为2时,BP网络训练较好。考虑到本研究的特点,结合不同隐层网络结构的训练结果,本文选择了隐层数L=2的网络结构模型。2375 Epochs隐层数为1节点数6 不同隐层数训练误差曲线隐层数为2 节点数126 例: BP神经网络水(处理)系统的模拟与预测等方面获得了广泛的应用 。光催化臭氧氧化处理自
41、来水工艺神经网络模型 样本实验号臭氧浓度(mg/L)入口UV254UV254去除率(%)11.160.11650.221.350.10459.531.720.07858.841.860.10766.251.970.13665.562.150.08264.572.230.12573.682.480.07676.492.790.12278.5102.850.09279.2113.070.08181.4123.450.06890.3133.590.07793.1143.800.10898.2153.930.12897.3164.140.06398.1174.460.13597.3184.550.07
42、098.8194.840.12696.9205.030.08798.6检验样本实验号臭氧浓度(mg/L)入口UV254UV254去除率(%)11.420.086?22.510.071?33.210.107?44.290.096?55.240.65?隐层神经元数的选择 隐层神经元数的选择是一个十分复杂的问题。因为没有很好的解析式表示,可以说隐层神经元数与问题的要求、输入层与输出层神经元的数量、训练样本的数量等都有直接关系。事实上隐层神经元太少不可能将网络训练出来,但太多又使学习时间过长,使网络不“不强壮”,泛化能力下降,即不能识别以前没有直接接收到的样本,容错性差。 当隐层数为2010和84时的
43、训练结果: 隐层数为2节点数84 隐层数为2节点数2010 图6-2 相同隐层数不同节点数训练误差曲线 神经网络模型的各层节点数分别为:输入层2个;第一隐层12个;第二隐层6个;输出层1个。 综合以上研究内容,建立光催化臭氧氧化处理自来水工艺神经网络模型如图6-3所示。输入层输出层隐层图6-3 BP网络模型臭氧浓度入口UV254UV254去除率1学习率和动量因子 BP算法本质上是优化计算中的梯度下降法,利用误差对于权、阀值的一阶导数信息来指导下一步的权值调整方向,以求最终得到误差最小。为了保证算法的收敛性,学习率必须小于某一上限,一般取01而且越接近极小值,由于梯度变化值逐渐趋于零,算法的收敛
44、就越来越慢。在网络参数中,学习率和动量因子是很重要的,它们的取值直接影响到网络的性能,主要是收敛速度。为提高学习速度,应采用大的。但太大却可能导致在稳定点附近振荡,乃至不收敛。针对具体的网络结构模型和学习样本,都存在一个最佳的学习率门和动量因子,它们的取值范围一般01之间,视实际情况而定。在上述范围内通过对不同的和的取值进行了考察,确定本文神经网络模型的参数为:0.7,0.9。2初始权值的选择 在前馈多层神经网络的BP算法中,初始权、阈值一般是在一个固定范围内按均匀分布随机产生的。一般文献认为初始权值范围为-11之间,初始权值的选择对于局部极小点的防止和网络收敛速度的提高均有一定程度的影响,如
45、果初始权值范围选择不当,学习过程一开始就可能进入“假饱和”现象,甚至进入局部极小点,网络根本不收敛。初始权、阈值的选择因具体的网络结构模式和训练样本不同而有所差别,一般应视实际情况而定。本文考察了不同初始权、阈值的赋值范围对网络收敛速度的影响,确定本文神经网络模型的初始权和阈值的随机赋值范围为0.5+0.5。3收敛误差界值Emin 在网络训练过程中应根据实际情况预先确定误差界值。误差界值的选择完全根据网络模型的收敛速度大小和具体样本的学习精度来确定。当Emin 值选择较小时,学习效果好,但收敛速度慢,训练次数增加。如果Emin值取得较大时则相反。本文神经网络的误差界值Emin为0.0001,即
46、在迭代计算时误差值E Emin0.0001时,则认为学习完成,停止计算,输出结果。输入数据的预处理 在BP算法中,神经元具有饱和非线性特征(如果神经元的总输入与阈值相距甚远,神经元的实际输出要么为最大值、要么为最小值)。前馈型静态网络的神经元作用函数的总输入是与其相连的其它神经元输出的加权,在使用BP算法时,要防止神经元进入饱和状态,必须限制与其相连的其它神经元的输出幅值。由于输入层只起数据传送作用,层中的神经元是扇区单元,通常使用线性作用函数(输出等于输入),不存在饱和状态。第一隐层中的神经元通常采用饱和非线性作用函数,学习过程中会出现饱和现象,因此要防止此层神经元进入饱和,必须限制网络输入
47、的幅值。所以,为减少平台现象出现的可能,加快学习,应对网络的输入样本进行归一化(或称正则化)处理,这也是BP算法必须对输入数据进行预处理的真正原因。本文使用的标准化方法如下:式中,P为输入量,T为输出量,P/和T/为经过归一化处理后的实验数据。 进水进水UV254值值臭臭氧氧浓浓度度, mg/LUV254去除率,去除率,BP网络训练误差曲线和网络模型网络训练误差曲线和网络模型实验号实验号 臭氧臭氧 (mg/L(mg/L) )UVUV254254去除率去除率(%)(%)相对误差相对误差(%)实测值实测值网络预测值网络预测值1 11.421.4258.158.157.357.3- -1.471.4
48、72 22.512.5178.878.877.777.7-1.47-1.473 33.213.2189.689.690.590.50.960.964 44.294.2996.596.597.997.91.451.455 55.245.2497.897.897.997.90.140.14模型预测结果与实测值比较模型预测结果与实测值比较 OO3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.116=0.116UVUV254254=0.105=0.105 OO3 3 浓度,浓度,mg/Lmg/L UVUV254254=0.092=0.092 OO3 3 浓度,浓度,mg/Lmg/LUVU
49、V254254=0.076=0.076 OO3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.083=0.083 OO3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.128=0.128 OO3 3 浓度,浓度,mg/Lmg/L UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,利用利用BP网络对网络对O3浓度的优化浓度的优化量变引起质变量变引起质变-神经网络的作用神经网络的作用(1 1)蚂蚁群)蚂蚁群 一个蚂蚁有50个神经元,单独的一个蚂蚁不能做太多的事;甚至于不
50、能很好活下去但是一窝蚂蚁;设有 10万个体,那么这个群体相当于500万个神经元(当然不是简单相加,这里只为说明方便而言);那么它们可以觅食、搬家、围攻敌人等等(2)网络说话)网络说话 人们把一本教科书用网络把它读出来(当然需要通过光电,电声的信号转换);开始网络说的话像婴儿学语那样发出“巴、巴、巴”的声响;但经过BP算法长时间的训练竟能正确读出英语课本中 90的词汇从此用神经网络来识别语言和图象形成一个新的热潮4 4、人工神经网络的基本特点、人工神经网络的基本特点 (1)可处理非线性 (2)并行结构对神经网络中的每一个神经元来说;其运算都是同样的这样的结构最便于计算机并行处理 (3)具有学习和记忆能力一个神经网络可以通过训练学习判别事物;学习某一种规律或规则神经网络可以用于联想记忆(4)对数据的可容性大在神经网络中可以同时使用量化数据和质量数据(如好、中、差、及格、不及格等)(5)神经网络可以用大规模集成电路来实现如美国用 256个神经元组成的神经网络组成硬件用于识别手写体的邮政编码ANN特点局部优化黑箱层次增加会得到任意的精度分类与回归