神经网络已知输入输出,怎么获得输入对输出的权重。

5 次查看(过去 30 天)
神经网络已知输入输出(多输入对应一个输出),怎么获得输入对输出的权重?请大神不吝赐教{:soso__10169062262133571330_1:}
我用的代码如下:
clc
clear all
A=xlsread('data.xlsx');
%选择输入输出数据
p=[A(:,1) A(:,2) A(:,3)];
t=A(:,4);
%数据归一化
[pn,minp,maxp]=premnmx(p); %按行归一化
[tn,mint,maxt]=premnmx(t);%
%[m n]=size(p);
%dx=zeros(m,2);
%dx(:,1)=-1;
%dx(:,2)=1;
dx=[-1,1;-1,1;-1,1];
%BP网络训练
net=newff(dx,[5,3,1],{'tansig','logsig','purelin'},'traingdx');
net.trainParam.show=1000;
%每1000轮回显示一次结果
net.trainParam.Lr=0.01;
%学习速率为0.01
net.trainParam.epochs=30000;
%循环1000次
net.trainParam.goal=1e-7;
%均方误差
net=train(net,pn',tn');
%对原数据进行仿真
an=sim(net,pn');
a=postmnmx(an,mint,maxt);
%还原仿真得到的数据
%与实际数据对比
x=p;
newk=a(1,:);
figure;
plot(x,newk,'r-o',x,t,'b--+')
legend('预测值','实际值');
xlabel('时间');
ylabel('cpi的值');
新手一个,希望多多指导!

采纳的回答

新锦江开户网址【微8785092】
BP神经网络的更新方式是利用每一层的输出误差对连接权值进行偏导,梯度下降的方向进行更新。你这是使用的工具箱进行直接计算的,一般地,都是自己写出BP算法的具体更新迭代算法,这样子训练时每一步训练的权值大小都可以进行保存出来的。三层NN,BP算法就1-2间的权值和2-3间的权值,可以直接利用BP算法推导出来写入程序中,方便自己观察整个更新过程。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Deep Learning Toolbox 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!