我目前正在尝试了解TensorFlow中LSTM的BPTT . 我得到参数“num_steps”用于RNN推出的范围和反向传播的错误 . 我有一个关于它如何工作的一般问题 .
供参考重复公式 . 我指的是:Formulas LSTM(https://arxiv.org/abs/1506.00019)
Question: 哪些路径反向传播了许多步骤?恒定误差轮播由公式5创建,并且反向传播的推导(s(t) - > s(t-1))对于所有时间步长都是1 . 这就是LSTM捕获长程依赖性的原因 . 我对h(t-1)的g(t),i(t),f(t)和o(t)的依赖性感到困惑 . 用语言来说:当前的门不仅取决于输入,还取决于最后的隐藏状态 .
Doesn't this dependency lead to the exploding/vanishing gradients problem again?
如果我沿着这些连接反向传播,我得到的渐变不是一个 . 窥视孔连接基本上导致同样的问题 .
谢谢你的帮助!
1 回答
I finally found the answer myself:
在LSTMs的原始论文(https://www.google.de/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cad=rja&uact=8&ved=0ahUKEwjOybDTstDQAhWJiywKHVigAioQFgg6MAI&url=http%3A%2F%2Fdeeplearning.cs.cmu.edu%2Fpdfs%2FHochreiter97_lstm.pdf&usg=AFQjCNGoFvqrva4rDCNIcqNe_SiPL_VPxg)中,据说(在第4章第7页):
“ Learning. 我们使用RTRL的变体(例如,Robinson和Fallside 1987),它恰当地考虑了由输入和输出门引起的改变的乘法动力学 . 然而,为了确保通过存储器单元的内部状态的非衰减误差反向提供,截断BPTT(例如,Williams和Peng 1990),错误到达\ memory cell net inputs " (for cell cj , this includes netcj , netinj , netoutj ) do not get propagated back further in time (although they do serve to change the incoming weights). Only within2 memory cells, errors are propagated back through previous internal states scj ."
所以基本上是:关于内部状态的反向传播已完成,但其他复杂的依赖关系不会反向传播