如何用matlab构建一个三层bp神经网络模型,用于预测温度。

2024-05-20

1. 如何用matlab构建一个三层bp神经网络模型,用于预测温度。

第0节、引例 
       本文以Fisher的Iris数据集作为神经网络程序的测试数据集。Iris数据集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set  找到。这里简要介绍一下Iris数据集:
有一批Iris花,已知这批Iris花可分为3个品种,现需要对其进行分类。不同品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度会有差异。我们现有一批已知品种的Iris花的花萼长度、花萼宽度、花瓣长度、花瓣宽度的数据。
  一种解决方法是用已有的数据训练一个神经网络用作分类器。
  如果你只想用C#或Matlab快速实现神经网络来解决你手头上的问题,或者已经了解神经网络基本原理,请直接跳到第二节——神经网络实现。

第一节、神经网络基本原理 
1. 人工神经元( Artificial Neuron )模型 
       人工神经元是神经网络的基本元素,其原理可以用下图表示:

图1. 人工神经元模型
 
       图中x1~xn是从其他神经元传来的输入信号,wij表示表示从神经元j到神经元i的连接权值,θ表示一个阈值 ( threshold ),或称为偏置( bias )。则神经元i的输出与输入的关系表示为:
 

  图中 yi表示神经元i的输出,函数f称为激活函数 ( Activation Function )或转移函数 ( Transfer Function ) ,net称为净激活(net activation)。若将阈值看成是神经元i的一个输入x0的权重wi0,则上面的式子可以简化为:
 

  若用X表示输入向量,用W表示权重向量,即:
X = [ x0 , x1 , x2 , ....... , xn ]
 
  则神经元的输出可以表示为向量相乘的形式:
 
 
       若神经元的净激活net为正,称该神经元处于激活状态或兴奋状态(fire),若净激活net为负,则称神经元处于抑制状态。
       图1中的这种“阈值加权和”的神经元模型称为M-P模型 ( McCulloch-Pitts Model ),也称为神经网络的一个处理单元( PE, Processing Element )。

2. 常用激活函数 
       激活函数的选择是构建神经网络过程中的重要环节,下面简要介绍常用的激活函数。
(1) 线性函数 ( Liner Function )
 
(2) 斜面函数 ( Ramp Function )
 
(3) 阈值函数 ( Threshold Function )
 

 
       以上3个激活函数都属于线性函数,下面介绍两个常用的非线性激活函数。
(4) S形函数 ( Sigmoid Function )

  该函数的导函数:

(5) 双极S形函数 

  该函数的导函数:

  S形函数与双极S形函数的图像如下:

图3. S形函数与双极S形函数图像
  双极S形函数与S形函数主要区别在于函数的值域,双极S形函数值域是(-1,1),而S形函数值域是(0,1)。
  由于S形函数与双极S形函数都是可导的(导函数是连续函数),因此适合用在BP神经网络中。(BP算法要求激活函数可导)
具体http://blog.csdn.net/gongxq0124/article/details/7681000/

如何用matlab构建一个三层bp神经网络模型,用于预测温度。

2. 如何用BP神经网络实现预测

首先要知道你建立的这个模型的内部逻辑关系。。
1,确定隐层数,画出简要模型图。
2,确定采用什么样的神经网络来建立模型
3.通过测试数据来训练模型。。
4.根据测试训练得到的数据和实际数据进行比对,或者算出误差。从而修改隐层中的权值和阀值。
反复重复3-4.。最后得到一个最优的模型。

大致是这样。。。楼主说的太概略。。。无法回答清楚请抱歉

3. 求一个bp神经网络预测模型的MATLAB程序

BP神经网络预测的步骤:
1、输入和输出数据。
2、创建网络。fitnet()
3、划分训练,测试和验证数据的比例。net.divideParam.trainRatio; net.divideParam.valRatio;net.divideParam.testRatio
4、训练网络。 train()
5、根据图表判断拟合好坏。ploterrcorr();parcorr();plotresponse()
6、预测往后数据。net()
7、画出预测图。plot()
执行下列命令
BP_prediction
得到结果:
[ 2016, 14749.003045557066798210144042969]
[ 2017, 15092.847215188667178153991699219]
[ 2018, 15382.150005970150232315063476562]
[ 2019,  15398.85769711434841156005859375]
[ 2020, 15491.935150090605020523071289062]

