当前位置:   article > 正文

给BP神经网络设置初始权重(matlab)_matlab程序固定初始权值

matlab程序固定初始权值

原创文章,转载请说明来自《老饼讲解-BP神经网络》:www.bbbdata.com

关于《老饼讲解-BP神经网络》:

本网结构化讲解神经网络的知识,原理和代码。

重现matlab神经网络工具箱的算法,是学习神经网络的好助手。 


目录

    01.问题   

    02. 思路   

     03. Demo展示   

   Demo代码   

   输出结果   


本文讲解,在matlab工具箱中设置BP神经网络的初始权重。

    01.问题   


在使用matlab工具箱训练BP神经网络时,
往往我们希望,
能使用自己的初始值进行训练,而不是工具箱自带的初始值。
那么,我们要怎么实现呢?



    02. 思路   


其实只需要在初始化好BP神经网络,
先修改网络的权重,
然后再训练就可以了。


 ✍️网络的权重怎么修改?
 网络的权重存放在net.iw、net.b、net.lw里。
我们要修改的就是这三个变量。
其中,net.iw存放着输入层到第一层的权重 ,
net.b则存放着每层的阈值, 
net.lw是每层的权重。



     03. Demo展示   


下面我们展示一个Demo,

在Demo里,我们先给网络设置自己的权重,然后训练一步,

可以看到,最终的权重就是根据我们设置的初始值进行调整的。

    Demo代码   


已在matlab2018a亲测跑通

  1. % ================== 说明 ==============================================
  2. % 本代码来自bp.bbbdata.com
  3. %用于训练的数据
  4. X = linspace(-3,3,100);
  5. y = 10*sin(X);
  6. %初始化网络(这时的网络权重是matlab自带的初始化值)
  7. net = newff(X,y,3,{'tansig','purelin'},'trainlm');
  8. % 设置自己想要的权重的初始值
  9. disp('-------- 自设的网络初始权重 ---------------')
  10. init_w21 =[100,100,100]'
  11. init_b2 =[2,2,2]'
  12. init_w32 =[3,3,3]
  13. init_b3 = 4
  14. % 将初始值赋给网络
  15. net.iw{1,1} = init_w21 ; % 第1层(输入层)到第2层(隐层)的权值
  16. net.b{1} = init_b2 ; % 第2层(隐层)的阈值
  17. net.lw{2,1} = init_w32 ; % 第2层(输入层)到第3层(输出层)的权值
  18. net.b{2} = init_b3 ; % 第3层(输出层)的阈值
  19. % 训练网络,这里我们设置只训练一步
  20. net.trainparam.goal = 0.00001; % 设置训练误差目标
  21. net.trainparam.epochs = 1; % 设置最大训练次数.
  22. [net,tr,net_y] = train(net,X,y); % 训练
  23. % 训练完成后,可以看到,最终的权重值,与我们预设的初始差不多,因为我们只训练了一步。
  24. disp('-------- 网络训练后的权重 ---------------')
  25. w21 = net.iw{1,1} % 第1层(输入层)到第2层(隐层)的权值
  26. b2 = net.b{1} % 第2层(隐层)的阈值
  27. w32 = net.lw{2,1} % 第2层(输入层)到第3层(输出层)的权值
  28. b3 = net.b{2} % 第3层(输出层)的阈值


   输出结果   


  1. -------- 自设的网络初始权重 ---------------
  2. init_w21 =
  3.    100
  4.    100
  5.    100
  6. init_b2 =
  7.      2
  8.      2
  9.      2
  10. init_w32 =
  11.      3     3     3
  12. init_b3 =
  13.      4
  14. -------- 网络训练后的权重 ---------------
  15. w21 =
  16.    99.1931
  17.    99.1931
  18.    99.1931
  19. b2 =
  20.     1.8573
  21.     1.8573
  22.     1.8573
  23. w32 =
  24.     0.2169    0.2169    0.2169
  25. b3 =
  26.     0.0040


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/117913
推荐阅读
相关标签