我知道matlab中的BP神经网络初始权值都是程序随机给的 但是同一个程序 运行n次出现的图都不是完全一样的 难道每次运行 随机给的 初始值也都不一样吗
正是因为每次权值和阈值的初值都不一样,所以使用相同的权值修正公式,计算出来的结果都不一样。当然这个初值也可以自己设置,方法如下:
net.IW{1,1}=W1;一般就用newff函数建立网络即可。newff函数的格式为:
net=newff(PR,[S1 S2 ...SN],{TF1 TF2...TFN},BTF,BLF,PF),函数newff建立一个可训练的前馈网络。输入参数说明:
PR:Rx2的矩阵以定义R个输入向量的最小值和最大值;
Si:第i层神经元个数;
TFi:第i层的传递函数,默认函数为tansig函数;
BTF:训练函数,默认函数为trainlm函数;
BLF:权值/阀值学习函数,默认函数为learngdm函数;
PF:性能函数,默认函数为mse函数。