티스토리 뷰
Data Science&AI
[시계열 알고리즘] NHiTS : Neural Hierarchical Interpolation for Time Series Forecasting
calmmimi 2023. 4. 4. 22:54다음은 NHiTS 논문을 정리한 글입니다.
Summary
- N-HiTS는 N-BEATS 모델의 확장으로 N-BEATS에 비해 예측 정확도를 높이고 계산 비용(연산, 메모리 측면)을 줄임
- Fully Connected layer로 구성하여 Multi-step을 한번에 예측
- N-HiTS는 각 스택이 다른 Scale로 시계열을 포착할 수 있도록 Input에 대해 Maxpool을 적용 (Multi-rate data sampling)
- 다른 비율로 시계열을 샘플링한 스택은 장기 효과에 특화, 다른 스택은 단기 효과에 특화할 수 있음
- 계층적 보간(Hierarchical Interpolation)을 통해 얻어진 각 스택의 예측값을 결합하여 최종 예측을 산출, 이렇게 하면 모델이 가벼워지고 장기 시계열을 예측하는 데 더 정확해짐
- Transformer 기반 모델보다 성능, 연산 효율 측면에서 우수
아키텍처 구성
- Stack과 Block으로 구성
- 각 Stack별 Output을 모두 더해 최종 forecast output을 구성
- 각 Block은 MLP Layer로 구성
- 시계열의 low frequency부터 high frequency를 점진적으로 예측
- 스택의 각 블록 사이에 residual connection이 있음
Multi-rate signal sampling
- Block 수준에서 MaxPool 을 수행
- Maxpooling : 단순히 주어진 집합에서 가장 큰 값을 취함
- 각 스택에 자체 커널 크기가 있으며, 각 스택이 단기 또는 장기의 특정 signal scale을 집중할 수 있도록 함
- 커널 크기에 따라 샘플링 rate가 결정
- 커널 크기가 大 → 공격적인 서브샘플링 ▶ 시계열의 장기 효과에 초점
(학습가능한 파라미터수가 줄어들어, 모델이 가벼워지고 빨리 학습하는 효과) - 커널 크기가 小 → 기존 시계열에서 거의 변경되지 않음 ▶ 시계열의 단기 효과에 초점
- 커널 크기가 大 → 공격적인 서브샘플링 ▶ 시계열의 장기 효과에 초점
👍👍 MLP Input의 길이를 줄여 메모리 공간과 연산량을 줄이고, 학습가능한 파라미터를 감소시킴
Non-Linear Regression
- MaxPool 레이어를 통과하면 블록은 Fully Connected 네트워크를 사용하여 회귀를 수행, 즉 MLP를 통해 hidden vector를 학습
- hidden vector는 linear projection 되어 forecast 및 backcast coefficient를 산출
Hierarchical interpolation
- 계층적 보간을 통해 예측의 카디널리티를 줄이는데 사용
- 카디널리티(Cardinality) : 모델의 복잡도를 나타내는 것으로, 대부분의 시계열 예측에서 모델의 카디널리티는 예측하려는 미래 timestep 길이와 같음
(ex. 다음 24시간동안 시간별 예측을 원할 경우, 모델은 24개의 에측을 출력) - N-BETAS는 각 스택의 부분 예측값을 조합하는 것으로,
예측해야하는 timestep이 길어질수록, 각 스택별로 해당 예측 timestep만큼 예측을 생성해서 합산해야 하므로, 계산 비용이 많이 들 수 있다는 단점이 있음 - Transformer 기반 모델은 디코더 어텐션 레이어 H개의 output 임베딩과 L개의 인코딩된 Input을 함께 사용(H가 증가할수록 인코딩된 Input L이 증가)
- 카디널리티(Cardinality) : 모델의 복잡도를 나타내는 것으로, 대부분의 시계열 예측에서 모델의 카디널리티는 예측하려는 미래 timestep 길이와 같음
- Maxpool 레이어가 시리즈를 서브샘플링하기 때문에 각 스택이 다른 rate로 시리즈로 처리하는 데 특화되어 있음
- 예를 들어 다음 7일에 대한 시간별 예측을 할 경우
- N-BEATS : 각 스택은 168개의 부분 예측을 수행하고 각 스택을 합산하여 최종 예측을 생성
- N-HiTS : Stack1은 매시간 단기 효과를 학습(168개), Stack2은 12시간마다 시리즈를 subsampling(14개), Stack3은 24시간마다 subsampling(7개 예측)
- 각 스택에서 서로 다른 Frequency로 작동 하며 계산 비용이 줄어듦
- 예를 들어 다음 7일에 대한 시간별 예측을 할 경우
- Original sampling rate를 복원하고 예측 timestep만큼 예측하기 위해, Interpolation을 수행
- N-HiTS에서 각 스택은 표현력 비율(expressiveness ratio)을 통해 계층적 보간을 함
- 표현력 비율(expressiveness ratio) :
- 단순히 단위 시간당 예측 수
- Output timestep의 파라미터수를 제어
- 표현력 비율 값이 작을수록, low frequency 포착 → 카디널리티 낮춤
- 표현력 비율 값이 클수록, high frequency 포착 → 카디널리티 높임
- 아래 그림에서는
- Stack1 : 장기적인 영향을 살펴보므로 더 많은 시간 간격을 두고 예측을 출력
- 커널 크기가 크고 표현력 비율 값이 작을수록, 공격적인 서브샘플링과 많은 부분을 보간하므로, 강한 Smoothing 효과를 냄 - Stack4 : 단기적인 영향을 살펴보므로 더 세분화된 예측을 출력
- Stack1 : 장기적인 영향을 살펴보므로 더 많은 시간 간격을 두고 예측을 출력
- Backcast :
- 블록에서 포착한 정보를 나타냄
- 블록의 output인 보간된 backcast값을 빼고 다음 블록의 Input으로 전달
- 특정 블록에서 포착되지 않은 모든 정보를 다음 블록에서 예측 수행
- 큰 추세 예측에서 점점 작은 단위의 패턴을 예측
- Forecast :
- 각 블록의 보간된 forecast값들을 모두 합하여 최종 예측timestep 길이 만큼 예측
- 각 stack별 output을 모두 더해 최종 forecast output 구성
실험 결과
- 시계열 예측의 대표적으로 사용되는 6가지 데이터에 대해 예측
- "Since our model is univariate, each variable is predicted using only its own history"
- 각 feature별로 단변량 예측을 수행한 후 MSE와 MAE의 평균을 내어 최종 성능 도출
- SOTA 모델 대비 높은 성능을 보임
- 전 데이터셋에 걸쳐 MAE 기준 평균적으로 약 14%, MSE 기준 약 16% 감소
- 장기예측의 경우, MAE 기준 평균적으로 약 11%, MSE 기준 약 17% 감소
- ETTm2 데이터셋 기반으로 Autoformer보다 45배 빠름
- N-BEATS 대비 1.26배 빠르고 54%정도의 파라미터만 필요함
결론 및 제언
- 장기 시계열 예측 위해 Multi-rate Sampling과 hierarchical interpolation을 도입하여 연산 효율성을 보완
- N-HiTS는 SoTA 기준선을 능가하는 동시에 해석 가능한 비선형 decomposition을 제공
- 단변량 체계에서 작동하여 훨씬 적은 계산을 사용하고 이전의 모든 Transformer 기반 다변량 모델보다 훨씬 뛰어남
- 여러 변수를 효과적으로 통합할 수 있는 방법론이 약함
논문 구현 파이썬 패키지
- pytorch-forecasting
https://pytorch-forecasting.readthedocs.io/en/stable/api/pytorch_forecasting.models.nhits.NHiTS.html - neuralforecast
https://nixtla.github.io/neuralforecast/models.nhits.html - Darts
https://unit8co.github.io/darts/generated_api/darts.models.forecasting.nhits.html - 최종적으로 neuralforecast 사용 (NHiTS 논문 저자이기도 하고, Automatic한 하이퍼파라미터 튜닝 함수(AutoNHITS)가 포함되어 있음)
[참고자료]
All About N-HiTS: The Latest Breakthrough in Time Series Forecasting
'Data Science&AI' 카테고리의 다른 글
[Model Drift] Model Drift에 대한 A to Z # 2. Detection 방법과 Handling 방법 (0) | 2023.05.29 |
---|---|
[Model Drift] Model Drift에 대한 A to Z # 1. 정의와 유형 (0) | 2023.05.29 |
[딥러닝] BERT와 GPT의 기본인 Transformer의 A to Z (1) | 2023.02.26 |
[딥러닝] Attention에 대한 설명 (0) | 2023.02.18 |
[딥러닝] Seq2Seq에 대한 설명 (0) | 2023.02.18 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- NHITS설명
- Model Drift Detection
- 모델 드리프트
- Concept Drift
- data drift
- pandas-gpt
- 데이터 드리프트
- amzaon quicksight
- Tableau vs QuickSight
- 모델 드리프트 대응법
- Generative BI
- pandas-ai
- On-premise BI vs Cloud BI
- AutoEncoder
- SQLD자격증
- Data Drift와 Concept Drift 차이
- 영화 인턴
- SQLD
- SQLD 정리
- 시계열딥러닝
- Model Drift
- 영어공부
- 생성형BI
- Data Drift Detection
- 모델 배포
- amazon Q
- 최신시계열
- 비즈니스 관점 AI
- 추천시스템
- 오토인코더
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함