循环神经网络在时间序列预测中的前景

循环神经网络是一种在输入观测中明确处理顺序的神经网络。

这种能力表明,循环神经网络的希望在于学习输入序列的时间上下文,以便做出更好的预测。也就是说,进行预测所需的滞后观测套件不再需要像传统时间序列预测或甚至经典神经网络预测那样进行诊断和指定。相反,可以学习时间依赖性,甚至可以学习这种依赖性的变化。

在这篇文章中,您将发现循环神经网络在时间序列预测中承诺的能力。阅读本文后,您将了解

  • 传统时间序列预测方法的重点和隐含(即使不是明确)的局限性。
  • 使用传统前馈神经网络进行时间序列预测所提供的能力。
  • 循环神经网络在传统神经网络基础上做出的额外承诺,以及这在实践中可能意味着什么的提示。

通过我的新书《时间序列预测深度学习》来启动您的项目,其中包括逐步教程和所有示例的Python源代码文件。

让我们开始吧。

The Promise of Recurrent Neural Networks for Time Series Forecasting

循环神经网络在时间序列预测中的前景
摄影:Andy Hutchinson,保留部分权利。

时间序列预测

时间序列预测很困难。

与分类和回归等简单问题不同,时间序列问题增加了观测之间顺序或时间依赖性的复杂性。

这可能很困难,因为在拟合和评估模型时需要对数据进行专门处理。它还有助于建模,提供额外的结构,如趋势和季节性,可以利用这些结构来提高模型技能。

传统上,时间序列预测一直由ARIMA等线性方法主导,因为它们易于理解且在许多问题上都有效。但这些传统方法也存在一些局限性,例如:

  • 侧重于完整数据:通常不支持缺失或损坏的数据。
  • 侧重于线性关系:假设线性关系排除了更复杂的联合分布。
  • 侧重于固定时间依赖性:不同时间观测之间的关系,以及作为输入提供的滞后观测数量,必须进行诊断和指定。
  • 侧重于单变量数据:许多实际问题具有多个输入变量。
  • 侧重于一步预测:许多实际问题需要长时间范围的预测。

现有技术通常依赖于手工制作的特征,这些特征创建成本高昂,并且需要该领域的专家知识。

— John Gamboa,《深度学习用于时间序列分析》,2017年

请注意,已经开发了一些专门技术来解决其中一些局限性。

时间序列深度学习需要帮助吗?

立即参加我为期7天的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

用于时间序列的神经网络

神经网络近似从输入变量到输出变量的映射函数。

这种通用能力对时间序列很有价值,原因如下。

  • 对噪声具有鲁棒性。神经网络对输入数据和映射函数中的噪声具有鲁棒性,甚至可以支持在缺失值存在的情况下进行学习和预测。
  • 非线性。神经网络不对映射函数做出强假设,并且很容易学习线性和非线性关系。

... 神经网络的一个重要贡献——即它们优雅地近似任意非线性函数的能力。这种特性在时间序列处理中具有很高的价值,并有望在预测子领域中带来更强大的应用...

— Georg Dorffner,《用于时间序列处理的神经网络》,1996年。

更具体地说,神经网络可以配置为支持映射函数中任意定义但固定数量的输入和输出。这意味着

  • 多变量输入。可以指定任意数量的输入特征,为多变量预测提供直接支持。
  • 多步预测。可以指定任意数量的输出值,为多步甚至多变量预测提供直接支持。

仅凭这些能力,前馈神经网络就被广泛用于时间序列预测。

使用神经网络的隐含要求是确实存在一个有意义的从输入到输出的映射可供学习。建模随机游走的映射不会比持久性模型(例如,使用最后一次观测作为预测)表现更好。

这种对可学习映射函数的期望也明确指出了其中一个局限性:映射函数是固定或静态的。

  • 固定输入。滞后输入变量的数量是固定的,与传统时间序列预测方法相同。
  • 固定输出。输出变量的数量也是固定的;虽然这是一个更微妙的问题,但它意味着对于每个输入模式,必须产生一个输出。

序列对 [深度神经网络] 构成了挑战,因为它们要求输入和输出的维度是已知且固定的。

— Ilya Sutskever, Oriol Vinyals, Quoc V. Le,《使用神经网络进行序列到序列学习》,2014年

前馈神经网络确实提供了强大的能力,但仍然受到必须在模型设计中预先指定时间依赖性的关键限制。

