【文档说明】神经网络算法课件.ppt,共(45)页,2.580 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-244301.html
以下为本文档部分文字说明:
.1数学建模与数学实验神经网络.2目的内容学习神经网络的基本原理与方法。1、人工神经元数学模型4、BP神经网络应用3、BP神经网络Matlab工具箱函数2、BP神经网络.3神经网络(NeuralNetworks
)是从微观结构与功能上对人脑神经系统进行模拟而建立起来的数学模型,它具有模拟人脑思维的能力,其特点主要是具有非线性特性、学习能力和自适应性等,是模拟人类智能的一种重要方法。神经网络是由神经元互联而成的,能接收
并处理信息,而这种信息处理主要是由神经元之间的相互作用,即通过神经元之间的连接权值来处理并实现的。神经网络在人工智能、自动控制、计算机科学、信息处理和模式识别等领域得到了非常成功地应用。.4一、人工神经元数学模型生物神经元,也称神经细胞,它是由细胞体、树突、轴突和突触等生
物组织构成的,并通过细胞膜电位来实现生物神经元的兴奋与抑制、学习与联想等基本功能,因此,它是构成人脑神经系统的基本功能单元。其结构如下图所示。.5根据生物神经元的结构与基本功能,可以将其简化为下图的形式,并建立神经网
络模型的基础——人工神经元数学模型:1()njijijiyfwxa==−其中,jy表示神经元j的输出;ix表示神经元i的输入;ijw表示神经元i与神经元j之间的连接权值;ja表示神经元j的阈值;()f•是输入到输出传递函数(也称激活函数)..6下表给出了一些常用的传递函数。除线性传递函数外
,其它的均是非线性的,因此,神经网络特别适合于解决非线性问题。神经网络传递函数名称传递函数表达式二值函数10()00xfxx=线性函数()fxax=分段线性函数00()01ccxfxcxxxxx=非对称Sig
moid函数1()1xfxe−=+非对称Sigmoid函数1()1xxefxe−−−=+.7222211,01,01()()0,01,02()tanh(),03()10,014()exp()2xxxxn
jjiiixxfxfxxxeefxxeexxsigmoidfxxxfxxx−−===−−==+=+=−−、阶跃函数:,或符号函数、双曲正切函数:、函数(S型):、高斯函数:.8BP神经网络
的拓扑结构如图所示。1.BP神经网络结构:.9其中,(1,,)=ixin是神经网络的(实际)输入,(1,,)=jyjm是隐含层的输出,即为输出层的输入,(1,,)=kOkl网络的(实际)输出,,ab分别
为隐含层和输出层神经元(节点)的阈值,,ijjkvw分别为输入层到隐含层和隐含层到输出层的权值。也就是说,图中所表示的BP神经网络,它的输入层神经元(节点)个数为n,隐含层神经元(节点)个数为m,输出层神经元(节点)个数为l,这种结构称为nml−−结构的三层BP神经网络。
.10步骤1:网络初始化。根据输入12(,,,)nXxxx=和期望输出12(,,,)lDddd=来确定网络输入层、隐含层和输出层神经元(节点)个数,初始化各层神经元之间的连接权值ijv,jkw,初始化隐含层阈值a,输出层阈值b,给定学习速率和神
经元传递函数.步骤2:隐含层输出计算。根据输入向量X,输入层和隐含层间连接权值ijv以及隐含层阈值a,计算隐含层输出.10()()1,2,,===−==nniijijijijjyfvxafvxim式中,m为隐含层节点数;001,=−=ijvxa;()•f为隐含层传递函数。这里我们
采用传递函数为1()1−=+xfxe.2.BP神经网络学习算法及流程以三层BP神经网络为例,它的训练过程包括以下几个步骤:.11步骤3:输出层输出计算。根据隐含层输出Y,连接权值jkw和阈值b,计算BP神经网络的实际输
出O.10()()1,2,,===−==mmkjkjkjkjjjOfwxbfwxkl步骤4:误差计算。根据网络实际输出与期望输出,计算网络总体误差..12步骤5:权值更新。根据网络总体误差E,按照以下公式更新网络连接权值ijv,jkw.=+ijij
ijvvv=+jkjkjkwww1()(1)loijkjkjjikvwyyx==−ojkkjwy=其中()(1)=−−okkkkkdooo,式中为学习速率。步骤6:判断算法迭代是否结束(可用网
络总误差是否达到精度要求等方式来判断),若没有结束,返回步骤2..13BP神经网络的流程图:.14三、BP神经网络Matlab工具箱函数主要介绍BP神经网络用到newff、train和sim等3个主要函数,各函数解释如下:(1)newff——BP神经网络参数设置函数函数功能:构建一个
BP神经网络.函数形式:NET=newff(PR,[S1,S2,…,SN],{TF1,TF2,…,TFN},BTF,BLF,PF)PR:为样本数据组成的矩阵,由其中最大值和最小值组成的R×2维的矩阵;Si:第i层的节点数,共计N层;TFi:第i层节点的传递函数,包括线性传递函数pu
relin;正切S型传递函数tansig;对数S型传递函数logsig。默认为“tansig”;.15BTF:训练函数,用于网络权值和阈值的调整,默认基于Levenberg_Marquardt共轭梯度法的训练函数trainlm。其它参数见后面表格。BLF:网络的学习函数,包含BP学习规则learn
gd;带动量项的BP学习规则learngdm。默认为“learngdm”;PF:网络的性能分析函数,包括均值绝对误差性能分析函数mae;均方性能分析函数mse。默认为“mse”。一般在使用过程中设置前面4个参数,后面2个参数采用系统默认参数。net=newff(PR,[S1,S2,…,SN],{
TF1,TF2,…,TFN},BTF,BLF,PF).16神经网络训练函数训练函数的意义Matlab中的函数梯度下降法traingd动量反传的梯度下降法traingdm动态自适应学习率(lr)的梯度下降法traingda带动量动态
自适应学习率(lr)的梯度下降法traingdx弹性梯度下降法trainrp量化共轭梯度法traincgLevenberg_Marquardt法trainlmFletcgera-Reeves共轭梯度法traingfPolak-Ribiere共轭梯度法traingpPowell-Be
ale共轭梯度法traingb.17(2)train——BP神经网络训练函数函数功能:用训练函数训练BP神经网络。函数形式:[net,tr]=train(NET,P,T)NET:待训练网络,即newff所创建
的初始网络;P:输入数据矩阵;T:期望输出数据矩阵;net:训练好的网络;tr:训练过程记录。另外,在对BP神经网络训练时,需要设置某些训练参数,见下表..18BP神经网络训练函数训练参数名称及默认值属性net.trainParam.c
pochs=100最大训练次数,人工设定时不能超过100net.trainParam.goal=0训练目标net.trainParam.show=25两次显示之间的训练次数(无显示时取NAN)net.trainParam.time=inf最大训练时间(秒)net.trainParam.max
_fail=5确认失败的最大次数net.trainParam.min_grad=1e-6最小性能梯度net.trainParam.lr=0.2学习速率.19(3)sim——BP神经网络预测/仿真函数函数
功能:用训练好的BP神经网络预测/仿真函数输出.函数形式:Y=sim(net,x)net:训练好的BP神经网络;x:输入数据;Y:网络预测/仿真数据,即网络预测输出..20例1BP神经网络的一个重要功能就是非线性映射,这一功能非常适
合于函数逼近等,简单来讲就是找出两组数据之间的关系。假设已知输入向量P和目标向量T,建立一个BP网络,找出P和T之间的关系。解:假设输入向量P、目标向量T分别为:>>P=-1:0.1:1;>>T=[-0.96-0.577-0.07290.3770.6410.660.4610.1336-0
.201-0.434-0.5-0.393-0.16470.09880.30720.3960.34490.1816-0.0312-0.2183-0.3201];首先,利用newff创建一个BP神经网络,代码为:>>net=newff([-1,1],[5,1],{'tansig','pu
relin'});其中,[-1,1]表示输入向量P的最小值和最大值,可以用minmax(P)代替。[5,1]表示网络的隐含层有5个神经元,输出层1个神经元,.21也就是说,该BP神经网络为1-5-1结构的神经网络.
{'tansig','purelin'}表示网络隐含层的传递函数为tansig,输出层的传递函数为purelin.由于没有特别设定训练函数,因此训练函数取默认值trainlm.其次,设置训练参数并对网络进行训练。代码为:>>net.trainParam.epochs=200;%最大训练
次数>>net.trainParam.goal=0;%训练目标>>net.trainParam.show=50;%两次显示之间的训练次数>>net=train(net,P,T);%网络训练函数,train中的net为创建的初始网络最后,对训练好的训练进行仿真,得到网络
输出结果Y,并作图.代码为:>>Y=sim(net,P);.22网络经过177次训练后,虽然网络的性能还没有达到0,但是输出的均方误差已经很小了,MSE=2.95307e-006,误差曲线如图1所示。
为更直观地理解网络输出与目标向量之间的关系,见图2所示。>>plot(P,T,'-',P,Y,'o')图1BP神经网络训练误差曲线图图2训练后BP神经网络仿真图ToMatlabexp12_4_1.m.23例2货运量预测问题请根据中国统计年鉴1990-201
1年的各项数据,以国民生产总值、能源生产总值、进出口贸易额、社会消费品零售总额以及固定资产投资总额等5个指标作为主要因素,并利用BP神经网络预测货运总量。1990-2011年的货运总量及主要因素部分数据年份货运总量(万吨)国民生产总值(亿元)能源生产总值(万吨)进出口贸易额(
亿元)社会消费品零售总额固定资产投资总额199097060218718.31039225560.18300.16955.81199198579321826.21048447225.89415.69810.419921
04589926937.31072569119.610993.712443.1219931115902352601110591127114270.414410.221994118039648108.51
1872920381.918622.917042.941995123493859810.512903423499.923613.820019.31996129842170142.513303224133.828360.222974.241990-2011年的货运总量
及主要因素部分数据年份货运总量(万吨)国民生产总值(亿元)能源生产总值(万吨)进出口贸易额(亿元)社会消费品零售总额固定资产投资总额1997127821878060.913346026967.231252.924941.11998126742783024.312983426
849.733378.128406.21999129300888479.213193529896.235647.929854.72000135868298000.513504839273.239105.732917.720011401786108068.214387542183.6
43055.437213.520021483447119095.715065651378.248135.943499.92003156449213497717190670483.552516.355566.620041706412159453.619664895539
.15950170477.4320051862066183617.4216219116921.867176.688773.6120062037060215904.423216714097476410109998.1620072
275822266422247279166863.789210137323.9420082585937316030.3260552179921.5108487.7172828.420092825222340320274619150648.1132678.
4224598.7720103241807399759.5296916201722.1156998.4278121.8520113696961472115317987236402183918.6311485.13.25解:模型建立利用BP神经网络进行预测
。首先,根据输入/输出数据确定网络的结构。并确定训练数据来训练网络,使网络具有预测能力。然后,确定测试数据测试网络的预测性能。最后,根据训练好的网络预测货运总量。由于本例输入数据为5维,输出为1维,所以BP神经网络结构为5-9-1结构。也就是说,输入层分
别为国民生产总值、能源生产总值、进出口贸易额、社会消费品零售总额以及固定资产投资总额等5个主要因素的归一化数据,输出为货运总量,隐含层有9个节点(可以根据情况调整)。并选取1()1xfxe−=+为隐含层传递函数,线性函数()fxx=为输出层传递函数。.26已知有22年的数据,取前20年的数据
作为训练数据训练网络。由于数据量较少,因此,将训练数据作为测试数据,来判定网络的预测性能,最后来预测2010和2011年两年的货运总量。模型求解根据BP网络原理,在Matlab中编程实现。(1)数据处理:表12-10数据存储在exp12_4_2.xls中。按照上述分配数据的方式调用数据,并对数
据进行归一化处理。数据归一化处理把所有数据都转化为[0,1]之间的数,其目的是消除数据间数量级差别,避免因输入输出数据数量级差别较大而造成网络预测误差较大。归一化的方法很多,本例采用最大最小归一化方法,其函数形式为minmaxmin−=−kkxxxxx其中,xmin为数据序列中的最小
数;xmax为最大数。.27归一化函数采用Matlab自带函数mapminmax。该函数有多种形式,常用的方法如下:[x1,ps]=mapminmax(x)其中x是待归一化的数据,x1为归一化后的数据,ps是归一化后的结构体,包含了数据x的最大值、最小值和平均值
等信息。对归一化后的数据x1进行反归一化处理的方法为:x=mapminmax('reverse',x1,ps)若需要利用数据x归一化后的结构体ps对新的数据y进行归一化处理,如神经网络中的测试数据和预测数据,其方法为:y1=mapminmax('apply',
y,ps)其中y1为数据y归一化后的数据,对y1反归一化处理方式同上。.28(2)BP神经网络初始化:根据BP神经网络5-9-1结构,随机初始化BP神经网络权值和阈值。(3)BP神经网络训练:用训练数据训练BP神经网络,并根据网络预测误差调整网络的权值和阈值。(4)BP神经网络测
试:用测试数据测试BP神经网络预测性能。(5)BP神经网络预测:输入2010年和2011年主要因素,利用训练好的网络预测这两年的货运总量。(6)预测结果:从测试数据的结果,BP神经网络测试的最大误差百分比约为4%,测试结果见图12-23,可认为BP网络具有良好的预测能力。
2010年和2011年货运量预测结果分别为3133147万吨和3370948万吨,误差百分比分别为3.35%和8.82%,与实际结果比较接近.29BP神经网络测试结果图ToMatlabexp12_4_2.m.30例3(DNA序列分类)作为研究DNA序列结构
的尝试,提出以下对序列集合进行分类的问题:有20个已知类别的人工制造序列,其中序列标号1-10为A类,11-20为B类。请从中提取特征,构造分类方法,并用这些已知类别的序列,衡量你的方法是否足够好。然后用你认为满意的方法,对另外20个未标明类别的人工序列
(标号21-40)进行分类,判断哪些属于A类,哪些属于B类,哪些既不属于A类又不属于B类(问题及数据的详细描述请查阅网易杯数学建模竞赛2000年赛题A题)。.31解:(一)问题分析:由于DNA序列均是由
a,t,c,g等4个字符组成,且长短不一,不同的DNA序列中,a,t,c,g出现的概率并不相同。例如,从生物理论中可知,编码蛋白质的DNA中g、c含量偏高,而非编码蛋白质的DNA中a、t含量偏高。因此,a,t,c,g的频率中
会有很多的生物信息。基于此分析,我们采用DNA序列中4个字符的含量百分比,这一特征来对DNA序列进行分类。下表分别列出了已知DNA和未知DNA序列中含a,t,c,g的个数,以及其它字符的个数。.32DNA序列中含a,t,c,g的个数标号atcg其它DNA长
度标号atcg其它DNA长度133151944211321314122193116230171846211322302325263107330724502113231819263931054473212
2021132424472222311852612264721132526232432310863914144421132625442421311773921114021132724242135310783121184121132830521718312092317234
8211329151922453104102015304531133031272623311011395551131133127402025311512365531631133219362529311213
285711143113333037212331141433559133113342417243731051532710731133525212235310616405191031133624223227310817392927153113372221
263441071832551310311338265120203120192462168311339292530223109202262197311340235023203119.33从上表中可以看出,其它字符的个数以及含量都非常小,因此,我们可以忽略不计。则第i条DNA序列
中a,t,c,g的含量百分比分别为它们各自的个数除以a,t,c,g个数的总数。结果见下表:DNA序列中含a,t,c,g的含量百分比标号atcg标号atcg10.29730.13510.17120.3964
210.27430.36280.19470.168120.27030.15320.16220.4144220.28850.22120.24040.250030.27030.06310.21620.4505230.1
7650.18630.25490.382440.42340.28830.10810.1802240.20870.40870.19130.191350.23420.10810.23420.4234250.2476
0.21900.22860.304860.35140.12610.12610.3964260.21930.38600.21050.184270.35140.18920.09910.3604270.23080.2
3080.20190.336580.27930.18920.16220.3694280.25640.44440.14530.153890.20720.15320.20720.4324290.14850
.18810.21780.4455100.18180.13640.27270.4091300.28970.25230.24300.2150110.35450.50000.04550.1000310.2411
0.35710.17860.2232120.32730.50000.02730.1455320.17430.33030.22940.2661130.25450.51820.10000.1273330.27030.33330.18920.2072140.30000.50000.08180.1182
340.23530.16670.23530.3627150.29090.64550.00000.0636350.24270.20390.21360.3398160.36360.46360.08180.0909360.228
60.20950.30480.2571170.35450.26360.24550.1364370.21360.20390.25240.3301180.29090.50000.11820.0909380.22220.43
590.17090.1709190.21820.56360.14550.0727390.27360.23580.28300.2075200.20000.56360.17270.0636400.19830.43100.19830.17
24.34(二)模型建立:(1)BP神经网络结构的确定我们选取三层结构的BP神经网络模型。每层含义如下:输入层:将所提取的特征作为输入,即DNA序列中a,t,c,g的含量百分比作为BP神经网络的输入,显然,输入层有4
个节点;输出层:BP神经网络的输出为DNA序列的分类结果,将A类DNA序列的输出定义为[1,0],B类DNA序列的输出定义为[0,1],因此,输出层有2个节点;.35隐含层:为确定隐含层节点个数m,我们参考下列公式:,mnla=++其中n为输入层节点个数,
l为输出层节点个数,a为1-10之间的常数。这里我们确定隐含层节点个数为10.综上所述,建立了一个4-10-2结构的三层BP神经网络。并且选择双极型S型函数(tansig)作为隐含层的传递函数,线性函数(purelin)作为输出层的传递函数,
变学习动量梯度下降算法(traingdx)作为训练函数。.36(2)训练数据及测试数据的确定训练数据用来训练BP神经网络,测试数据用来测试网络的分类能力。但由于已知类别的DNA序列只有20条(标号1-20),比较少,因此,我们将这20条数据即作为训练数据,又作为测试数据。最后,用训练
好的BP神经网络对标号为21-40的DNA序列进行分类。(3)BP神经网络的训练这里,我们不再累述。.37(三)模型求解:利用Matlab神经网络工具箱进行编程实现,得到标号21-40DNA序列的一个分类结果为:A类:22、23、25、27、29、34、35、37;
B类:21、24、26、28、30、31、32、33、36、38、39、40.在分类过程中,我们发现某些DNA序列(如标号22和标号24)有时属于A类,有时属于B类(读者可自行分析原因)。为进一步确定这些DNA序列的分类以及更进一步验证我们的分类效果,我们
将程序运行1000次,得到1000种分类结果,见下表:.381000次中标号21-40的DNA序列被分到A类和B类的次数标号21222324252627282930A类146556100024292123697521996298B类85444407587
9764259794702标号31323334353637383940A类3505543031000994514963124230197B类6504466970648637876770803.39从上表可以看出,DNA序列被分到A类
或B类的次数明显的多,就可认为该DNA序列属于那一类。但是某些DNA序列被分到A、B类的次数非常相近(如标号22),因此,这些DNA序列即不属于A类又不属于B类,即无法用BP神经网络分类,需要作进一步分析。根据以上分析,我们
得到最终的分类结果:A类:23、25、27、29、34、35、37;B类:21、24、26、28、30、31、33、38、39、40;即不属于A类又不属于B类:22、32、36.ToMatlabexp12_4_3.m.40.4
1练习1、蠓虫分类问题生物学家试图对两种蠓虫(Af与Apf)进行鉴别,依据的资料是触角和翅膀的长度,已经测得了9只Af和6只Apf的数据如下:Af:(1.24,1.27),(1.36,1.74),(1.38,1.64),
(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08);Apf:(1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.
30,1.96).(i)根据如上资料,如何制定一种方法,正确地区分两类蠓虫;(ii)对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的三个标本,用所得到的方法加以识别;(iii)设Af是宝贵的传
粉益虫,Apf是某疾病的载体,是否应该修改分类方法..422、人口预测下表是从《北京统计年鉴》中给出的1980-2010年的北京城近郊区户籍人口统计结果作为样本数据,(1)建立人工神经网络模型;(2)预测2011年的北京城近郊区户籍人口..43数据处理后的样本数据:样本用途样本
组数输入一输入二输入三输入四输出学习样本10.49840.51020.52130.5340.540720.51020.52130.5340.54070.542830.52130.5340.54070.54280.55340.5340.54070.54280.5530.5
63250.54070.54280.5530.56320.573960.54280.5530.56320.57390.582170.5530.56320.57390.58210.59280.56320.57390.5
8210.5920.598790.57390.58210.5920.59870.6043100.58210.5920.59870.60430.6095110.5920.59870.60430.60950.6161120.59870.60430.6095
0.61610.6251130.60430.60950.61610.62510.6318140.60950.61610.62510.63180.6387150.61610.62510.63180.63870.6462160.62510.63180.63870.64620.65
18170.63180.63870.64620.65180.6589180.63870.64620.65180.65890.6674190.64620.65180.65890.66740.6786200.65180.65890.66740.67860.6892210.6
5890.66740.67860.68920.6988220.66740.67860.68920.69880.7072检验样本230.67860.68920.69880.70720.7132240.68920.69880.70720
.71320.7185250.69880.70720.71320.71850.7309260.70720.71320.71850.73090.7438270.71320.71850.73090.74380.7496.44.45此课件下
载可自行编辑修改,供参考!感谢您的支持,我们努力做得更好!