用MATLAB建立bp神经网络模型,求高手,在线等

2024-05-23 19:27

1. 用MATLAB建立bp神经网络模型,求高手,在线等

Matlab神经网络工具箱提供了一系列用于建立和训练bp神经网络模型的函数命令,很难一时讲全。下面仅以一个例子列举部分函数的部分用法。更多的函数和用法请仔细查阅Neural Network Toolbox的帮助文档。

例子:利用bp神经网络模型建立z=sin(x+y)的模型并检验效果

%第1步。随机生成200个采样点用于训练
x=unifrnd(-5,5,1,200);
y=unifrnd(-5,5,1,200);
z=sin(x+y);
%第2步。建立神经网络模型。其中参数一是输入数据的范围,参数二是各层神经元数量,参数三是各层传递函数类型。
N=newff([-5 5;-5 5],[5,5,1],{'tansig','tansig','purelin'});
%第3步。训练。这里用批训练函数train。也可用adapt函数进行增长训练。
N=train(N,[x;y],z);
%第4步。检验训练成果。
[X,Y]=meshgrid(linspace(-5,5));
Z=sim(N,[X(:),Y(:)]');
figure
mesh(X,Y,reshape(Z,100,100));
hold on;
plot3(x,y,z,'.')

用MATLAB建立bp神经网络模型,求高手,在线等

2. matlab BP神经网络

从原理上来说,神经网络是可以预测未来的点的。
实际上,经过训练之后,神经网络就拟合了输入和输出数据之间的函数关系。只要训练的足够好,那么这个拟合的关系就会足够准确,从而能够预测在其他的输入情况下,会有什么样的输出。
如果要预测t=[6 7]两点的R值,先以t=[1 2 3 4 5]作为输入,R=[12 13 14 14 15]作为输出,训练网络。训练完成之后,用t=[2 3 4 5 6]作为输入,这样会得到一个输出。不出意外的话,输出的数组应该是[13 14 14 15 X],这里的X就是预测t=6时的R值。然后以t=[3 4 5 6 7]作为输入,同理得到t=7时候的R值。
根据我的神经网络预测,t=6时,R=15,t=7时,R=15。我不知道这个结果是否正确,因为神经网络通常需要大量的数据来训练,而这里给的数据似乎太少,可能不足以拟合出正确的函数。

3. matlab7.0做BP神经网络预测,精度怎么看?

应该是点performance那个按钮,显示一个误差下降曲线图。

事实上,不需过分关注这条曲线,除非是研究改进算法提高收敛速度的。一般关注网络的实际训练效果,以及实际应用能力,如预测能力等。

BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hidden layer)和输出层(output layer)。

matlab7.0做BP神经网络预测,精度怎么看?

4. 如何建立bp神经网络预测 模型

建立BP神经网络预测 模型,可按下列步骤进行:
1、提供原始数据
2、训练数据预测数据提取及归一化
3、BP网络训练
4、BP网络预测
5、结果分析
现用一个实际的例子,来预测2015年和2016年某地区的人口数。
已知2009年——2014年某地区人口数分别为3583、4150、5062、4628、5270、5340万人
执行BP_main程序,得到
[ 2015,  5128.631704710423946380615234375]
[ 2016, 5100.5797325642779469490051269531]
代码及图形如下。

5. matlab仿真-利用Matlab构造BP神经网络完成变压器故障诊断

亲您好。MATLAB中的BP神经网络可以用来完成变压器故障诊断,构造BP神经网络的过程就是训练过程,训练的目的是使权值参数趋于最优,以实现一定的准确度。【摘要】
matlab仿真-利用Matlab构造BP神经网络完成变压器故障诊断【提问】
亲您好。MATLAB中的BP神经网络可以用来完成变压器故障诊断,构造BP神经网络的过程就是训练过程,训练的目的是使权值参数趋于最优,以实现一定的准确度。【回答】
亲可以先构建一个神经网络,给定输入输出范围,然后进行模型训练,直到模型收敛。【回答】
亲训练完成后,就可以利用模型对变压器故障进行诊断了。【回答】
有没有源程序【提问】
或程序代码【提问】
【提问】
【提问】
亲没有【回答】

