数学建模BP神经网络论文设计

合集下载

2005年A题全国数学建模优秀论文3

2005年A题全国数学建模优秀论文3
+ 0.7193x3 − 0.6910x4 y3 = -0.0076x1 − 0.7399x2 + 0.4626x3 + 0.4883x4 根据线性表达式中的系数及符号,可对各主成分的实际意义作如下解释:第一主成 分为除 x1 之外的三项指标的综合;第二主成分与 x3 成正相关,与 x4 成负相关;第三主成
问题假设
1. 2. 3. 假设干流的自然净化能力是均匀的; 假设两个观测站之间河段的平均流速是等于两个观测站流速的平均值; 假设废水的处理对各类污染程度的河流的影响是均匀的。
符号说明
X1 X2 X3 X4 溶解氧的浓度(DO) 高锰酸盐指数(CODMn) 氨氮浓度(NH3-N) PH 值 污染物的浓度 水流的流量 污染物的降解系数 水流的流速 污染物流过的距离 第 n 个观测站(地区)水流所含污染物的质量 第 n 个观测站(地区)排放污染物的质量 第 i 类污染程度的河流总长度比例 第 t 年排污量
再根据排污量预测值,利用 BP 神经网络对未来十年的不同水质的河长比例进行了 预测。 为了得到排污量与各类水质的河长比例,本文再次利用 BP 神经网络的高精度逼近 能力对排污量与六类水质的河长比例的关系进行拟合。 从而可以得到每年控制污染所应 当处理的废水量:单位(亿吨) 年份 废水处理量 2005 58.2 2006 123.6 2007 133.3 2008 174.3 2009 163.0 2010 189.9 2011 245.4 2012 272.1 2013 300.5 2014 300.7
华南理工大学:李宁、董泽彦、林泽彬,指导教师:陶志穗
有很多传统的系统评估方法比如加权评估法、专家评估法、综合评分法以及层次分 析法都不免受到主观因素不同程度的影响。 而本文使用的基于主成分分析所构造的评估 机制则可以避免主观因素对评估的影响,使得评估结果客观的反映系统状况。 主成分分析方法是一种将多维因子纳入同一系统进行定量化研究、 理论成熟的多元 统计分析方法。通过分析变量之间的相关性,使得所反映信息重叠的变量 被某一主成分替代,减少了变量数目,从而降低了系统评价的复杂性。再以方差贡献率 作为每个主成分的权重,由每个主成分的得分加权即可完成对水质的综合评价。 为了确定主要污染物高锰酸盐指数(CODMn)和氨氮(NH3-N)的主要污染源,我 们需要知道各个地区主要污染物的排放质量。 而本地区污染物的排放质量可以通过当前 观测站的污染物质量与上游对本地区影响部分质量的差值来确定。 通过污染物的降解公 式分析出上游对本地区影响部分质量变化关系, 进而得出本地区污染物排放的质量关系 式。根据长江干流近一年多的基本数据计算出各地区污染物的平均排放速度,进而确定 主要污染源。 长江水质被分为六个级别,代表了不同程度的污染,不同水质河长的比例可以表征 一定时期内的水污染状况。所以说预测长江未来十年的水污染趋势,就是要预测未来不 同水质的河长的比例。对每年的排污量与不同水质河长的比例做一个相关性分析: 第I类 第 II 类 第 III 类 第 IV 类 第V类 劣V类 -0.8058 0.3164 -0.3371 0.3183 0.6624 0.9570 相关系数 可见排污量与不同水质河长的比例有很高的相关性, 与劣 V 类的相关系数更是达到 了 0.9570 的水平, 因此在作对不同水质河长的比例之前, 必须先对未来的排污量有比较 精确的预测。 由于附件中数据样本少,需要预测的时间长,直接应用神经网络很难取得理想的效 果,因此本文采用 GM(1,1)模型与神经网络模型联合预测长江未来十年的水污染趋势, 尝试着首先较精确预测出部分重要的数据, 为建立神经网络预测未来不同水质的河长的 比例提供更多的数据,从而完成对不同水质河长的比例的预测。GM(1,1)模型就可以用 来较好的预测出未来的排污量。

神经网络模型的研究毕业论文

神经网络模型的研究毕业论文

神经网络模型的研究毕业论文简介本文旨在研究神经网络模型在机器研究中的应用。

神经网络是一种模仿人类神经系统工作的数学模型,能够研究输入和输出之间的复杂关系,并通过调整模型参数来提高预测准确度。

本文将探讨神经网络的基本原理、常见的网络结构和训练方法。

神经网络的基本原理神经网络由许多神经元组成,每个神经元接收来自其他神经元的输入,并通过激活函数进行处理,最终产生输出。

神经网络通过不断调整神经元之间的连接权重来研究输入和输出之间的关系。

常见的神经网络结构本文将介绍几种常见的神经网络结构,包括前馈神经网络、卷积神经网络和循环神经网络。

前馈神经网络是最基本的神经网络结构,信息只在一个方向传递。

卷积神经网络在图像处理中有广泛应用,能够从原始像素中提取特征。

循环神经网络则可以处理具有时序关系的数据,如文本和语音。

神经网络的训练方法神经网络的训练是通过优化算法来调整网络参数以减小预测误差。

本文将介绍几种常用的优化算法,包括梯度下降法和反向传播算法。

梯度下降法通过计算损失函数的梯度来更新网络参数,以使预测结果与实际输出更接近。

反向传播算法则是一种高效计算梯度的方法。

实验与结果分析本文将设计并实施几个实验来验证神经网络模型的性能。

