BP网络逼近非线性函数及其泛化能力的分析
王江
引言
,非线性系统的研究已成为国内外科学研究的热点。复杂非线性系统辨识是非线性系统研究的前提和基础,其中非线性系统的黑箱辨识问题尤为引人注目。而具有良好函数逼近能力的神经网络为非线性系统黑箱辨识提供了一种十分有效的工具。本文选取比较有代表性的BP神经网络对非线性函数的逼近问题进行研究,并通过实际的建模仿真给出了相关的实验结果。
什么是BP网络
BP 神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递, 误差反向传播。在前向传递中,输入信号从输入层经隐含层逐层处理, 直至输出层。每一层的神经元状态只影响下一层神经元状态。如果输出层得不到期望输出, 则转入反向传播,根据预测误差调整网络权值和阈值,从而使B P神经网络预测输出不断逼近期望输出。
开始
初始化,对各连接权赋值
输入训练样本集
前向传播:分别计算隐层、输出层
各神经元的输出
计算对样本产生的误差
满足目标误差
要求
计算输出层上各神经元的梯度值,
并调整该层上神经元的连接权
反向传播:逐层计算各隐层的神经元梯度值,
并调整各连接权值。
Y
N
结束
函数逼近流程图
构建三层BP网络
构建函数:
()中,为构建需的四个条件:
a. 维矩阵, 由R维输入样本的最大最小值组成;
b. 二、三层节点个数;
c. 各层节点作用函数;
d. 训练用函数。
题目要求
(1)采取三层 BP网络,隐层选对称型(正切)S函数,输出节点为线性。算法取L-MBP算法。
(2)用MATLAB仿真,检测网络的逼近效果。
(3)分析网络的泛化能力,比分析各因素对其影响。
(4)分别改变神经网络的中间节点个数、改变学****算法进行比较实验,讨论系统的逼近情况。
逼近对象
如下:
由于作用函数采取S型函数,样本数据和测试数据尽量在[-1,1]之间取。所以样本数据取:
u=-::
测试数据取:
u1=-::
在MATLAB中建立M文件下输入如下命令:
clear all; %清除工作空间中的变量
close all;
u=-:: ;%输入样本集
d=-*(u+);
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')
得到如下图形,即所给的非线性函数曲线图:
BP神经网络用MATLAB逼近非线性函数及其泛化能力的分析 来自淘豆网www.taodocs.com转载请标明出处.