数学建模与数学实验后勤工程学院数学教研室神经网络实验目的实验内容学习神经网络的基本原理与方法。1、人工神经元数学模型。4、BP神经网络应用。3、BP神经网络Matlab工具箱函数。2、BP神经网络。神经网络(NeuralNetworks)是从微观结构与功能上对人脑神经系统进行模拟而建立起来的数学模型,它具有模拟人脑思维的能力,其特点主要是具有非线性特性、学习能力和自适应性等,是模拟人类智能的一种重要方法。神经网络是由神经元互联而成的,能接收并处理信息,而这种信息处理主要是由神经元之间的相互作用,即通过神经元之间的连接权值来处理并实现的。神经网络在人工智能、自动控制、计算机科学、信息处理和模式识别等领域得到了非常成功地应用。一、人工神经元数学模型生物神经元,也称神经细胞,它是由细胞体、树突、轴突和突触等生物组织构成的,并通过细胞膜电位来实现生物神经元的兴奋与抑制、学习与联想等基本功能,因此,它是构成人脑神经系统的基本功能单元。其结构如下图所示。根据生物神经元的结构与基本功能,可以将其简化为下图的形式,并建立神经网络模型的基础——人工神经元数学模型:1()njijijiyfwxa其中,jy表示神经元j的输出;ix表示神经元i的输入;ijw表示神经元i与神经元j之间的连接权值;ja表示神经元j的阈值;()f是输入到输出传递函数(也称激活函数)。下表给出了一些常用的传递函数。除线性传递函数外,其它的均是非线性的,因此,神经网络特别适合于解决非线性问题。神经网络传递函数名称传递函数表达式二值函数10()00xfxx线性函数()fxax分段线性函数00()01ccxfxcxxxxx非对称Sigmoid函数1()1xfxe非对称Sigmoid函数1()1xxefxe二、BP神经网络其中,(1,,)ixin是神经网络的(实际)输入,(1,,)jyjm是隐含层的输出,即为输出层的输入,(1,,)kOkl网络的(实际)输出,,ab分别为隐含层和输出层神经元(节点)的阈值,,ijjkvw分别为输入层到隐含层和隐含层到输出层的权值。也就是说,图中所表示的BP神经网络,它的输入层神经元(节点)个数为n,隐含层神经元(节点)个数为m,输出层神经元(节点)个数为l,这种结构称为nml结构的三层BP神经网络。BP神经网络的拓扑结构如图所示。1.BP神经网络结构:步骤1:网络初始化。根据输入12(,,,)nXxxx和期望输出12(,,,)lDddd来确定网络输入层、隐含层和输出层神经元(节点)个数,初始化各层神经元之间的连接权值ijv,jkw,初始化隐含层阈值a,输出层阈值b,给定学习速率和神经元传递函数。步骤2:隐含层输出计算。根据输入向量X,输入层和隐含层间连接权值ijv以及隐含层阈值a,计算隐含层输出。10()()1,2,,nniijijijijjyfvxafvxim式中,m为隐含层节点数;001,ijvxa;()f为隐含层传递函数。这里我们采用传递函数为1()1xfxe步骤3:输出层输出计算。根据隐含层输出Y,连接权值jkw和阈值b,计算BP神经网络的实际输出O。10()()1,2,,mmkjkjkjkjjjOfwxbfwxkl2.BP神经网络学习算法及流程以三层BP神经网络为例,它的训练过程包括以下几个步骤:步骤4:误差计算。根据网络实际输出O与期望输出D,计算网络总体误差E。22111()()1,2,,22lkkkEDOdokl步骤5:权值更新。根据网络总体误差E,按照以下公式更新网络连接权值ijv,jkw。ijijijvvvjkjkjk()(1)loijkjkjjikvwyyxojkkjwy其中()(1)okkkkkdooo。式中为学习速率。步骤6:判断算法迭代是否结束(可用网络总误差是否达到精度要求等方式来判断),若没有结束,返回步骤2。BP神经网络的流程图:三、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层节点的传递函数,包括线性传递函数purelin;正切S型传递函数tansig;对数S型传递函数logsig。默认为“tansig”;BTF:训练函数,用于网络权值和阈值的调整,默认基于Levenberg_Marquardt共轭梯度法的训练函数trainlm。其它参数见后面表格。BLF:网络的学习函数,包含BP学习规则learngd;带动量项的BP学习规则learngdm。默认为“learngdm”;PF:网络的性能分析函数,包括均值绝对误差性能分析函数mae;均方性能分析函数mse。默认为“mse”。一般在使用过程中设置前面4个参数,后面2个参数采用系统默认参数。神经网络训练函数训练函数的意义Matlab中相应的函数剃度下降法traingd动量反传的剃度下降法traingdm动态自适应学习率(lr)的梯度下降法traingda带动量动态自适应学习率(lr)的梯度下降法traingdx弹性梯度下降法trainrp量化共轭梯度法traincgLevenberg_Marquardt法trainlmFletcgera-Reeves共轭梯度法traingfPolak-Ribiere共轭梯度法traingpPowell-Beale共轭梯度法traingb(2)train——BP神经网络训练函数函数功能:用训练函数训练BP神经网络。函数形式:[net,tr]=train(NET,P,T)NET:待训练网络,即newff所创建的初始网络;P:输入数据矩阵;T:期望输出数据矩阵;net:训练好的网络;tr:训练过程记录。另外,在对BP神经网络训练时,需要设置某些训练参数,见下表。BP神经网络训练函数训练参数名称及默认值属性net.trainParam.cpochs=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学习速率(3)sim——BP神经网络预测/仿真函数函数功能:用训练好的BP神经网络预测/仿真函数输出。函数形式:Y=sim(net,x)net:训练好的BP神经网络;x:输入数据;Y:网络预测/仿真数据,即网络实际输出。例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','purelin'});其中,[-1,1]表示输入向量P的最小值和最大值,可以用minmax(P)代替。[5,1]表示网络的隐含层有5个神经元,输出层有1个神经元,也就是说,该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);网络经过177次训练后,虽然网络的性能还没有达到0,但是输出的均方误差已经很小了,MSE=2.95307e-006,误差曲线如图1所示。为更直观地理解网络输出与目标向量之间的关系,见图2所示。plot(P,T,'-',P,Y,'o')图1BP神经网络训练误差曲线图图2训练后BP神经网络仿真图ToMatlabexp12_4_1.m四、BP神经网络应用例2货运量预测问题请根据中国统计年鉴1990-2011年的各项数据,以国民生产总值、能源生产总值、进出口贸易额、社会消费品零售总额以及固定资产投资总额等5个指标作为主要因素,并利用BP神经网络预测货运总量。1990-2011年的货运总量及主要因素部分数据年份货运总量(万吨)国民生产总值(亿元)能源生产总值(万吨)进出口贸易额(亿元)社会消费品零售总额固定资产投资总额199097060218718.31039225560.18300.16955.81199198579321826.21048447225.89415.69810.41992104589926937.31072569119.610993.712443.1219931115902352601110591127114270.414410.221994118039648108.511872920381.918622.917042.941995123493859810.512903423499.923613.820019.31996129842170142.513303224133.828360.2229741997127821878060.913346026967.231252.924941.11998126742783024.312983426849.733378.128406.21999129300888479.213193529896.235647.929854.72000135868298000.513504839273.239105.732917.720011401786108068.214387542183.643055.437213.520021483447119095.715065651378.248135.943499.92003156449213497717190670483.552516.355566.620041706412159453.619664895539.15950170477.4320051862066183617.4216219116921.867176.688773.6120062037060215904.423216714097476410109998.1620072275822266422247279166863.789210137323.9420082585937316030.3260552179921.5108487.7172828.420092825222340320274619150648.1132678.4224598.7720103241807399759.5296916201722.1156998.427812