Koopa
这是论文《Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors》的官方代码库,发表于NeurIPS 2023。[幻灯片],[海报]。
更新
:triangular_flag_on_post: 新闻 (2024.2) 我们工作的中文介绍现已发布:[官方],[知乎]。
:triangular_flag_on_post: 新闻 (2023.10) Koopa已被收录到[时间序列库]中。
简介
Koopa是一个轻量级、基于MLP且受理论启发的高效时间序列预测模型。
- 与先进但训练耗时的深度预测器相比,Koopa达到了最先进的性能,同时节省了**77.3%的训练时间和76.0%**的内存占用。
- 专注于描述普遍存在的非平稳时间序列,Koopa展示了增强的模型能力,这得益于现代Koopman理论的赋能,该理论自然地解决了现实世界时间序列的非线性演化问题。
- Koopa与经典的Koopman自编码器不同,它没有重构损失函数,从而实现了端到端的预测训练。
讨论
已经有几个关于我们论文的讨论,我们非常感谢他们宝贵的评论和努力:[官方],[Openreview],[知乎]。
准备工作
- 安装Pytorch(>=1.12.0)和其他必要的依赖。
pip install -r requirements.txt
- 所有六个基准数据集可以从Google Drive或清华云盘获取。
训练脚本
我们在./scripts
文件夹下提供了Koopa实验脚本和所有基准数据集的超参数。
bash ./scripts/ECL_script/Koopa.sh
bash ./scripts/Traffic_script/Koopa.sh
bash ./scripts/Weather_script/Koopa.sh
bash ./scripts/ILI_script/Koopa.sh
bash ./scripts/Exchange_script/Koopa.sh
bash ./scripts/ETT_script/Koopa.sh
适用于滚动预测
-
通过在滚动预测过程中调整操作符以适应输入的时间序列,所提出的模型可以通过适应持续的分布漂移来实现更准确的性能。
-
操作符适应的朴素实现基于DMD算法。我们提出了一种复杂度降低的迭代算法。详细信息可以在我们论文的附录中找到。
-
我们还提供了一个教程笔记本,以便更好地理解这种场景。详情请参见
operator_adaptation.ipynb
。
引用
如果您觉得这个仓库有用,请引用我们的论文。
@article{liu2023koopa,
title={Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors},
author={Liu, Yong and Li, Chenyu and Wang, Jianmin and Long, Mingsheng},
journal={arXiv preprint arXiv:2305.18803},
year={2023}
}
联系
如果您有任何问题或想使用代码,请联系: