BP算法和BPTT算法的推导

.目录

0.前言

1.BP算法计算推导

1.1理论推导

 1.2举例

 2.BPTT算法

2.1前情提要

2.2举例和推广

 3.小结

0.前言

        阅读本文需要一定的神经网络基础,不再赘述什么是前馈网络的全连接神经网络(FCNN)和记忆网络的循环神经网络(RNN)。BP(Back Propagation)算法可以很好地求解前馈神经网络的参数,BPTT(Back Propagation Through Time)算法可以很好地求解循环神经网络的参数。本文的证明很繁琐但很讲求细节,主要是给笔者自己推导看的,符号的书写结合了多个学习资料,力求表达完整的信息。

z_i^{[l](k)}:代表第k个样本在第l层的第i个神经元的净活性

a_i^{[l](k)}:代表第k个样本在第l层的第i个神经元的活性

w_{ij}^{[l]}:第(l-1)层的第j个神经元指向第l层第i个神经元的权重

b_{i}^{[l]}:第l层第i个神经元的偏置

f^{[l]}(.):第l层的神经元的激活函数

注:显而易见,中括号代表层,小括号代表样本编号,下标代表神经元在层内的标号;如果有两个,前面标号为神经元在被指向层的标号后面的为神经元在指向层的标号。

1.BP算法计算推导

1.1理论推导

 1.2举例

        下图为3层的全连接神经网络,第一层为输入层,记为[0]层,其净活性的求解权重全部为1,激活函数视为f(x)=x,其实很多材料都不这么写,笔者这样写是为了统一所有层的神经元形式。

         以损失函数对w_{11}^{[2]}w_{11}^{[1]}的偏导数为例

 2.BPTT算法

2.1前情提要

        RNN相比全连接神经网络,隐藏层的值每次都会保留并用于下一次隐藏层的值求解。故BP算法不能再用于RNN的求解,需要考虑时间的影响。BPTT可以解决这一问题,但理论和经验显示,RNN很容易出现梯度消失和梯度爆炸的问题,LSTM模型可以解决这一问题,。

2.2举例和推广

        图中左图高度抽象了RNN模型(只有一个隐藏层),右图为t时刻的某种具体情况的展开图,可以看到t时刻有样本的3个特征输入,然后和上一次时刻的隐藏层输出一起输入到隐藏层,隐藏层到输出层后得到两个输出。

 3.小结

        基本所有神经网络的求解都可以使用BP或者BPTT算法,唯一的问题在于算法的显式表达很难求解。但是只要能掌握好求导计算图、激活函数的导数、梯度下降法、求导的链式法则、向量和矩阵求导,就可以完成相应的推导。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值