【发布时间】:2017-12-30 15:06:21
【问题描述】:
(我正在测试我编写简短但有效的问题的能力,所以请告诉我我是怎么做的)
我正在尝试训练/测试一个 TensorFlow 循环神经网络,特别是一个 LSTM,对以下 ndarray 格式的时间序列数据进行一些试验:
[[[time_step_trial_0, feature, feature, ...]
[time_step_trial_0, feature, feature, ...]]
[[time_step_trial_1, feature, feature, ...]
[time_step_trial_1, feature, feature, ...]]
[[time_step_trial_2, feature, feature, ...]
[time_step_trial_2, feature, feature, ...]]]
这个 3darray 的 1d 部分包含一个时间步长以及在该时间步长观察到的所有特征值。 2d 块包含在一次试验中观察到的所有 1d 数组(时间步长)。 3d 块包含为时间序列数据集记录的所有 2d 块(试验)。对于每个试验,时间步长频率是恒定的,并且所有试验的窗口间隔相同(0 到 50 秒、0 到 50 秒等)。
例如,我得到了一级方程式赛车的数据,例如扭矩、速度、加速度、转速等。在一定的时间间隔内,每 0.5 秒记录一次时间步长,我将每个时间步长与在那个时间步记录的特征。然后我围绕与一辆一级方程式赛车在赛道上的运行相对应的所有时间步长形成一个二维数组。我创建了一个包含所有 F1 赛车及其时间序列数据的最终 3D 数组。我想训练和测试一个模型,以检测新车赛道上 F1 常见轨迹中的异常情况。
我目前知道 TensorFlow 模型支持二维数组进行训练和测试。我想知道我必须经过哪些程序才能在这个 3darray 中包含的所有独立试验(2d)上训练和测试模型。此外,我将在未来增加更多的试验。那么,为了不断用新的数据/试验更新我的模型以加强我的 LSTM,需要经历哪些正确的程序。
这是我最初尝试复制的模型,用于人类活动以外的其他目的:https://github.com/guillaume-chevalier/LSTM-Human-Activity-Recognition。另一个更可行的模型是我更愿意在时间序列数据中进行异常检测的模型:https://arxiv.org/abs/1607.00148。我想建立一个异常检测模型,在给定一组非异常时间序列训练数据的情况下,我们可以检测测试数据中的异常,其中部分数据随着时间的推移被定义为“不合时宜”。
【问题讨论】:
-
你能告诉我们你到目前为止所做的尝试吗?考虑编写minimal reproducible example,进一步阐明您目前面临的特定问题的输入和预期结果。问题的某些部分不清楚或过于开放,例如询问“为了训练这个模型必须经过哪些程序”。
-
@E_net4 我尝试复制 Guillaume 的 LSTM,但我遇到了维度问题。我将在上面发布我正在寻找的示例。
-
@E_net4 已更新。
-
@JulianRachman 感谢您的链接。我设法运行了 LSTM-Human-Activity-Recognition。正如您所说的“我正在尝试复制”,您是否设法掌握了他们的文件结构/输入张量?有一些重塑。
-
@ClemensTolboom 嗯。我只是想知道这个模型如何处理 3d 数组,以便我可以将其应用到关于不可预测模式异常检测的第二篇论文中。第二篇论文是最终目标。
标签: python python-3.x tensorflow neural-network lstm