如何组织递归神经网络?

How to organize the Recurrent Neural Network?

我想模拟以下内容:

y(t)=F(x(t-1),x(t-2),...x(t-k))

或者说一个函数,它的当前输出取决于最后 k 个输入。

1- 我知道一种方法是使用具有 k 个输入的经典神经网络 {x(t-1),x(t-2),...x(t-k)} 对每个 y(t) 进行训练。那么使用 RNN 来解决这个问题有什么好处呢?

2-假设使用 RNN,我是否应该只使用 x(t)(或 x(t-1))并假设隐藏层可以找到 y(t) 与过去 k 的关系通过在其内存(隐藏层)中输入?

3-考虑到我们要根据最后 k 个输入估计输出,使用像 Deep RNN 或 LSTM 这样的深度网络对此类问题有什么优势?

  1. 我不建议您使用经典的香草 RNN。从理论上讲,它有能力将先前输入的信息存储在其内存中,但实际上它需要大量的节点。
  2. 假设经典香草实现与现代架构(例如 LSTM 或 GRU)一样长 - 这取决于您是想使用一种定向模型还是双向模型。如果你想预测下一步——通常一个定向架构更好。如果您想更好地分析给定的序列 - 我建议您应用双向序列。
  3. LSTM 和 GRU 使用额外的记忆单元,这有助于您在记忆中保持输入之间的长期依赖性。它们被认为是目前最好的架构。深度 RNN - 通常是具有循环拓扑结构的深度网络 - 它们以与前馈神经网络相同的方式利用其深度。