1、人工神经网络(Artificial Neural Netwroks-ANN)11.1 人工神经网络发展概况人工神经网络发展概况人工神经网络(Artificial Neural Networks,ANN):简称神经网络。模拟人脑神经细胞的工作特点:*单元间的广泛连接;*并行分布式的信息存贮与处理;*自适应的学习能力等。优点:(1)较强的容错性;(2)很强的自适应学习能力;(3)可将识别和若干预处理融为一体进行;Page 2(4)并行工作方式;(5)对信息采用分布式记忆,具有鲁棒性。四个发展阶段:第一阶段:启蒙期,始于1943年。形式神经元的数学模型提出。第二阶段:低潮期,始于1969年。感知器(
2、Perceptions)一书出版,指出局限性。第三阶段:复兴期,从1982年到1986年。Hopfield的两篇论文提出新的神经网络模型;并行分布处理出版,提出反向传播算法。第四个阶段:1987年至今,趋于平稳。回顾性综述文章“神经网络与人工智能”。Page 3人工神经网络的基本特点(1)可处理非线性(2)并行结构对神经网络中的每一个神经元来说;其运算都是同样的这样的结构最便于计算机并行处理(3)具有学习和记忆能力一个神经网络可以通过训练学习判别事物;学习某一种规律或规则神经网络可以用于联想记忆(4)对数据的可容性大在神经网络中可以同时使用量化数据和质量数据(如好、中、差、及格、不及格等)(5
3、)神经网络可以用大规模集成电路来实现如美国用 256个神经元组成的神经网络组成硬件用于识别手写体的邮政编码Page 41.2 神经网络基本概念神经网络基本概念1.2.1 生物神经元生物神经元1生物神经元的结构生物神经元的结构细胞体、树突、轴突和突触。Page 52生物神经元的工作机制生物神经元的工作机制兴奋和抑制两种状态。抑制状态的神经元由树突和细胞体接收传来的兴奋电位产生输出脉冲输入兴奋总 量超过阈值神经元被激发进入兴奋状态由突触传递给其它神经元Page 61.2.2 人工神经元及神经网络人工神经元及神经网络人工神经元:生物神经元的简化模拟。人工神经元间的互连:信息传递路径轴突-突触-树突的
4、简化;连接的权值:两个互连的神经元之间相互作用的强弱。图8.2 人工神经元模型接收的信息(其它神经元的输出)互连强度/权值 作比较 的阈值n维输入向量X 输出 输出函数 Page 7神经元的动作:输出函数 f:也称作用函数,非线性。阈值型S型伪线性型f 为阈值型函数时:设 ,点积形式:式中,Page 81.2.3 神经网络的学习神经网络的学习学习:同一个训练集的样本输入输出模式反复作用于网络,网络按照一定的训练规则自动调节神经元之间的连接强度或拓扑结构,使实际输出满足期望的要求或者趋于稳定。实质:1Hebb学习规则学习规则典型的权值修正方法:Hebb学习规则、误差修正学习 如果神经网络中某一神
5、经元与另一直接与其相连的神经元同时处于兴奋状态,那么这两个神经元之间的连接强度应该加强。神经网络的最重要特征之一。Page 9wij(t+1):修正一次后的某一权值;:学习因子,表示学习速率的比例常数;yj(t),yi(t):分别表示t时刻第j个和第i个神经元的状态(输出)。由 有:神经元间的连接 Page 102.学习规则学习规则(3)更新权值,阈值可视为输入恒为(1)的一个权值;(1)选择一组初始权值wij(1);(2)计算某一输入模式对应的实际输出与期望输出的误差;式中,(4)返回(2),直到对所有训练模式网络输出均能满足要求。dj,yj(t):第j个神经元的期望输出与实际输出;xi(t
6、):第j个神经元的第i个输入。神经网络的学习体现在:权值变化;网络结构变化。:学习因子;Page 111.3 前馈神经网络前馈神经网络1.3.1 感知器感知器感知器(Perceptron):FRosenblatt于1957年提出。感知器结构示意图*双层(输入层、输出层);*两层单元之间为全互连;*连接权值可调。结构特点:*输出层神经元个数等于类 别数(两类问题时输出层 为一个神经元)。Page 12设输入模式向量,共M类。输出层第j个神经元对应第j个模式类,j:第j个神经元的阈值;wij:输入模式第i个分量与 输出层第j个神经元间的连接权。令 。取 有输出为 输出单元对所有输入数值加权求和,经
7、阈值型输出函数产生一组输出模式。Page 13M类问题判决规则(神经元的输出函数)为*正确判决的关键:输出层每个神经元必须有一组合适的权值。*感知器采用监督学习算法得到权值;*权值更新方法:学习规则。算法描述第一步:设置初始权值wij(1),w(n+1)j(1)为第j个神经元的阈值。第二步:输入新的模式向量。第三步:计算神经元的实际输出。Page 14设第k次输入的模式向量为Xk,与第j个神经元相连的权向量为第j个神经元的实际输出为第四步:修正权值。dj:第j个神经元的期望输出。第五步:转到第二步。当全部学习样本都能正确分类时,学习过程结束。经验证明,当随k的增加而减小时,算法一定收敛。Pag
8、e 151.3.2 BP网络BP网络主要用于1)函数逼近:用输入向量和相应的输出向量训练一个网络逼近一个函数。2)模式识别:用一个特定的输出向量将它与输入向量联系起来。3)分类:把输入向量 以所定义的合适方式进行分类。4)数据压缩:减少输出向量维数以便于传输或存储。目前,在人工神经网络的实际应用中,绝大部分的神经网络模型是采用BP网络和它的变化形式,它也是前馈网络的核心部分,并体现了人工神经网络最精华的部分。Page 16BP网络:采用BP算法(Back-Propagation Training Algorithm)的多层感知器。误差反向传播算法认识最清楚、应用最广泛。性能优势:识别、分类1多
9、层感知器多层感知器 针对感知器学习算法的局限性:模式类必须线性可分。输入层第 一 隐层第 二 隐层输出层中间层为一层或多层处理单元;前馈网络;结构:只允许一层连接权可调。Page 172BP算法算法两个阶段正向传播阶段:逐层状态更新反向传播阶段:误差BP算法的学习过程 设:某层任一神经元j的 输入为netj,输出为yj;相邻低一层中任一 神经元i的输出为yi。jiwij:神经元i与j之间的连接权;f():神经元的输出函数。Page 18S型输出函数:j:神经元阈值;h0:修改输出函数形状的参数。设:输出层中第k个神经元的实际输出为yk,输入为netk;与输出层相邻的隐层中任一神经元j的输出为y
10、j。Page 19 对输入模式Xp,若输出层中第k个神经元的期望输出为dpk,实际输出为ypk。输出层的输出方差:若输入N个模式,网络的系统均方差为:当输入Xp时,wjk的修正增量:其中,由 式得到:Page 20令 ,可得输出单元的误差:输出单元的修正增量:对于与输出层相邻的隐层中的神经元j和该隐层前低一层中的神经元i:输出层中神经元输出的误差反向传播到前面各层,对各层之间的权值进行修正。Page 21BP算法建模步骤:第一步:对权值和神经元阈值初始化:(0,1)上分布的随机数。第二步:输入样本,指定输出层各神经元的希望输出值。第三步:依次计算每层神经元的实际输出,直到输出层。第四步:从输出
11、层开始修正每个权值,直到第一隐层。若j是输出层神经元,则:若j是隐层神经元,则:第五步:转到第二步,循环至权值稳定为止。Page 22改进的权值修正:收敛快、权值平滑变化:平滑因子,01。BP算法存在问题:*存在局部极小值问题;*算法收敛速度慢;*隐层单元数目的选取无一般指导原则;*新加入的学习样本影响已学完样本的学习结果。Page 23Page 24Page 253 3应用之例:蚊子的分类应用之例:蚊子的分类 已知的两类蚊子的数据如表1:n翼长 触角长 类别n1.78 1.14 Apfn1.96 1.18 Apfn1.86 1.20 Apfn1.72 1.24 Afn2.00 1.26 Ap
12、fn2.00 1.28 Apfn1.96 1.30 Apfn1.74 1.36 Af目标值目标值0.90.90.90.10.90.90.90.1 n翼长 触角长 类别n 1.64 1.38 Afn 1.82 1.38 Afn 1.90 1.38 Afn 1.70 1.40 Afn 1.82 1.48 Afn 1.82 1.54 Afn 2.08 1.56 Af目标t0.10.10.10.10.10.10.1 Page 26n输入数据有15个,即,p=1,15;j=1,2;对应15个输出。n建模:(输入层,中间层,输出层,每层的元素应取多少个?)n建立神经网络Page 27n规定目标为:当t(1
13、)=0.9 时表示属于Apf类,t(2)=0.1表示属于Af类。n设两个权重系数矩阵为:为阈值 其中Page 28分析如下:为第一层的输出,同时作为第二层的输入。其中,为阈值,为激励函数若令(作为一固定输入)(阈值作为固定输入神经元相应的权系数)Page 29则有:取激励函数为=则同样,取 Page 30(1)随机给出两个权矩阵的初值;例如用MATLAB软件时可以用以下语句:令p=0具体算法如下:具体算法如下:=rand(2,3);=rand(1,3);(2)根据输入数据利用公式算出网络的输出=Page 31取取(3)计算 因为 所以(4)取(或其他正数,可调整大小)Page 32(5)计算
14、和 j=1,2,3,i=1,2,3,计算 j=1,2,3 j=1,2,3Page 33n(6)p=p+1,转(2)注:仅计算一圈(p=1,2,15)是不够的,直到当各权重变化很小时停止,本例中,共计算了147圈,迭代了2205次。最后结果是:Page 34n即网络模型的解为:=Page 354.BP网络建模特点:非线性映照能力:神经网络能以任意精度逼近任何非线性连续函数。在建模过程中的许多问题正是具有高度的非线性。并行分布处理方式:在神经网络中信息是分布储存和并行处理的,这使它具有很强的容错性和很快的处理速度。自学习和自适应能力:神经网络在训练时,能从输入、输出的数据中提取出规律性的知识,记忆
15、于网络的权值中,并具有泛化能力,即将这组权值应用于一般情形的能力。神经网络的学习也可以在线进行。数据融合的能力:神经网络可以同时处理定量信息和定性信息,因此它可以利用传统的工程技术(数值运算)和人工智能技术(符号处理)。多变量系统:神经网络的输入和输出变量的数目是任意的,对单变量系统与多变量系统提供了一种通用的描述方式,不必考虑各子系统间的解耦问题。Page 362024/5/9 周四375.BP神经网络的设计分析1、产生数据样本集包括原始数据的收集、数据分析、变量选择以及数据的预处理 首先要在大量的原始测量数据中确定出最主要的输入模式。在确定了最重要的输入量后,需进行尺度变换和预处理。尺度变
16、换常常将它们变换到-1,1或0,1的范围。在进行尺度变换前必须先检查是否存在异常点(或称野点),这些点必须删除。通过对数据的预处理分析还可以检验其是否存在周期性、固定变换趋势或其它关系。对数据的预处理就是要使得经变换后的数据对于神经网络更容易学习和训练。Page 372024/5/9 周四38对于一个问题应该选择多少数据,这也是一个很关键的问题。系统的输入输出关系就包含在数据样本中。一般来说,取的数据越多,学习和训练的结果便越能正确反映输入输出关系。但选太多的数据将增加收集、分析数据以及网络训练付出的代价选太少的数据则可能得不到正确的结果。事实上数据的多数取决于许多因素,如网络的大小、网络测试
17、的需要以及输入输出的分布等。其中网络的大小最关键。通常较大的网络需要较多的训练数据。一个经验规则是:训练模式应是连接权总数的5至10倍。Page 382024/5/9 周四39最简单的方法是:将收集到的可用数据随机地分成两部分,比如其中三分之二用于网络的训练。另外三分之一用于将来的测试。随机选取的目的是为了尽量减小这两部分数据的相关性。影响数据大小的另一个因素是输入模式和输出结果的分布,对数据预先加以分类可以减小所需的数据量。相反,数据稀薄不匀甚至覆盖则势必要增加数据量。在神经网络训练完成后,需要有另外的测试数据来对网络加以检验,测试数据应是独立的数据集合。Page 392024/5/9 周四
18、402、确定网络的类型和结构神经网络的类型很多,需根据问题的性质和任务的要求来合适地选择网络类型。一般从已有的网络类型中选用一种比较简单而又能满足要求的网络,新设计一个网络类型来满足问题的要求往往比较困难。若主要用于模式分类,尤其是线性可分的情况,则可采用较为简单的感知器网络。若主要用于函数估计,则可应用BP网络在网络的类型确定后,要是选择网络的结构和参数。以BP网络为例,需选择网络的层数、每层的节点数、初始权值、阈值、学习算法、数值修改频度、结点变换函数及参数、学习率等参数。Page 402024/5/9 周四41对于网络层数的选取:理论上早已证明:具有偏差和至少一个S型隐含层加上一个线性输
19、出层的网络,能够逼近任何有理函数。增加层数主要可以更进一步降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间。而误差精度的提高实际上也可以通过增加隐含层中的神经元数目来获得,其训练效果也比增加层数更容易观察和调整,所以,一般情况下,应优先考虑增加隐含层中的神经元数。Page 412024/5/9 周四42对于具体问题若确定了输入和输出变量后,网络输入层和输出层的节点个数也便随之确定了。具体选择可采用如下方法:先设较少的节点,对网络进行训练,并测试网络的逼近误差,然后逐渐增加节点数,直到测试的误差不再有明显的减少为止。隐层节点数对网络的泛化能力有很大的影响。节点数太多,倾向于
20、记住所有的训练数据,包括噪声的影响,反而降低了泛化能力;节点数太少,不能拟和样本数据,没有较好的泛化能力。原则:选择尽量少的节点数以实现尽量好的泛化能力。对于每层节点数的选取:Page 422024/5/9 周四43由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛以及训练时间的长短关系很大。初始权值的选取:如果初始值太大,使得加权后的输入落到激活函数的饱和区,从而导致其导数非常小,而在计算权值的修正公式中,修正量正比与其导数,从而使调节过程几乎停顿下来。一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在他们的S型激活函数变化最大之处进
21、行调节,所以,一般取初始权值在(-1,1)之间的随机数。Page 432024/5/9 周四44学习速率的选取:学习速率决定每一次循环训练中所产生的权值变化量。大的学习速率可能导致系统的不稳定小的学习速率会导致训练较长,收敛速度很慢。不过能保证网络的误差值不跳出表面的低谷而最终趋于最小误差值。一般情况下,倾向于选取较小的学习速率以保证系统的稳定性。学习速率一般的选取范围为0.010.8。和初始权值的选取过程一样,在一个神经网络的设计中,网络要经过几个不同的学习速率的训练。通过观察每一次训练后的误差平方和的下降速率来判断选定的学习速率是否合适。如果下降很快,说明学习速率合适。若出现振荡,则说明学
22、习速率过大。对于较复杂的网络,为了减小寻找学习速率的训练次数以及训练时间,比较合适的方法是采用自适应学习速率。Page 442024/5/9 周四453、训练和测试对所有样本数据正向运行一次并反向修改连接权一次称为一次训练(或一次学习)。通常训练一个网络需要成百上千次。并非训练的次数越多,越能得到正确的输入输出的映射关系。由于所收集的数据都是包含噪声的,训练的次数过多,网络将包含噪声的数据都记录了下来,在极端情况下,训练后的网络可以实现相当于查表的功能。但是对于新的输入数据却不能给出合适的输出,即并不具备很好的泛化能力。训练网络的目的在于找出蕴含在样本数据中的输入和输出之间的本质联系,从而对于
23、未经训练的输入也能给出合适的输出,即局部泛化能力。网络的性能主要是用它的泛化能力来衡量,它不是用对训练数据的拟和程度来衡量,而是用一组独立的数据来加以测试和检验。Page 452024/5/9 周四46训练次数均方误差训练数据测试数据实际操作时应该训练和测试交替进行,即每训练一次,同时用测试数据测试一遍,画出均方误差随训练次数的变换曲线在用测试数据检验时,均方误差开始逐渐减小,当训练次数再增加时,测试检验误差反而增加,误差曲线上极小点所对应的即为恰当的训练次数,若再训练即为“过渡训练”了。Page 466.MATLAB神经网络工具箱的应用 在网络训练过程中使用的是Matlab 7.0 for
24、Windows软件,对于BP神经元网络的训练可以使用Neural Networks Toolbox for Matlab。美国的Mathwork公司推出的MATLAB软件包既是一种非常实用有效的科研编程软件环境,又是一种进行科学和工程计算的交互式程序。MATLAB本身带有神经网络工具箱,可以大大方便权值训练,减少训练程序工作量,有效的提高工作效率.Page 477.BP网络应用实例应用实例银行数据如表1所示,要求根据存款金额、及时还贷情况、贷款次数,将这些记录按信用分为“良好”和“差”两类。步骤步骤1:预处理:预处理 在开始训练之前,先将各样本的每一属性值都限定在0,1上,并将信用类别重新编码
25、,用0表示“良好”,用1表示“差”规范化后的数据如表2所示。48Page 48步骤步骤2:设计网络结构:设计网络结构根据分析,该例的网络结构如图1所示。步骤步骤3:初始化该网络的权值和偏差:初始化该网络的权值和偏差网络的初始权值和偏差一般是用随机函数生成的介于-1,1的小数,该例的初始权值和偏差如表3所示49Page 49步骤步骤4:进行训练:进行训练将学习效率(学习因子)设为0.7依次将表2中的样本输入网络,计算出个神经元的输入、输出和误差计算反向传播所得误差,更新权值和偏差,所有样本输入完毕后,判断是否满足终止条件,不满足则进行下一轮迭代,满足则迭代结束。第1次扫描迭代中,计算出各神经元的
26、净输入、输出、误差、权值和偏差更新值如表4所示。步骤步骤5:实现分类:实现分类通过上述训练后,该BP网络可提取关于输入(存款金额、贷款次数、及时还贷率)和输出类(信用等级)的关联规则。利用这些规则即可实现对现有客户信用等级的分类,并据此做出客户贷款偿付预测,进行客户信用政策分析。50Page 5051Page 51结束结束Page 52 例:BP神经网络水(处理)系统的模拟与预测等方面获得了广泛的应用。光催化臭氧氧化处理自来水工艺神经网络模型应用举例Page 53 样本Page 54检验样本Page 55隐层神经元数的选择 隐层神经元数的选择是一个十分复杂的问题。因为没有很好的解析式表示,可以
27、说隐层神经元数与问题的要求、输入层与输出层神经元的数量、训练样本的数量等都有直接关系。事实上隐层神经元太少不可能将网络训练出来,但太多又使学习时间过长,使网络不“不强壮”,泛化能力下降,即不能识别以前没有直接接收到的样本,容错性差。当隐层数为2010和84时的训练结果:隐层数为2节点数84 隐层数为2节点数2010 图6-2 相同隐层数不同节点数训练误差曲线Page 56 神经网络模型的各层节点数分别为:输入层2个;第一隐层12个;第二隐层6个;输出层1个。综合以上研究内容,建立光催化臭氧氧化处理自来水工艺神经网络模型如图6-3所示。输入层输出层隐层图6-3 BP网络模型臭氧浓度入口UV254
28、UV254去除率Page 571学习率和动量因子 BP算法本质上是优化计算中的梯度下降法,利用误差对于权、阀值的一阶导数信息来指导下一步的权值调整方向,以求最终得到误差最小。为了保证算法的收敛性,学习率必须小于某一上限,一般取01而且越接近极小值,由于梯度变化值逐渐趋于零,算法的收敛就越来越慢。在网络参数中,学习率和动量因子是很重要的,它们的取值直接影响到网络的性能,主要是收敛速度。为提高学习速度,应采用大的。但太大却可能导致在稳定点附近振荡,乃至不收敛。针对具体的网络结构模型和学习样本,都存在一个最佳的学习率门和动量因子,它们的取值范围一般01之间,视实际情况而定。在上述范围内通过对不同的和
29、的取值进行了考察,确定本文神经网络模型的参数为:0.7,0.9。Page 582初始权值的选择 在前馈多层神经网络的BP算法中,初始权、阈值一般是在一个固定范围内按均匀分布随机产生的。一般文献认为初始权值范围为-11之间,初始权值的选择对于局部极小点的防止和网络收敛速度的提高均有一定程度的影响,如果初始权值范围选择不当,学习过程一开始就可能进入“假饱和”现象,甚至进入局部极小点,网络根本不收敛。初始权、阈值的选择因具体的网络结构模式和训练样本不同而有所差别,一般应视实际情况而定。本文考察了不同初始权、阈值的赋值范围对网络收敛速度的影响,确定本文神经网络模型的初始权和阈值的随机赋值范围为0.5+
30、0.5。Page 593收敛误差界值Emin 在网络训练过程中应根据实际情况预先确定误差界值。误差界值的选择完全根据网络模型的收敛速度大小和具体样本的学习精度来确定。当Emin 值选择较小时,学习效果好,但收敛速度慢,训练次数增加。如果Emin值取得较大时则相反。本文神经网络的误差界值Emin为0.0001,即在迭代计算时误差值E Emin0.0001时,则认为学习完成,停止计算,输出结果。Page 604.输入数据的预处理 在BP算法中,神经元具有饱和非线性特征(如果神经元的总输入与阈值相距甚远,神经元的实际输出要么为最大值、要么为最小值)。第一隐层中的神经元通常采用饱和非线性作用函数,学习
31、过程中会出现饱和现象,因此要防止此层神经元进入饱和,必须限制网络输入的幅值。本文使用的标准化方法如下:式中,P为输入量,T为输出量,P/和T/为经过归一化处理后的实验数据。Page 61进水进水UV254值值臭臭氧氧浓浓度度,mg/LUV254去除率,去除率,BP网络训练误差曲线和网络模型网络训练误差曲线和网络模型Page 62实验号实验号 臭氧臭氧(mg/L(mg/L)UVUV254254去除率去除率(%)(%)相对误差相对误差(%)实测值实测值网络预测值网络预测值1 11.421.4258.158.157.357.3-1.471.472 22.512.5178.878.877.777.7-
32、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模型预测结果与实测值比较模型预测结果与实测值比较Page 63 O O3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.116=0.116UVUV254254=0.105=0.105 O O3 3 浓度,浓度,mg/Lmg/L UVUV254254=0.092=0.092 O O3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.076=0.076 O O3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.083=0.083 O O3 3 浓度,浓度,mg/Lmg/LUVUV254254=0.128=0.128 O O3 3 浓度,浓度,mg/Lmg/L UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,UV254去除率,去除率,利用利用BP网络对网络对O3浓度的优化浓度的优化Page 64结束结束Page 65此课件下载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!66