【问题标题】:Why do Recurrent Neural Networks loop all the hidden neurons?为什么循环神经网络循环所有隐藏的神经元?
【发布时间】:2016-10-10 00:03:43
【问题描述】:

我了解循环神经网络 (RNN) 需要有记忆,以及如何通过反馈隐藏神经元的输出来获得记忆。但是为什么他们不能只保留输入;也就是说,仅延迟和反馈一系列输入,而不是作为这些输入函数的隐藏神经元,并使用 that 作为上下文?

这似乎解决了反馈整个隐藏状态的许多问题(即 BPTT 困难),但仍保留所有上下文。根据定义,输入具有计算上下文所需的任何数据。

即使上下文是输入的函数而不是输入本身,我们仍然可以使用它,因为单个隐藏层中的一些神经元将能够成为 x(t-1) x(t-2)... 输入的函数。因此,我们仍然可以计算我们可以使用标准 RNN 计算的任何内容,但复杂性要低得多:一些神经元将专注于 x(t),而另一些则专注于 x(t-n)

现在,既然没有人这样做,我不得不想象他们考虑过并拒绝了它。为什么?

【问题讨论】:

    标签: neural-network recurrent-neural-network


    【解决方案1】:

    看看http://www-dsi.ing.unifi.it/~paolo/ps/tnn-94-gradient.pdf 用梯度下降学习长期依赖很困难 by Bengio 等人。 “循环神经网络......具有一个内部状态,可以......将有关过去输入的信息保留一段时间,而不是先验固定......相比之下,静态网络(即没有循环连接),即使它们包含延迟(例如时间延迟神经网络)也具有有限的脉冲响应并且不能无限期地存储一点信息

    所以,我提出的方案似乎被 Bengio 称为时间延迟神经网络,它的主要缺点是有一个固定的、有限的、最大的内存。例如,没有办法在一个中实现一个累加器(超过窗口大小)。将其与真正的 RNN 进行对比,其中权重可能(尽管可能难以学习)无限期地保留特定信息。例如,累加器很容易实现。

    【讨论】: