【问题标题】:Training, testing, and validation sets for bidirectional LSTM (BLSTM)双向 LSTM (BLSTM) 的训练、测试和验证集
【发布时间】:2016-01-24 00:34:50
【问题描述】:

当谈到普通的人工神经网络或任何标准机器学习技术时,我了解训练、测试和验证集应该是什么(概念上和经验法则比率)。但是,对于一个双向 LSTM (BLSTM) 网络,如何拆分数据让我很困惑。

我正在尝试改进对包含受监控健康值的个体受试者数据的预测。在最简单的情况下,对于每个主题,都有一个长时间的值序列(>20k 值),并且该时间序列的连续部分从一组类别中标记出来,具体取决于主题的当前健康状况。对于 BLSTM,网络同时对所有向前和向后的数据进行训练。那么问题是,如何为一个主题拆分时间序列?

  • 我不能只取最后 2,000 个值(例如),因为它们可能都属于一个类别。
  • 而且我不能随机分割时间序列,因为这样学习和测试阶段都将由不连贯的块组成。

最后,每个主题(据我所知)都有略微不同(但相似)的特征。那么,也许,因为我有成千上万的科目,我是否会在一些科目上进行训练、在一些科目上进行测试并在其他科目上进行验证?但是,由于存在学科间差异,如果我只考虑一个学科开始,我将如何设置测试?

【问题讨论】:

    标签: python neural-network time-series keras recurrent-neural-network


    【解决方案1】:

    我认为这与您的特定数据集有关,而不是一般的 Bi-LSTM。

    您将拆分数据集以进行训练/测试与拆分特定样本中的序列相混淆。似乎您有许多不同的主题,它们构成了不同的样本。对于标准的训练/测试拆分,您可以在主题之间拆分数据集,如您在上一段中建议的那样。

    对于任何类型的 RNN 应用程序,您都不会沿着时间序列进行拆分;您将整个序列作为单个样本输入到 Bi-LSTM。所以问题真的变成了这样的模型是否非常适合您的问题,它在序列中的特定点有多个标签。您可以使用 LSTM 模型的序列到序列变体来预测序列中每个时间点属于哪个标签,但同样您不会将序列拆分为多个部分。

    【讨论】:

      猜你喜欢
      • 2020-01-30
      • 2020-06-16
      • 2012-06-04
      • 2021-09-07
      • 1970-01-01
      • 2019-05-01
      • 2016-01-29
      • 2019-06-05
      相关资源
      最近更新 更多