BP神经网络

Contents

  1. BP神经网络的认识
  2. 隐含层的选取
  3. 正向传递子过程
  4. 反向传递子过程
  5. BP神经网络的注意点
  6. BP神经网络的C++实现

1. BP神经网络的认识

BP(Back Propagation)神经网络分为两个过程

1)工作信号正向传递子过程
(2)误差信号反向传递子过程

在BP神经网络中,单个样本有个输入,有个输出,在输入层和输出层之间通常还有若干个隐含层。实际 上,1989年Robert Hecht-Nielsen证明了对于任何闭区间内的一个连续函数都可以用一个隐含层的BP网 络来逼近,这就是万能逼近定理。所以一个三层的BP网络就可以完成任意的维到维的映射。即这三层分 别是输入层(I),隐含层(H),输出层(O)。如下图示 image

2. 隐含层的选取

在BP神经网络中,输入层和输出层的节点个数都是确定的,而隐含层节点个数不确定,那么应该设置为多少 才合适呢?实际上,隐含层节点个数的多少对神经网络的性能是有影响的,有一个经验公式可以确定隐含层 节点数目,如下

h = \sqrt{m+n}+ah=m+n+a

其中h为隐含层节点数目,n为输入层节点数目,m为输出层节点数目,a为之间的调节常数。

3. 正向传递子过程

现在设节点i和节点j之间的权值为wij ,节点j的阀值为bj,每个节点的输出值为xj,而每个节点的输出 值是根据上层所有节点的输出值、当前节点与上一层所有节点的权值和当前节点的阀值还有激活函数来实现 的。具体计算方法如下 image

其中f为激活函数,一般选取S型函数或者线性函数。

正向传递的过程比较简单,按照上述公式计算即可。在BP神经网络中,输入层节点没有阀值。

以下为推到过程

4. 反向传递子过程

imageimageimage


参考:

http://blog.csdn.net/acdreamers/article/details/44657439



发布了57 篇原创文章 · 获赞 106 · 访问量 52万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章