多层神经网络BP算法解释

# 多层神经网络BP算法解释 ## 前向传播 *** * 该项目采用反向传播算法描述了多层神经网络的教学过程。 为了说明这个过程,使用了具有两个输入和一个输出的三层神经网络,如下图所示:
多层神经网络BP算法解释

  • 每个神经元由两个单元组成。
  • 第一单元添加权重系数和输入信号的乘积。
  • 第二个单元实现非线性功能,称为神经元**功能。
  • 信号 e 是加法器输出信号.
  • y=f(e) 是非线性元件的输出信号。
  • 信号 y 也是神经元的输出信号。
多层神经网络BP算法解释

  • 训练数据由(期望输出)z 和输入信号 x1x2 组成。
  • 神经网络训练是一个迭代过程。 在每次迭代中,使用来自训练数据集的新数据来修改节点的权重系数 w
  • 使用下面描述的算法计算修改:每个教学步骤从强制来自训练集的两个输入信号开始。 在此阶段之后,我们可以确定每个网络层中每个神经元的输出信号值。
  • 下面的图片说明了信号如何通过网络传播,符号wxmn表示输入层中网络输入xm和神经元n之间的连接权重。 符号yn表示神经元n的输出信号。
多层神经网络BP算法解释多层神经网络BP算法解释多层神经网络BP算法解释
y1=f1(w(x1)1x1+w(x2)1x2)
y2=f2(w(x1)2x1+w(x2)2x2)
y3=f3(w(x1)3x1+w(x2)3x2)
* 其中 f()函数可以是 sigmod 函数
ex.f(z)=11+ez
/div> *** * 通过隐藏层传播信号。 * 符号wmn表示下一层中神经元m的输出与神经元n的输入之间的连接的权重。
多层神经网络BP算法解释多层神经网络BP算法解释多层神经网络BP算法解释
## BP网络 *** * 将神经网络的输出信号y^与在训练数据集中找到的真实值(y)进行比较。 该差异被称为输出层神经元的误差信号δ
δ=yy^
与下图片对应关系为 y=z ,y^=y
多层神经网络BP算法解释

  • 无法计算直接计算隐藏层的真实值和误差,因为该过程在实际生产中不存在,或不可得。
  • 为此,八十年代中期,提出了 BP算法


  • 上一条是重点,重点,重点。

  • 注意 下图公式有误 ,正确表达为
  • δ4=w46δdf6(e)de=w46δy^(1y^)
  • 其他的同类表达式也需要类似的修改,请注意。
  • 对于有多条边连接的节点,δ为每条边结果的和。

多层神经网络BP算法解释
多层神经网络BP算法解释多层神经网络BP算法解释多层神经网络BP算法解释多层神经网络BP算法解释

  • 获得每个神经元的误差信号后,可以利用误差来修改每个神经元输入节点的权重系数。
  • 下面的公式
    (δ2)e=(yy^)2e=(yy^)y^(1y^)

    表示神经元**函数的导数     残差   。
  • δ2即为   损失函数
  • 又因为对dedθ
  • dedθ=θTxθ=x
  • 由于链式法则
  • (δ2)θ=(yy^)2ededθ=(y^y)y^(1y^)x=δy^(1y^)x

  • y^ 表示输出值

  • y 表示真实值
  • x代表上一层的输出或者原始的输入
  • δ 表示误差 这里用到了上一节BP中的假设
  • 通过这部分化简,我们利用误差δ代替了的yy^ 从而避开了隐藏层中的未知量y
  • 最后利用标准的* 梯度下降公式*:
    w^=wη=w+ηδy^(1y^)x=w+ηδyex

多层神经网络BP算法解释
多层神经网络BP算法解释
多层神经网络BP算法解释多层神经网络BP算法解释多层神经网络BP算法解释多层神经网络BP算法解释

转载请注明出处,csdn的markdown还是很迷的。

参考

参考资料来源