您的位置:首页 > 理论基础 > 计算机网络

matlab的神经网络工具箱

2016-02-26 14:09 549 查看
BP神经网络的入门文章可以参考这篇博客/article/4791650.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的意义可以参考/article/1936798.html

对于matlab的神经网络工具箱的强大功能,这里只是冰山一角,对于工具箱里其他很多概念的解释都是不清楚的。。。还需要加油呀!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: