Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow LSTM的时间反向传播(BPTT)_Tensorflow_Backpropagation_Lstm - Fatal编程技术网

Tensorflow LSTM的时间反向传播(BPTT)

Tensorflow LSTM的时间反向传播(BPTT),tensorflow,backpropagation,lstm,Tensorflow,Backpropagation,Lstm,我目前正在尝试理解TensorFlow中LSTM的BPTT。我得到参数“num_steps”用于RNN推出和错误反向传播的范围。我有一个关于这是如何运作的一般性问题 有关公式的说明,请参阅。我指的是: () 问题: 哪些路径反向传播了那么多步骤?恒定误差转盘由公式5创建,反向传播的导数(s(t)->s(t-1))对于所有时间步都是1。这就是为什么LSTM会捕获远程依赖关系。我对h(t-1)的g(t)、I(t)、f(t)和o(t)的依赖性感到困惑。换句话说:当前门不仅取决于输入,还取决于最后一个隐

我目前正在尝试理解TensorFlow中LSTM的BPTT。我得到参数“num_steps”用于RNN推出和错误反向传播的范围。我有一个关于这是如何运作的一般性问题

有关公式的说明,请参阅。我指的是: ()

问题: 哪些路径反向传播了那么多步骤?恒定误差转盘由公式5创建,反向传播的导数(s(t)->s(t-1))对于所有时间步都是1。这就是为什么LSTM会捕获远程依赖关系。我对h(t-1)的g(t)、I(t)、f(t)和o(t)的依赖性感到困惑。换句话说:当前门不仅取决于输入,还取决于最后一个隐藏状态

这种依赖性不会再次导致梯度爆炸/消失问题吗?

如果我沿着这些连接反向传播,我得到的梯度不是一个。窥视孔连接基本上会导致相同的问题


谢谢你的帮助

我终于自己找到了答案:

LSTMs()的原始文件(第4章第7页)中说:

学习。我们使用RTRL的一种变体(如Robinson和Fallside 1987),它适当地考虑了由输入和输出门引起的变化的乘法动态。然而,为了确保不衰减的错误通过存储单元的内部状态反向传播,如截断的BPTT(如Williams和Peng 1990),到达\存储单元网络输入的错误”(对于单元cj,这包括netcj、netinj、netoutj)不会在时间上传播得更远(尽管它们确实用于更改传入的权重)。只有在2个存储单元中,错误才会通过以前的内部状态scj传播回去。”


因此,本质上:关于内部状态的时间反向传播已经完成,但其他复杂依赖项没有反向传播

可能更适合or。谢谢,我也在那里发布了:那是在当时。今天有了Theano/TensorFlow/Pytorch/Chainer/CNTK/你所说的,没有特殊处理,一切都是反向传播的此外,请注意,虽然单个单元的设计遵循原始文件,但LSTM层的设计已被重新考虑(大大简化了IMHO)。