RNN建模的可行序列长度是多少?


15

我正在研究使用递归神经网络(RNN)的LSTM(长期短期记忆)版本对时间序列数据进行建模。随着数据序列长度的增加,网络的复杂性也随之增加。因此,我很好奇准确建模的序列长度是多少?

我想使用相对简单的LSTM版本,而又不难实施最新技术。我的时间序列中的每个观测值可能都有4个数字变量,观测值的数量在100.000到1.000.000之间。

Answers:


8

这完全取决于数据的性质和内部相关性,没有经验法则。但是,鉴于您拥有大量数据,因此2层LSTM可以对大量时间序列问题/基准进行建模。

此外,您不会向后传播整个系列,而通常会向后传播(200-300)个最后步骤。要找到最佳值,您可以使用网格搜索或贝叶斯优化对它进行交叉验证。此外,您可以在此处查看参数:https : //github.com/wojzaremba/lstm/blob/master/main.lua

因此,序列长度并不会真正影响您的模型训练,但是就像有更多训练示例一样,您只需保留先前的状态而不是将其重置即可。


假设我需要进行情感分析,这是一种多对一的方法(请参阅karpathy.github.io/2015/05/21/rnn-efficiency)。这些句子中的每个句子都很长(大于200个字)。如果我仅在时间上反向传播通常的35个步骤,那不是问题吗?由于它是有监督的学习,因此我假设它只能在“命中”二进制分类目标时反向传播y。这样,RNN将如何根据为BPTT选择的35个步骤之前的任何内容来调整权重?
pir

1
好吧,这不会成为问题,因为在下一个训练步骤中将重用相同的权重。此外,如果您在步骤36中看到源代码(比方说),则初始化矢量不是零,而是步骤35的状态。因此,通过执行一些小步骤,您可以使用BPTT优化成本函数。
Yannis Assael,2015年

1
只是为了澄清一下:BPTT是对单个句子运行一次还是多次?如果只运行一次,那么仅影响句子中前几个单词的模式只会影响隐藏状态,对吗?我的意思是..永远不会针对输入的那部分计算梯度。
pir

1
我已经将其作为一个单独的问题问了,希望您能看一下:) stats.stackexchange.com/questions/167482/…–
pir

2
“如果您拥有大量数据,则2层LSTM几乎可以在任何时间序列上建模。” 证据在哪里?
nbro
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.