Neural network 发条神经网络(CW RNN)

Neural network 发条神经网络(CW RNN),neural-network,recurrent-neural-network,backpropagation,Neural Network,Recurrent Neural Network,Backpropagation,谢谢你阅读这篇文章 RNN爱好者的快速问题: 我知道在时间的反向推进(BPPT)中,至少有3个步骤: For each element in a sequence : Step 1 - Compute 'error ratio' of each neuron, from upper layer to lower layer. Step 2 - Compute a 'weight delta' for each weight (X) using the error ratio mentionned


谢谢你阅读这篇文章

RNN爱好者的快速问题:

我知道在时间的反向推进(BPPT)中,至少有3个步骤:

For each element in a sequence :
Step 1 - Compute 'error ratio' of each neuron, from upper layer to lower layer.
Step 2 - Compute a 'weight delta' for each weight (X) using the error ratio mentionned in step 1, and push it into an array

After sequence is finished :
Step 3 - Sum all weight deltas of weight (X) and add it to current value of weight (X)
我现在正试图根据以下文档实现发条式RNN(CW RNN):

根据我的理解,隐藏层中的每个“模块”都有相同数量的神经元,只是不同的时钟

CW RNN的向前传球似乎非常简单直观。
然而,对于向后传球,情况就不同了

引用文件:

The backward pass of the error propagation is similar to
SRN as well. The only difference is that the error propagates
only from modules that were executed at time step t. The
error of non-activated modules gets copied back in time
(similarly to copying the activations of nodes not activated
at the time step t during the corresponding forward pass),
where it is added to the back-propagated error.
这就是我感到困惑的地方

以上哪一个反向传播步骤应用于隐藏层中未激活的模块
(其时钟MOD timestep!=0的模块)

步骤1步骤2,还是两者都有


再次感谢你的帮助

我不确定您的BPTT算法(如果您能提供参考,我可能会尝试更好地理解它)

但是在仔细看了图2和方程式(1)和(2)之后,未激活的模块应该只是通过时间向下传递梯度。这意味着不计算梯度(对于非活动模块),只传递在时间t-1,在时间t的梯度值


因此,我猜不是第1步,也不是第2步,只是复制上一时间步的值。

据我所知,它是信噪比,这是一个我尚未完全理解的概念。我的评论是:
什么是SRN
。来自报纸:SRN=简单的RNN(我没有读报纸)非常感谢!如果我理解你的意思,当一个模块激活时,在back prop(步骤1)中计算它的错误率,这个错误率在其他时间段保持不变,直到模块再次激活?如果模块未激活,是否不计算权重增量?P.S BPTT链接: