关于BP神经网络MATLAB程序

关于BP神经网络MATLAB程序,第1张

1,我用的是matlab R2008,一列代表一个样本。其他版本的不知道

2,matlab中神经网络工具箱就已经很方便了,调用函数和修改参数就可以用了。

3,net_1trainParamlr代表学习速率,net_1trainParammc则是动量系数。至于参数的确定,要看具体情况。

nettrainParamshow = 10,每十次显示一下误差变化情况

nettrainParamlr = 005学习速率

nettrainParamgoal = 1e-10误差要求

nettrainParamepochs = 50000最大训练次数

x是测试样本

y=sim(net,x)测试X的输出是否符合要求

clear all;

close all;

clc;

%p = [2056 2395 2600 2298 1634 1600 1837 1478 1900 2395 2600 2298 1634 1600 1873 1478 1900 1500 2600 2298 1634 1600 1873 1478 1900 1500 2046];

t = [1873 1478 1900 1500 2046 1556];

p = [ 2056 2395 2600 2298 1634 1600];

%--归一化输入输出-- 映射到[0,1]--%

pmax = max(p);

pmin = min(p);

P = (p-pmin)/(pmax-pmin);

tmax = max(t);

tmin = min(t);

T = (t-tmin)/(tmax-tmin);

net =newff(P,T,5,{'tansig','purelin'},'traingdx');

%--设置训练参数--%

nettrainParamshow =50;

nettrainParamlr = 005;

nettrainParamepochs = 1000;

nettrainParamgoal = 1e-3;

netdivideFcn= '';

[net,tr] = train(net,P,T);

A =sim(net,P);

a =A(tmax - tmin)+tmin;

x = 7:12;

figure

plot(x,t,'+');

hold on;

plot(x,a,'or');

hold off;

xlabel('month');

ylabel('')

legend('实际','预测')

  1 人工神经元( Artificial Neuron )模型

  人工神经元是神经网络的基本元素,其原理可以用下图表示

  

  图中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 )。

你应该用的是新版的matlab,但是你的newff却是按照旧版的格式来输入的,所以出错。

修改为net=newff(P1',T1',10,{'tansig','logsig'},'trainlm')。10为隐含层的神经元个数,输入层和输出层由输入样本和输出样本决定(新版matlab自动根据样本情况设定),tansig为隐含层到输出层的传输函数,logsig为输出层到输出的传输函数

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/11669274.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存