通过使用公开的数据集和适当的评估指标,我们将对不同网络结构和训练方法进行比较,并对实验结果进行分析和讨论。

结论神经网络模型在机器研究中有着广泛的应用前景。

本文通过对神经网络的基本原理、常见的网络结构和训练方法的介绍,以及实验结果的分析,为研究和应用神经网络模型提供了有效的参考。

以上为《神经网络模型的研究毕业论文》的大纲。

毕业设计-神经网络控制算法仿真设计

毕业设计-神经网络控制算法仿真设计

摘要目前,由于PID结构简单,可通过调节比例积分和微分取得基本满意的控制性能,广泛应用在电厂的各种控制过程中。

电厂主汽温被控对象是一个大惯性、大迟延、非线性且对象变化的系统,常规汽温控制系统为串级PID控制或导前微分控制,当机组稳定运行时,一般能将主汽温控制在允许的围。

但当运行工况发生较大变化时,却很难保证控制品质。

因此本文研究基于BP神经网络的PID控制,利用神经网络的自学习、非线性和不依赖模型等特性实现PID参数的在线自整定,充分利用PID和神经网络的优点。

本处用一个多层前向神经网络,采用反向传播算法,依据控制要时输出Kp、Ki、Kd,依次作为PID控制器的实时参数,代替传统PID参数靠经验的人工整定和工程整定,以达到对大迟延主气温系统的良好控制。

对这样一个系统在MATLAB平台上进行仿真研究,仿真结果表明基于BP神经网络的自整定PID控制具有良好的自适应能力和自学习能力,对大迟延和变对象的系统可取得良好的控制效果。

关键词:主汽温,PID,BP神经网络,MATLAB仿真ABSTRACTAt present, because PID has a simple structure and can be adjusted proportional 、integral and differential to satisfactory control performance, it is widely used in power plants of various control process. The system of power plant main steam temperature is an large inertia、big time-delayed and nonlinear dynamic system. Conventional steam temperature control system adopted cascade PID control or the differential control of lead before. When the unit is stable, these methods will control the steam temperature in a certain range ,but when operating conditions changed greatly, it is difficult to ensure the quality of control. This article studies PID control based BP neural network . Using such characteristics of neural network self-learning, nonlinear and don't rely on model realize PID parameters auto-tuning. It can make full use of the advantages of PID and neural network. Here, we use a multilayer feedforward neural network using back propagation algorithm. This net can real-time output Kp, Ki, Kd as the PID controller parameters , insteading of the traditional PID parameters determined by experience, so it can obtain good control performance .For such a system ,we can simulate in MATLAB simulation platform. The simulation results show that the PID control based BP neural network has good adaptive ability and self-learning ability. For the system of large delay and free-model can obtain good control effect.KEY WORDS: main steam temperature ,PID ,BP neural network, MATLAB simulation目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1 选题背景和意义 (1)1.2 国外研究现状 (1)1.3 立论依据 (5)1.4 本文所做的主要工作 (6)第二章神经网络的基本原理 (8)2.1 人工神经元模型 (8)2.2 神经网络的学习方式和学习规则 (9)2.2.1 神经网络的学习方式 (9)2.2.2 神经网络的学习规则 (9)2.3 神经网络的特点及应用 (10)2.4 BP神经网络 (11)2.4.1 BP神经网络的结构 (11)2.4.2 BP神经网络的算法 (12)2.5 本章小结 (16)第三章基于BP神经网络的PID控制 (17)3.1 PID控制器的离散差分方程 (17)3.2 基于BP神经网络的PID整定原理 (18)3.3 基于BP神经网络的PID控制算法流程 (22)3.4 本章小结 (22)第四章基于BP神经网络的PID控制在主汽温控制系统中的应用 (23)4.1 主汽温的控制任务 (23)4.2 主汽温被控对象的动态特性 (23)4.3 主汽温控制策略 (24)4.3.1 主汽温控制信号的选择 (24)4.3.2 主汽温控制的两种策略 (26)4.4仿真分析 (27)4.5 本章总结 (34)结论与展望 (35)参考文献 (37)致 (39)第一章绪论1.1 选题背景和意义在控制系统设计中,最主要而又最困难的问题是如何针对复杂、变化及具有不确定性的受控对象和环境作出有效的控制决策。

(采用BP神经网络完成非线性函数的逼近)神经网络

(采用BP神经网络完成非线性函数的逼近)神经网络

控制系统仿真与模型处理设计报告(采用BP神经网络完成非线性函数的逼近)1、题目要求:(1)确定一种神经网络、网络结构参数和学习算法。

(2)选择适当的训练样本和检验样本,给出选取方法。

(3)训练网络使学习目标误差函数达到0.01,写出学习结束后的网络各参数,并绘制学习之前、第100次学习和学习结束后各期望输出曲线、实际输出曲线。

绘制网络训练过程的目标误差函数曲线。

(4)验证网络的泛化能力,给出网络的泛化误差。

绘制网络检验样本的期望输出曲线和网络输出曲线。

(5)分别改变神经网络的中间节点个数、改变网络的层数、改变学习算法进行比较实验,讨论系统的逼近情况,给出你自己的结论和看法。

2、设计方案:在MATLAB中建立M文件下输入如下命令:x=[0:0.01:1];y=2.2*power(x-0.25,2)+sin(5*pi*x);plot(x,y)xlabel('x');ylabel('y');title('非线性函数');得到如下图形,即所给的非线性函数曲线图:构造一个1-7-1的BP神经网络,第一层为输入层,节点个数为1;第二层为隐层,节点个数为7;变换函数选正切s型函数(tansig);第三层为输出层,节点个数为1,输出层神经元传递函数为purelin函数。