这种依赖性几乎总是未知的,必须通过详细分析以固定形式发现和提取。

用于时间序列的循环神经网络

像长短期记忆网络这样的循环神经网络在学习从输入到输出的映射函数时,增加了对观测之间顺序的明确处理。

序列的增加是近似函数的一个新维度。神经网络不再仅仅将输入映射到输出,而是能够学习随时间变化的输入的映射函数,以产生输出。

这种能力为神经网络开启了时间序列的大门。

长短期记忆(LSTM)能够解决许多前馈网络使用固定时间窗口无法解决的时间序列任务。

— Felix A. Gers, Douglas Eck, Jürgen Schmidhuber,《将LSTM应用于通过时间窗口方法可预测的时间序列》,2001年

除了使用神经网络进行时间序列预测的一般优势之外,循环神经网络还可以从数据中学习时间依赖性。

  • 学习的时间依赖性。学习观测随时间变化的上下文。

也就是说,在最简单的情况下,网络一次被展示一个序列中的观测,并且可以学习它以前看到的哪些观测是相关的,以及它们如何与预测相关。

由于这种学习序列中长期相关性的能力,LSTM网络避免了预先指定时间窗口的需要,并且能够准确地建模复杂的多变量序列。

— Pankaj Malhotra等,《用于时间序列异常检测的长短期记忆网络》,2015年

循环神经网络的承诺是,可以学习输入数据中的时间依赖性。不需要指定固定的滞后观测集。

这个承诺中隐含着,也可以学习随情况变化的时间依赖性。

但是,循环神经网络可能能够做更多的事情。

手动识别并从时间序列数据中移除这些系统性结构以简化建模问题(例如,使序列平稳)是一种好习惯,这在使用循环神经网络时可能仍然是最佳实践。但是,这些网络的通用能力表明,这可能不是一个熟练模型的必要条件。

从技术上讲,可用的上下文可能允许循环神经网络学习

  • 趋势。时间序列的递增或递减水平,甚至这些变化的变异。
  • 季节性。随时间重复出现的固定模式。

您认为LSTM在时间序列预测问题上的前景是什么?

总结

在这篇文章中,您发现了循环神经网络在时间序列预测中的前景。

具体来说,你学到了:

  • 传统时间序列预测方法侧重于具有线性关系和固定且手动诊断的时间依赖性的单变量数据。
  • 神经网络增加了学习可能带噪声和非线性关系的能力,这些关系具有任意定义但固定数量的输入和输出,支持多变量和多步预测。
  • 循环神经网络增加了对有序观测的明确处理,以及从上下文中学习时间依赖性的前景。

您是否不同意我对LSTM在时间序列预测中前景的看法?
在下面留言并加入讨论。

立即开发时间序列深度学习模型!

Deep Learning for Time Series Forecasting

在几分钟内开发您自己的预测模型

...只需几行python代码

在我的新电子书中探索如何实现
用于时间序列预测的深度学习

它提供关于以下主题的自学教程
CNNLSTM多元预测多步预测等等...

最终将深度学习应用于您的时间序列预测项目

跳过学术理论。只看结果。

查看内容

对《循环神经网络在时间序列预测中的前景》的74条回复

  1. Benson Dube 2017年5月22日上午7:33 #

    感谢 Jason 的分享。我正在温和地开始深度学习。目前正在收集非常通用的信息。

  2. Sander de Winter 2017年5月22日晚上10:23 #

    很棒的文章!我目前正在写我的论文,这与我写的内容非常相似,只是更好一点。感谢您对时间序列预测这一复杂理论的清晰总结!

  3. Samuel 2017年5月23日下午1:02 #

    感谢 Jason 的帮助文章。我在分类中使用 RNN,在相同数据上使用相同的随机种子。但多次运行相同的代码会给我不同的结果。到目前为止,大多数结果都相同,除了可能有一两次。但结果却截然不同(76% 的准确率 vs 48%)。您有过类似的经历吗?如果有,您是如何缓解的?

    • Jason Brownlee 2017年5月23日下午1:58 #

      如果您使用 tensorflow 后端,您还需要为 tensorflow 随机数生成器设置种子。

    • Peter Marelas 2017年5月24日晚上10:29 #

      如果您使用 Keras,请在 fit 方法中关闭 shuffling。

  4. Gerrit Govaerts 2017年5月23日下午5:13 #

    随着最近所有关于时间序列预测的帖子,我想提醒您,有无数的时间序列,即使是最复杂的RNN LSTM方法也无法驯服,无论您尝试什么。有时,做出准确预测所需的数据不包含在时间序列数据中,而是包含在外生变量中。如果您认为可以根据历史石油价格数据预测明天的油价,我在布鲁克林有一座桥梁待售给您。一如既往,这里没有“免费午餐”,没有黑魔法

    • Jason Brownlee 2017年5月24日上午4:53 #

      太好了,格里特。

    • Dave 2017年5月25日晚上11:10 #

      另一方面——如果油价在几年内保持在50.0美元,我们可以安全地假设它们不会开始以“微波炉”或“白矮星外围有感知力的氢气团”或“孤独的互联网消息所描绘的自我认同的抽象概念”进行交易——简而言之,我们必须肯定地克制期望,并部分地假设生活可能相当不可预测,但也要理解它通常并非如此,并且在某些容忍度内几乎可以说非常无聊。

  5. Atanas Stoyanov 2017年5月25日上午3:52 #

    嗨,Jason,

    您有机会评估HTM模型吗 (https://numenta.org),它们似乎不为人知。也许可以写一篇未来的文章?

    >>>从技术上讲,可用的上下文可能允许循环神经网络学习 ..

    您能指出任何实际测量或研究吗,我注意到您最近的大多数文章都在对序列进行差分

    >>>缩放

    此外——有任何测量或参考吗?

    再次感谢,请继续努力——我还是您PDF书籍的忠实客户。

    • Jason Brownlee 2017年6月2日上午11:36 #

      是的,早在 2008 年或 2009 年,它们刚“推出”时,我就深入研究了 HTM。

      抱歉,我不确定是否理解您的问题。也许您可以重新说明一下?

      • Atanas 2017年6月2日下午1:02 #

        谢谢 Jason,我很乐意看到您对 HTM 的看法

        抱歉我的问题,我的意思是您能指出关于差分(以及它在 LSTM 中是否有益)和特征缩放的精确影响的研究或测试/测量吗。

        • Jason Brownlee 2017年6月2日下午1:03 #

          不,我没见过这方面的文献。使用LSTM的时间序列是一个非常新的领域。

  6. Chris 2017年7月6日下午6:12 #

    嗨,Jason,

    我目前正在使用 LSTM 进行电池生命周期预测的硕士毕业项目,您关于 LSTM 时间序列的帖子非常有帮助。

    目前我正在努力确定我的模型受窗口大小的影响程度,但我希望比仅仅进行经验测试更系统地处理它。我只是想知道,当您说“可以学习输入数据中的时间依赖性”时,这与窗口大小有何关系?您能为我详细解释一下并给我一些论文吗?

    谢谢 🙂

  7. Thibault 2017年7月18日晚上11:09 #

    嗨,Jason,

    我目前正在用Keras进行神经网络时间序列预测的实习工作。到目前为止,你的博客非常有帮助。

    但我仍然有一个大问题,我有点难以解决;当你说“循环神经网络的希望在于可以学习输入数据中的时间依赖性。不需要指定固定的滞后观测集”时,我感到这与我们训练模型的方式有些矛盾。
    例如,假设我们有一个单变量时间序列 x1, x2, ...
    目标是预测当前时间后的两个值。在您的一些使用 Keras 的帖子中,您以这种方式塑造您的输入/输出

    [x1, x2, x3, ... , xt] -> [xt+1, xt+2]
    [x2, x3, x4, ... , xt+1] -> [xt+2, xt+1]
    .
    .
    .

    但是我们显然正在使用时间窗口来预测下一个值?我想我有些难以理解您所说的“时间依赖性”与由窗口大小引起的“时间依赖性”之间的区别...

    谢谢你

    • Jason Brownlee 2017年7月19日上午8:25 #

      并不是真的。

      我们必须向模型提供序列数据以进行学习。库要求的数据向量化施加了一些限制。事实上,BPTT 无论如何都会施加一个合理的限制,即 200-400 个时间步长。这些不是一个窗口,而是在训练期间更新权重之前向模型显示的时间步长数量的限制。

      这与 5 或 10 个时间步长的窗口不同。

      话虽如此,LSTM 可能不是自回归问题的最佳选择
      https://machinelearning.org.cn/suitability-long-short-term-memory-networks-time-series-forecasting/

      • Thibault 2017年7月25日晚上7:51 #

        你好,

        感谢您的回答,Jason,它开始变得更清晰了!

        关于您的最后一句;LSTM 不是自回归问题的最佳选择,但您的许多博客文章都与使用 LSTM 进行时间序列预测有关。这是您最近的分析吗?还是我遗漏了什么?

        谢谢,Thibault

        • Jason Brownlee 2017年7月26日上午7:52 #

          是的,经验和一些研究都让我反对将LSTM用于自回归。

          这就是我关于LSTM的最新书不侧重于时间序列,而是侧重于LSTM架构的原因。

          • naga 2019年10月29日下午1:33 #

            尊敬的Jason博士,

            我有几个问题

            1. 我们以这种格式预处理数据 [x1, x2, x3, … , xt] -> [xt+1, xt+2]。当我们改变 t 的值(滞后时间步长)来检查准确度是否改变时,直觉是什么?正如您所提到的,模型权重会根据上述格式重新计算。

            2. “LSTM 不侧重于时间序列,而是侧重于 LSTM 架构” – 您能详细阐述一下这句话吗?

          • Jason Brownlee 2019年10月29日下午1:51 #

            我的评论是,我的LSTM书籍不是关于时间序列的。但我有一本关于时间序列深度学习的书,它更合适。

            有关LSTM用于时间序列的更多信息,请参阅这些教程
            https://machinelearning.org.cn/start-here/#deep_learning_time_series

            以及这本书
            https://machinelearning.org.cn/deep-learning-for-time-series-forecasting/

      • TeenA 2020年10月6日晚上12:16 #

        我不认为这是正确的。LSTM 网络擅长记住作为输入样本传递的序列 *内部* 的依赖关系,但不会在样本 *之间* 保留记忆。因此,输入序列必须经过精心设计,以便依赖关系包含在其中。所以,如果每 60 个时间步发生一次事情,而我将序列分成 10 个时间步的样本,LSTM 将无法从上下文中学习到这一点

  8. Akash 2017年8月2日上午4:09 #

    嗨 Jason,这是我读过的关于 LSTM 的最好的文章之一,从中受益匪浅。

  9. Javier 2017年8月8日晚上10:36 #

    嗨 Jason,首先我要感谢您在所有博客文章中分享了这么多知识,我读了很多,它们非常有帮助。

    我目前正在尝试构建一个模型来预测风力涡轮机的功率输出。我的数据集大约有 35,000 条记录,包含 3 个输入变量和 1 个输出变量。我正在使用 5 层 LSTM 网络,因为它是目前为止给我最好结果的网络。

    我的疑问如下:我明白输出中存在“趋势”,即风速不会在 1 秒内突然从 100 英里/小时降到 0 英里/小时。因此,在时间 t 产生的功率将取决于时间 t 的输入变量值,但也会部分取决于在 t-1 和 t-2 等时间产生的功率……

    我如何在我的神经网络中考虑这一点?使用 LSTM 层是否已经考虑了这一点,或者我有什么方法可以提高模型的结果?提前感谢!

  10. Ghaith 2017年9月5日上午5:53 #

    你好,

    如果您能帮忙,请您尝试一下。
    我正在使用RNN训练我的数据,如何证明我找到了最佳网络?
    例如,可以通过检查其预测来确保获得最佳网络,或者绘制回归或MSE?

    此致,

    • Jason Brownlee 2017年9月7日下午12:39 #

      评估许多其他模型和配置将为您提供证据,表明您可能拥有一个好模型。

  11. Ali 2017年9月13日下午5:52 #

    感谢您的精彩博文。我只是想知道,既然有一些线性模型,例如季节性ARIMA,它们不仅基于之前的观测值建模数据,还基于之前的季节性模式,RNNs是否能够像SARIMA模型那样使用季节性信息来建模数据?如果那些模式发生在很久以前,不适合其训练窗口,它们是否能够记住所有这些模式?

    • Jason Brownlee 2017年9月15日下午12:01 #

      是的,这是可能的。不过我没有一个很好的例子。

      我发现MLP在自回归问题上的表现优于LSTM,这在我自己的测试中得到证实。

  12. Shruti 2018年1月25日下午5:41 #

    嗨 Jason,谢谢您的帖子。我正在实施 LSTM 进行时间序列预测。我的序列长度是 300。我使用了 Vanilla LSTM、Stacked LSTM、MLP 和 ARIMA 来预测我的每周时间序列数据,但 LSTM 的表现不如 ARIMA 和 MLP。我使用了您帖子中讨论的“adam”优化器来训练 LSTM。您能给我一些优化它的技巧吗?我还应用了正则化并改变了 epoch 的数量。
    然而,在我的另一个数据集(时间序列长度为 60)中,LSTM 的表现更好,但只是略微好一点。

    • Jason Brownlee 2018年1月26日上午5:38 #

      通常我发现 MLP 在时间序列预测中表现优于 LSTM。坚持使用 MLP。

  13. Faisal 2018年1月28日上午6:30 #

    你好 Jason,
    我有一些病人的数据,包含一些输入(人口统计学等)和每次就诊医院的一个或多个输出。我已经在 Matlab 中对所有病人进行了神经网络实验,这可能没有太大意义。现在我想对每个病人进行时间序列分析,观察他们的行为。但我遇到了一些问题

    1. 数据不够,例如许多病人只有 2 或 3 次就诊,而我只有少数病人
    2. 每个病人的就诊次数不同

    我仍然在思考如何从中创建时间序列?使用哪种模型?ARMAX、NarxNet 等等。

    如果您能指导我一些解决方案,我将不胜感激。

    谢谢。

    • Jason Brownlee 2018年1月28日上午8:28 #

      没有一个最好的答案。我建议测试一套不同的方法,看看哪种方法最适合您的特定数据。

      • Faisal 2018年1月29日上午4:40 #

        感谢回复,但是……
        假设一个简单而假设的场景(类似于我的问题),例如

        ID 访问日期 体重 身高 低压 高压
        1 2010年1月1日 76 5 76 119
        1 2010年3月10日 77 5 73 119
        1 2010年7月1日 76 5 76 120
        2 2009年2月2日 55 5.5 70 132
        2 2009年3月5日 60 5.5 70 132
        2 2009年8月2日 57 5.5 71 130
        ....

        我希望预测1个月、2个月等之后的低压和高压。

        如您所见,每个患者的基线都不同,并且间隔也不相等。此外,我的数据较少,而且还有一些缺失数据。

        我想听听您对解决此问题的看法,尤其是准备数据的初始阶段。我如何将其转换为时间序列?

        我需要创建另外两列作为低压和高压的未来值,并将每个患者的下一个记录复制为未来值吗?在这种情况下,最后一个记录将没有未来值,我可能需要删除它。

        之后,我如何划分训练和测试数据?我需要将每个患者的所有最后记录作为测试数据吗?

        一旦我得到一些初步的开始,我就可以尝试应用不同的技术和模型。我正在阅读您关于时间序列的帖子以及关于 LSTM 的某个地方。我有 Matlab 2016,我相信 LSTM 从 2017 年开始支持。如果需要,我会尝试更新。

        再次感谢。

          • Faisal 2018年1月30日上午8:48 #

            再次感谢。除了那篇帖子,我还读了这篇
            https://machinelearning.org.cn/backtest-machine-learning-models-time-series-forecasting/

            当然会尝试应用窗口方法和步进预测。

            只是想消除一个关于预测是针对每个ID还是针对所有ID的困惑。我的意思是,我是否以第一个ID为例,并尝试使用步进预测方法创建不同的模型,比如15次。然后我取第二个ID,对其做同样的事情。如果我这样做错了,请纠正我,我将得到依赖于ID的预测模型。那么,如果来了一个新患者呢?我们如何为他/她进行预测?我们需要这个患者的先前值,并且需要再次为这个患者创建新模型吗?

          • Jason Brownlee 2018年1月30日上午10:00 #

            您有多种选择。您可以选择按患者、按患者组、跨所有患者或其他变体进行建模。

            没有唯一的方法,所以我鼓励您探索几种不同的问题框架,看看哪种最适合您的特定数据。

  14. Faisal 2018年1月31日晚上12:15 #

    好的,我会尝试这些不同的选项。

    您是否有关于增加数据量的帖子?我正在考虑使用 copula 或一些回归系数。您有什么看法?

    正如我之前提到的,我的数据量较少,每个病人可能只有 3 到 4 条记录。我不确定我之前的回复是否理解正确和清楚,即当我使用步进法预测下一个值,然后使用这个值预测再下一个值时。我们实际上是在增加数据量吗?如果是,那么模型如何验证?

    • Jason Brownlee 2018年1月31日上午9:44 #

      也许花点时间真正确定您想要预测什么以及可以使用哪些数据会很有帮助
      https://machinelearning.org.cn/how-to-define-your-machine-learning-problem/

      • Faisal 2018年2月17日上午2:36 #

        我使用相同均值和方差的均匀分布生成了一些合成数据。我还使用 copula fit 生成了高斯分布。现在我如何验证它没有偏差。有没有相关的帖子?

        另一个关于按患者创建模型的问题。当我创建模型(例如 NarNet)并为一名患者进行预测,然后转移到下一名患者时,如何将之前的模型与该患者合并。或者,如果我为每位患者创建单独的模型,那么如何合并以创建最终的单一模型?

        • Jason Brownlee 2018年2月17日上午8:48 #

          您可以绘制残差误差以查看它们是否是高斯分布。

          也许是集成,或者结合数据并训练一个大型模型。您的想象力是唯一的限制。

  15. navish 2018年2月27日下午6:21 #

    嗨,Jason,
    我是神经网络新手。我得到了市场指数的收盘价。我想使用 LSTM 神经网络建模波动性。如何在 R 中实现 LSTM 来预测该指数的波动性。我应该采取哪些步骤才能获得良好的样本外预测(防止过拟合/欠拟合和稳健的方法)。有没有关于如何使用 LSTM 建模单变量时间序列的 R 代码?

  16. Siddu 2018年3月17日晚上12:58 #

    你好 Jason,很棒的文章..我有一个问题..我可以使用 RNN 进行多传感器数据融合吗?..我有的数据形式是距离、速度和加速度

  17. GE 2018年4月3日下午4:41 #

    嗨 Jason。我正在努力理解神经元的各种激活方法,以及它们如何对更复杂的基于 LSTM 的 RNN 有用。我正在构建一个使用 OHLC、成交量、交易次数、RSI 值和 SMA 的市场收盘价预测器。SMA 和 OHLC 都是价格,但我仍然在努力如何告诉 LSTM 高 RSI 值与价格呈反向关系。我的所有数据点都归一化到 0-1 范围,但感觉 LSTM 只是抓取所有数字并将其视为相同,因为预测偏差太大。我在想也许将价格输入到一个 LSTM,将 RSI 输入到另一个使用反向激活的 LSTM 可能有帮助。有什么想法吗?谢谢。GE

    • Jason Brownlee 2018年4月4日上午6:08 #

      您可能需要更多数据或更多训练。

      也许从一个 MLP 开始,只有当它能超越 MLP 时才转向 LSTM。对于时间序列问题,LSTM 通常不是正确的工具。

  18. Tushar Sinha 2018年6月29日上午5:06 #

    我正在从事一个项目,根据过去 6 个月的文件系统元数据预测文件系统中所有文件在不久将来的使用情况。我获得了以下文件属性:
    1. 过去 6 个月文件使用的时间序列(文件何时被读取/写入/修改以及由谁)
    2. 服务器上所有可以访问文件的用户。
    3. 最后修改/写入/读取的纪元时间以及由谁
    4. 文件创建的纪元时间以及由谁
    5. 文件上的任何合规性规定(文件是否包含任何机密数据)
    6. 文件的大小、名称、扩展名、版本、类型
    7. 可以访问文件的用户数量
    8. 文件路径
    9. 总访问次数
    10. 允许访问的用户

    现在,我计划使用 LSTM,但对于标准 LSTM,输入仅是时间序列。然而,我拥有的所有属性似乎对于预测文件的未来使用情况都很重要。
    我应该如何利用我拥有的文件属性呢?我应该训练一个前馈神经网络,而不考虑它通常在时间序列上失败的事实吗?我应该如何进行?
    是否存在一种 LSTM 变体,可以同时考虑文件的属性并预测文件在不久将来的使用情况?

    提前感谢!

    • Jason Brownlee 2018年6月29日上午6:14 #

      您可以每个时间步都提供所有特征,或者使用多头模型,其中一个头是带 LSTM 的序列,另一个头是带向量的 Dense。

      两者都试试,看看哪个效果最好。

  19. Bi JW 2018年7月14日晚上9:51 #

    嗨,Jason,

    很棒的文章!感谢您的分享!!

    您说:“前馈神经网络确实提供了强大的能力,但仍然受到必须在模型设计中预先指定时间依赖性的关键限制。而 LSTM 可以克服这个限制。”
    然而,在使用 LSTM 时似乎需要选择参数“时间步长”。因此,我想知道“时间步长”是否与“时间依赖性”或“滞后观测数量”有关?以及在使用 LSTM 时如何选择“时间步长”?

    谢谢你!!

    • Jason Brownlee 2018年7月15日上午6:17 #

      它是滞后观测的数量,但它可以通过零填充在样本之间变化。网络一次处理一个时间步。

  20. JG 2018年10月7日晚上10:10 #

    有时,用于定义方法论或技术的语言词汇对于新来者来说很难理解……那么如何用“循环”、“递归”、“迭代”、“交互”等词汇来表达您重复的想法和概念……所以,除非您没有实践使用这个新工具和新想法,否则您真的无法理解概念和方法论的“精髓”……因为这些用于标记方法的词汇可以毫无问题地互换……只有通过操作它们才能给您真正的线索……但这不一定是技术人员使用的词汇!

  21. Lindsay Moir 2019年2月12日下午2:37 #

    您的任务
    在本课程中,您必须从卷积神经网络和循环神经网络中提出一种能力,这可能有助于解决时间序列预测问题。
    CNN 相对于循环型网络的优势在于,由于网络的卷积结构,可训练的权重数量很少,从而实现了更高效的训练和预测。
    循环神经网络是一种在输入观测中明确处理顺序的神经网络。时间序列显然是按日期排序的。

  22. abbas 2019年5月26日上午5:39 #

    嗨,jason
    您的博客很棒。我正在学习 LSTM,我使用 Matlab 将一个序列分类为 2 个类别。我的序列是半随机的,我使用 Matlab,然后我可以以 80% 的准确率和 0.4 的损失预测标签。我需要准确率超过 85%,您能帮我找到一个合适的博客主题,用 Python 和 Keras 完成这项工作吗?我在这个博客中感到困惑。
    我的第二个问题是,在这种情况下是否有可能达到 90% 的准确率??
    我的英语是初学者水平,请原谅。
    谢谢

  23. Andrea R. 2019年6月23日上午6:53 #

    嗨,Jason 博士,我想知道我应该从哪个课程开始学习更多关于 RNN 多步预测的知识(我实际上正在尝试训练我的神经网络,根据前一周的销售额预测接下来 7 天的销售额)。有什么建议吗?
    我将非常感谢您的回答。谢谢。

  24. Eva 2019年8月13日晚上12:40 #

    嗨,Jason 博士,我从您的 RNN 和 LSTM 帖子中受益匪浅。它们非常出色!非常感谢。
    我也对 RNN 和 LSTM 背后的数学感兴趣。您能否指出一些以简单方式处理数学的相关帖子。此致

  25. Nikhil Paliwal 2019年10月9日下午3:48 #

    有许多新技术,如3D卷积,用于使用时间信息进行预测。定义要消耗的信息范围或部分是一个主要缺点。在这种情况下,RNN有很大的发展空间。

  26. Muhammad Asadullah Zahid 2019年12月15日上午7:00 #

    嗨 Jason。你的文章太棒了。我正在写我的硕士论文,主要是关于SoS系统环境中的时间序列负荷预测。工业工厂中有不同的机器,作为一个黑盒,我拥有每台机器单一模型的时间序列数据,此外还有一些影响因素,例如温度等。
    我的任务是结合模型的个体预测,预测工厂的整体负荷,同时还要考虑可能对整体预测感兴趣的影响因素。
    RNNs会是这种方法的好选择吗?
    您对这个主题还有其他想法吗?
    提前感谢

  27. MAHESH MADHUSHAN 2020年5月25日下午1:10 #

    非常感谢 Jason。我也阅读了您的文章“您的第一个 Python 与 Keras 深度学习项目分步教程”。您是否有关于构建时间序列预测神经网络示例项目的文章?

  28. Rafael Magallanes-Quintanar 2020年7月19日上午3:31 #

    感谢您的精彩帖子。我想我方向是对的:我想预测一个取决于几个多变量气候变量的标准化降水指数。所以,应用 LSTM 可能是解决方案。

发表回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。