请大师指点:BP网络工具箱中的newff()中的参数如何设置?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请大师指点:BP网络工具箱中的newff()中的参数如何设置?相关的知识,希望对你有一定的参考价值。
参考技术A 分类: 电脑/网络 >> 互联网问题描述:
threshold=[0 1;0 1;0 1;0 1]';
=newff(threshold,[9,4],'tansig','logsig','trainlm');
.trainParam.epochs=500;
.trainParam.goal=0.01;
LP.lr=0.1;
=train(,P,T);
P_test=[0.3277 0.4745 1.0000 0.2854];
out=sim(,P_test);
M=[0.1709 0.4114 0.7783 0.3101];
plot(1:4,M-out)
上面第二行的newff(threshold,[9,4],'tansig','logsig','trainlm')
中[9,4]这两个数据是怎么确定的??
还有学习速度LP.lr=0.1这个参数是如何选择的?
恳请大师指点一二,感激不尽~!
解析:
threshold是一个限定BP网络输出的范围
在它规定的范围内为有效(当无效值太多的时候会early stop)
[9,4]代表输入输出的神经元数目
学习速度关系到误差梯度的调整,由于误差梯度是由误差对权值的求导得出的,我们加上一个学习速度的系数可以加快或减慢权值调整的速度.一般在0.1~0.8之间.当然也可以用可变学习速率的训练函数进行,这样学习速率可以在开始的时候大一些,而后减小,优化学习过程.
matlab建立bp神经网络如何设置两个隐含层呢?
我原来单隐含层的构建网络的代码是
TF1='tansig';TF2='purelin';
net=newff(trainsample.p,trainsample.t,10,TF1 TF2,'traingdm');%网络创建
想改成两个隐含层,提高准确性,应该怎么改呢
题主那个newff里面的10看到没?那个就是设置1个隐含层的神经元个数,要多个隐含层就把10改成[4,10,1]就是第一个隐含层有4个神经元,第二个隐含层10个神经元,最后一层输出层1个神经元。然后你的TF1 TF2不用改。这样应该能用了。
然后给你一个newff的各项参数使用的介绍:
参考技术A 这种东西我一般都参考前人代码进行改进。以上是关于请大师指点:BP网络工具箱中的newff()中的参数如何设置?的主要内容,如果未能解决你的问题,请参考以下文章
bp神经网络matlab实现时,newff函数中的网络各层神经元的激活函数怎么选啊?