并且选Levenberg-Marquardt算法(trainlm)为BP网络的学习算法。

对于该初始网络,我们选用sim()函数观察网络输出。

继续在M函数中如下输入。

net=newff(minmax(x),[1,7,1],{'tansig','tansig','purelin'},'trainlm'); y1=sim(net,x);figure;plot(x,y,'b',x,y1,'r')title('期望输出与实际输出比较');xlabel('t');则得到以下所示训练的BP网络期望输出与实际输出曲线比较:应用函数train()对网络进行训练之前,需要预先设置训练参数。

MATLAB神经网络(2)BP神经网络的非线性系统建模——非线性函数拟合

MATLAB神经网络(2)BP神经网络的非线性系统建模——非线性函数拟合

MATLAB神经⽹络(2)BP神经⽹络的⾮线性系统建模——⾮线性函数拟合2.1 案例背景在⼯程应⽤中经常会遇到⼀些复杂的⾮线性系统,这些系统状态⽅程复杂,难以⽤数学⽅法准确建模。

在这种情况下,可以建⽴BP神经⽹络表达这些⾮线性系统。

该⽅法把未知系统看成是⼀个⿊箱,⾸先⽤系统输⼊输出数据训练BP神经⽹络,使⽹络能够表达该未知函数,然后⽤训练好的BP神经⽹络预测系统输出。

本章拟合的⾮线性函数为y=x12+x22该函数的图形如下图所⽰。

t=-5:0.1:5;[x1,x2] =meshgrid(t);y=x1.^2+x2.^2;surfc(x1,x2,y);shading interpxlabel('x1');ylabel('x2');zlabel('y');title('⾮线性函数');2.2 模型建⽴神经⽹络结构:2-5-1从⾮线性函数中随机得到2000组输⼊输出数据,从中随机选择1900 组作为训练数据,⽤于⽹络训练,100组作为测试数据,⽤于测试⽹络的拟合性能。

2.3 MATLAB实现2.3.1 BP神经⽹络⼯具箱函数newffBP神经⽹络参数设置函数。

net=newff(P, T, S, TF, BTF, BLF, PF, IPF, OPF, DDF)P:输⼊数据矩阵;T:输出数据矩阵;S:隐含层节点数;TF:结点传递函数。

包括硬限幅传递函数hardlim、对称硬限幅传递函数hardlims、线性传递函数purelin、正切型传递函数tansig、对数型传递函数logsig;x=-5:0.1:5;subplot(2,6,[2,3]);y=hardlim(x);plot(x,y,'LineWidth',1.5);title('hardlim');subplot(2,6,[4,5]);y=hardlims(x);plot(x,y,'LineWidth',1.5);title('hardlims');subplot(2,6,[7,8]);y=purelin(x);plot(x,y,'LineWidth',1.5);title('purelin');subplot(2,6,[9,10]);y=tansig(x);plot(x,y,'LineWidth',1.5);title('tansig');subplot(2,6,[11,12]);y=logsig(x);plot(x,y,'LineWidth',1.5);title('logsig');BTF:训练函数。

毕业设计论文基于遗传算法的BP神经网络的优化问题研究.doc

毕业设计论文基于遗传算法的BP神经网络的优化问题研究.doc

编号:审定成绩:重庆邮电大学毕业设计(论文)设计(论文)题目:基于遗传算法的BP神经网络的优化问题研究学院名称:学生姓名:专业:班级:学号:指导教师:答辩组负责人:填表时间:2010年06月重庆邮电大学教务处制摘要本文的主要研究工作如下:1、介绍了遗传算法的起源、发展和应用,阐述了遗传算法的基本操作,基本原理和遗传算法的特点。

2、介绍了人工神经网络的发展,基本原理,BP神经网络的结构以及BP算法。

3、利用遗传算法全局搜索能力强的特点与人工神经网络模型学习能力强的特点,把遗传算法用于神经网络初始权重的优化,设计出混合GA-BP算法,可以在一定程度上克服神经网络模型训练中普遍存在的局部极小点问题。

4、对某型导弹测试设备故障诊断建立神经网络,用GA直接训练BP神经网络权值,然后与纯BP算法相比较。

再用改进的GA-BP算法进行神经网络训练和检验,运用Matlab软件进行仿真,结果表明,用改进的GA-BP算法优化神经网络无论从收敛速度、误差及精度都明显高于未进行优化的BP神经网络,将两者结合从而得到比现有学习算法更好的学习效果。

