숟가락 그만 얹어

DeepAR 본문

Research/Forecasting

DeepAR

업무외시간 2020. 8. 14. 00:26

DeepAR은 Amazon Sagemaker에서 제공하는 forecasting 알고리즘으로 decoder만 사용한다. Training phase에서는 next time sample을 바로 예측하도록 학습시키고 (teacher-forcing), 실제 목표로 하는 inference phase의 decoding 부분은 previous sample의 예측 값을 다음 step의 input으로 활용하는 과정 (full sampling)을 반복하여 예측을 진행한다.

 

DeepAR Training vs. Inference

Contribution

1) LSTM-based autoregressive probabilistic model: LSTM으로 encoder와 decoder를 설계하고 각 LSTM step의 output을 확률 모델 (ex. Gaussian)로 가정한다. 확률 모델은 추론에 대한 uncertainty 정보를 제공한다.

2) Global model: 370명의 전기 사용량 데이터에 대하여 local model은 370개의 개별 모델을 만들어야 하지만, global model은 단일 모델로 사용량 패턴의 유사 특성을 반영하여 예측을 진행한다.

3) How to deal with scale-free nature: 현실 세계에서는 데이터의 분포 scale이 다양할 뿐만 아니라 매우 skew되어 있다. 이를 처리하기 위해 DeepAR에서는 각 item 별로 (1+mean)을 나누어 normalize한다.

 

Implementation details

1) Covariates: time-series (z) 외의 feature (x) 정보로 age, month, week, day, hour, category 등의 정보를 이용한다.

2) Data augmentation: 어떤 window size만큼 sampling을 수행할 때 window가 데이터의 시작점보다 앞쪽에 위치한다 하더라도 sampling하여 빈 부분은 0으로 채운다.

3) Gaussian model: mean과 variance를 neural networks의 output으로 두고 variance가 양이 되도록 variance output에 softplus를 적용한다. MSE를 구하는 것과 거의 같으나 분모에 variance term이 붙기 때문에 training 안정성은 조금 떨어지는 듯?

 

References

[1] D. Salinas et al., DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks, arXiv 2017

'Research > Forecasting' 카테고리의 다른 글

N-BEATS  (0) 2020.09.04
Deep Factors  (0) 2020.08.24
The M4 Forecasting Competition: A Practitioner’s View  (0) 2020.07.19