TensorFlow精进之路(十二):随时间反向传播BPTT

1、概述


上一节介绍了TensorFlow精进之路(十一):反向传播BP,这一节就简单介绍一下BPTT。

2、网络结构


RNN正向传播可以用上图表示,这里忽略偏置。

上图中,

x(1:T)表示输入序列,

y(1:T)表示输出序列,

Y(1:T)表示标签序列,

表示隐含层输出,

表示隐含层输入,

表示经过激活函数之前的输出层输出。

3、前向传播


忽略偏置的前向传播过程如下:

其中,f是激活函数。U、W、V三个权重在时间维度上是共享的。

每个时刻都有输出,所以每个时刻都有损失,记t时刻的损失为,那么对于样本x(1:T)来说,

 

总损失,使用交叉熵做损失函数,则

 

3、反向传播BPTT


跟BP类似,想求哪个权值对整体误差的影响就用误差对其求偏导。

3.1、E对V的梯度

根据链式法则有,

其中,

所以,

3.2、E对U的梯度

这个是BPTT与BP之所以不同的地方,因为不止t时刻隐含层与U有关,之前所有的隐含层都跟U有关。所以有,

其中,

假设

3、梯度爆炸和梯度消失


用链式法则求损失E对U的梯度为,

其中,

定义

,如果,则当 t-k→∞时,→∞,会造成系统不稳定,这就是所谓的梯度爆炸问题。相反,如果,则当 t-k→∞时,,这就是梯度消失问题。因此,虽然简单的循环神经网络理论上可以建立长时间间隔的依赖关系,但是由于梯度爆炸或梯度消失问题,实际上只能解决短周期的依赖关系。为了解决这个问题,一个很好的解决方案是引入“门机制”来控制信息的累计速度,并可以选择遗忘之前积累的信息,这就是长短时记忆神经网络LSTM,下一节再学习这个。
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值