如何组织循环神经网络?

Bob*_*Bob 4 neural-network deep-learning recurrent-neural-network

我想模拟以下内容:

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

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

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

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

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

Mar*_*jko 5

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