概述
原始论文:[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/
最后
以上就是冷傲钻石为你收集整理的RNN解决序列太长存储激活值过大问题的方法:TBPTT的全部内容,希望文章能够帮你解决RNN解决序列太长存储激活值过大问题的方法:TBPTT所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复