深度学习理论:带时间的反向传播(循环神经网络)

摘自《动手学习深度学习》

这里介绍循环神经网络中梯度的计算和存储方法

在 深度学习理论:正向传播与反向传播中讲了正向传播和反向传播的计算过程,主要依据求导链式法则,需要对中间变量(参数)进行计算与存储。当反向传播应用到循环审计网络时,则要将循环神经网络按时间步展开,得到模型变量和参数之间的依赖关系,并依据链式法则应用反向传播计算并存储梯度

考虑一个无偏差项的循环神经网络,且激活函数为恒等映射  

设时间步 t 的输入为单样本: ,标签为  ,则隐藏状态 的计算式为: 

 和  为隐藏层权重,设输出层权重参数  ,时间步 t 的输出层变量  计算为:

设时间步 t 的损失为 ,时间步数为 T 的损失函数 L 定义为  ,将L称为有关给定时间步(T范围)的数据样本的目标函数

如上图所示,时间步3的隐藏状态 h3  的计算依赖模型参数   、  、上一时间步隐藏状态  以及当前时间步输入,所以这里模型参数是:, ,需要求得梯度为:

目标函数有关各时间步输出层变量的梯度 为:

目标函数有关模型参数  的梯度 的计算:

L通过o1,…,oT依赖,由链式法则:

 

注意到隐藏状态之间也存在依赖关系,L只通过oT依赖最终时间步T的隐藏状态hT,因此先计算目标函数有关最终时间步隐藏状态的梯度  ,由链式法则:

对于时间步t<T,图中 L 通过ht+1 和ot 依赖 ht,根据链式法则,目标函数有关时间步t<T的隐藏状态的梯度  需要按照时间步从大到小依次计算(从后往前推),递推关系为:

将其展开,对任意时间步1≤t≤T,我们可以得到目标函数有关隐藏状态梯度的通项公式 

由上式中的指数项可见,当时间步数  T较大或者时间步 t 较小时,目标函数有关隐藏状态的梯度较容易出现衰减和爆炸,影响其他包含 项的梯度,如隐藏层中模型参数的梯度  , ,在图中,L通过h1,…,hT依赖这些模型参数:

  • 每次迭代中,在依次计算完以上各个梯度后会将它们存储起来,从而避免重复计算。例如,由于隐藏状态梯度  被计算和存储,之后的模型参数梯度 和  的计算可以直接读取  的值。
  • 反向传播中的梯度计算可能依赖变量的当前值,是通过正向传播计算出来的,如  的计算需要依赖隐藏状态在时间步t=0,…,T−1 的当前值 ht(h0是初始化得到的),是通过从输入层到输出层的正向传播计算并存储得到

 

转自:

6.6. 通过时间反向传播

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值