matlab的神经网络工具箱

来源:互联网转载 | 更新日期:2023-09-05 14:30:27

BP神经网络的入门文章可以参考这篇博客http://www.cnblogs.com/wengzilin/archive/2013/04/24/3041019.html

对于matlab神经网络工具箱中的性能函数performFcn 可以使用 doc network
对于训练参数可以使用 doc traingdx

代码如下所示

matrix = [ 0 1 1 10 1 1 10 1 1 10 0 1 10 1 1 10 0 1 10 1 0 11 1 1 11 1 0 11 1 1 11 1 1 11 1 1 11 1 1 10 1 1 01 0 1 11 0 1 11 0 1 11 0 1 11 0 0 10 0 0 00 0 1 00 0 1 00 0 1 00 0 0 00 1 0 01 0 1 01 0 1 00 0 0 00 0 0 01 0 0 00 1 0 01 0 1 01 0 0 01 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的神经网络工具箱的强大功能,这里只是冰山一角,对于工具箱里其他很多概念的解释都是不清楚的。。。还需要加油呀!!!

上一篇:移动互联网创新39个热点

下一篇:win10安装VS2008失败解决方案

相关文章

Copyright © 网站出售-网站交易平台 版权信息

网站备案号:黔ICP备2023004141号