概述
BP神经网络的入门文章可以参考这篇博客http://www.cnblogs.com/wengzilin/archive/2013/04/24/3041019.html
对于matlab神经网络工具箱中的性能函数performFcn 可以使用 doc network
对于训练参数可以使用 doc traingdx
代码如下所示
matrix = [ 0 1 1 1
0 1 1 1
0 1 1 1
0 0 1 1
0 1 1 1
0 0 1 1
0 1 0 1
1 1 1 1
1 1 0 1
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
0 1 1 0
1 0 1 1
1 0 1 1
1 0 1 1
1 0 1 1
1 0 0 1
0 0 0 0
0 0 1 0
0 0 1 0
0 0 1 0
0 0 0 0
0 1 0 0
1 0 1 0
1 0 1 0
0 0 0 0
0 0 0 0
1 0 0 0
0 1 0 0
1 0 1 0
1 0 0 0
1 0 0 0]
%% 输入数据变换
input = matrix(:,1:end-1);
target = matrix(:,end);
input=input';
target=target';
target=full(ind2vec(target+1));
%设置随机种子
setdemorandstream(pi)
%% 新建BP神经网络,并设置参数
% net = feedforwardnet(10);
%使用含有一层隐含层的模型,隐含层有10个神经元。调用Matlab的patternnet函数
%patternnet函数的参数有(hiddenSizes,trainFcn,performFcn)三个。hiddenSizes默认值是10
%可以用数组表示多个隐含层。trainFcn默认值是‘trainscg’,performFcn默认是‘crossentropy’。
%如果想要有两个隐含层,每层的神经元都是10个,则可以写成net = patternnet([10,10]) ;
net = patternnet(10);
net.trainParam.epochs=1000; %最大训练次数(缺省值为10)
net.trainParam.show=25;%显示训练迭代过程(NaN表示不显示,缺省为25),每25次显示一次
net.trainParam.showCommandLine=0;%显示命令行(默认值是0) 0表示不显示
net.trainParam.showWindow=1; %显示GUI(默认值是1) 1表示显示
net.trainParam.goal=0;%训练要求精度(缺省为0)
net.trainParam.time=inf;%最大训练时间(缺省为inf)
net.trainParam.min_grad=1e-6;%最小梯度要求(缺省为1e-10)
net.trainParam.max_fail=5;%最大失败次数(缺省为5)
net.performFcn='mse';%性能函数
% 训练神经网络模型
net= train(net,input,target);
disp('BP神经网络训练完成!');
%% 使用训练好的BP神经网络进行预测
y= sim(net,input);
plotconfusion(target,y);
disp('预测完成!');
结果如图所示
上图是分类器的效果、绿色表示分类器的分类结果和测试数据的label一致;红色表示两者结果不一致。红色区域内的百分数越小,说明分类器结果的误差越小,分类结果越好。如果误差过大,则需要增加样本再行训练或者增加隐含层的神经元个数。
对于net.trainParam.max_fail的意义可以参考http://blog.csdn.net/q1302182594/article/details/45772253
对于matlab的神经网络工具箱的强大功能,这里只是冰山一角,对于工具箱里其他很多概念的解释都是不清楚的。。。还需要加油呀!!!
最后
以上就是谦让小白菜为你收集整理的matlab的神经网络工具箱的全部内容,希望文章能够帮你解决matlab的神经网络工具箱所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复