请大师指点: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函数中的网络各层神经元的激活函数怎么选啊?

matlab BP神经网络出错 newff参数 隐含层 怎么确定

运用matlab解决bp神经网络多个输入一个输出的问题

bp神经网络算法 在matlab中的实现

matlab中 BP神经网络怎么构建多个隐层

有人知道bp神经网络Matlab R2012a 的newff用法么