matlab仿真-利用Matlab构造BP神经网络完成变压器故障诊断

6. 用Matlab算BP神经网络的具体算法?

BP神经网络的传递函数一般采用sigmiod函数,学习算法一般采用最小梯度下降法;下面是具体的程序例子:
例1 采用动量梯度下降算法训练 BP 网络。
训练样本定义如下:
输入矢量为    
 p =[-1 -2 3  1 
     -1  1 5 -3]
目标矢量为   t = [-1 -1 1 1]
解:本例的 MATLAB 程序如下:
 
close all 
clear 
echo on 
clc 
% NEWFF——生成一个新的前向神经网络
% TRAIN——对 BP 神经网络进行训练
% SIM——对 BP 神经网络进行仿真
pause        
%  敲任意键开始
clc 
%  定义训练样本
% P 为输入矢量
P=[-1,  -2,    3,    1;       -1,    1,    5,  -3];
% T 为目标矢量
T=[-1, -1, 1, 1]; 
pause; 
clc 
%  创建一个新的前向神经网络
net=newff(minmax(P),[3,1],{'tansig','purelin'},'traingdm')
%  当前输入层权值和阈值
inputWeights=net.IW{1,1} 
inputbias=net.b{1} 
%  当前网络层权值和阈值
layerWeights=net.LW{2,1} 
layerbias=net.b{2} 
pause 
clc 
%  设置训练参数
net.trainParam.show = 50; 
net.trainParam.lr = 0.05; 学习速率
net.trainParam.mc = 0.9; 动量系数
net.trainParam.epochs = 1000; 
net.trainParam.goal = 1e-3; 
pause 
clc 
%  调用TRAINGDM 算法训练 BP 网络
[net,tr]=train(net,P,T); 
pause 
clc 
%  对 BP 网络进行仿真
A = sim(net,P) 
%  计算仿真误差
E = T - A 
MSE=mse(E) 
pause 
clc 
echo off

7. 神经网络——BP算法

对于初学者来说,了解了一个算法的重要意义,往往会引起他对算法本身的重视。BP(Back Propagation,后向传播)算法,具有非凡的历史意义和重大的现实意义。
  
 1969年,作为人工神经网络创始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一书,论证了简单的线性感知器功能有限,不能解决如“异或”(XOR )这样的基本问题,而且对多层网络也持悲观态度。这些论点给神经网络研究以沉重的打击,很多科学家纷纷离开这一领域,神经网络的研究走向长达10年的低潮时期。[1]
  
 1974年哈佛大学的Paul Werbos发明BP算法时,正值神经外网络低潮期,并未受到应有的重视。[2]
  
 1983年,加州理工学院的物理学家John Hopfield利用神经网络,在旅行商这个NP完全问题的求解上获得当时最好成绩,引起了轰动[2]。然而,Hopfield的研究成果仍未能指出明斯基等人论点的错误所在,要推动神经网络研究的全面开展必须直接解除对感知器——多层网络算法的疑虑。[1]
  
 真正打破明斯基冰封魔咒的是,David Rumelhart等学者出版的《平行分布处理:认知的微观结构探索》一书。书中完整地提出了BP算法,系统地解决了多层网络中隐单元连接权的学习问题,并在数学上给出了完整的推导。这是神经网络发展史上的里程碑,BP算法迅速走红,掀起了神经网络的第二次高潮。[1,2]
  
  因此,BP算法的历史意义:明确地否定了明斯基等人的错误观点,对神经网络第二次高潮具有决定性意义。 
  
 这一点是说BP算法在神经网络领域中的地位和意义。
  
  BP算法是迄今最成功的神经网络学习算法,现实任务中使用神经网络时,大多是在使用BP算法进行训练[2],包括最近炙手可热的深度学习概念下的卷积神经网络(CNNs)。 
  
  
 BP神经网络是这样一种神经网络模型,它是由一个输入层、一个输出层和一个或多个隐层构成,它的激活函数采用sigmoid函数,采用BP算法训练的多层前馈神经网络。
  
 BP算法全称叫作误差反向传播(error Back Propagation,或者也叫作误差逆传播)算法。其算法基本思想为:在2.1所述的前馈网络中,输入信号经输入层输入,通过隐层计算由输出层输出,输出值与标记值比较,若有误差,将误差反向由输出层向输入层传播,在这个过程中,利用梯度下降算法对神经元权值进行调整。
  
 BP算法中核心的数学工具就是微积分的 链式求导法则 。
  
                                                                                  
 
  
                                          
 
  
                                                                                                                                                                                                                                                  
 BP算法的缺点,首当其冲就是局部极小值问题。
  
 BP算法本质上是梯度下降,而它所要优化的目标函数又非常复杂,这使得BP算法效率低下。
  
  
 [1]、《BP算法的哲学思考》,成素梅、郝中华著
  
 [2]、《机器学习》,周志华著
  
 [3]、 Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现  
  
 2016-05-13 第一次发布
  
 2016-06-04 较大幅度修改,完善推导过程,修改文章名
  
  
 2016-07-23 修改了公式推导中的一个错误,修改了一个表述错误

