Summary
Probabilistic forecasting이란 과거 데이터의 분포를 통해, 미래의 probability distribution을 예측하는 방법이다. → demand forecasting에서 많이 사용됨.
본 연구에서는 Auto-regressive recurrent network model을 기반으로 한 probability model인 DeepAR을 제안함.
- 시계열 데이터로부터 global model을 학습
- 여러 도메인의 데이터에 대해서 좋은 결과를 산출
Contribution
- Probabilistic forecasting model로 LSTM architecture사용
- 제안한 모델을 가지고 여러 데이터셋에서 실험 및 검증
Goal
P(zi,t0:T∣zi,1:t0−1,xi,1:T)=Πt=t0Tℓ(zi,t∣θ(hi,t,Θ))
-
과거시점 zi,1:t0−1을 통해 미래시점의 zi,t0:T를 예측하는것 → zi,1:t0−1로부터 zi,t0:T의 probability를 예측
- 1시간을 입력으로 받아 미래 30분 예측
- Condition range : [1,t0−1] → [1,59]
- Prediction range : [t0,T] → [60,90]
Method
.png)
Notation
Time step(특정 시점을 의미) : t
Covariates(index, hour, weekday, month의 z-score값으로 이루어진 matrix) : xi,t
Target(특정 시점의 μ를 의미) : zi,t
Output(특정 시점의 output을 의미) : hi,t
과거시점(Past) / condition range : [1,t0−1]
미래(Future) / prediction range : [t0, T]
Train
.png)
각각의 step을 t, input의 covariate를 xi,t, target을 zi,t라 하자.
이전 시점의 target, 현재 시점의 covariates, 이전 시점의 output이 network를 → 현재 시점의 output
- output : hi,t=h(hi,t−1,zi,t−1,xi,t,Θ) → t시점의 μ, σ
- ℓ(zi,t∣θi,t)=ℓ(zi,t∣θ(hi,t)) : output의 distribution으로부터 target(zi,t)에 대해 likelihood를 구함
hi,0,hi,1 ... hi,t0−2 를 거쳐 최종적으로 얻은 hi,t0−1를 decoder의 initial state로 사용한다.
→ Encoder의 initial state인 hi,0, zi,0은 0
Predict
.png)
prediction 과정은 아래와 같습니다.
현재 시점을 t라 가정, t<t0일때 zi,t
(predictionrange) : $t ≥ t{0}$ 일때, z^i,t∼ℓ(⋅∣θi,t)
Prediction
학습할때 최종적으로 얻은 hi,t0−1를 decoder의 initial state, zi,t0−1도 동일.
즉, QΘ(zi,t0:T∣zi,1:t0−1,xi,1:T)로 부터 z~i,t0:T(prediction range의 target)를 sampling한다.
(Data는 real-value형태 이기 때문에, gaussian likelihood로부터 sampling)
Loss
Average-log-likelihood
Output(μ, σ)의 분포를 통해 target에 대한 negative likelihood값의 평균을 계산 → negative likelihood의 평균을 낮추는 방향으로 학습을 진행함
Conclusion