Skip to content

Feature-aligned N-BEATS with Sinkhorn divergence (ICLR 2024)

Notifications You must be signed in to change notification settings

leejoonhun/fan-beats

Folders and files

NameName
Last commit message
Last commit date

Latest commit

d2da08e · Feb 28, 2024

History

2 Commits
Nov 27, 2023
Nov 27, 2023
Nov 27, 2023
Feb 28, 2024
Nov 27, 2023
Nov 27, 2023
Nov 27, 2023
Feb 28, 2024
Nov 27, 2023
Nov 27, 2023
Nov 27, 2023

Repository files navigation

Feature-aligned N-BEATS

Official PyTorch Implementation of Feature-aligned N-BEATS with Sinkhorn divergence.

Data

Data should have form of data/$SUPERDOMAIN/$DOMAIN.csv, with three columns:

  • time denotes the time index.
  • series denotes the series index.
  • value denotes the value of the time series at the given time index.

Source

Data used in the paper is obtained from the following sources:

Usage

python main.py --source-domains $SOURCE_DOMAIN1 $SOURCE_DOMAIN2 ... \
               --target-domain $TARGET_DOMAIN \
               --forecast-horizon $FORECAST_HORIZON \
               --lookback-multiple $LOOKBACK_MULTIPLE \
               --model $MODEL \
               --loss $LOSS \
               --regularizer $REGULARIZER \
               --temperature $TEMPERATURE \
               --scaler $SCALER \
               --metric $METRIC \
               --learning-rate $LEARNING_RATE \
               --num-lr-cycles $NUM_LR_CYCLES \
               --batch-size $BATCH_SIZE \
               --num-iters $NUM_ITERS \
               --seed $SEED \
               --dtype $DTYPE \
               --data-size $DATA_SIZE

The detailed descriptions about the arguments are as follows:

Argument Description Default
source_domains Source domains D k k
target_domain Target domain D T
forecast_horizon Forecast horizon α 10
lookback_multiple Lookback multiple β / α 5
model Model architecture F "NHiTS"
loss Forecasting loss function L "SMAPE"
regularizer Regularizer measure L align
NOTE: "None" for vanilla model
"Sinkhorn"
temperature Regularizing temperature λ 1.0
scaler Normalizing function σ "softmax"
metric Evaluation metric for validation and test "SMAPE"
learning_rate Learning rate η 2e-5
num_lr_cycles Number of learning rate cycles
NOTE: torch.optim.lr_scheduler.CyclicLR(mode="triangular2") is used (ref)
50
batch_size Batch size B 2**12
num_iters Number of iterations 1000
seed Random seed 0
dtype Data type used for torch and numpy "float32"
data_size Fixed data size for each domain
NOTE: "None" to use all data
75000

Citation

@inproceedings{lee2024fanbeats,
  title={Feature-aligned N-BEATS with Sinkhorn divergence},
  author={Lee, Joonhun and Jeon, Myeongho and Kang, Myungjoo and Park, Kyunghyun},
  booktitle={The Twelfth International Conference on Learning Representations},
  year={2024}
}

Acknowledgement

We would like to acknowledge the significant contributions of the official N-BEATS implementation to our work. Our models are implemented based on their codebase.