BP(backpropagation)神经网络学习笔记

BP(backpropagation)神经网络学习笔记

w:权重
θ:偏向
以下是我对B-P神经网络的理解:BP神经网络由3个层组成。上图是一个二层神经网络,下一层的输出都是由上一层计算得来
,最后得出输出层的输出即上图第六个小圆。然后再由此往回递推,计算出新的权重和偏向并更新。以此来减小误差。
:其实我没搞明白神经网络算法的目的是为了什么,我考完试就更新此项。

接下来一步一步整理该算法的计算步骤:

从左往右

已知:w,θ,输入层数据。
未知:4,5,6的输出,设为O4,O5,O6
以O4为例:
I4=x1*w14+…+x3*w344
O4=1/(1+e-I4)

:我看了两篇实现BP网络算法的代码,都没有加上偏向(θ),所以这个偏向是可加不可加的吗?
I:上一层数据与权重(w)相乘再加上偏向(θ)的值;
接下来我们对I这个值进行非线性转化得到各层的输出公式;
即:

O=1/(1+e-I)

从右往左:接下来反向递推出权重和偏向。
首先计算误差:
对于输出层:E6=O6(1-O6)(T6-O6)
T:输出层的标签值,我看过很多关于BP的介绍,我一直以为只有输入层才会初始化,一直没理解输出层也会初始化,写博客也一直卡在这。所以T是程序一开始对输出层的赋值。
所以关于输出层的误差公式是:Ej=Oj(1-Oj)(Tj-Oj)

对于隐藏层误差公式:
Ej=Oj(1-Oj)\sumwjkEk
Ek是下一层的误差。

对于权重和偏向的更新:
Δ\Deltawij=lrEjOj
wij=wij+Δ\Deltawij
lr:学习率(learning rate)
此公式中的误差和输出都是对应和权重相连的那个节点。
Δ\Deltaθ=lr
Ej
θ=θ+Δ\Deltaθ

以上内容就是BP算法的计算步骤。

终止整个算法的条件:
1.设置循环次数。
2.权重的更新低于某个值。
3.误差低于某个值。

:初始的权重,偏向以及学习率都是自己设置的,学习率不需要更新。权重和偏向都是在-1~1或 0.5~-0.5之间。
学习率是0~1之间。

相关文章:

  • 2021-11-19
  • 2021-09-05
  • 2021-08-28
  • 2021-04-19
  • 2021-10-28
  • 2021-09-29
  • 2021-11-19
猜你喜欢
  • 2021-10-21
  • 2021-11-03
  • 2021-12-10
  • 2022-01-19
  • 2021-08-25
  • 2021-12-19
相关资源
相似解决方案