深度学习和时间序列:不同的矢量长度

时间:2017-03-24 22:11:27

标签: neural-network time-series deep-learning

这是一个关于在深度学习环境中使用不同长度的时间序列的概念性问题:

我观察到以不规则间隔发生的标准化特征,其中包括每个单独测量中的基于时间的特征。然后,我将这个多变量时间序列(面板数据)展平为每个时间序列的单个连续特征向量。然后,我为这些向量构建了一个深度神经网络,用于二进制分类任务,现在看起来像这样:

xxxx(T=2)xxxx(T=4)xxxx(T=5)
xxxx(T=1)xxxx(T=2)
xxxx(T=3)
xxxx(T=1)xxxx(T=2)xxxx(T=3)xxxx(T=5)

然后用零填充为相同的长度。

每个“xxxxT”表示观察,其中“x”是非时间特征,“T”是基于时间的特征。我的问题是,是否可以假设神经网络能够独立区分这个时间序列的不规则性质?

或者我是否应该将间歇性的非发生观察结果看起来像这样(“0000”代表填充缺失的观察结果)?

0000(T=1)xxxx(T=2)0000(T=3)xxxx(T=4)xxxx(T=5)
xxxx(T=1)xxxx(T=2)0000(T=3)0000(T=4)0000(T=5)
0000(T=1)0000(T=2)xxxx(T=3)0000(T=4)0000(T=5)
xxxx(T=1)xxxx(T=2)xxxx(T=3)0000(T=4)xxxx(T=5)

我实际上已经这样做并检查了两种方法的结果。我只是想知道是否有人可以透露深层神经网络如何“解释”这个?

1 个答案:

答案 0 :(得分:1)

如果您使用的是经常性网络,我认为填充序列内部并不是一个好主意。鉴于权重是跨时间重用的,它应该对“真实”数据“敏感”,而不是填充。

使用序列结束填充,我们通过将序列长度传递给循环函数来解决这个“假数据”,例如使用TensorFlow的tf.nn.dynamic_rnn方法,该方法具有“sequence_length”参数。这样,序列的最后一个“真实”隐藏状态就会被复制。

如果你坚持内部填充,你需要一个实现来复制序列中的隐藏状态,就像序列结束填充一样。

右?