1、神经网络算法简介,一、引例,1981,年生物学家格若根(,W,Grogan,)和维什(,W,Wirth,)发现了两类蚊子,(,或飞蠓,midges),他们测量了这两类蚊子每个个体的翼长和触角长,数据如下:,翼长 触角长 类别,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,翼长 触角长 类别,1.78 1.14 Apf,1.96 1.18 Apf,1.86 1.20 Apf,1.72 1.24 Af,2.00 1.26 Apf,2.00 1.28 Apf,1.
2、96 1.30 Apf,1.74 1.36 Af,问:,若抓到三只新的蚊子,它们的触角长和翼长分别为,(1.24,1.80);,(1.28,,,1.84),;(,1.40,,,2.04,)问它们应分别属于哪一个种类?,把翼长作纵坐标,触角长作横坐标;那么每个蚊子的翼长和触角决定了坐标平面的一个点,.,其中,6,个蚊子属于,APf,类;用黑点,“,”,表示;,9,个蚊子属,Af,类;用小圆圈,“,。,”,表示,得到的结果见图,1,图,1,飞蠓的触角长和翼长,一、引例,1989,年美国大学生数学建模问题,思路,:,例如;取,A,(,1.44,,,2.10,)和,B,(1.10,,,1.16),,过
3、A B,两点作一条直线:,y,1.47x -0.017,其中,x,表示触角长;,y,表示翼长,分类规则,:,设一个蚊子的数据为(,x,y,),如果,y,1.47x -0.017,,则判断蚊子属,Apf,类;,如果,y,1.47x -0.017,;则判断蚊子属,Af,类,一、引例,作一直线将两类飞蠓分开,分类结果,:,(1.24,,,1.80),,,(1.28,,,1.84),属于,Af,类;,(1.40,,,2.04,)属于,Apf,类,图,2,分类直线图,一、引例,缺陷:,根据什么原则确定分类直线?,若取,A=(1.46,2.10),B=(1.1,1.6),不变,则分类直线变为,y=1.3
4、9x+0.071,分类结果,变为:,(1.24,1.80),,,(1.40,2.04),属于,Apf,类;,(1.28,1.84),属于,Af,类,哪一分类直线才是正确的呢?,一、引例,A,(,1.44,,,2.10,),再如,,如下的情形能不能用分类直线的办法呢?,新思路:,将问题看作一个系统,飞蠓的数据作为输入,飞蠓的类型作为输出,研究输入与输出的关系。,一、引例,方法:,马氏距离判别法、,Bayes,判别法等,人工神经网络模型,前言,所谓人工神经网络就是基于模仿生物大脑的结构和功能而构成的一种信息处理系统。,粗略地讲,大脑是由大量神经细胞或神经元组成的。每个神经元可看作是一个小的处理单元
5、这些神经元按某种方式连接起来,形成大脑内部的生理神经元网络。,这种神经元网络中各神经元之间联结的强弱,按外部的激励信号做自适应变化,而每个神经元又随着所接收到的多个接收信号的综合大小而呈现兴奋或抑制状态。,生物神经网,基本工作机制:,一个神经元有两种状态,兴奋和抑制,平时处于抑制状态的神经元,当接收到其它神经元经由突触传来的冲击信号时,多个输入在神经元中以代数和的方式叠加。,进入突触的信号会被加权,起兴奋作用的信号为正,起抑制作用的信号为负。,如果叠加总量超过某个阈值,神经元就会被激发进入兴奋状态,发出输出脉冲,并由轴突的突触传递给其它神经元。,人工神经网络的生物学基础,人工神经网络的生物学
6、基础,信息输入,信息传播与处理,信息传播与处理(整合),信息传播与处理结果:兴奋与抑制,信息输出,神经网络的基本思想,人工神经元的基本构成:,人工神经元信息处理单元,人工神经元信息处理单元,信息输入,人工神经元信息处理单元,信息传播与处理:加权求和,人工神经元信息处理单元,信息传播,人工神经元信息处理单元,信息传播与处理,人工神经元信息处理单元,信息输出,神经元的传递函数,f,(,X,)是激发函数;它可以是线性函数,也可以是非线性函数,例如,若取激发函数为符号函数,神经元的传递函数,S,型传递函数,注:一个神经元含有与输入向量维数相同个数的权系数,若将阈值看作是一个权系数,,-1,是一个固定的
7、输入,另有,n-1,个正常的输入,则式也可表示为:,参数识别,:假设函数形式已知,则可以从已有的输入输出数据确定出权系数及阈值。,o,j,x,1,-1,x,2,简单原理,人工神经网络是根据人的认识过程而开发出的一种算法。,假如我们现在只有一些输入和相应的输出,而对如何由输入得到输出的机理并不清楚,那么我们可以把输入与输出之间的未知过程看成是一个,“,网络,”,,通过不断地给这个网络输入和相应的输出来,“,训练,”,这个网络,网络根据输入和输出不断地调节自己的各节点之间的权值来满足输入和输出。这样,当训练结束后,我们给定一个输入,网络便会根据自己已调节好的权值计算出一个输出。这就是神经网络的简单
8、原理。,神经网络的作用,网络说话,人们把一本教科书用网络把它读出来(当然需要通过光电,电声的信号转换);开始网络说的话像婴儿学语那样发出“巴、巴、巴”的声响;但经过,B,P,算法长时间的训练竟能正确读出英语课本中,90,的词汇,从此用神经网络来识别语言和图象形成一个新的热潮。,人工神经网络基本特点,(,1,)可处理非线性,(,2,)并行结构对神经网络中的每一个神经元来说;其运算都是同样的这样的结构最便于计算机并行处理,(,3,)具有学习和记忆能力一个神经网络可以通过训练学习判别事物;学习某一种规律或规则,(,4,)对数据的可容性大在神经网络中可以同时使用量化数据和质量数据(如好、中、差、及格、
9、不及格等),(,5,)神经网络可以用大规模集成电路来实现如美国用,256,个神经元组成的神经网络组成硬件用于识别手写体的邮政编码,人工神经网络的分类,按网络连接的拓扑结构分类:,层次型结构,:,将神经元按功能分成若干层,如输入层、中间层(隐层)和输出层,各层顺序相连,单纯型层次型结构,人工神经网络的分类,按网络内部的信息流向分类:,前馈型网络:,网络信息处理的方向是从输入层到各隐层再到输出层逐层进行,前馈型网络,神经网络的学习规则,关键,在于如何决定每一神经元的权值。,常用的学习规则有以下几种:,Hebb,规则,Delta,规则,(,最小均方差规则,),反向传播学习方法,Kohonen,学习规
10、则,(,用于无指导训练网络,),Grosberg,学习方法,神经网络常用模型,共,70,多种,具有代表性的有:,(,1,),感知器(,Perceptron,),(,2,),多层前馈(,BP,)网络,(,3,),Hopfield,网络,(,优化,),(,4,),Boltzmann,机(在,BP,中加入噪声),(,5,)双向联想记忆网络(快速存储),人工神经网络的工作原理,人工神经网络的工作原理到底是怎样的,我们可以从一个最简单的网络来剖析,一定程度上打开这个黑匣子。,1958,年,美国心理学家,Frank Rosenblatt,提出一种具有单层计算单元的神经网络,称为,Perceptron,,即
11、感知器。,感知器是模拟人的视觉接受环境信息,并由神经冲动进行信息传递的层次型神经网络。,单层感知器的结构与功能都非常简单,以至于在解决实际问题时很少采用,但由于它在神经网络研究中具有重要意义,是研究其它网络的基础,常作为学习神经网络的起点。,人工神经网络的工作原理,感知器模型,(,单层前向神经网络),j=1,2,m,输出类别指示,输入样本,人工神经网络的工作原理,感知器模型,净输入:,输出为:,T,j,为阀值,,sgn,为符号函数,人工神经网络的工作原理,(C.),感知器模型,具体的:,设输入向量,X,=(,x,1,x,2,),T,输出:,则由方程,w,1j,x,1,+w,2j,x,2,-T,
12、j,=0,确定了二维平面上的一条分界线,o,j,x,1,-1,x,2,人工神经网络的工作原理,感知器模型,具体的:,则由方程,w,1j,x,1,+w,2j,x,2,-T,j,=0,确定了二维平面上的一条分界线,(Why?),w,1j,x,1,+w,2j,x,2,T,j,=0,w,1j,x,1,=,T,j,-w,2j,x,2,x,1,=(,T,j,-w,2j,x,2,)/,w,1j,=,-,(,w,2j,/,w,1j,),x,2,+,T,j,/,w,1j,=,a,x,2,+,c,人工神经网络的工作原理,感知器模型,具体的:,这样的话,我们就可以得到,思路,:,例如;取,A,(,1.44,,,2.
13、10,)和,B,(1.10,,,1.16),,过,A B,两点作一条直线:,y,1.47x -0.017,其中,x,表示触角长;,y,表示翼长,分类规则,:,设一个蚊子的数据为(,x,y,),如果,y,1.47x -0.017,,则判断蚊子属,Apf,类;,如果,y,1.47x -0.017,;则判断蚊子属,Af,类,一、引例,作一直线将两类飞蠓分开,人工神经网络的工作原理,感知器模型,一个最简单的单计算节点感知器具有分类功能。其分类原理是,将分类知识存储于感知器的权向量(包含了阈值)中,,由权向量确定的分类判决界面将输入模式分为两类。,o,j,x,1,-1,x,2,单层感知器的局限性是:仅对
14、线性可分问题具有分类能力。,神经网络研究的发展,(1),第一次热潮,(40-60,年代未,),1943,年,美国心理学家,W.McCulloch,和数学家,W.Pitt,在提出了一个简单的神经元模型,即,MP,模型。,1958,年,,F.Rosenblatt,等研制出了感知机,(Perceptron,)。,(2),低潮,(70,-,80,年代初,),:,(3),第二次热潮,1982,年,美国物理学家,J.J.Hopfield,提出,Hopfield,模型,它是一个互联的非线性动力学网络,他解决问题的方法是一种,反复运算的动态过程,这是符号逻辑处理方法所不具备的性质,.,1987,年首届国际,A
15、NN,大会在圣地亚哥召开,国际,A,NN,联合会成立,创办了多种,A,NN,国际刊物。,经典的人工神经网络算法,BP,算法,BP(Error Back Proragation,,,BP),误差反向传播算法,它是有指导训练的前馈多层网络训练算法,是靠调节各层的加权,使网络学会由输入输出对组成的训练组,执行优化的方法是,梯度下降法,BP,算法是使用非常广泛的一种算法,最常用的转移函数是,Sigmoid,函数,梯度法,考虑无约束问题,,其中函数,f(x),一阶连续可导,梯度指对各个自变量的偏导数依次排列所成的向量。,梯度法就是在点,x,处以,f(x),的负梯度方向进行搜索的一种优化方法,其迭代公式
16、其中,,是从 出发的搜索方向,取最速下降方向,经典的人工神经网络算法,BP,算法,BP,网络模型,输入层,隐层,输出层,网络学习的目的是要使网络产生尽可能逼近理想的反应。网络受训练时,不断将网络的输出数据与理想数据相比较,并按学习规格改变权重,直到网络的输出数据对所有训练数据与理想输出数据之差在要求的误差范围之内。,BP,神经网络模型,简单网络,经典的人工神经网络算法,BP,算法,学习的过程:,正向传播:,输入样本输入层各隐层输出层,判断是否转入反向传播阶段:,若输出层的实际输出与期望的输出(教师信号)不符,误差反传,误差以某种形式在各层表示修正各层单元的权值,网络输出的误差减少到可接受的
17、程度,进行到预先设定的学习次数为止,假设有,P,个训练样本,即有,P,个,输入输出对,(,I,p,T,p,),p=1,P,其中,输入向量为,目标输出向量为(理论上的),网络输出向量为,(实际上的),简单网络的,B-P,算法,(,p=1,P,),(,2,),通常理论与实际有误差,网络学习则是指不断比较,并根据极小原则修改参数,w,ij,,使误差平方和达最小,:,记,Delta,学习规则,:,(,4,),(,3,),表示递推一次的修改量,则有,称为,学习的速率,一般取值为,0.10.3,简单网络的,B-P,算法,记,w,ij,为从输入向量的第,j(j=1,m),个分量到输出向量的第,i(i=1,n
18、),个分量的权重。,i,pm,=-1,w,im,=,(,第,i,个神经元的阈值,),(,5,),注:,由(,1,)式,第,i,个神经元的输出可表示为,特别当,f,是线性函数时,(,6,),简单网络的,B-P,算法,训练用的性能指标为,最小,求,E,的最小值,只需考虑,E,P,达到最小的递推算法,求,E,的最小值的梯度下降法就是,Delta,学习规则。,多层前馈网络,(,l,)输入层不计在层数之内,它有,N,0,个神经元设网络共有,L,层;输出层为第,L,层;第,k,层有,N,k,个神经元,假设:,(2),设,表示第,k,层第,i,神经元所接收的信息,w,k,(i,j),表示从第,k-1,层第,
19、j,个元到第,k,层第,i,个元的权重,,表第,k,层第,i,个元的输出,有些文献将输入层作为一层,(,3,)设层与层间的神经元都有信息交换(否则,可设它们之间的权重为零);但同一层的神经元之间无信息传输,(4),设信息传输的方向是从输入层到输出层方向;因此称为前向网络没有反向传播信息,(,5,)表示输入的第,j,个分量,假设:,在上述假定下网络的输入输出关系可以表示为:,(,7,),其中,k,(i),表示第,k,层第,i,个元的阈值,.,,,f,为,S,函数,定理,对于具有多个隐层的前馈神经网络;设激发函数为,S,函数;且指标函数取,则每个训练循环中按梯度下降时;其权重迭代公式为,其中,证明
20、思路与简单模型相同。,不同的是这里具有隐层,2,层前馈神经网络,单个神经元节点,反向一层传播,反向二层传播,某一隐层节点受所有输出层节点影响,B-P,算法的学习过程如下:,(,1,)选择一组训练样例,每一个样例由输入信息和期望的输出结果两部分组成。,(,2,)从训练样例集中取一样例,把输入信息输入到网络中。,(,3,)分别计算经神经元处理后的各层节点的输出。,(,4,)计算网络的实际输出和期望输出的误差。,反向传播模型及其学习算法,(,5,)从输出层反向计算到第一个隐层,并按照某种能使误差向减小方向发展的原则,调整网络中各神经元的连接权值。,(,6,)对训练样例集中的每一个样例重复,35,的步
21、骤,直到对整个训练样例集的误差达到要求时为止。,在以上的学习过程中,第(,5,)步是最重要的,如何确定一种调整连接权值的原则,使误差沿着减小的方向发展,是,B-P,学习算法必须解决的问题。,反向传播模型及其学习算法,应用,已知的两类蚊子的数据如表,1,:,翼长 触角长 类别,1.78 1.14 Apf,1.96 1.18 Apf,1.86 1.20 Apf,1.72 1.24 Af,2.00 1.26 Apf,2.00 1.28 Apf,1.96 1.30 Apf,1.74 1.36 Af,目标值,0.9,0.9,0.9,0.1,0.9,0.9,0.9,0.1,翼长 触角长 类别,1.64 1
22、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,目标,t,0.1,0.1,0.1,0.1,0.1,0.1,0.1,BP,采用,S,函数,输出不宜设为,1,或,0,,可设为,0.9,或,0.1,。,输入数据有,15,个,建模,:两层神经网络,建立神经网络,规定目标为:当,t(1)=0.9,时表示属于,Apf,类,,t(2)=0.1,表示属于,Af,类。,设两个权重系数矩阵为:,为阈值,其中,分析如下:,为第一层的输出,同时作为第二层的输入,。,其中,为阈值,为传递函数,若令,
23、作为一固定输入),(阈值作为固定输入神经元相应的权系数),则有:,取传递函数为,=,则,同样,取,(,1,)随机给出两个权矩阵的初值;例如用,MATLAB,软件时可以用以下语句:,令,p=0,具体算法如下:,=rand(2,3);,=rand(1,3);,(2),根据输入数据利用公式算出网络的输出,=,取,(,3,)计算,因为,所以,L=2,计算,(5),计算,和,j=1,2,3,i=1,2,3,j=1,2,3,(,4,)取,(或其他正数,可调整大小),(6)p=p+1,,转(,2,),注:仅计算一圈(,p=1,,,2,,,,,15,)是不够的,直到当各权重变化很小时停止,本例中,共计算了,
24、147,圈,迭代了,2205,次。,最后结果是:,如何分类?,规定目标为:当,t(1)=0.9,时表示属于叉类,,t(2)=0.1,表示属于圆点类。,22,对训练样本,(,1,)随机给出两个权矩阵的初值;例如用,MATLAB,软件时可以用以下语句:,令,p=0,具体算法如下:,=rand(2,3);,=rand(1,3);,(2),根据输入数据利用公式算出网络的输出,=,取,(,3,)计算,因为,所以,L=2,计算,(5),计算,和,j=1,2,3,i=1,2,3,j=1,2,3,(,4,)取,(或其他正数,可调整大小),直到当各权重变化很小时停止,本例中,共计算了,200,圈,迭代了,440
25、0,次。,最后结果是:,数学建模中有很多题目都可以用神经网络加以解决。,比较典型的题目有:,DNA,序列分类题(,2000,年全国赛,A,题),癌症判断题(,2001,年北京大学数学建模竞赛),乳房癌的诊断题(,2001,年全国大学生数学建模夏令营,C,题),神经网络在数学建模中的应用,DNA,序列模式分类问题,假定已知两组人工已分类的,DNA,序列(,20,个已知类别的人工制造的序列),其中序列标号,1,10,为,A,类,,11-20,为,B,类。要求我们从中提取已经分类了的,DNA,序列片段的特征和构造分类方法,并且还要衡量所用分类方法的好坏,从而构造或选择一种较好的分类方法。测试对象是,
26、20,个未标明类别的人工序列(标号,21,40,)和,182,个自然,DNA,序列。例如,A,类:,a1=aggcacggaaaaacgggaataacggaggaggacttggcacggcattacacggaggacgaggtaaaggaggcttgtctacggccggaagtgaagggggatatgaccgcttgg;,b1=gttagatttaacgttttttatggaatttatggaattataaatttaaaaatttatattttttaggtaagtaatccaacgtttttattactttttaaaattaaatatttatt;,我们用前,20,组数据对网络进行训练,
27、再用训练好的网络来计算未知数据,便能得到分类的结果。,文件给出了一个,114,个基因,60,个人的基因表达水平的样本,.,其中前,20,个是癌症病人的基因表达水平的样本,(,其中还可能有子类,),其后的是,20,个正常人的基因表达信息样本,其余的,20,个是待检测的样本,(,未知它们是否正常,).,(1).,试设法找出描述癌症与正常样本在基因表达水平上的区别,建立数学模型,及识别方法,去预测待检测样本是癌症还是正常样本,.,癌症判断题(,2001,年北京大学数学建模竞赛),我们用前,40,组数据对网络进行训练,再用训练好的网络来计算后,20,组数据,便能得到分类的结果。,神经的网络应用,神经网
28、络的应用领域,语音识别,语音识别娃娃,图像识别与理解,人脸检测,(1),采用,BP,神经网络方法建模的,首要和前提条件,是有足够多典型性好和精度高的样本。而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型的性能和泛化能力,必须将收集到的数据随机分成训练样本、检验样本(,10%,以上)和测试样本(,10%,以上),3,部分。,(2),尽量获取足够多的样本,它的多少直接关系到所建模型的可靠性。,建议,(3),建模时尽量减少隐含层神经元的个数。由于隐含层神经元个数的确定是凭经验的,而个数的多少直接关系到网络的性能。个数太少,网络容易陷入局部极小值;太多,则网络的预测结果不稳定。为此
29、隐含层神经元个数的确定利用,“,试错法,”,来实现,即先给定一个较小的值,根据训练的结果逐渐增加,这样可找到适合该模型隐含层神经元个数的最小值,从而提高了网络的稳定性。,(4),将神经网络与其它方法,(,如遗传算法,),相结合。由于每种方法都有其各自的特点,多种方法的结合可改善单一方法所存在的缺陷。,前馈网络隐层节点数经验公式,分类数,特征向量维数,+1/2,分类数,(特征向量维数,2,+,特征向量维数),-1,隐层节点数,=,分类数,+,特征向量维数,遥感图像的,BP,神经网络分类,1,、学习样本的获取,2,、网络系统的确定,3,、网络的训练,4,、图像的分类,遥感图像的,BP,神经网络分类
30、学习样本的获取,类别:森林、峡谷、河流,学习样本:每个类别人工选取,64,个,特征向量:,遥感图像的,BP,神经网络分类,网络系统的确定,网络层数:一般取为,2,层,输入节点:与特征个数相同,取,3,隐节点数量:根据经验公式取为,5,输出节点:分为,3,类,取,3,遥感图像的,BP,神经网络分类,隐层节点数的计算,分类数,特征向量维数,+1/2,分类数,(特征向量维数,2,+,特征向量维数),-1,隐层节点数,=,分类数,+,特征向量维数,向上取整,保证分类性能!,遥感图像的,BP,神经网络分类,图像信息,图像变换与特征提取,特征数据规格化,分类判决,图像分类结果,神经网络图像分类过程,经过
31、训练的神经网络,MATLAB,神经网络工具箱的应用,在网络训练过程中使用的是,Matlab 7.0 for Windows,软件,对于,BP,神经元网络的训练可以使用,Neural Networks Toolbox for Matlab,。美国的,Mathwork,公司推出的,MATLAB,软件包既是一种非常实用有效的科研编程软件环境,又是一种进行科学和工程计算的交互式程序。,MATLAB,本身带有神经网络工具箱,可以大大方便权值训练,减少训练程序工作量,有效的提高工作效率,.,MATLAB,交互界面,BP,神经网络学习算法的,MATLAB,实现,MATLAB,中,BP,神经网络的重要函数和基
32、本功能,函 数 名,功 能,newff(),生成一个前馈,BP,网络,tansig(),双曲正切,S,型,(Tan-Sigmoid),传输函数,logsig(),对数,S,型,(Log-Sigmoid),传输函数,traingd(),梯度下降,BP,训练函数,BP,神经网络学习算法的,MATLAB,实现,MATLAB,中,BP,神经网络的重要函数和基本功能,newff(),功能 建立一个前向,BP,网络,格式,net=newff(PR,,,S1 S2.SN1,,,TF1 TF2.TFN1,,,BTF,,,BLF,,,PF),说明,net,为创建的新,BP,神经网络;,PR,为网络输入取向量取值
33、范围的矩阵;,S1 S2SNl,表示网络隐含层和输出层神经元的个数;,TFl TF2TFN1,表示网络隐含层和输出层的传输函数,默认为,tansig,;,BTF,表示网络的训练函数,默认为,trainlm,;,BLF,表示网络的权值学习函数,默认为,learngdm,;,PF,表示性能数默认为,mse,,误差。,BP,神经网络学习算法的,MATLAB,实现,给定,4,组学习数据为输入,-1-1 2 2;0 5 0 5,理想输出,-1-1 1 1,,试建立一个,2,层前向神经网络,第一层(隐层)由,3,个神经元组成且用,tansig,函数,第二层用,purelin,函数。学习规则为,traind
34、输入数据得,PR=-1 2;0 5,隐层和输出层分别有,3,个和,1,个神经元,,S1 S2=3 1,Net=newff(PR,,,S1 S2,,,tansig,purelin,,,traingd),P=-1-1 2 2;0 5 0 5,t=-1-1 1 1,net,tr=train(net,p,t);,a=sim(net,p),输出命令,输入向量,P=0 1 2 3 4 5 6 7 8 9 10;,期望输出,T=0 1 2 3 4 3 2 1 2 3 4;,例:,net=newff,(,0 10,5,1,tansig,purelin,);,Y=sim(net,P);,plot(P,T,
35、P,Y,o),创建两层的,BP,网络,Y=-2.3431 -2.7532 -2.4510 -1.2784 -0.8590 -0.2981,0.2495 0.4811 1.0375 1.2268 1.4232,T=0 1 2 3 4 3 2 1 2 3 4;,%,期望输出,第一种情况的输出结果:,误差很大!,未训练,非线性映射能力差。,修改程序:,P=0 1 2 3 4 5 6 7 8 9 10;,T=0 1 2 3 4 3 2 1 2 3 4;,net=newff(0 10,5 1,tansig purelin);,net.trainparam.show=50;%,每次循环,50,次,net.
36、trainParam.epochs=500;%,最大循环,500,次,net.trainparam.goal=0.01;%,期望目标误差最小值,net=train(net,P,T);%,对网络进行反复训练,Y=sim(net,P),plot(P,T,P,Y,o),Y=0.0005 1.0026 1.9947 3.0134 3.9429,3.1211 1.8482 1.1755 1.8568 3.1150,3.9595,第二种情况的输出结果:,下表为某药品的销售情况,现构建一个如下的三层,BP,神经网络对药品的销售进行预测:输入层有三个结点,隐含层结点数为,5,,隐含层的激活函数为,tansig
37、输出层结点数为,1,个,输出层的激活函数为,logsig,,并利用此网络对药品的销售量进行预测,预测方法采用滚动预测方式,即用前三个月的销售量来预测第四个月的销售量,如用,1,、,2,、,3,月的销售量为输入预测第,4,个月的销售量,用,2,、,3,、,4,月的销售量为输入预测第,5,个月的销售量,.,如此反复直至满足预测精度要求为止。,月份,1,2,3,4,5,6,销量,2056,2395,2600,2298,1634,1600,月份,7,8,9,10,11,12,销量,1873,1478,1900,1500,2046,1556,%,以每三个月的销售量经归一化处理后作为输入,P=0.51
38、520.81731.0000;,0.81731.00000.7308;,1.00000.73080.1390;,0.73080.13900.1087;,0.13900.10870.3520;,0.10870.35200.0000;,%,以第四个月的销售量归一化处理后作为目标向量,T=0.7308 0.1390 0.1087 0.3520 0.0000 0.3761;,%,创建一个,BP,神经网络,每一个输入向量的取值范围为,0,1,,隐含层有,5,个神经,%,元,输出层有一个神经元,隐含层的激活函数为,tansig,,输出层的激活函数为,%logsig,,训练函数为梯度下降函数,,net=newff(0 1;0 1;0 1,5,1,tansig,logsig,traingd);,net.trainParam.epochs=15000;,net.trainParam.goal=0.01;,net=train(net,P,T);,Y=sim(net,P),plot(P,T,P,Y,o),可以加快网络的训练速度将每组数据都变为,-1,至,1,之间的数,BP,网络应用于药品预测对比图,由对比图可以看出预测效果与实际存在一定误差,此误差可以通过增加运行步数和提高预设误差精度进一步缩小,






