我正在学习关于LSTM的张量流教程:Truncated Backpropagation。
本节说代码使用"截断反向传播",那究竟是什么意思?
答案 0 :(得分:1)
在神经网络设置中(通常,大部分时间),您在训练期间执行两个步骤:
FORWARD PASS
后退通行证
在向后传递中,由于某种原因,您可能只想训练顶层或仅训练网络的某些特定部分。在这种情况下,您可能希望在此时停止向后传递渐变。这就是截断反向传播的方式(通常通过https://www.tensorflow.org/versions/r0.9/api_docs/python/train.html#stop_gradient)完成。
答案 1 :(得分:1)
除了@ friesel的答案之外,我还说截断的反向传播不仅适用于加速梯度计算的过程,还可以缓解递归神经网络中的一些潜在问题(例如消失梯度和梯度爆炸。)
答案 2 :(得分:0)
截断反向传播旨在通过计算"短"上的近似梯度来加速学习序列(例如,使用LSTM)。序列,而不是完整的序列。我想这就是文档通过使学习过程易于处理而意味着什么。
这种方法似乎起源于Mikolov对基于神经网络的统计语言模型的工作" (他的论文)。正如Alex Graves在well-cited paper(第9页)中所解释的那样:
之前已经考虑过这种形式的截断反向传播用于RNN语言建模[23],并且发现加速训练(通过减少序列长度并因此增加随机权重更新的频率)而不影响网络的学习能力远程依赖。
[23]是Mikolov的论文。
简而言之,截断的反向传播是一个"技巧"加快对序列的学习,而不会丢失(过多)重要信息。请注意,截断太多可能会后退(即丢失重要信息)。
答案 3 :(得分:0)
对于其他在这篇文章上绊脚石的人,“截断梯度”也可以指LASSO型正则化的在线版本。例如参见Stochastic Gradient Descent Training forL1-regularized Log-linear Models with Cumulative Penalty (2009)。