BP网络相关matlab函数:、newff、f…

来源:互联网 发布:linux设定文件夹权限 编辑:程序博客网 时间:2024/05/18 01:43
在matlab中可以使用newff()和feedforwordnet创建一个BP神经网络,推荐使用feedforwordnet创建BP神经网络,若想了解其用法,可以使用help命令,查询帮助
mse是一个网络性能函数。它根据平方误差的平均值来衡量网络的性能 
 
BP网络相关matlab函数:、newff、feedforwardnet
(一)
x=-4:.5:4;
y=x.^2-x;
net=newff(minmax(x),minmax(y),10); %net为新版newff创建的
net=train(net,x,y); % 训练
xx=-4:.2:4;
yy=net(xx);
plot(x,y,'o-',xx,yy,'*-')
title('新版newffnewff(minmax(x),minmax(y),10) ')
BP网络相关matlab函数:、newff、feedforwardnet
计算均方差知晓性能
yy1=net(x);
mse(net,y,yy1);
ans =

    2.9805

(二)
x=-4:.5:4;
y=x.^2-x;
net2=newff(x,y,10);             %net为新版newff创建的
net2=train(net2,x,y); % 训练
xx=-4:.2:4;
yy=net2(xx);
plot(x,y,'o-',xx,yy,'*-')
title('新版newffnewff(x,y,10)')
BP网络相关matlab函数:、newff、feedforwardnet
>> yy2=net2(x);

>> mse(net2,y,yy2)

ans =

    0.8152
可以看出此时误差更小

(三)
x=-4:.5:4;
y=x.^2-x;
net1=newff(minmax(x),[10,1],{'tansig','purelin'},'trainlm');% net1为旧版newff创建的
net1=train(net1,x,y); % 训练
yy2=net1(xx);
figure(2);
plot(x,y,'o-',xx,yy2,'*-')
title('旧版newff');
BP网络相关matlab函数:、newff、feedforwardnet
>> yy4=net1(x);
>> mse(net1,y,yy4)

ans =

   6.0613e-10

通过对比,第三种方法的误差最小


(四)feedforwardnet
feedforwardnet(hiddenSizes,trainFcn)        takesthese arguments, 
hiddenSizes
Row vector of one or more hidden layer sizes (default=10)
trainFcn
Training function (default = 'trainlm')
举例:
[x,t] = simplefit_dataset; % MATLAB自带数据,x、t均为1*94向量
net = feedforwardnet; % 创建前向网络
view(net)
net = train(net,x,t); % 训练,确定输入输出向量的维度
view(net)
y = net(x);
perf = perform(net,y,t) % 计算误差性能
perf =

   1.5167e-05
训练之前与训练之后的网络对比
BP网络相关matlab函数:、newff、feedforwardnet

0 0
原创粉丝点击