BP反向传播公式推导

本文详细介绍了BP(反向传播)算法的推导过程,它是深度学习和神经网络的核心。通过对一个简单网络节点的分析,阐述了如何利用链式法则求取网络输出对各个参数的导数,以及在反向传播中如何计算前一层节点的误差项。同时讨论了激励函数的选择,如sigmoid和ReLU,及其对梯度的影响。
摘要由CSDN通过智能技术生成

重点

  • 界定一个节点的输入和输出
    z z 是激励函数的输出

Backpropagation算法(BP)是深度学习的基础,没有BP算法就没有神经网络,也不会有现在如火如荼的深度学习. BP算法并不仅仅适用于神经网络,对于任意系统,抽象成输入/输出/参数三个部分,如果输出对每个参数的导数已知,那么可以用BP算法把该系统调节到最优. 当然上述结论只在理论上成立,实践中会遇到各种问题,比如梯度爆炸/消失等数值问题. 本文通过一个简单的例子,介绍BP算法的推导过程.

卷积网络出现之前,神经网络有若干层组成,每个层有若干节点组成,层和层之间全连接,如下是 k 层的第 j j 个节点节点示意图:

这里写图片描述

为了后续推导方便,这里把一个节点拆分成两个部分
* 求和
上图左侧的 符号代表的部分,其输入 zk1i z i k − 1 i=0,1,2,...,n i = 0 , 1 , 2 , . . . , n 是前一层 k1 k − 1 层的 n n 个输出, w i k 是当前层的权重参数, bkj b j k 是当前节点的偏置参数,其输出是 akj=ni=0wkizk1i+bkj a j k = ∑ i = 0 n w i k z i k − 1 + b j k , 这是一个临时变量,方便后续推导
* 激励
上图右侧的 符号代表激励函数,深度学习之前常见的的sigmoid/tanh,深度学习兴起后比较常见的是relu,激励函数必须是可导的,改进方向一般有
1. 前向传播时对数据的压缩能力
sigmoid把数据压缩到 [0,1] [ 0 , 1 ] ,比relu要好.压缩数据可以避免数据爆炸,加深网络层数
2. 后向传播时对梯度的保持能力
sigmoid之所以被relu替代,就是relu梯度为1(输入大于0时),不会压缩梯度,反向传播时更加有利

假设已知网络输出 J J z j k 的导数 δkj=dJdzkj δ j k = d J d z j k ,BP反向传播时有一下三个值需要求取

  • J

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值