【关键词】神经网络BP算法遗传算法ABSTRACTThe main research work is as follows:1. Describing the origin of the genetic algorithm, development and application, explain the basic operations of genetic algorithm, the basic principles and characteristics of genetic algorithms.2. Describing the development of artificial neural network, the basic principle, BP neural network structure and BP.3. Using the genetic algorithm global search capability of the characteristics and learning ability of artificial neural network model with strong features, the genetic algorithm for neural network initial weights of the optimization, design hybrid GA-BP algorithm, to a certain extent, overcome nerves ubiquitous network model training local minimum problem.4. A missile test on the fault diagnosis of neural network, trained with the GA directly to BP neural network weights, and then compared with the pure BP algorithm. Then the improved GA-BP algorithm neural network training and testing, use of Matlab software simulation results show that the improved GA-BP algorithm to optimize neural network in terms of convergence rate, error and accuracy were significantly higher than optimized BP neural network, a combination of both to be better than existing learning algorithm learning.Key words:neural network back-propagation algorithms genetic algorithms目录第一章绪论 (1)1.1 遗传算法的起源 (1)1.2 遗传算法的发展和应用 (1)1.2.1 遗传算法的发展过程 (1)1.2.2 遗传算法的应用领域 (2)1.3 基于遗传算法的BP神经网络 (3)1.4 本章小结 (4)第二章遗传算法 (5)2.1 遗传算法基本操作 (5)2.1.1 选择(Selection) (5)2.1.2 交叉(Crossover) (6)2.1.3 变异(Mutation) (7)2.2 遗传算法基本思想 (8)2.3 遗传算法的特点 (9)2.3.1 常规的寻优算法 (9)2.3.2 遗传算法与常规寻优算法的比较 (10)2.4 本章小结 (11)第三章神经网络 (12)3.1 人工神经网络发展 (12)3.2 神经网络基本原理 (12)3.2.1 神经元模型 (12)3.2.2 神经网络结构及工作方式 (14)3.2.3 神经网络原理概要 (15)3.3 BP神经网络 (15)3.4 本章小结 (21)第四章遗传算法优化BP神经网络 (22)4.1 遗传算法优化神经网络概述 (22)4.1.1 用遗传算法优化神经网络结构 (22)4.1.2 用遗传算法优化神经网络连接权值 (22)4.2 GA-BP优化方案及算法实现 (23)4.3 GA-BP仿真实现 (24)4.3.1 用GA直接训练BP网络的权值算法 (25)4.3.2 纯BP算法 (26)4.3.3 GA训练BP网络的权值与纯BP算法的比较 (28)4.3.4 混合GA-BP算法 (28)4.4 本章小结 (31)结论 (32)致谢 (33)参考文献 (34)附录 (35)1 英文原文 (35)2 英文翻译 (42)3 源程序 (47)第一章绪论1.1 遗传算法的起源从生物学上看,生物个体是由细胞组成的,而细胞则主要由细胞膜、细胞质、和细胞核构成。

2011数学建模A题神经网络优秀论文,带代码

2011数学建模A题神经网络优秀论文,带代码

图 1 该城区的地形分布图
首先,我们根据样本点的位置和海拔绘制出该城区的地貌,见图 1。我们运 用 matlab 软件,根据各个网格区域中的重金属含量,用三角形线性插值的方法 得到各种重金属含量在空间上分布的等值线图。
1 图 2-1
2
1 图 2-2
2
图 2-1 给出了 As 在该区域的空间分布:图中可以观察到 As 有两个明显的高 值中心,我们标记为区域 1 和 2。这两个区域都处于工业区分布范围内,并以该 两个区域作为中心向外延伸, 浓度逐渐减少,同时我们注意到在山区的很多区域
Ni
(3211,5686) (24001,12366)
Pb
(1991,3329) (4508,5412)
Zn
(1699,2867) (3725,5487) (9583,4512) (13653,9655)
综合分析所得污染源所在位置,发现不同金属的污染源有同源现象,依据 同源性汇聚污染源,绘制了八种重金属的污染源汇总图。 问题四:神经网络模型的优点是具有较强的自组织、自学习能力、泛化能 力和充分利用了海拔高度的信息;缺点是训练要求样本点容量较大。可以通过搜 集前几年该城区八种重金属浓度的采样数据和近几年工厂分布多少位置的变化、 交通路段车流量的变化、 人口及生活区分布变化与植被分布多少位置的变化等数 据,进一步拓展神经网络模型,得到该城市地质环境的演变模式。
符号
意义
k i j
x ij
xi
表示不同功能区 表示金属的种类 表示不同的样本 表示样本 j 中金属 i 的浓度 表示金属 i 背景值的平均值 表示金属 i 背景值的标准差
表示 x i j 标准化后的值
i
Y ij
i
Ik

BP神经网络原理与应用实习论文

BP神经网络原理与应用实习论文