求一个bp神经网络预测模型的MATLAB程序

4. 用BP神经网络建立数学模型,MATLAB实现,怎样得到输入到输出的计算公式

% 计算S1与S2层的输出A1=tansig(W1*p,B1);t=purelin(W2*A1,B2);这就是p到t的映射关系。

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

5. 用matlab中bp神经网络实现由输入值预测输出值的程序

给你个例子如下,
net=newff(inputn,outputn,[8,4],{'tansig','purelin'},'trainscg');%初始化网络结构
%网络参数配置(迭代次数、学习率、目标)
net.trainParam.epochs=3000;
net.trainParam.lr=0.08;
net.trainParam.goal=0.05;
net.divideFcn = '';
[net,tr]=train(net,inputn,outputn);%网络训练
%网络预测输出
an=sim(net,inputn_test);
 
不过只了解输入预测输出,这些还不够,还要看你的输入数据的量,来确定隐含层,还需要看数据是不是归一化,我专门做神经网络的预测工作,可否加QQ探讨一下?

用matlab中bp神经网络实现由输入值预测输出值的程序

6. 求做一个简单的BP神经网络的预测,感激不尽!!!

真是因为外推能力有限,所以希望采用外推模型
即:P=(数据1~数据n)   T=(数据n~数据n+m)的方式
使得数据输入/输出在范围内
比如P=[一月降水,二月降水````五月降水,二月降水,三月降水````六月降水……]
T=[六月降水,七月降水……]
训练完毕后
由于降水情况在某个范围内,不具有一直延伸的特性
用[六月降水,七月降水````十一月降水]能推出[十二月降水]
故可以控制在样本范围附近

如果一直外延如P=[1,2,3,4,5],T=[一月降水,二月降水````五月降水];
则6无法推得六月降水

不懂请继续追问

7. 建立BP神经网络地面沉降预测模型

基坑降水引起地面沉降的BP神经网络预测模型建模过程如下:
(1)样本选择
因基坑降水引起的地面沉降量和距离基坑的距离关系密切,因此建模选用“基坑降水引起沉降工程数据(第二类)”(见表4.1)中的相关数据作为样本进行学习训练和检验。
(2)BP神经网络结构设计
对于BP网络,对于任何在闭区间内的一个连续函数都可以用单隐层的BP网络逼近,因而一个三层BP网络就可以完成任意的n维到m维的映射。根据网络结构简单化的原则,确定采用三层BP网络结构,即输入层为沉降点距基坑的距离L(m)、等效压缩模量E(MPa)、水位降深H(m)和支护刚度n四个参数,输出层为地面累积沉降量(mm),隐层层数为1层。隐层的神经元数目选择是一个十分复杂的问题,往往需要根据设计者的经验和多次实验来确定,因而不存在一个理想的解析式来表示。隐单元的数目与问题的要求,与输入、输出单元的数目有直接的关系。隐单元数目太多会导致学习时间过长,误差不一定最佳,也会导致容错性差、不能识别以前没有看到的样本,因此一定存在一个最佳的隐单元数。研究通过一次编程比较了隐层神经元个数分别为5、10、15、20、25、30、40时训练速度及检验精度。

图4.2 BP神经网络程序框图

(3)网络训练及检验
BP网络采用梯度下降法来降低网络的训练误差,考虑到基坑降水地面沉降范围内沉降量变化幅度较小的特点,训练时以训练目标取0.001为控制条件,考虑到网络的结构比较复杂,神经元个数比较多,需要适当增加训练次数和学习速率,因此初始训练次数设为10000次,学习速率取0.1,中间层的神经元传递函数采用S型正切函数tansig,传输函数采用logsig,训练函数采用trainlm,选用38组数据中的33组作为训练样本,5组作为检验样本。
(4)网络实现及检验效果
使用MATLAB6.0编程建立基于BP神经网络的基坑降水地面沉降预测模型(程序代码见附件1),其训练误差及检验效果如下:

图4.3 训练误差曲线


图4.4 预测误差曲线

由图4.3、图4.4可见:样本数据收敛,训练误差较小,中间层神经单元个数为10时预测精度较好,误差小于20%,误差满足工程需求。

建立BP神经网络地面沉降预测模型

8. 用Matlab编程BP神经网络进行预测

原理就是:建立网络-数据归一化-训练-预测-数据反归一化。附件是电力负荷预测的例子,可以参考。

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