matlab中BP神经网络怎么设置初始权重?()
admin
2023-05-14 20:36:52

笔记本,惠普ENVY4-1007tx,
因为初始值(初始权值和阀值)都在x这个向量中,x(n,1)的长度n为:n=inputnum*hiddennum+hiddennum+hiddennum*outputnum+outputnum
其中inputnum*hiddennum是输入层到隐含层的权值数量,hiddennum是隐含层神经元个数(即隐含层阀值个数),hiddennum*outputnum是隐含层到输出层权值个数,outputnum是输出层神经元个数(即输出层阀值个数); 工具箱比较麻烦,最好还是编程实现。

其实,BP神经网络调用也就一句话:
net_1=newff(minmax(P),[10,1],{'tansig','purelin'},'traingdm')

'tansig','purelin'},'traingdm'就是阈值函数,决定你的阈值 w1 = gbest(1:input_num * hidden_num);

B1 = gbest(input_num * hidden_num + 1:input_num * hidden_num + hidden_num);

w2 = gbest(input_num * hidden_num + hidden_num + 1:input_num * hidden_num...
+ hidden_num + hidden_num * output_num);

B2 = gbest(input_num * hidden_num+ hidden_num + hidden_num * output_num + 1:...
input_num * hidden_num + hidden_num + hidden_num * output_num + output_num);

net.iw{1,1} = reshape(w1,hidden_num,input_num);
net.lw{2,1} = reshape(w2,output_num,hidden_num);
net.b{1} = reshape(B1,hidden_num,1);
net.b{2} = B2'; 我给你写几步:
threshold=[0 1;0 1;0 1;0 1;0 1;];
net=newff(threshold,[15,1],{'tansig','logsig'},'traingdx');
net.trainParam.epochs=1000;
net.trainParam.goal=0.001;
net=init(net);
有啥不清楚,你继续问就行! 粒子群算法,也称粒子群优化算法(Particle Swarm Optimization),缩写为 PSO, 是近年来发展起来的一种新的进化算法(Evolutionary Algorithm - EA)。PSO 算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover) 和“变异”(Mutation) 操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。粒子群算法是一种并行算法。

相关内容

热门资讯

地震多少级 汶川地震多少级啊? 1949年5月12日中共中央决定建立华中局(12月改为中南局),林彪为第一书记。19...
天下第一蒸笼开笼,天下第一蒸笼... 蒸,是一种我国独有的烹饪方式,馒头、包子等面食,米粉蒸肉、清蒸鱼等菜品,都是要靠蒸才能制作出来,而蒸...