[中文解读]
This repository contains the official code and datasets for the paper, "Continuous Temporal Domain Generalization", accepted by NeurIPS 2024.
TL;DR: The study proposes a method capable of generating applicable neural networks at any given moment, based on observing domain data at random time points within a concept drift environment.
Temporal Domain Generalization (TDG) traditionally deals with training models on temporal domains collected at fixed intervals, limiting their ability to handle continuously evolving, irregular temporal domains. This work introduces Continuous Temporal Domain Generalization (CTDG) and presents Koodos, a model designed to address and optimize this challenge.
Koodos comprises three key components: 1) Describing the evolution of model parameters by constructing a dynamical system; 2) Modeling complex nonlinear dynamics by Koopman Theory; and 3) Joint optimization of the model and its dynamics.
To get started, clone the repository and install the required dependencies.
git clone https://github.com/Zekun-Cai/Koodos.git
cd Koodos
pip install -r requirements.txt
The datasets used in this project can be downloaded from Dataset Download Link. After downloading, please place the files in the data
directory.
Before diving into the source code, we provide a Jupyter Notebook Tutorial_for_Koodos in this repository, which provides a step-by-step guide to the Koodos framework and demonstrates its core functionality on a sample dataset to give you an intuitive understanding of how it works.
To train and test the model using the Koodos framework, follow this command:
python main.py --dataset <dataset-name> --cuda <GPU-No.>
Available Datasets: Moons; MNIST; Twitter; YearBook; Cyclone; House.
You can modify the hyperparameters by adjusting the param.py
config file.
|-- data/ # Directory for dataset files
|-- model/ # Directory for dataset-specific model architectures (e.g., Moons, MNIST)
|-- save/ # Directory for storing model outputs and logs
|-- param.py # Configuration file for various datasets
|-- util.py # General utility functions file
|-- koodos.py # Core implementation of the Koodos framework
|-- main.py # Main program: handles data loading, training, and testing
If you find our work useful, please cite the following:
@inproceedings{cai2024continuous,
title={Continuous Temporal Domain Generalization},
author={Cai, Zekun and Bai, Guangji and Jiang, Renhe and Song, Xuan and Zhao, Liang},
booktitle = {Advances in Neural Information Processing Systems},
year={2024}
}
Temporal Domain Generalization with Drift-Aware Dynamic Neural Networks, in ICLR 2023.
MemDA: Forecasting Urban Time Series with Memory-based Drift Adaptation, in CIKM 2023.
This project is licensed under the MIT License - see the LICENSE file for details.