LSTM 기반 주가 예측의 실상

주가 예측은 주식을 처음 접하는 분들 그리고 머신러닝을 처음 접하는 분들이 어쩌면 가장 관심있어 하는 분야이다. 왜냐하면 주가 예측을 잘하면 수익을 낼수 있다는 기대감 때문이다. 주가 예측에 대한 방법은 여러 가지가 있지만 가장 흔하게 접할 수 있는 방법이 바로 오늘 주제인 LSTM 기반의 주가 예측에 대한 내용들이다. LSTM의 주가 예측 기법은 텐서플로우를 이용하면 쉽게 LSTM 모델을 이용할 수 있고 또한 예측 결과 그래프를 보면 놀랍게도 잘 예측하는 것처럼 보인다. 하지만 실제로는 전혀 적용할 수 없는 부분도 있고 이해가 좀 필요한 부분이 있다. 혹시나 LSTM으로 주가 예측을 잘 하면 돈을 벌 수 있지 않을까 하는 초보자들이 있을까 염려하여 제가 아는 범위 내에서 LSTM 주가 예측에 대한 실상(허상)을 정리하고자 한다. 그렇다고 전혀 부정하는 것은 아니지만 조금이나마 LSTM 주가 예측에 대한 이해를 정확히 실상을 이해하는 데 도움이 되었으면 한다

LSTM 기반 주가 예측의 어려움

기존 신경망에 비해 시계열 처리나 학습에 유리한 LSTM을 이용하면 간단한 시를 학습하기도 한다. 그럴싸해 보인다. 문자 단위의 시계열 패턴을 학습해 문장을 스스로 작성하는 능력을 배울 수 있다. 문법이 정확한 것은 아니지만 그러한 문장을 시계열 데이터 학습이 가능한 LSTM 알고리즘 만으로 배울 수 있다는 사실이 놀랍다. 그럼 오늘의 주제는 LSTM 주가 예측은 어떨까 결론부터 언급하면 영 형편없다. LSTM으로 주가 예측이 어려운 이유는 첫째, 주가는 실수이다. 연속적인 값의 시계열 처리를 학습해야 되기 때문에 위에서 언급한 문자 패턴을 학습하는 난이도와 차원이 다르다. 쉽게 말해, 문자 단위의 시계열 학습은 카테고리가 있는 디지털 세계 학습이고 주가 시계열 학습은 실수 체계의 아날로그 세계 학습이다. 아날로그의 시계열 처리 패턴 정보를 LSTM 신경망 내 패러미터가 담아내기에는 한계가 있다. 두번째 이유는 주가는 거의 랜덤 워크 (random walk) 형태로 움직인다. 랜덤으로 움직이는 패턴은 제 아무리 신경망일지라도 잡아내기 어렵다. 따라서 주가 예측은 거의 랜덤으로 움직이는 실수 체계의 시계열 패턴을 잡아내야 하는 것이다. 신경망이 마치 더하기나 곱하기 실수 체계 학습이 어려운 이유도 비슷한 이유이다. 신경망 계열은 디지털 즉, 카테고리 학습에는 강하지만 실수 체계 학습에는 매우 약하다. 랜덤 워크 이면서 자유도가 높은 실수 체계를 LSTM이 학습하고자 하면 LSTM 모델에서는 패턴 발견이 어렵기에 그래서 애매모호한 중간값으로 예측하는 경향도 발생한다. 그레디언드 기반 학습 방법은 패턴에 대해서 그래서 어느 정도 일관된 모습이 있어야 하는데 그렇지 않은 데이터를 보여주면서 학습해라 하면 LSTM이라 해도 결국 혼란스러워 하는 것이다. 뭐가 정답인지 모르는 것이며 쉽게 말해 학습을 조금만 시켜도 애매한 의미 없는 값(가령 제로)을 리턴하는 경향이 강해진다.

LSTM 의 주가 예측 결과가 우수해 보이는 이유

유투브나 블로그에서 LSTM 주가 예측에 대한 소스와 마지막에 그래프를 그려서 결과 예측이 잘 되는 것처럼 보인다. 하지만 실상은 그렇지 않다. LSTM 기반의 주가 예측은 과거 시계열 데이터(i-N:i)를 이용해 내일(i+1)의 주가 예측을 한다. 이 때 그 다음날(모레)의 예측은 또 과거 시계열 데이터(i-N+1:i+1)를 이용해 모레(i+2)의 주가 예측을 한다. 그러니까 모레의 주가 예측에 사용되는 시계열 데이터는 주가 예측한 내일(i+1) 값과는 별개로 과거 시계열 데이터를 이용한다. 이렇게 누적해서 그린 것이 LSTM 기반 그래프이다. 정리하면, 완전한 예측이 아니고 바로 그 다음날만을 예측해서 누적해서 그린 것이다. 바로 그 다음날만을 예측하면서 그리기에 실제 주가변동과 별 차이가 없는 듯 보이지만, 예측된 수치값을 보면 별 의미 있게 예측이 되는 듯한 느낌은 별로 없다.

‘그 간의 연구 노력이 전부 엉텅리다’ 라고 말하는 것은 절대 아니며, 그만큼 어렵다는 것을 말씀드리고 실상을 정확히 공유해 드리고 싶다는 의미로 작성하게 되었습니다. 틀린 부분이나 다른 의견 있으신 분 댓글로 주시면 감사하겠습니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중