是否有一些用于时间序列预测的预训练 LSTM、RNN 或 ANN 模型?

Posted

技术标签:

【中文标题】是否有一些用于时间序列预测的预训练 LSTM、RNN 或 ANN 模型?【英文标题】:Are there some pre-trained LSTM, RNN or ANN models for time-series prediction? 【发布时间】:2018-03-24 15:14:11 【问题描述】:

我正在尝试解决时间序列预测问题。我尝试了 ANN 和 LSTM,尝试了很多不同的参数,但我只能得到比持久性预测好 8% 的结果。

所以我想知道:因为您可以在 keras 中保存模型;是否有任何用于时间序列预测的预训练模型(LSTM、RNN 或任何其他 ANN)?如果是这样,我如何得到它们? Keras 有吗?

我的意思是如果有一个包含预先训练模型的网站会非常有用,这样人们就不必花费太多时间来训练它们。..

同样,另一个问题:

是否可以执行以下操作? 1. 假设我现在有一个数据集,我用它来训练我的模型。假设一个月后,我将可以访问另一个数据集(对应于相同的数据或类似的数据,将来可能,但不限于)。那么是否有可能继续训练模型?这与批量训练它不是一回事。当您分批进行时,您会在一瞬间获得所有数据。 可能吗?怎么做?

【问题讨论】:

@Maxim 谢谢!我会看看你的回购! 【参考方案1】:

现在您可以使用 BERT 或相关变体,在这里您可以找到所有预训练模型:https://huggingface.co/transformers/pretrained_models.html

并且可以对RNN进行预训练和微调,可以参考这篇论文:TimeNet: Pre-trained deep recurrent neural network for time series classification。

【讨论】:

【参考方案2】:

我会先回答你最后的问题。

然后可以继续训练模型吗?这与批量训练它不是一回事。当您分批进行时,您会在一瞬间获得所有数据。可能吗?怎么做?

是的,这是可能的。一般称为transfer learning。但请记住,如果两个数据集代表非常不同的人群,网络将很快“忘记”它在第一次运行时学到的内容,并将优化到第二次运行。为此,您只需从 loaded state 开始训练,而不是随机初始化,然后保存模型。还建议在第二次运行时使用较小的学习率,以便逐渐适应新数据。

是否有任何针对时间的预训练模型(LSTM、RNN 或任何其他 ANN) 系列预测?如果是这样,我如何得到它们? Keras 有吗?

我还没有完全找到一个 预训练 模型,但是快速搜索给了我几个活跃的 GitHub 项目,你可以自己运行并获得结果:Time Series Prediction with Machine Learning(LSTM, TensorFlow 中的 GRU 实现)、LSTM Neural Network for Time Series Prediction(keras 和 tensorflow)、Time series predictions with Keras(keras 和 theano)、Neural-Network-with-Financial-Time-Series-Data(keras 和 tensorflow)。另见this post。

【讨论】:

以上是关于是否有一些用于时间序列预测的预训练 LSTM、RNN 或 ANN 模型?的主要内容,如果未能解决你的问题,请参考以下文章

R中的LSTM网络用于时间序列预测

用于时间序列预测的 Keras LSTM 神经网络在模型拟合期间显示 nan

有状态 LSTM 和流预测

技术 | 如何在Python下生成用于时间序列预测的LSTM状态

使用 LSTM 进行时间序列预测

为啥用于预测的 Keras LSTM 批量大小必须与拟合批量大小相同?