神经网络——BP算法

8. BP神经网络的非线性系统建模

 在工程应用中经常会遇到一些复杂的非线性系统(我们航空发动机就是典型的强非线性模型),这些系统状态方程复杂,难以用数学方法准确建模。在这种情况下,可以建立BP神经网络表达这些非线性系统。该方法把未知系统看成黑箱,首先用系统输入输出数据训练BP神经网络,使网络能够表达该未知函数,然后用训练好的BP神经网络预测系统输出。   本文要拟合的非线性函数是
                                           该函数的图形如下图1所示。
                                           回顾上一篇文章建立BP网络的算法流程,进行具有非线性函数拟合的BP网络可以分为网络构建、训练和预测三步,如下图2所示。
                                            BP神经网络构建 根据要拟合的非线性函数特点确定BP网络结构,由于该非线性函数有两个输入参数,一个输出参数,所以BP网络结构可以设置为2-5-1,即输入层有2个节点,隐含层有5个节点,输出层有1个节点。    BP神经网络训练 用非线性函数输入输出数据训练神经网络,使训练后的网络能够预测非线性函数输出。从非线性函数中随机得到2 000组输入输出数据,从中随机选择1 900组作为训练数据,用于网络训练,100组作为测试数据,用于测试网络的拟合性能。    神经网络预测 用训练好的网络预测输出,并对预测结果进行分析。
   根据非线性函数方程随机得到该函数的2 000组输入输出数据,将数据存储在data.mat文件中,input是函数输入数据,output是函数输出数据。从输入输出数据中随机选取1 900组数据作为网络训练数据,100组作为网络测试数据,并对训练数据进行归一化处理。
   用训练数据训练BP神经网络,使网络对非线性函数输出具有预测能力。
   用训练好的BP神经网络预测非线性函数输出,并通过BP神经网络预测输出和期望输出,分析BP神经网络的拟合能力。
   用训练好的BP神经网络预测函数输出,预测结果如下图3所示。
                                           BP神经网络预测输出和期望输出的误差如下图4所示。
                                           从图3和图4可以看出,虽然BP神经网络具有较高的拟合能力,但是网络预测结果仍有一定误差,某些样本点的预测误差较大。
   在上一篇文章中提到了调整隐含层节点数目、改变权值和阈值更新算法以及变学习率学习算法等方法,针对非线性拟合,BP神经网络的优化还可以使用多隐层的BP神经网络、改变激活函数等方法。
最新文章
热门文章
推荐阅读