빅웨이브에이아이 기술블로그

SOTA 알고리즘 리뷰 6 - SciNet 본문

기술 블로그

SOTA 알고리즘 리뷰 6 - SciNet

빅웨이브 이현상 2022. 3. 29. 12:22

시작

 

안녕하세요! 빅웨이브 이현상입니다.

 

저희 팀에서는 일주일에 한번(수요일) 기술 리뷰를 진행하는데요,

 

최근 사업에서 시계열(Timeseries) 분석 분야에 대한 수요가 많이 존재하여 이의 SOTA 알고리즘을 소개드리고자 합니다!

 

기존 포스트에서는 미래에 미리 알고있는 변수를 트랜스포머 구조에서 디코더에 입력하는 TFT(Temporal Fusion Transformer) 모델에 대해서 설명드렸습니다.

 

TFT는 2019년에 발표된 논문으로 그 후 우수한 성능의 모델들이 다수 등장했습니다!

 

그 중 단변량 시계열 예측에서 우수한 성능을 나타내는 SCINet을 소개합니다.

 

SCINet

 

시계열 예측 분야는 일반적으로 다변량 및 단변량 문제를 구분합니다.

 

단변량이라는 것은 변수를 하나로 설정하여 미래 시점의 변수를 예측하는 것, 다변량은 다수의 변수를 활용하는 것을 의미합니다.

 

예를 들어 주가를 예측한다고 가정했을 때, 주가 그 자체로 예측(단변량) 혹은 기업의 경제 지표, 뉴스 등의 데이터 활용(다변량)하는가에 따라서 문제가 구분되는 것입니다.

 

SCINet(Sample Convolution and Interaction Networks)은 단변량 문제에서 최근 SOTA를 달성하고 있는 우수한 알고리즘입니다.

 

SCINet이 점령해버린 모습..!

 

실제로 2022년 3월 기준 SOTA 사이트의 Timeseries Forecasting 부문에 들어가보시면 ETTh2 (720)을 제외하고 9개의 실험결과에서 SCINet의 압도적인 수치가 나타납니다!

 

ETTh2 데이터는 전기 변압기 온도 데이터셋으로 장기간 예측 분야에서 벤치마크 기준으로 활용되고 있습니다.

 

기존의 다변량 모델들을 제치고 예측 변수의 패턴만을 분석하여 높은 성능을 달성한 사례입니다.

 

도대체 어떻게 단변량으로도 이런 훌륭한 성능의 모델을 개발했을까요?

 

SCINet 논문에서는 기존 시계열 분석 기법이 추세(trend)나 계절성(seasonality)은 잘 고려하지만, 시간의 불규칙성(irregular components)을 고려하지 못한다고 주장합니다.

 

기존 시계열 분석 기법은 일반적으로 3가지 방식을 활용하는데, SCINet은 TCN(Temporal Convolutional Network) 구조를 발전시킨 것입니다.

 

TCN을 간단히 설명드리면, 일반적인 CNN과 같이 컨볼루션 필터를 통해 시계열 시퀀스를 단위별로 학습하는 구조입니다.

 

 

SCINet 모델 구조

 

SCINet 모델 구조는 아래의 그림처럼 크게 3가지로 구성됩니다.

 

 

SCINet은 시간의 불규칙성을 고려하기 위해 입력 데이터의 짝수(even), 홀수(odd) 스텝을 구분하는 아주 독특한 방식을 제안합니다.

 

예를 들어 시계열 데이터에서 5개의 시퀀스를 가지고 있으면 1, 3, 5 번째 데이터와 2, 4 번째 데이터를 분할하여 학습한다는 것입니다.

 

(a)의 SCI-Block 그림을 보면 실제로 even과 odd 분할되면서 상호간의 네트워크를 연결하여 학습하는 구조를 알 수 있습니다.

 

각 짝수 홀수 스텝의 데이터는 컨볼루션 필터를 통해서 시퀀스의 특성이 추출됩니다.

 

(b) 그림을 보시면 SCI-Block을 Level별로 트리형 구조를 생성합니다.

 

최종적으로 CNN처럼 완전 연결(FC, Fully-Connected)되어 출력값을 도출하는데, 이 구조를 (c)그림과 같이 Stacked 형태로 구성할 수도 있습니다.

 

직관적으로 생각해보면 윈도우 사이즈에서 짝수 홀수를 여러번 분할하는 방식을 활용하기 때문에 전체 시점에서 본다면 상당히 유연한 구조로 불규칙성을 보완했다고 볼 수 있습니다.

 

마무리

 

오늘의 포스트에서는 최근 시계열 예측 분야에서 우수한 성능을 달성한 SCINet 알고리즘에 대해 소개드렸습니다.

 

빅웨이브에서는 실제 프로젝트 데이터를 가지고 SCINet 알고리즘을 실험했는데요,

 

에너지 수요량과 같은 단변량 예측 문제에서 확실히 저희 팀의 기존 모델보다 높은 성능을 보이는 것을 관측했습니다.

 

최근 SOTA에서 트랜스포머 기반 모델이 지배적이었던 상황에서 기발한 아이디어로 성공적인 실험 결과를 도출했던 논문이었습니다.

 

Pytorch나 Tensorflow로 공개된 코드들이 있으니 참고하시길 바랍니다.

 

읽어주셔서 감사합니다!

 

Liu, M., Zeng, A., Xu, Z., Lai, Q., & Xu, Q. (2021). Time Series is a Special Sequence: Forecasting with Sample Convolution and Interaction. arXiv preprint arXiv:2106.09305.
0 Comments
댓글쓰기 폼