学年论文(本科)学院数学与信息科学学院专业信息与计算科学专业年级10级4班姓名徐玉琳于正平马孝慧李运凤郭双双任培培论文题目BP神经网络原理与应用指导教师冯志敏成绩2013年 9月 24日BP神经网络的原理与应用1.BP神经网络的原理1.1 BP神经网络的结构BP神经网络模型是一个三层网络,它的拓扑结构可被划分为:输入层(InputLayer )、输出层(Outp ut Layer ) ,隐含层(Hide Layer ).其中,输入层与输出层具有更重要的意义,因此也可以为两层网络结构(把隐含层划入输入层,或者把隐含层去掉)每层都有许多简单的能够执行并行运算的神经元组成,这些神经元与生物系统中的那些神经元非常类似,但其并行性并没有生物神经元的并行性高.BP神经网络的特点:1)网络由多层构成,层与层之间全连接,同一层之间的神经元无连接.2)BP网络的传递函数必须可微.因此,感知器的传递函数-——二值函数在这里没有用武之地.BP网络一般使用Sigmoid函数或线性函数作为传递函数.3)采用误差反向传播算法(Back-Propagation Algorithm)进行学习.在BP 网络中,数据从输入层隐含层逐层向后传播,训练网络权值时,则沿着减少误差的方向,从输出层经过中间各层逐层向前修正网络的连接权值.随着学习的不断进行,最终的误差越来越来小.BP神经网络的学习过程BP神经网络的学习算法实际上就是对误差函数求极小值的算法,它采用的算法是最速下降法,使它对多个样本进行反复的学习训练并通过误差的反向传播来修改连接权系数,它是沿着输出误差函数的负梯度方向对其进行改变的,并且到最后使误差函数收敛于该函数的最小点.1.3 BP网络的学习算法BP网络的学习属于有监督学习,需要一组已知目标输出的学习样本集.训练时先使用随机值作为权值,修改权值有不同的规则.标准的BP神经网络沿着误差性能函数梯度的反向修改权值,原理与LMS算法比较类似,属于最速下降法.拟牛顿算法牛顿法是一种基于二阶泰勒级数的快速优化算法.其基本方法是1(1)()()()x k x k A k g k -+=-式中 ()A k ----误差性能函数在当前权值和阀值下的Hessian 矩阵(二阶导数),即2()()()x x k A k F x ==∇牛顿法通常比较梯度法的收敛速度快,但对于前向型神经网络计算Hessian 矩阵是很复杂的,付出的代价也很大.有一类基于牛顿法的算法不需要二阶导数,此类方法称为拟牛顿法(或正切法),在算法中的Hessian 矩阵用其近似值进行修正,修正值被看成梯度的函数. 1)BFGS 算法在公开发表的研究成果中,你牛顿法应用最为成功得有Boryden,Fletcher,Goldfard 和Shanno 修正算法,合称为BFG 算法. 该算法虽然收敛所需的步长通常较少,但在每次迭代过程所需要的计算量和存储空间比变梯度算法都要大,对近似Hessian 矩阵必须进行存储,其大小为n n ⨯,这里n 网络的链接权和阀值的数量.所以对于规模很大的网络用RPROP 算法或任何一种梯度算法可能好些;而对于规模较小的网络则用BFGS 算法可能更有效. 2)OSS 算法 由于BFGS 算法在每次迭代时比变梯度算法需要更多的存储空间和计算量,所以对于正切近似法减少其存储量和计算量是必要的.OSS 算法试图解决变梯度法和拟牛顿(正切)法之间的矛盾,该算法不必存储全部Hessian 矩阵,它假设每一次迭代时与前一次迭代的Hessian 矩阵具有一致性,这样做的一个有点是,在新的搜索方向进行计算时不必计算矩阵的逆.该算法每次迭代所需要的存储量和计算量介于梯度算法和完全拟牛顿算法之间. 最速下降BP 法最速下降BP 算法的BP 神经网络,设k 为迭代次数,则每一层权值和阀值的修正按下式进行(1)()()x k x k g k α+=-式中()x k —第k 次迭代各层之间的连接权向量或阀值向量;()g k =()()E k x k ∂∂—第k 次迭代的神经网络输出误差对各权值或阀值的梯度向量.负号表示梯度的反方向,即梯度的最速下降方向;α—学习效率,在训练时是一常数.在MATLAB 神经网络工具箱中,,可以通过改变训练参数进行设置;()E K —第k 次迭代的网络输出的总误差性能函数,在MATLAB 神经网络工具箱中BP 网络误差性能函数默认值为均方误差MSE,以二层BP 网络为例,只有一个输入样本时,有2()()E K E e k ⎡⎤=⎣⎦21S≈22221()S i i i t a k =⎡⎤-⎣⎦∑ 222212,1()()()()s ii j i i j a k f w k a k b k =⎧⎫⎪⎪⎡⎤=-⎨⎬⎣⎦⎪⎪⎩⎭∑21221112,,11()(()())()s s i j i j i i i j j f w k f iw k p ib k b k ==⎧⎫⎡⎤⎛⎫⎪⎪=++⎢⎥ ⎪⎨⎬⎢⎥⎝⎭⎪⎪⎣⎦⎩⎭∑∑若有n 个输入样本2()()E K E e k ⎡⎤=⎣⎦21nS ≈22221()S ii i ta k =⎡⎤-⎣⎦∑根据公式和各层的传输函数,可以求出第k 次迭代总误差曲面的梯度()g k =()()E k x k ∂∂,分别代入式子便可以逐次修正其权值和阀值,并是总的误差向减小的方向变化,直到达到所需要的误差性能为止. 1.4 BP 算法的改进BP 算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP 算法存在以下缺点:收敛速度缓慢;容易陷入局部极小值;难以确定隐层数和隐层节点个数.在实际应用中,BP 算法很难胜任,因此出现了很多改进算.利用动量法改进BP 算法标准BP 算法实质上是一种简单的最速下降静态寻优方法,在修正W(K)时,只按照第K 步的负梯度方向进行修正,而没有考虑到以前积累的经验,即以前时刻的梯度方向,从而常常使学习过程发生振荡,收敛缓慢.动量法权值调整算法的具体做法是:将上一次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,即:其中:α为动量系数,通常0<α<0.9;η—学习率,范围在0.001~10之间.这种方法所加的动量因子实际上相当于阻尼项,它减小了学习过程中的振荡趋势,从而改善了收敛性.动量法降低了网络对于误差曲面局部细节的敏感性,有效的抑制了网络陷入局部极小.自适应调整学习速率标准BP算法收敛速度缓慢的一个重要原因是学习率选择不当,学习率选得太小,收敛太慢;学习率选得太大,则有可能修正过头,导致振荡甚至发散.可采用图所示的自适应方法调整学习率.调整的基本指导思想是:在学习收敛的情况下,增大η,以缩短学习时间;当η偏大致使不能收敛时,要及时减小η,直到收敛为止.动量-自适应学习速率调整算法采用动量法时,BP算法可以找到更优的解;采用自适应学习速率法时,BP算法可以缩短训练时间.将以上两种方法结合起来,就得到动量-自适应学习速率调整算法.1. L-M学习规则L-M(Levenberg-Marquardt)算法比前述几种使用梯度下降法的BP算法要快得多,但对于复杂问题,这种方法需要相当大的存储空间L-M(Levenberg-Marquardt)优化方法的权值调整率选为:其中:e —误差向量;J —网络误差对权值导数的雅可比(Jacobian )矩阵;μ—标量,当μ很大时上式接近于梯度法,当μ很小时上式变成了Gauss-Newton 法,在这种方法中,μ也是自适应调整的. 1.5 BP 神经网络的设计 网络的层数输入层节点数取决于输入向量的维数.应用神经网络解决实际问题时,首先应从问题中提炼出一个抽象模型,形成输入空间和输出空间.因此,数据的表达方式会影响输入向量的维数大小.例如,如果输入的是64*64的图像,则输入的向量应为图像中所有的像素形成的4096维向量.如果待解决的问题是二元函数拟合,则输入向量应为二维向量.理论上已证明:具有偏差和至少一个S 型隐含层加上一个线性输出层的网络,能够逼近任何有理数.增加层数可以更进一步的降低误差,提高精度,但同时也使网络复杂化,从而增加了网络权值的训练时间.而误差精度的提高实际上也可以通过增加神经元数目来获得,其训练效果也比增加层数更容易观察和调整.所以一般情况下,应优先考虑增加隐含层中的神经元数. 隐含层的神经元数网络训练精度的提高,可以通过采用一个隐含层,而增加神经元数了的方法来获得.这在结构实现上,要比增加隐含层数要简单得多.那么究竟选取多少隐含层节点才合适?这在理论上并没有一个明确的规定.在具体设计时,比较实际的做法是通过对不同神经元数进行训练对比,然后适当地加上一点余量.1)0niMi C k =>∑,k 为样本数,M 为隐含层神经元个数,n 为输入层神经元个数.如i>M,规定C i M =0.2)和n 分别是输出层和输入层的神经元数,a 是[0.10]之间的常量.3)M=2log n ,n 为输入层神经元个数.初始权值的选取由于系统是非线性的,初始值对于学习是否达到局部最小、是否能够收敛及训练时间的长短关系很大.如果初始值太大,使得加权后的输入和n落在了S型激活函数的饱和区,从而导致其导数f (n)非常小,从而使得调节过程几乎停顿下来.所以一般总是希望经过初始加权后的每个神经元的输出值都接近于零,这样可以保证每个神经元的权值都能够在它们的S型激活函数变化最大之处进行调节.所以,一般取初始权值在(-1,1)之间的随机数.学习速率学习速率决定每一次循环训练中所产生的权值变化量.大的学习速率可能导致系统的不稳定;但小的学习速率导致较长的训练时间,可能收敛很慢,不过能保证网络的误差值不跳出误差表面的低谷而最终趋于最小误差值.所以在一般情况下,倾向于选取较小的学习速率以保证系统的稳定性.学习速率的选取范围在0.01-0.8之间.1.6BP神经网络局限性需要参数多且参数选择没有有效的方法对于一些复杂问题 ,BP 算法可能要进行几小时甚至更长的时间训练,这主要是由于学习速率太小所造成的.标准BP 网络学习过程缓慢,易出现平台,这与学习参数率l r的选取有很大关系.当l r较时,权值修改量大,学习速率也快,但可能产生振荡;当l r较小时,虽然学习比较平稳,但速度十分缓慢.容易陷入局部最优BP网络易陷入局部最小, 使 BP网络不能以高精度逼近实际系统.目前对于这一问题的解决有加入动量项以及其它一些方法.BP 算法本质上是以误差平方和为目标函数 , 用梯度法求其最小值的算法.于是除非误差平方和函数是正定的, 否则必然产生局部极小点, 当局部极小点产生时 , BP算法所求的就不是解.1.6.3 样本依赖性这主要表现在网络出现的麻痹现象上.在网络的训练过程中,如其权值调的过大,可能使得所有的或大部分神经元的加权值偏大,这使得激活函数的输入工作在S型转移函数的饱和区,从而导致其导函数非常小,使得对网络权值的调节过程几乎停顿下来.通常为避免这种现象的发生,一是选取较小的初始权值,二是采用较小的学习速率,但又要增加时间训练.初始权敏感对于一些复杂的问题,BP算法可能要进行几个小时甚至更长时间的训练.这主要是由于学习速率太小造成的.可采用变化的学习速率或自适应的学习速率来加以改进.2.BP神经网络应用2.1 手算实现二值逻辑—异或这个例子中,采用手算实现基于BP网络的异或逻辑.训练时采用批量训练的方法,训练算法使用带动量因子的最速下降法.在MATLAB中新建脚本文件main_xor.m,输入代码如下:%脚本%批量训练方式.BP网络实现异或逻辑%%清理clear allclcrand('seed',2)eb = 0.01; %误差容限eta = 0.6; %学习率mc = 0.8; %动量因子maxiter = 1000; %最大迭代次数%% 初始化网络nSampNum = 4;nSampDim = 2;nHidden = 3;nOut = 1;w = 2*(rand(nHidden,nSampDim)-1/2);b = 2*(rand(nHidden,1)-1/2);wex = [w,b];W = 2*(rand(nOut,nHidden)-1/2);B = 2*(rand(nOut,1)-1/2);WEX = [W,B];%%数据SampIn=[0,0,1,1;...0,1,0,1;…1,1,1,1];expected = [0,1,1,0];%%训练iteration = 0;errRec = [];outRec =[];for i = 1:maxiter% 工作信号正向传播hp = wex*SampIn;tau = logsig(hp);tauex = [tau',1*ones(nSampNum,1)]';HM = WEX*tauex;out = logsig(HM);outRec = [outRec,out'];err = expected - out;sse = sumsqr(err);errRec = [errRec,sse];fprintf('第%d 次迭代,误差:%f \n',i,sse);% 判断是否收敛iteration = iteration + 1;if sse <= ebbreak;end% 误差信号反向传播% DELTA 和delta 为局部梯度DELTA = err.*dlogsig(HM,out);delta = W' * DELTA.*dlogsig(hp,tau);dWEX = DELTA*tauex';dwex = delta*SampIn';% 更新权值if i == 1WEX = WEX + eta*dWEX;wex = wex + eta*dwex;elseWEX = WEX + (1-mc)*eta*dWEX + mc*dWEXold;wex = wex + (1-mc)*eta*dwex+mc*dwexold;enddWEXold = dWEX;dwexold = dwex;W = WEX(:,1:nHidden);end%%显示figure(1)grid[nRow,nCol]=size(errRec);semilogy(1:nCol,errRec,'LineWidth',1.5);title('误差曲线');xlabel('迭代次数');x=-0.2:.05:1.2;[xx,yy] = meshgrid(x);for i=1:length(xx)for j=1:length(yy)xi=[xx(i,j),yy(i,j),1];hp = wex*xi';tau = logsig(hp);tauex = [tau',1]';HM = WEX*tauex;out = logsig(HM);z (i,j) =out;endendfigure(2)mesh(x,x,z);figure(3)plot([0,1],[0,1],'*','LineWidth',2);hold onplot([0,1],[1,0],'O','LineWidth',2);[c,h]=contour(x,x,z,0.5,'b');clabel(c,h);legend('0','1','分类面');title('分类面')2.2 误差下降曲线如下图所示:Finger 1010*******400500600700800900100010-210-110误差曲线迭代次数网格上的点在BP 网络映射下的输出如下图:Finger 2异或本质上是一个分类问题,,分类面如图:Finger 3分类面-0.200.20.40.60.81 1.2本文介绍了神经网络的研究背景和现状,分析了目前神经网络研究中存在的问题.然后描述了BP神经网络算法的实现以及BP神经网络的工作原理,给出了BP网络的局限性.本文虽然总结分析了BP神经网络算法的实现,给出了实例分析,但是还有很多的不足.所总结的BP神经网络和目前研究的现状都还不够全面,经过程序调试的图形有可能都还存在很多细节上的问题,而图形曲线所实现效果都还不够好,以及结果分析不够全面、正确、缺乏科学性等,这些都还是需加强提高的.近几年的不断发展,神经网络更是取得了非常广泛的应用,和令人瞩目的发展.在很多方面都发挥了其独特的作用,特别是在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别等众多方面的应用实例,给人们带来了很多应用上到思考,和解决方法的研究.但是神经网络的研究最近几年还没有达到非常热门的阶段,这还需有很多热爱神经网络和研究神经网络人员的不断研究和创新,在科技高度发达的现在,我们有理由期待,也有理由相信.我想在不久的将来神经网络会应用到更多更广的方面,人们的生活会更加便捷.学年论文成绩评定表。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

BP 神经网络算法原理:输入信号i x 通过中间节点(隐层点)作用于输出节点,经过非线形变换,产生输出信号k y ,网络训练的每个样本包括输入向量x 和期望输出量d ,网络输出值y 与期望输出值d 之间的偏差,通过调整输入节点与隐层节点的联接强度取值ij w 和隐层节点与输出节点之间的联接强度jk T 以及阈值,使误差沿梯度方向下降,经过反复学习训练,确定与最小误差相对应的网络参数(权值和阈值),训练即告停止。

此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。

变量定义:设输入层有n 个神经元,隐含层有p 个神经元,输出层有q 个神经元输入向量:()12,,,n x x x x =L隐含层输入向量:()12,,,p hi hi hi hi =L隐含层输出向量:()12,,,p ho ho ho ho =L输出层输入向量:()12,,,q yi yi yi yi =L输出层输出向量:()12,,,q yo yo yo yo =L期望输出向量: ()12,,,q do d d d =L输入层与中间层的连接权值: ih w隐含层与输出层的连接权值: ho w隐含层各神经元的阈值:h b输出层各神经元的阈值: o b样本数据个数: 1,2,k m =L激活函数: ()f ⋅ 误差函数:211(()())2qo o o e d k yo k ==-∑算法步骤:Step1.网络初始化 。

给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e ,给定计算精度值ε和最大学习次数M 。

Step2.随机选取第k 个输入样本()12()(),(),,()n x k x k x k x k =L 及对应期望输出()12()(),(),,()q d k d k d k d k =L oStep3.计算隐含层各神经元的输入()1()()1,2,,nh ih i h i hi k w x k b h p ==-=∑L 和输出()()(())1,2,,h h ho k f hi k h p ==L 及输出层各神经元的输入()1()()1,2,p o ho h o h yi k w ho k b o q ==-=∑L 和输出()()(())1,2,,o o yo k f yi k o p ==LStep4.利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数()o k δ。

o ho o hoyi e e w yi w ∂∂∂=∂∂∂ (())()()p ho h o o h h ho ho w ho k b yi k ho k w w ∂-∂==∂∂∑211((()()))2(()())()(()())f (())()qo o o o o o o oo o o o d k yo k e d k yo k yo k yi yi d k yo k yi k k δ=∂-∂'==--∂∂'=---∑@ Step5.利用隐含层到输出层的连接权值、输出层的()o k δ和隐含层的输出计算误差函数对隐含层各神经元的偏导数()h k δ。

()()o o h ho o hoyi e e k ho k w yi w δ∂∂∂==-∂∂∂ 1()()(())()()h ih h ihn ih i h h i i ih ih hi k e e w hi k w w x k b hi k x k w w =∂∂∂=∂∂∂∂-∂==∂∂∑212121111((()()))()2()()()1((()f(())))()2()()1(((()f(())))()2()()(()())f (())qo o o h h h h qo o o h h h qp o ho h o o h h h h o o o hoo d k yo k ho k e hi k ho k hi k d k yi k ho k ho k hi k d k w ho k b ho k ho k hi k d k yo k yi k w =====∂-∂∂=∂∂∂∂-∂=∂∂∂--∂=∂∂'=--∑∑∑∑1()()(())f (())()q h h qo ho h h o ho k hi k k w hi k k δδ=∂∂'=--∑∑@ Step6.利用输出层各神经元的()o k δ和隐含层各神经元的输出来修正连接权值()ho w k 。

1()()()()()ho o h ho N N ho ho o h e w k k ho k w w w k ho k μμδηδ+∂∆=-=∂=+Step7.利用隐含层各神经元的()h k δ和输入层各神经元的输入修正连接权()ih w k 。

1()()()()()()()h ih h i ih h ih N N ih ih h i hi k e e w k k x k w hi k w w w k x k μμδηδ+∂∂∂∆=-=-=∂∂∂=+Step8.计算全局误差。

2111(()())2qm o o k o E d k y k m ===-∑∑ Step9.判断网络误差是否满足要求。

当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。

否则,选取下一个学习样本及对应的期望输出,返回到第三步,进入下一轮学习。

算法流程图:参数确定:确定了网络层数、每层节点数、传递函数、初始权系数、学习算法等也就确定了BP网络。

确定这些选项时有一定的指导原则,但更多的是靠经验和试凑。

1. 样本数据采用BP神经网络方法建模的首要和前提条件是有足够多典型性好和精度高的样本。

而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型的性能和泛化能力,必须将收集到的数据随机分成训练样本、检验样本(10%以上)和测试样本(10%以上)3部分。

2.输入/输出变量一般地,BP 网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般根据专业知识确定。

若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。

输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。

一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。

3.数据的预处理由于BP 神经网络的隐层一般采用Sigmoid 转换函数,为提高训练速度和灵敏性以及有效避开Sigmoid 函数的饱和区,一般要求输入数据的值在0~1之间。

因此,要对输入数据进行预处理。

一般要求对不同变量分别进行预处理,也可以对类似性质的变量进行统一的预处理。

如果输出层节点也采用Sigmoid 转换函数,输出变量也必须作相应的预处理,否则,输出变量也可以不做预处理。

但必须注意的是,预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。

再者,为保证建立的模型具有一定的外推能力,最好使数据预处理后的值在0.2~0.8之间。

标准化:min max mind d d d d αβ-'=⨯+- 4.隐层数一般认为,增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合(overfitting)” 造成网络的性能脆弱,泛化能力(generalization ability)下降。

Hornik 等早已证明:若输入层和输出层采用线性转换函数,隐层采用Sigmoid 转换函数,则含一个隐层的MLP 网络能够以任意精度逼近任何有理函数。

显然,这是一个存在性结论。

在设计BP 网络时可参考这一点,应优先考虑3层BP 网络(即有1个隐层)。

图 三层BP 网络的拓扑结构5.隐层节点数1 x2 x 1 N x在BP 网络中,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因,但是目前理论上还没有一种科学的和普遍的确定方法。

为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。

因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。

6.传递函数图BP网络常用的传递函数BP网络的传递函数有多种。

Log-sigmoid型函数的输入值可取任意值,输出值在0和1之间;tan-sigmod型传递函数tansig的输入值可取任意值,输出值在-1到+1之间;线性传递函数purelin的输入与输出值可取任意值。

BP网络通常有一个或多个隐层,该层中的神经元均采用sigmoid型传递函数,输出层的神经元则采用线性传递函数,整个网络的输出可以取任意值。

7.学习率学习率影响系统学习过程的稳定性。

大的学习率可能使网络权值每一次的修正量过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛;但过小的学习率导致学习时间过长,不过能保证收敛于某个极小值。

所以,一般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在0.01~0.8之间。

8.网络的初始连接权值BP算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值直接决定了BP算法收敛于哪个局部极小点或是全局极小点。

因此,要求计算程序必须能够自由改变网络初始连接权值。

由于Sigmoid转换函数的特性,一般要求初始权值分布在-0.5~0.5之间比较有效。

10.收敛误差界值Emin在网络训练过程中应根据实际情况预先确定误差界值。

误差界值的选择完全根据网络模型的收敛速度大小和具体样本的学习精度来确定。

当Emin 值选择较小时,学习效果好,但收敛速度慢,训练次数增加。

如果Emin值取得较大时则相反。

网络模型的性能和泛化能力:训练神经网络的首要和根本任务是确保训练好的网络模型对非训练样本具有好的泛化能力(推广性),即有效逼近样本蕴含的内在规律,而不是看网络模型对训练样本的拟合能力。

判断建立的模型是否已有效逼近样本所蕴含的规律, 主要不是看测试样本误差大小的本身,而是要看测试样本的误差是否接近于训练样本和检验样本的误差。

非训练样本误差很接近训练样本误差或比其小,一般可认为建立的网络模型已有效逼近训练样本所蕴含的规律,否则,若相差很多(如几倍、几十倍甚至上千倍)就说明建立的网络模型并没有有效逼近训练样本所蕴含的规律,而只是在这些训练样本点上逼近而已,而建立的网络模型是对训练样本所蕴含规律的错误反映。

相关文档
最新文档