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

 Cannot retrieve latest commit at this time.

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.