June 17, 2025

[Project-ttrade] #8 SCI-NET 모델

[Project-ttrade] #8 SCI-NET 모델

제가 이 프로젝트를 처음 시작했던 시기는 대학생이었던 2021년 이었습니다. 데이터를 수집하고 전체적인 계획을 설정하고 나서 처음으로 사용할 모델에 대해서 찾고 있었습니다.

당시 시계열 모델에서 SOTA는 대표적으로 2개 였습니다. SCI-NET과 TFT(Temporal Fusion Transformer)가 그것이였죠.
SCI-NET은 단변량 시계열 모델이고, TFT는 다변량 시계열 모델입니다.

코인도 사실 환경(사회, 정치 등)에 영향을 많이 받는 다변량 데이터이지만, 구현이 힘들 것이라 생각했습니다.
그래서 주식이 아닌 코인으로 진행하되, 24시간 열려있으니 시간에도 상관 없이 단변량으로 생각하고 진행했습니다.
사실 당시에 TFT의 구현이 어렵더라구요...

SCI-NET 모델

시간이 흘러 내용이 정확히 기억이 나지 않습니다.

기존 시계열 모델 중에서 TCN 모델을 발전 시킨 것으로 전체적인 형태는 TCN과 비슷합니다.

SCINet_arc.png

확실히 기억나는 것은 Block의 Fodd와 Feven이 각각 데이터의 홀수/짝수 배열입니다. 1357... / 2468... 로 나누고 두 데이터를 연관짓습니다.
그 뒤에 각각 15... / 37 ... 을 연관 짓는 식으로 낮은 수까지 연관을 지어 학습을 진행합니다.

하나의 과정이 SCINet이고, 이 결과물을 다시 SCINet에 넣으면 "Stacked SCINet"이 됩니다.

논문: https://arxiv.org/pdf/2106.09305.pdf
https://paperswithcode.com/paper/time-series-is-a-special-sequence-forecasting

구현

당시에는 ChatGPT도 없었고, Github를 보고 사용하기에는 구조를 파악하기 어려워 base code를 보고 직접 구현을 진행했습니다.

TorchTrade/train/train.ipynb at master · DogRing/TorchTrade
Contribute to DogRing/TorchTrade development by creating an account on GitHub.

그냥 LSTM이나 CNN이 아니라 직접 구현해서 사용한 모델로 좋은 성과를 내었으면 좋았겠지만, 아쉽게도 거의 랜덤에 가까운 성능을 내어 주었습니다.

GPU의 한계와 모델의 구현이 깔끔하지 못한 부분도 있을 것이고, input 데이터의 전처리와 target 데이터도 지금과는 많이 떨어지게 구현한 것도 한 몫을 할 것입니다.

Comments