当前位置:   article > 正文

BP神经网络学习与代码预演_bp神经网络4输入4输出

bp神经网络4输入4输出

BP神经网络算法笔记

神经网络作为运用广泛的智能算法,被用于很多技术领域,虽然在Matlab等软件当中已经封装了相关的函数库,任何人都能够十分方便地使用编程软件构建神经网络。但是笔者认为如果不能详细了解神经网络的构建过程,那么对于神经网络的了解也将是雾里看花,使用也是十分僵化不能变通。因此,详细地自主架构神经网络是很有必要的。

目标:BP神经网络
作用:拟合数据,输入数据为0.32,0.87,0.89,0.33;目标输出为0.99,0.32,0.45,0.12。
参考:https://blog.csdn.net/zhaomengszu/article/details/77834845.

算法原理

神经网络算法是典型的学习型算法,其输出结果与执行次数有关,算法系统中存在负反馈调节,符合如下的系统流程:
在这里插入图片描述
BP神经网络主要由前向传播和后向传播两个算法组成,通过正向传播和反向传播之间的不断循环实现基于目标的学习。正向传播的作用是复现我们的推演假设,得到推演结果,反向传播算法的主要作用是依据上一次推演结果判断误差,并实现对于参数的调整,预备下一次运算。其中决定神经网络性能之一的便是反向传播的方式和方法,BP神经网络采用的是梯度下降法来确定性能。由于本文主要任务是将概念性的公式翻译成编程语言,因此算法的推导和变形不做过多赘述,仅列出已经经过简化之后的公式,相关推导请阅读参考博文。

算法步骤

构建神经网络为4输入4输出,目标隐含层的个数设计为3,层数为1,示意图如下:
在这里插入图片描述
具体算法步骤:
1)确定相关数值:设定每层传播之间的权值(图示的w1和w2,分别为43和34的数组),确定学习效率yeta=0.5,输入数据和参考目标;
2)构建前向传播算法,确定隐含层的数据,使用激活函数为Sigmod函数,具体公式为:
在这里插入图片描述

如法炮制,计算出实际输出层的值:
在这里插入图片描述
完成前向传播模块布置;
3)构建后向传播算法,更新w1和w2的值,具体公式如下:
在这里插入图片描述
由于参考文章中已有推导证明,可以自行阅读。
如法炮制再向前更新一步,计算出w1,但是结果略微有所区别,具体公式如下:
在这里插入图片描述
前向传播算法完成。
4)加上循环嵌套和相应的连接代码,完成算法,具体代码如下:

a=[0.32,0.87,0.89,0.33]                        #实际输入
target_c=[0.99,0.32,0.45,0.12]                 #目标输出

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

闽ICP备14008679号