【发布时间】:2017-10-23 05:22:50
【问题描述】:
我有一个时间序列数据集,我将其用作 LSTM-RNN 的输入以进行动作预测。时间序列包括 30 fps 的 5 秒时间(即 150 个数据点),数据表示面部特征的位置/移动。
我从我的数据集中抽取额外的较小长度的子序列,以便在数据集中添加冗余并减少过度拟合。在这种情况下,我知道子序列的开始和结束帧。
为了批量训练模型,所有时间序列需要具有相同的长度,并且根据文献中的许多论文,padding 不应影响网络的性能。
例子:
原序列:
1 2 3 4 5 6 7 8 9 10
子序列:
4 5 6 7
8 9 10
2 3 4 5 6
考虑到我的网络正在尝试预期一个动作(这意味着只要 P(action) > 阈值,它从 t = 0 到 T = tmax,它就会预测那个动作)填充物去哪里重要吗?
选项 1:用零替换原始值
0 0 0 4 5 6 7 0 0 0
0 0 0 0 0 0 0 8 9 10
0 2 3 4 5 6 0 0 0 0
选项 2:最后全为零
4 5 6 7 0 0 0 0 0 0
8 9 10 0 0 0 0 0 0 0
2 3 4 5 0 0 0 0 0 0
此外,一些时间序列丢失了一些帧,但不知道它们是哪些 - 这意味着如果我们只有 60 帧,我们不知道它们是否是从 0 到 2 秒,从 1 到 3 秒等。这些都需要在子序列被采用之前进行填充。在这种情况下,填充的最佳做法是什么?
提前谢谢你。
【问题讨论】:
标签: machine-learning deep-learning padding lstm recurrent-neural-network