资源描述:
《BP算法程序实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、BP网络隐层可以有多个,多隐层的BP网络模型对一般多层前馈网模型如图所示。图3.3多层BP网络结构设有h个隐层,按前馈顺序各隐层节点数为m1,m2,…,mh;各隐层输出为y1,y2,…,yh;各层权值矩阵分别为W1,W2,…,Wh,Wh+1,则,各层权值调整计算公式为:输出层第h隐层按上述规律逐层类推,可得到第一隐层权值调整计算公式为三层前馈网的BP学习算法也可写成向量形式:对输出层式中,对于隐层式中,看出,BP算法中,各层权值调整公式形式上都是一样的,均由3个因素决定,学习率η,本层输出的误差信号
2、δ及本层输入信号Y(或X)。其中输出层误差信号同网络的期望输出与实际输出之差有关,直接反映了输出误差,而各隐层的误差信号与前面各层的误差信号都有关,是从输出层开始逐层反传过来的。反传过程可以简述为:与比较得到输出层误差信号→计算输出层权值调整量ΔW;通过隐层各节点反传→计算各隐层权值的调整量ΔV.例采用BP网络映射下图曲线规律。设计BP网络结构如下:权系数随机选取为:w12=0.2,w13=0.3,w14=0.4,w15=0.5,w26=0.5,w36=0.2,w46=0.1,w56=0.4。取学习
3、率η=1。按图中曲线确定学习样本数据如下表(每0.05取一学习数据,共80对)x(输入信号)y(教师信号)…x(输入信号)y(教师信号)0.00000.5000…3.00000.0000……………1.00001.0000…4.00000.5000按表中数据开始进行学习:第一次学习,输入=0.0000(1节点第1次学习),,计算2、3、4、5单元状态:=2,3,4,5计算2、3、4、5各隐层单元输出(=2,3,4,5)计算输出层单元6的状态值及输出值反推确定第二层权系数变化:第一次反传修正的输出层权为
4、:反推第一层权系数修正:第二次学习,,计算6单元状态:按表中数据依次训练学习,学习次数足够高时,可能达到学习目的,实现权值成熟。一般网络学习训练次数很高,采用手工计算是不可能的,需要用计算机程序求解。3.4.3BP算法的程序实现前面推导的BP网络算法是BP算法基础,称标准BP算法。目前神经网络的实现仍以软件编程为主。现以如图的三层BP网络为例,说明标准BP算法的编程步骤:图3.2三层BP网络结构——输出层输出向量;——输入层到隐层间的权值矩阵;——隐层第j个神经元对应的权列向量;——隐层到输出层间的
5、权值矩阵;——输出层第k个神经元对应的权列向量;d=——网络期望输出向量。程序可用一般高级语言编写,如C等,但考虑方便,最好采用MATLAB语言,特别是MATLAB环境中开发了工具箱(Toolboxes),其中神经网络开发工具(NeuralNetwork)提供很丰富的手段来完成BP等ANN设计与分析。NeuralNetwork中提供了网络初始化函数用语构建基本网络,可自动生成权值,提供各种转移函数,提供各种训练或学习方法与手段,并实现仿真运算,监视网络训练误差等。BP网络的训练,可概括归纳为输入已知
6、数据,权值初始化,训练网络三大步。用神经网络工具箱训练BP网络,权值初始化和训练网络都可调用BP网络的相应工具函数。调用时,用户只需要将这些工具函数视为黑箱,知道输入什么得到什么即可,不必考虑工具函数内部究竟如何。BP网络的一些重要函数和功能(与版本有关)如表3.1。表3.1BP网络的一些函数及功能函数功能newff创建一前馈BP网络(网络初始化函数)Initff前馈网络初始化(不超3层初始化函数)purelin线性传递(转移)函数tansig正切S型传递函数(双极性S函数)logsig对数正切S型
7、传递函数(单极性S函数)deltalinpurelin神经元的δ函数deltatantansig神经元的δ函数deltaloglogsig神经元的δ函数trainbpBP算法训练函数(标准)trainbpx快速BP算法训练函数trainlmLevenberg-Marquardt训练函数traingd梯度下降训练函数traingdm梯度下降、动量训练函数traingda梯度下降、自适应学习率训练函数traingdx梯度下降、动量和自适应学习训练函数simuff前馈网络仿真函数(网络计算和测试网络)er
8、rsurf计算误差曲面函数plotes绘制误差曲面函数ploterr绘制网络误差相对训练步曲线现行MATLAB工具中,神经元及网络模型表达略有差别。基本神经元模型:传递函数(转移函数):线性传递函数purelin(s)即y=s;对数S型传递函数logsig(s),即y=1/(1+e-s);双曲正切S型传递函数tansig(s)即=tansigs,即y=(1-e-s)/(1+e-s)曲线。3.4.4多层前馈网络的主要能力多层前馈网络是目前应用最多的神经网络,这主要归结于