구한 데이터를 활용하는 방법은 무궁무진할 겁니다.
정말 여러가지 방법론들로 모델을 짤 수 있겠죠. 어떻게 설정하느냐에 따라서 어느 정도 성과를 보여주는지도 많이 달라질 거라 생각합니다.
그래서 시도해볼 만한 방법들을 모아서 성능을 비교해보려고 합니다.
우선 가장 기본적인 모델로 Prediction 모델을 꼽을 수 있을 것 같아요.
데이터를 받아서 가격 변동 방향을 예측하는 모델을 만들어볼 수 있을 것 같습니다.
그런데 제 개인적인 시각으로는 Deterministic한 것보다는 그냥 Distribution(혹은 Uncertainty)을 추출하는 모델이 더 잘 작동하지 않을까 생각해서 그 방향으로 잡았습니다.
여기에서는 2가지 정도를 테스트해볼 예정입니다.
첫 번째는 Simple and scalable predictive uncertainty estimation using deep ensembles (ICML 2017)에 나오는 뉴럴넷을 사용한 방법입니다. 요약하자면, gradient update를 customize해서 알고자 하는 variable의 distribution의 mean과 variance를 예측하는 방법입니다.
두 번째는 LightGBM을 사용한 방법입니다. LightGBM에서 Quantile Regression을 사용하여 Quantile 값들을 예측해보려고 합니다.
그 다음으로는 RL을 활용한 모델입니다.
value function을 objective function으로 삼는 것보다 policy 자체를 학습시키는 게 훨씬 넓은 스펙트럼에서 optimization이 된다고 생각해서 policy optimization 쪽으로 잡았습니다. policy optimization에서 대표적인 알고리즘은 A3C / PPO / TRPO / Policy gradient 정도가 있는데, 이 중에서 PPO를 이용하려고 생각중입니다. 제가 열심히 최신 메타를 follow-up할 때까지 SOTA였는데 요즘은 어떨지 정확히는 모르겠네요.. 무튼 PPO를 구현해본 적은 없어서 이번에 스켈레톤 코드로 하나 만들어놓을까 생각중입니다!
RL 개발할 때는 gym env를 하나 만들어볼까 해요. 여러모로 이식성도 높고 활용도도 높으니 이번 기회에 한번 만들어보는 것도 도움이 될 것 같습니다.
다음 포스팅은 뉴럴넷을 이용한 알고리즘으로 돌아오겠습니다!
댓글 없음:
댓글 쓰기