Neural network 深度学习和时间序列:可变向量长度

Neural network 深度学习和时间序列:可变向量长度,neural-network,time-series,deep-learning,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) 然后用相同长

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

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

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”表示填充缺失的观察值)


实际上,我已经这样做了,并且检查了两种方法的结果。我只是想看看是否有人能解释一下深层神经网络是如何“解释”这一点的?

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

对于序列末尾填充,我们通过将序列长度传递给递归函数来绕过这个“伪数据”,例如使用TensorFlow的tf.nn.dynamic\u rnn方法,该方法具有“序列长度”参数。这样,序列的最后一个“真实”隐藏状态将随时间复制

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


对吗?

谢谢@vega。这也是我的解释。在我的案例中,有一件事是,我发现在使用LSTM RNN体系结构时,有趣的性能改进非常有限(培训时间也更长)。你认为正确的解释是基于时间的特征捕捉到了这种影响,还是序列之间的时间关联真的很弱?我的结果很好地反映了一篇关于确切主题的学术论文,但他们从来没有真正深入研究过任何解释。与什么相比,使用LSTM时,你有一些微小的改进?与仅使用前馈网络相比,使用LSTM RNN时,改进很小。当结果如此接近时,很难解释。你可以说RNN利用了数据中的“循环模式”,但谁知道呢。
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)