资源预览内容
第1页 / 共62页
第2页 / 共62页
第3页 / 共62页
第4页 / 共62页
第5页 / 共62页
第6页 / 共62页
第7页 / 共62页
第8页 / 共62页
第9页 / 共62页
第10页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数学建模讲座数学建模讲座人工神经网络建模方法人工神经网络建模方法唐志刚EML: 4301412qq.com一.什么是人工神经网络人工神经网络(ANN)具有自学习、自组织、较好的容错性和优良的非线性逼近能力。在实际应用中,80%90%的人工神经网络模型是采用误差反传算法或其变化形式的网络模型。二.ANN能干什么?拟合拟合 预测预测分类分类 聚类分析聚类分析(函数逼近函数逼近)数学近似映射数学近似映射三.神经网络模型和网络结构神经元模型连接方式学习方式网络结构四、建立和应用神经网络的步骤 (1)网络结构的确定)网络结构的确定包含网络的拓扑结构和每个神经元相应函数的选取;(2)权值和阈值的确定)权值和阈值的确定通过学习得到,为有指导的学习,也就是利用已知的一组正确的输入、输出数据,调整权和阈值使得网络输出与理想输出偏差尽量小;(3)工作阶段)工作阶段用带有确定权重和阈值的神经网络解决实际问题的过程,也叫模拟(simulate)。 神经元大脑可视作为1000多亿神经元组成的神经网络 图1 神经元的解剖图神经元神经元模型 图中,xi(i1,2,n)为加于输入端(突触)上的输入信号;i为相应的突触连接权系数,它是模拟突触传递强度的个比例系数, 表示突触后信号的空间累加;表示神经元的阈值,表示神经元的激励函数。该模型的数学表达式为:其中x(x1,xm)T 输入向量,y为输出,wi是权系数;输入与输出具有如下关系:为阈值,f(X)是激励函数;它可以是线性函数,也可以是非线性函数 例如,若记 取激发函数为符号函数 则 S型激发函数: 根据激励函数的不同,人工神经元有以下几根据激励函数的不同,人工神经元有以下几种类型:种类型:人工神经网络连接的基本形式: (1)前向网络 网络的结构如图所示。网络中的神经元是分层排列的,每个神经元只与前一层的神经元相连接。最右一层为输出层,隐含层的层数可以是一层或多层。前向网络在神经网络中应用很广泛,例如,感知器就属于这种类型。神经网络的学习方式有教师学习(监督学习)无教师学习(无监督学习)人工神经元模型结构由此构成人工神经元的一般模型,如下图所示。上式可写成矩阵向量形式:上式可写成矩阵向量形式:a=f(Wp+b)单隐层网络结构多层网络结构四.BP网络1、BP网络建模方法和步骤网络建模方法和步骤2、BP网络程序实现网络程序实现BP网络是采用误差反向传播学习算法的一种多层前向网络。如图BP算法原理具体内容不讲,感兴趣的同学可以查阅神经网络设计假设有P个训练样本,即有P个输入输出对(Ip, Tp),p=1,P, 其中 输入向量为 : 目标输出向量为(实际上的): 网络输出向量为 (理论上的) (p=1,P) (2) 记wij为从输入向量的第j (j=1,m) 个分量到输出向量的第i (i=1,n)个分量的权重。通常理论值与实际值有一误差,网络学习则是指不断地把与比较,并根据极小原则修改参数wij,使误差平方和达最小:记Delta学习规则: (4) (3) 表示递推一次的修改量,则有称为学习的速率 ipm= -1 , wim= (第i个神经元的阈值) (5)注:由(1) 式,第i个神经元的输出可表示为特别当f是线性函数时 (6)1、BP网络建模方法和步骤网络建模方法和步骤BP网络建模特点:网络建模特点:非线性映照能力并行分布处理方式自学习和自适应能力数据融合的能力多变量系统1)原始数据的输入;)原始数据的输入;2)数据归一化;数据归一化;3)网络建立以及训练;)网络建立以及训练;4)对原始数据进行仿真;)对原始数据进行仿真;5)将原始数据仿真的结果与已知样本进行对)将原始数据仿真的结果与已知样本进行对比;比;6)对新数据进行仿真。)对新数据进行仿真。1.样本数据处理样本数据处理(1)样本分类:训练样本、检验样本、测试样本)样本分类:训练样本、检验样本、测试样本(2)预处理)预处理归一化归一化方法:标准化、极差变换等方法:标准化、极差变换等原则:原则:有效避开有效避开Sigmoid函数的饱和区,一般要求输入数据函数的饱和区,一般要求输入数据的值在的值在01之间(之间(0.20.8最好)最好)注意:预处理的数据训练完成后,网络输出的结果要进行反注意:预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。变换才能得到实际值。2.建立建立BP网络网络(1)确定输入和输出)确定输入和输出(2)确定网络结构(几个隐层?隐层神经元个数多)确定网络结构(几个隐层?隐层神经元个数多少?)少?)为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。3.设置网络参数设置网络参数1)设置设置初始连接权值初始连接权值 BP算法决定了误差函数一般存在多个局部极小点,算法决定了误差函数一般存在多个局部极小点,不同的网络初始权值直接决定了不同的网络初始权值直接决定了BP算法收敛于哪算法收敛于哪个局部极小点或是全局极小点。因此,要求计算个局部极小点或是全局极小点。因此,要求计算程序必须能够自由改变网络初始连接权值程序必须能够自由改变网络初始连接权值.由于由于Sigmoid转换函数的特性,一般要求初始权转换函数的特性,一般要求初始权值分布在值分布在-0.50.5之间比较有效之间比较有效.2)设置设置BP(改进)算法的参数(改进)算法的参数应用最广的带动量的梯度下降法或是LM算法为避免陷入局部极小值,学习率和动量系数的选择一般要求:学习率通常在0.010.8之间;动量系数通常在01之间,而且一般比学习率要大。4.网络训练网络训练目的是什么?怎么实现的?目的是什么?怎么实现的?BP网络的训练就是通过应用误差反传原理不断调整网络权值使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值。BP算法是局部优化算法,容易陷入局部极小点,找不到最优值。(梯度下降法等)在给定有限个(训练)样本的情况下,如何设计一个合理的BP网络模型并通过向所给的有限个样本的学习(训练)来满意地逼近样本所蕴含的规律(函数关系)的问题,经验很重要“艺术创造的过程”5.仿真并分析网络模型的泛化能力仿真并分析网络模型的泛化能力 训练神经网络的首要和根本任务是确保训练好的网络模型对非训练样本具有好的泛化能力(推广性),即有效逼近样本蕴含的内在规律,而不是看网络模型对训练样本的拟合能力。 因此,仅给出训练样本误差大小而不给出非训练样本(检验样本、测试样本)误差大小是没有任何意义的。 要分析建立的网络模型对样本所蕴含的规律的逼近情况泛化能力,应该用非训练样本误差的大小来表示和评价,这也是之所以必须将总样本分成训练样本和非训练样本而绝不能将全部样本用于网络训练的主要原因之一。如何判断建立的模型能否有效逼近训练样本所蕴含的规律?最直接和客观的方法是比较非训练样本误差和训练样本误差。(1)差不多或稍小, 能有效逼近。 (2) 相差很多(如几倍、几十倍甚至上千倍) 不能有效逼近。判断网络模型泛化能力的好坏,主要不判断网络模型泛化能力的好坏,主要不是看测试样本误差大小的本身,而是要看是看测试样本误差大小的本身,而是要看测试样本的误差是否接近于训练样本和检测试样本的误差是否接近于训练样本和检验样本的误差。验样本的误差。测试样本的误差可以表示网络模型的计测试样本的误差可以表示网络模型的计算精度或是预测精度算精度或是预测精度(可用于稳定性分析)(可用于稳定性分析)6应用网络模型解决实际问题应用网络模型解决实际问题实现预测或是分类 通过仿真和数学预处理的逆变换实现2、程序实现、程序实现MATLAB神经网络工具箱的应用神经网络工具箱的应用(Neural Networks Toolbox for Matlab)BP网络函数网络函数数据归一化mapminmax;mapstd创建BP网络newff初始化init仿真 sim;训练算法trainlm(速度快,需存储空间大)学习规则learngdm网络训练train例:例:BP算法实现的简单例子(采用算法实现的简单例子(采用LM算法训练)算法训练)% 定义训练样本定义训练样本 P=-1, -2, 3, 1; -1, 1, 5, -3; % P 为输入矢量为输入矢量 T=-1, -1, 1, 1; % T 为输出(目标)矢量为输出(目标)矢量 % 定义检验样本定义检验样本Pn=1 2;4 3;%输入输入Tn=-1 1;%输出输出% 创建一个新的前向神经网络创建一个新的前向神经网络 net=newff(minmax(P),3,1,tansig,purelin,trainlm);% 设置训练参数设置训练参数 net.trainParam.show = 50; net.trainParam.lr = 0.05; net.trainParam.mc = 0.9; net.trainParam.epochs = 100; net.trainParam.goal = 0.1;% 调用调用 TRAINLM 算法训练算法训练 BP 网络网络 net,tr=train(net,P,T); % 仿真仿真,分析网络的性能(逼近能力)分析网络的性能(逼近能力)A = sim(net,P); % 计算仿真误差计算仿真误差 (训练样本的训练样本的)E = T - A ;MSE = mse(E); %训练样本的误差训练样本的误差 An=sim(net,Pn); %对检验样本仿真对检验样本仿真En = Tn - An;MSEn = mse(En); %检验样本的误差检验样本的误差err=MSE MSEn%对比训练样本的误差和检验样对比训练样本的误差和检验样本的误差本的误差% 显示网络的权值和阈值显示网络的权值和阈值 inputWeights=net.IW1,1 ; % 当前输入层权值当前输入层权值inputbias=net.b1 ; % 当前输入层阈值当前输入层阈值 layerWeights=net.LW2,1; % 当前隐含层权值当前隐含层权值 layerbias=net.b2 % 当前隐含层阈值当前隐含层阈值% 图形可视化显示结果图形可视化显示结果X=1 2 3 4 5 6;T=T Tn;A=A Tn-En;plot(X,T,r-,X,A,b-o); 结果(1) err=MSE MSEn= 0.0002 0.0576inputWeights = -0.1900 -1.2924 -1.7664 0.5561 0.8433 -1.0786inputbias = 2.9940 0.3951 2.6200layerWeights = 0.0188 -1.0473 -0.0728layerbias =0.0112结果(2) err=MSE MSEn= 0.0304 2.0068inputWeights = -0.5619 1.5524 -0.4331 -1.1875 -0.4367 -0.0635inputbias = 1.6300 1.0987 -2.7565layerWeights =-0.9905 -1.1043 -0.8624layerbias = 0.0296利用利用BP网络预测公路运量问题网络预测公路运量问题1.问题的描述问题的描述 公路运量主要包括公路的公路运量主要包括公路的客运量客运量和公路和公路货货运量运量两个方面。据研究,某地区的公路运两个方面。据研究,某地区的公路运量主要与量主要与该地区的人数该地区的人数、机动车数量和公机动车数量和公路面积路面积有关,表有关,表1给出了给出了20年得公路运量相年得公路运量相关数据,表中单位分别为万人关数据,表中单位分别为万人/万辆万辆/万平方万平方千米千米/万吨万吨/万人。万人。根据有关部门数据,该地区根据有关部门数据,该地区2010年和年和2011年的人年的人数分别为数分别为73.39和和75.55万人,机动车数量分别为万人,机动车数量分别为3.9635和和4.0975万辆,公路面积将分别为万辆,公路面积将分别为0.9880和和1.0268万平方米。万平方米。请利用请利用BP神经网络预测该地区神经网络预测该地区2010年年2011年得年得公路客运量和公路货运量。公路客运量和公路货运量。 某地区某地区20年公路运量数据年公路运量数据 年份 人口数量 机动车数量 公路面积 公路客运量 公路货运量1990 20.55 0.6 0.09 5126 12371991 22.44 0.75 0.11 6217 13791992 25.37 0.85 0.11 7730 13851993 27.13 0.90 0.14 9145 13991994 29.45 1.05 0.20 10460 16631995 30.1 1.35 0.23 11387 17141996 30.96 1.45 0.23 12353 1834 1997 34.06 1.60 0.32 15750 43221998 36.42 1.70 0.32 18304 81321999 38.09 1.85 0.34 19836 89362000 39.13 2.15 0.36 21024 11099年份 人口数量 机动车数量 公路面积 公路客运量 公路货运量2001 39.99 2.20 0.36 19490 112032002 41.93 2.25 0.38 20433 105242003 44.59 2.35 0.49 22598 111152004 47.30 2.50 0.56 25107 133202005 52.89 2.60 0.59 33442 167622006 55.73 2.70 0.59 36836 186732007 56.76 2.85 0.67 40548 207242008 59.17 2.95 0.69 42927 208032009 60.63 3.10 0.79 43462 218042.BP网络求解过程网络求解过程为了了解利用为了了解利用BP网络求解问题的过程,可网络求解问题的过程,可把问题分为成以下步骤:把问题分为成以下步骤:1)原始数据的输)原始数据的输入;入;2)数据归一化;数据归一化;3)网络建立以及训练;)网络建立以及训练;4)对原始数据进行仿真;)对原始数据进行仿真;5)将原始数据)将原始数据仿真的结果与已知样本进行对比;仿真的结果与已知样本进行对比;6)对新)对新数据进行仿真。数据进行仿真。在进行归一化处理时和把仿真的到的数据在进行归一化处理时和把仿真的到的数据还原为原始数据的数量级时,在下面的程还原为原始数据的数量级时,在下面的程序中,都是利用系统函数进行的。序中,都是利用系统函数进行的。下面是每个程序块的具体程序,并在程序下面是每个程序块的具体程序,并在程序中添加注释中添加注释(1)原始数据的输入,具体程序为:sqrts=20.55 22.44 25.37 27.13 29.45 30.10 30.96 34.06 36.42 38.09 39.13 39.99 41.93 44.59 47.30 52.89 55.73 56.76 59.17 60.63;%人数(单位:万人)sqjdcs=0.6 0.75 0.85 0.91 1.05 1.35 1.45 1.6 1.7 1.85 2.15 2.2 2.25 2.35 2.5 2.6 2.7 2.85 2.95 3.1;%机动车数(单位:万辆)sqglmj=0.09 0.11 0.11 0.14 0.20 0.23 0.23 0.32 0.32 0.34 0.36 0.36 0.38 0.49 0.56 0.59 0.59 0.67 0.69 0.79;%公路面积glkyl=5126 6217 7730 9145 10460 11387 12353 15750 18304 19836 21024 19490 20433 22598 25107 33442 36836 40548 42927 43462%公路客运量glhyl=1237 1379 1385 1399 1663 1714 1834 4322 8132 8936 11099 11203 10524 11115 13320 16762 18673 20724 20803 21804;%公路货运量p=sqrts;sqjdcs;sqglmj;%输入数据矩阵t=glkyl;glhyl;%目标数据矩阵(2)对输入数据矩阵和目标矩阵的数据进行归一化处理,具体程序如下为%利用函数premnmx对数据进行归一化处理pn,minp,maxp,tn,mint,maxt=premnmx(p,t);%对输入矩阵p和t进行归一化处理dx=-1 1;-1 1;-1 1;%归一化处理后最小值为-1 ,最大值为1(3)利用处理好的数据对网络进行训练,具体程序%BP网络训练net=newff(dx,3,7 2,tansig,tansig,purelin,traindx);net.trainParam.show=1000;net.trainParam.lr=0.05;net.trainParam.goal=0.65*103;net.trainParam.epochs=50000;net,tr=train(net,pn,tn);(4)利用训练好的BP网络对原始数据进行仿真,具体程序如下:an=sim(net,pn);a=postmnmax(an,mint,maxt)%把仿真得到的数据还原为原始的数量级(5)用原始数据仿真的结果与已知数据进行对比用原始数据仿真的结果与已知数据进行对比x=1990:2009;newk=a(1,:);newh=a(2,:);figure(2);subplot(2,1,1);plot(x,neewk,r-o,xglkyl,b-+);legendxlabeltitlesubplot(2,1,2);plot(x,newh,r-o,x,glhyl,b-+);(6)利用训练好的利用训练好的BP网络对新数据进行仿真,具体程序如下:网络对新数据进行仿真,具体程序如下:pnew=73.79 75.55 3.9635 4.0975 0.9880 1.0268;pnewn=tramnmx(pnew,minp,maxp);anewn=sim(net,pnewn);anew=postmnmx(anewn,mint,maxt)此问题也可以自己编程序实现此问题也可以自己编程序实现BP神经网络预测公路运量神经网络预测公路运量 一般而言一般而言, ANN与经典计算方法相比并非优越与经典计算方法相比并非优越, 只只有当常规方法解决不了或效果不佳时有当常规方法解决不了或效果不佳时ANN方法才能显方法才能显示出其优越性。尤其对问题的机理不甚了解或不能用示出其优越性。尤其对问题的机理不甚了解或不能用数学模型表示的系统数学模型表示的系统,如故障诊断、特征提取和预测等如故障诊断、特征提取和预测等问题问题,ANN往往是最有利的工具。另一方面往往是最有利的工具。另一方面, ANN对处对处理大量原始数据而不能用规则或公式描述的问题理大量原始数据而不能用规则或公式描述的问题, 表表现出极大的灵活性和自适应性。现出极大的灵活性和自适应性。1981年生物学家格若根(W Grogan)和维什(WWirth)发现了两类蚊子(或飞蠓midges)他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:翼长 触角长 类别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 Af翼长 触角长 类别 1.64 1.38 Af 1.82 1.38 Af 1.90 1.38 Af 1.70 1.40 Af 1.82 1.48 Af 1.82 1.54 Af 2.08 1.56 Af问:如果抓到三只新的蚊子,它们的触角长和翼长分别为(l.24,1.80); (l.28,1.84);(1.40,2.04)问它们应分别属于哪一个种类?
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号