BP神经网络用MATLAB逼近非线性函数及其泛化能力的分析.

  • 格式:ppt
  • 大小:300.50 KB
  • 文档页数:37

下载文档原格式

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

得到如下图形,即所给的非线性函 数曲线图:
构造三层BP神经网络
继续在M函数中如下输入: net=newff(minmax(u),[3,1],{'tansig','purelin'},'traingda'); %设计网络结构N1,3,1, y=sim(net,u); %仿真 figure(2); plot(u,d,'bo',u,y,'r*');ylabel('输出样本集d(o) 网络输出 y(*)','color','r'); xlabel('输入样本集u')
• 下面是一些对泛化能力的分析:
1. 训练样本集的选取
学习训练的样本对神经网络的泛化能力也有很大的影响。数据样 本到底为多少才合适呢?如果样本集中的样本数量太少,则神经网络 在学习的过程中就不能很好地掌握和学习蕴涵于样本集中的内在规律 和相互关系,同时在验证样本集中就不能得到合理的推理结果;若学 习样本数量过大,不仅影响了网络的学习时间,而且使网络与学习数 据太贴近,导致网络的抽取归纳能力下降。一般情况下,学习样本与 网络拓扑结构之间存在如下的关系
clear all; close all; %清除工作空间中的变量
u=-0.4:0.04:0.36 ;%输入样本集 d=-1.9*(u+0.5); d=exp(d); d=d.*sin(10*u) ;%输出样本集:非线性函数d figure(1); plot(u,d,'bo');ylabel('输出样本集d=f(u)','color','r'); xlabel('输入样本集u','color','r')
得到如下测试图,依然能够很好地逼近函数。
泛化能力的分析
• 什么是泛化能力:
•Βιβλιοθήκη Baidu
神经网络的泛化能力(generalization Ability)。是指用较少的样
本就行训练,是网络能对未经训练的输入也能给出合适的输出。泛化 能力是衡量BP神经网络性能优劣的一个重要方面。因此,没有泛化能 力的神经网络无任何使用价值。如何进一步提高BP网络的泛化能力, 一直是人们关心和研究的热点,同时也是一个难题。由于网络的泛化 能力涉及到训练的算法、输入数据的处理、网络建模等多个方面,情 况复杂,需要更深入的研究。
(n m 1) p 1 h m
式中:n为输入变量数目;m为输出变量数目;h为隐含节点数目;p为输 入学习样本数目。
2.隐层节点的选取
则得到以下所示未经训练的BP网络期 望输出与实际输出曲线比较
接着对函数进行训练
在M文件中输入如下函数:
net.trainParam.goal=0.001;
net=train(net,u,d);
%训练精度设置 为0.001 %网络训练
经过1183次训练达到了要求
经过训练后可以看到网络输出基本与样本输出 一致。这说明经过训练后, BP 网络对非线性 函数的逼近效果相当好。
逼近对象
如下:
f (u) e[ 1.9(u 0.5)] sin(10u)
由于作用函数采取S型函数,样本数据和测试数据尽量在[-1,1] 之间取。所以样本数据取: u=-0.4:0.04:0.36 测试数据取: u1=-0.48:0.05:0.47
在MATLAB中建立M文件下输入 如下命令:
什么是BP网络
• BP 神经网络是一种多层前馈神经网络,该网络的主
要特点是信号前向传递, 误差反向传播。在前向传 递中,输入信号从输入层经隐含层逐层处理 , 直至 输出层。每一层的神经元状态只影响下一层神经 元状态。如果输出层得不到期望输出, 则转入反向 传播,根据预测误差调整网络权值和阈值 ,从而使 B P神经网络预测输出不断逼近期望输出。
开始
初始化,对各连接权赋值 输入训练样本集 前向传播:分别计算隐层、输出层 各神经元的输出 计算对样本产生的误差 满足目标误差 要求 Y
结束
N 计算输出层上各神经元的梯度值, 并调整该层上神经元的连接权 反向传播:逐层计算各隐层的神经元梯度值, 并调整各连接权值。
函 数 逼 近 流 程 图
构建三层BP网络
再测试输入几组数据,验证一下
• • • • • • •
u1=-0.48:0.05:0.47 %测试输入集 d1=-1.9*(u1+0.5); d1=exp(d1); d1=d1.*sin(10*u1); %测试数据集 y1=sim(net,u1); %仿真 figure(3); plot(u1,y1,'go',u1,d1,'r*');ylabel('测试数据集d1(*) 网络输出y1(o)','color','r'); xlabel('测试输入集u1','color','r') ;
构建函数:

newff (a, b, c, d )
• ()中,为构建需的四个条件: • • • • a. R 2 维矩阵, 由R维输入样本的最大最小值组成; b. 二 、 三层节点个数; c. 各层节点作用函数; d. 训练用函数。
常用训练函数
算法名称 • 1. • 2. 动量BP算法 自适应步长的BP算法 Matlab函数 Traingdm Traingda
• 3.
• 4.
自适应步长的动量BP算法
弹性BP算法
Traingdx
Trainrp
题目要求
• (1)采取三层N1,3,1BP网络,隐层选对称型(正切)S函数, 输出节点为线性。算法取L-MBP算法。
• (2)用MATLAB仿真,检测网络的逼近效果。 • (3)分析网络的泛化能力,比分析各因素对其影响。 • (4)分别改变神经网络的中间节点个数、改变学习算法 进行比较实验,讨论系统的逼近情况。
BP网络逼近非线性函数及其泛 化能力的分析
王江
引言
函数逼近问题是神经网络研究的基本问题 之一.目前,非线性系统的研究已成为国内外科 学研究的热点。复杂非线性系统辨识是非线性 系统研究的前提和基础,其中非线性系统的黑 箱辨识问题尤为引人注目。而具有良好函数逼 近能力的神经网络为非线性系统黑箱辨识提供 了一种十分有效的工具。本文选取比较有代表 性的BP神经网络对非线性函数的逼近问题进行 研究,并通过实际的建模仿真给出了相关的实 验结果。