【问题标题】:clockwork neural network (CW RNN)发条神经网络(CW RNN)
【发布时间】:2017-04-06 20:57:59
【问题描述】:


感谢您阅读这篇文章!

这里是给 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): http://jmlr.org/proceedings/papers/v32/koutnik14.pdf

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

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.

这就是我困惑的地方。

上述哪些反向传播步骤应用于隐藏层中的未激活模块?
clock MOD timestep != 0 的模块)

step1step2 还是两者兼有?

再次感谢您的帮助!

【问题讨论】:

  • 据我了解,它是信噪比,在我看来,这是一个我还没有完全理解的概念
  • 我的评论是:what is SRN。来自论文:SRN = simple RNN(我懒得看论文)

标签: neural-network recurrent-neural-network backpropagation


【解决方案1】:

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

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

所以我猜 step1 和 step2 都不是,只是复制上一个时间步的值。

【讨论】:

  • 非常感谢!所以如果我理解你的意思,当一个模块处于活动状态时,计算它在 back prop 中的错误率(步骤 1),并且这个错误率在其他时间步长保持不变,直到模块再次被激活?如果模块没有被激活,没有重量增量计算? PS BPTT 链接:en.m.wikipedia.org/wiki/Backpropagation_through_time
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-19
  • 2011-03-30
  • 2018-09-19
  • 1970-01-01
  • 2014-01-15
相关资源
最近更新 更多