RNN解决序列太长存储激活值过大问题的方法:TBPTT

原始论文:[Williams, Ronald J., and Jing Peng. "An efficient gradient-based algorithm for on-line training of recurrent network trajectories."]

TBPTT :Truncated Back Propagation Through Time

TBPTT中,每次处理一个时间步,每前向传播 k1步,后向传播 k2 步。

TBPTT需要考虑两个参数:

  • k1:前向传播的时间步。一般来说,这个参数影响模型训练的快慢,即权重更新的频率。
  • k2:使用BPTT反向传播的时间步。一般来说,这个参数需要大一点,这样网络能更好的学习序列信息。但是这个参数太大的话可能会导致梯度消失。

TBPTT(n, n): 在序列处理结束之后更新参数,即传统的BPTT;
TBPTT(1, n): 每向前处理一个时间步,便后向传播所有已看到的时间步。(Williams and Peng提出的经典的TBPTT);
TBPTT(k1,1): 因为每次反向传播一个时间步,所以网络并没有足够的时序上下文来学习,严重的依赖内部状态和输入;
TBPTT(k1,k2):  k1 < k2 < n:  对于每个序列,都进行了多次更新,可以加速训练;
TBPTT(k1,k2),:  k1=k2:对应上面提到的那种简单方法。

参考链接:https://machinelearningmastery.com/gentle-introduction-backpropagation-time/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值