머신러닝을 이용한 트레이딩 (#1 머신러닝이란?)

알파프라임

ML For Trading Intro.

최근 알파고에 의한 인공지능의 관심 및 컴퓨터의 성능이 좋아지면서 많은 분야에 걸친 데이터에 기계학습(Machine Learning) 및 딥러닝(Deep Learning) 기술이 적용되고 있다.

금융분야도 그중 일부로서 다양한 기계학습의 기법들이 적용되고 있지만 금융 시장 특성상 단기간에 다양한 요인들이 복합적으로 적용되면서 거래가 일어나기 때문에 다른 분야에 비해 좋은 성과를 못 내고 있는 실정이다. 또한 데이터들이 시간에 따라 서로 관련이 있는 데이터를 시계열 데이터라고 하는데 이러한 특성을 가진 데이터는 다른 데이터에 비하여 분석하기가 더욱 어려운 특성을 가지고 있다. 실제로 과거에는 사람이 금융모형 수식을 만들고 다양한 가정하에서 예측 및 분석을 하는 방식을 지향하였지만 최근에는 기계학습적 접근에 대한 트렌드의 변화가 일어나고 있으며 더 좋은 성과가 지속적으로 나타나고 있다.

이 블로그 시리즈에서는 기계학습을 이용한 투자에 대한 관점에서 글을 연재해 보려고 한다.

본격적으로 기계학습을 이용한 트레이딩(MachineLearning For Trading)을 시작하기 앞서 우리는 머신러닝이 뭔지 이해해야 한다.

기계학습(머신러닝)이란?

머신러닝은 글자 그대로 머신(Machine) + 러닝(Learning)으로서 기계가 학습을 한다는 의미다.

그렇다면 구체적으로 기계가 학습한다는 것이 무엇을 의미하며 이 과정을 통해 어떻게 기계가 똑똑하게 변하는지 알아보도록 하자.

실제로 기계학습을 제대로 이해하기 위해서는 확률, 선형대수, 편미분 등 다양하고 깊은 지식들이 필요하지만 본 시리즈에서는 기계학습을 처음 배우는 사람들도 최대한 알기 쉽고 이해할 수 있게 접근하려고 한다. 따라서 많은 예와 비유를 사용하여 학술적인 정의와는 살짝 벗어날 수 있지만 기계학습이라는 개념을 다지기에는 훨씬 쉬울 것이다.

그렇다면 기계학습은 어떤 원리일지 생각해보자. 사실 그 직관적 원리의 출발은 우리가 초등학교 때 배웠던 함수에서부터 시작할 수 있다. 우리는 어린 시절 처음 함수라는 개념을 배울 때 다음과 같은 함수 상자를 봤을 것이다.

그림 1. 함수 상자 (Function Box)

여기서 함수박스는 X라는 값을 넣어서 상자 안의 임의의 수식 처리를 거친 후 Y라는 결괏값을 내보낸다.

이때 우리는 이러한 함수 상자를 거치는 과정을 연역적 관점과 귀납적 관점 이 두가지 관점에서 바라보도록 하자.

첫 번째 연역적 접근은 함수 관계식을 정의해놓고 여기에 X값이 들어오면 함수관계식에 맞는 Y값을 산출하는 것이다.

(연역법 : 이미 증명된 하나 또는 둘 이상의 명제를 전제로 하여 새로운 명제를 결론으로 이끌어내는 것을 연역법이라 함)

두 번째 귀납적 접근은 함수관계식을 미리 정해놓지 않고 X라는 데이터들이 들어가서 나오는 Y 값들을 이용하여 역으로 함수식을 도출하는 것이다.

(귀납법 : 개별적인 특수한 사실이나 원리로부터 그러한 사례들이 포함되는 좀 더 확장된 일반적 명제를 이끌어내는 것을 귀납법이라 함)

간단한 예를 들어보자,

X = 2가 들어갈 때 : a* X(2) + b = 8

X = 3이 들어갈 때 : a* X(3) + b = 11

연역적 방법으로 접근하면 Y=3X+2라는 수식을 이미 정의해놓고 X를 넣어 Y의 값을 알아내는 구조로 기존 금융모형식을 통한 접근이라고 생각하면 쉽다

반대로 귀납적 접근은 이렇게 X와 Y의 값들을 반복적으로 넣어 a = 3, b = 2라는 함수의 계수를 연립하여 찾을 수 있고(여기서 a와 b는 정해지지 않은 계수라고 하여 미정계수라고 함) 계수를 찾게 되면 함수관계식을 만들 수 있게 된다.

이렇게 함수 관계식을 파악하게 되면 우리는 Y 값을 모르는 새로운 X 값이 들어오게 되더라도 기존에 있는 귀납적으로 알게 된 함수 관계식을 바탕으로 해당 Y 값을 알 수 있게 된다.

즉, 기계가 학습한다, 기계학습을 한다는 말은 위의 두 번째 방식과 같은 데이터를 반복적으로 대입하여 함수를 만드는 방식인 귀납적 접근법과 유사하며, 다양한 X(학습 데이터 or Training Data)들을 이용하여 함수의 미정계수(매개변수 or Hyper-parameter)들을 찾고 이렇게 미정계수가 정해지면 함수(결정평면 or Hyperplane)를 정의할 수 있다. 이렇게 함수가 만들어지면 우리가 새로운 X(검증 데이터 or Test Data)가 주어졌을 때 그에 맞는 Y 값을 예측할 수 있는 것이다.

주식 데이터 예제를 통한 적용

위의 방식을 실제 주식 데이터에 적용시켜 예를 들어보자,

Q. 내일의 주가를 알 수는 없을까?

2016년 1년 동안의 삼성전자의 과거 데이터인 일 단위 주가(일봉)들을 함수 상자에 넣어주자.

여기서 일봉은 X 데이터 역할을 하며 그다음날의 종가(Close Price)를 Y 값으로 짝지어 준다.

: 2016.01.01 종가(X1) - 2016.01.02 종가(Y1) -> 학습시작

2016.01.02 종가(X2) - 2016.01.03 종가(Y2)

.......... ...

2016.12.30 종가(Xt-1) - 2016.12.31 종가(Yt-1) -> 학습종료 -> 함수(결정평면) 형성

2016.12.31 종가(Xt) - ? (우리가 궁금한 값) (Yt) -> 새로운 테스트 X값 대입 -> 형성된 함수에 대입 -> Y값 예측

이해의 편의상 휴장일이 없다고 가정하고 이렇게 함수 관계식을 세워주면 12월 30일까지인 364개의 과거 학습 데이터를 바탕으로 함수의 미정계수들을 찾아줄 수 있다.

이를 바탕으로 우리가 마지막 날인 12월 31일 장이 마감했을 때 그날의 종가(Xt)를 넣어준다면 그다음날의 Y 값을 과거 364개의 과거 학습 데이터를 바탕으로 (오늘 끝날 때 주가가 이 가격일 땐 그다음날의 가격은 이거였어! -> 364번 반복 학습) 그다음 날인 1월 1일의 끝날 때의 가격(Yt)을 알려준다. 물론 여기에서는 X값인 학습 데이터를 전날 종가인 단일 변수를 사용했지만 추후 실전 예제에서는 다차원 변수를 사용하여 실험을 해볼 것이다.

위와 같이 X와 Y 값들이 짝 지어져 Y 값들을 미리 알고 있는 경우를 머신러닝에서는 지도학습(Supervised Learning)이라고 말한다. 반대로 Y의 값을 모를 경우 비지도 학습(Unsupervised Learning), 또한 환경과의 상호작용으로 보상을 통해 진화하면서 학습하는 경우를 강화 학습(Reinforcement Learning)이라고 한다. 자세한 내용은 연재가 진행되면서 자세하게 다룰 예정이다.

Outro.

언뜻 보기에는 편리해 보이고 손쉽게 미래를 예측하여 머신러닝이 만능인 것처럼 보일 수 있지만, 위의 주식 예시는 직관적인 이해를 위한 것이고 깊게 들어가 보면 더욱 많은것을 고려해주어야 한다. 실제로는 함수 상자의 예시처럼 식 2개 미지수 2개처럼 단순하게 연립되지 않으며 값들이 딱 맞아떨어져 미정계수를 쉽게 알아내는 경우도 거의 없어 오차를 통해 학습하여야 한다. 또한 실생활의 데이터 셋은 더욱 많은 노이즈(Noise)를 포함하고 있어 전처리 등 다양한 작업이 필요하다.

실제 학습하는 과정에는 다양한 알고리즘이 적용될 수 있으며 하나의 알고리즘이 모든 분야의 데이터 문제를 해결하는 경우는 없다.

이 말을 머신 러닝에서는“세상에 공짜 점심은 없다(There is no such a free lunch)”로 비유하기도 한다.

기계학습을 통한 투자는 분명히 높은 산이긴 하지만 절대 정복하지 못할 곳은 아니다. 어렵더라도 이 연재 글을 천천히 따라오면서 개념적 이해Python과 관련 라이브러리 등(Numpy, Pandas, Tensorflow, Keras, Scikit-Learn)을 통한 실습을 진행한다면 본인만의 알고리즘 및 변형된 새로운 접근법을 만들 수 있게 될 것이다.

이상 머신러닝을 이용한 투자법 시리즈 첫 번째 글을 마치도록 하겠습니다.

다음 포스팅에서는 머신러닝 개념의 2탄 세부 종류에 대해서 알아보려고 합니다.

피드백이나 질문사항을 댓글로 남겨주시면 답변드리도록 하겠습니다. 다음 포스팅도 기대해주시길 바랍니다!

더 유익한 정보를 얻고 싶으시다면 페이스북 알파스퀘어 페이지를 방문해주세요!

차세대 주식투자 플랫폼, 알파스퀘어에서 스마트한 주식투자를 경험해보세요!

기업문화 엿볼 때, 더팀스

로그인

/