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




## BP网络
***
* 将神经网络的输出信号与在训练数据集中找到的真实值()进行比较。 该差异被称为输出层神经元的误差信号。






- 每个神经元由两个单元组成。
- 第一单元添加权重系数和输入信号的乘积。
- 第二个单元实现非线性功能,称为神经元**功能。
- 信号 是加法器输出信号.
- 是非线性元件的输出信号。
- 信号 也是神经元的输出信号。
- 训练数据由(期望输出) 和输入信号 和 组成。
- 神经网络训练是一个迭代过程。 在每次迭代中,使用来自训练数据集的新数据来修改节点的权重系数 。
- 使用下面描述的算法计算修改:每个教学步骤从强制来自训练集的两个输入信号开始。 在此阶段之后,我们可以确定每个网络层中每个神经元的输出信号值。
- 下面的图片说明了信号如何通过网络传播,符号表示输入层中网络输入和神经元之间的连接权重。 符号表示神经元的输出信号。
* 其中 函数可以是 函数
/div>
***
* 通过隐藏层传播信号。
* 符号表示下一层中神经元的输出与神经元的输入之间的连接的权重。
与下图片对应关系为 ,
- 无法计算直接计算隐藏层的真实值和误差,因为该过程在实际生产中不存在,或不可得。
-
为此,八十年代中期,提出了 BP算法
上一条是重点,重点,重点。
- 注意 下图公式有误 ,正确表达为
-
- 其他的同类表达式也需要类似的修改,请注意。
- 对于有多条边连接的节点,为每条边结果的和。
- 获得每个神经元的误差信号后,可以利用误差来修改每个神经元输入节点的权重系数。
- 下面的公式
表示神经元**函数的导数 残差 。 - 即为 损失函数
- 又因为对有
-
- 由于链式法则:
-
表示输出值
- 表示真实值
- 代表上一层的输出或者原始的输入
- 表示误差 这里用到了上一节BP中的假设
- 通过这部分化简,我们利用误差代替了的 从而避开了隐藏层中的未知量
- 最后利用标准的* 梯度下降公式*:
转载请注明出处,****的markdown还是很迷的。