当前位置:   article > 正文

神经网络——BP学习算法:反向传播算法推导_bp神经网络反向传播推导

bp神经网络反向传播推导

参考书籍:人工智能及其应用(第三版) 王万良

一、推导步骤

输入层的神经元的输入输出关系一般是线性函数
隐层(k)中神经元的输入输出关系一般是非线性函数

k与输出层中各个神经元的非线性输入输出关系记为f_{k}

k-1层的第j个神经元到第k层的第i个神经元的连接权值w_{ij}^{k}

k层中第i个神经元输入的总和u_{i}^{k}输出y_{i}^{k}

综上各变量之间的关系为 式1


BP学习算法是通过反向学习过程使误差最小,其目标函数为 式2

p_{m} :输出层神经元个数

y_{j}^{m}:实际输出 

 y_{sj}:期望输出

取平方项是为了避免值抵消,乘1/2是因为要求导抵消²

 式2 即是求期望输出与实际输出之差的平方和最小。就是求J的极小值。约束条件就是 式1。因为要求极小值,所以需要对J求导,即神经网络权值的修正量为 式3

为什么要对w_{ij}^{k-1}求导呢?因为y_{j}^{m}-y_{sj}=w_{ij}^{k-1}w_{ij}^{k-1}式1可以知道是第k-2层的第j个神经元到第k-1层的第i个神经元的连接权值。要使连接权值最小所以对他求导。乘以-\varepsilon是因为目标函数是沿着负梯度方向改变的。

下面是推导BP学习算法的完整过程:

先求  \frac{\partial J}{\partial w_{ij}^{k-1}}

因为w_{ij}^{k-1}在 式1 中的u_{i}^{k}里面,所以采用链式求导得到 式4

则 式3 变为 式5

   接下来开始推导 d_{i}^{k} 得到 式6

下面分两种情况求 \frac{\partial J}{\partial y_{i}^{k}}

①对输出层(第m层)的神经元,即 k=m ,y_{i}^{k}=y_{i}^{m},有误差定义式得

 ②若 i 为隐单元层 k ,则有

 综上所述,BP学习算法可以归纳为

 若取 f_{k}(\cdot ) 为 S 型函数,即(式1有给出)

 BP学习算法可以归纳为

二、举个栗子

莫得答案,自己写的,也不晓得对不对,可以参考参考。。。

 

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

闽ICP备14008679号