神经网络——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学习算法可以归纳为

二、举个栗子

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

 

  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

消失一年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值