본문 바로가기
systrader79 칼럼/실전 투자 전략

실전 투자 전략 (20) - 머신러닝 알고리즘(kNN, SVM, Decision tree)을 이용한 절대수익 전략(1)

by systrader79 2016. 11. 2.
728x90
반응형
728x170

 알파고 쇼크 이후 인공지능 열풍이 전세계를 강타하고 있습니다. 언론에서는 연일 머신러닝과 딥러닝에 기반을 둔 인공지능(AI)가 4차 산업 혁명을 이끌 것이라고 보도하고 있고, 구글, 페이스북, 아마존, 바이두 같은 공룡 IT 기업들은 인공지능에 사활을 걸고 조단위의 천문학적인 자금을 쏟아붓고 있습니다. 

 인공지능이 데이터 사이언스의 총체라고 본다면, 가장 객관적이고 정확한 데이터가 넘쳐나는 금융 영역에서는 인공지능 알고리즘이 빠지는 것은 상상하기 힘든 일일 것입니다. 그래서 최근 1~2년 사이에 급격하게 로보어드바이저나 인공 지능 기반 투자 상품도 쏟아져 나오고 있습니다. 


1. 머신러닝, 너 정체가 뭐니?

 머신러닝(machine learning)은 말 그대로 기계가 학습을 통해 판단을 내리는 것이라고 볼 수 있습니다. 여기서 기계는 당연히 컴퓨터가 되겠지요? 컴퓨터는 어떤 면에서 사람보다 훨씬 더 똑똑하지만 치명적인 단점은 스스로 사고하는 능력은 없다는 것이죠.  


2. 컴퓨터가 어떻게 판단을 할까?

 그렇다면 대체 어떤 원리로 컴퓨터가 학습을 해서 판단을 내리게 될까요? 

 크게 두 가지 방법이 있습니다. 지도 학습과 비지도학습입니다.

 먼저 지도학습부터 살펴보겠습니다.

 지도학습에서는 사람이 컴퓨터에게 많은 데이터를 보여주면서 답도 함께 제시합니다. 예를 들자면, 사과와 수박을 구분하는 머신 러닝 알고리즘을 컴퓨터에게 가르치려고 한다면 대략 이런 단계가 될 겁니다. 


 A. 사과 사진 100만장, 수박 사진 100만장을 준비한다. 

 B. 사과 사진을 한장씩 보여줄 때마다, 컴퓨터에게 '이렇게 생긴 건 사과니까, 잘 기억해둬'라고 주입식 교육을 합니다. 이렇게 100만 번 세뇌 교육을 시킵니다. 

 C. 수박 사진 100만장도 동일한 방법으로 교육시킵니다. 

 D. 교육이 끝나면 이전에 보여주지 않은 새로운 사과 또는 수박 사진을 보여주고, 뭔지 맞춰보라고 합니다. 

 제대로 학습이 되었다면 처음 본 사과 사진도 제대로 사과라고 맞출 수 있게 되겠지요?

 

 그렇다면 지도학습에서 컴퓨터는 학습하는 과정에서 어떤 방식으로 사과와 수박을 구분할 수 있는 능력을 갖추게 될까요? 그것은 바로 데이터를 통해 학습할 때, 데이터에 주어지는 공통적인 속성을 파악하여 통계적인 해답을 도출하는 방식입니다. 

 이를 테면, 사과와 수박을 구분할 때 아무 생각없이 학습하는 것이 아니라, 하나의 데이터를 학습할 때마다 크기, 색깔, 모양, 줄무늬 여부 등의 기준을 사람이 먼저 정해준 상태에서 데이터를 학습하게 하고, 그에 해당하는 답을 알려줍니다. 이렇게 수많은 학습을 하게 되면, 사과와 수박에 해당하는 각각의 속성은 통계적으로 분명하게 구분이 되겠지요? 이를테면, 사과는 크기가 작고, 수박은 크기가 크고, 사과는 빨갛고, 수박은 녹색이고, 사과는 줄무늬가 없고, 수박은 줄무늬가 있는 식으로 말이죠. 

 좀 더 구체적으로 표현한다면, 학습과정이 끝나면 컴퓨터는 지름이 10cm 이하이면 사과일 확률이 95% 이상, 녹색 바탕에 검은색 줄무늬가 있으면 수박일 확률이 99.99% 이상 등과 같은 기준을 가지게 됩니다.  

이것이 완료된 상태가 되면, 컴퓨터는 사과인지 수박인지 구분할 수 있는 정량적인 기준을 갖추게 되고 따라서 처음보는 과일을 봐도 사과인지 수박인지 구분할 수 있게 되지요. 

 이것이 바로 지도학습의 개념입니다.


 두 번째 방법은 비지도 학습인데요, 비지도학습에서는 이것이 사과다 혹은 수박이다라는 정답을 제시하지 않은 상태에서 컴퓨터가 알아서 두 개의 과일을 구분하도록 하는 방식입니다. 

 '아니, 해답도 안 가르쳐주고 공부 시킨 다음에, 어려운 문제를 혼자서 풀라고 하는 게 말이 되나?'

 라고 생각할 수도 있겠지요? 

 이런 이유로 비지도학습에서는, 한 집단을 유사한 속성을 가지고 있는 무리로 구분짓는 방식을 흔히 이용합니다. 그 속성이 무엇이건 간에 유사한 그룹으로 나누는 것이지요. 


3. 머신 러닝 알고리즘 어떤 것들이 있나? 

 기본적인 컨셉은 크게 위와 같이 단순하게 구분할 수 있지만, 각각에 해당하는 알고리즘은 중학교 3학년 수학 수준으로도 충분히 이해할 수 있는 단순한 모델(kNN), 일반인들도 대학교 때 논문 쓰면서 흔히 활용했던 선형 회귀 분석, 로지스틱 회귀 분석 같은 비교적 평이한 모델에서부터, 수학적으로 훨씬 복잡하고 생소한 SVM, PCA, k-means clustering 같은 모델까지 상당히 다양합니다. 



 

4. 머신 러닝 알고리즘, 기존의 통계적 접근법과 무슨 차이가 있나? 

 최근 머신러닝이 대중에게 급격히 알려지고 관심이 집중되고 있지만, 사실 현재 널리 쓰이는 알고리즘들도 대부분 20~30년 이상 전에 개발된 것들입니다. 최근에 관심이 집중되는 이유는 머신 러닝 알고리즘이 빛을 발하기 위해서는 방대한 양의 양질의 데이터와 강력한 컴퓨팅 기술이 뒷받침되어야 하는데, 지금 비로소 이런 요소들이 작용할 수 있는 환경이 갖추어졌기 때문입니다. 

 머신 러닝 알고리즘과 기존의 통계적 접근법을 칼로 자르듯이 완전히 구분하기는 어렵습니다. 왜냐하면, 대부분의 머신 러닝 알고리즘이 기본적으로 통계적인 속성을 깔고 있기 때문이고, 선형 회귀 분석이나 로지스틱 회귀 분석 같은 알고리즘은 널리 쓰이는 통계 기법 그 자체이기 때문입니다. 

 하지만 머신 러닝 알고리즘과 기존의 통계적 접근법 간의 차이를 굳이 구분하자면, 기존의 통계적 방법론은 좀 더 엄격하고 rigid 한 전제 조건을 깔고 있는데 반해 머신 러닝 알고리즘은 좀 더 유연한 접근 방법을 가지고 있다는 점으로 구분해 볼 수 있겠습니다. 이를 테면, 기존의 통계적 접근법에서는 변수의 확률 분포에 대한 가정이나 조건이 엄격하게 유지된다는 가정하에 접근하지만, 머신 러닝 알고리즘은 좀 더 이러한 가정이 약하거나 전혀 없기도 한 상태에서도 이루어진다는 점이 차이라고 볼 수 있겠습니다. 


5. 머신 러닝 알고리즘, 기존의 시스템 트레이딩, 퀀트 전략, 포트폴리오 최적화 전략보다 우월한가? 

 머신 러닝, 딥러닝, 인공지능이라는 단어는 '완벽', '최고', '최적' 같은 이미지를 떠올리게 하는 경향이 있는 것 같습니다. 그래서, 많은 사람들이 이제는 우리가 과거에 알고 투자하던 정량적인 투자 방식의 시대는 가고, 그것보다 훨씬 더 발전된 머신 러닝 기법이 더 우월하다고 생각하는 것 같습니다. 

 이를 테면, 왕초보 주식 책에 나오는 이동 평균선 같은 기술적 지표를 이용한 전략이나 반세기 전에 개발된 최소분산포트폴리오 전략 같은 고전적인 기법들은 최첨단 머신 러닝 기법에 비하면 너무 수준이 떨어지는 거라 앞으로는 효용성이 없을 것 같은 생각이죠. 

 하지만, 사실은 그렇지 않습니다. 그 이유는 이후의 포스팅에서 자세히 살펴보겠지만, 머신 러닝 알고리즘도 완벽한 알고리즘이 아니기 때문입니다. 기존의 기법에 비해 발전적인 요소가 있는 것은 일부 사실이나 이것도 절대적이지는 않습니다. 이를 테면, 과최적화의 문제, feature selection의 문제 등이 대표적인 것이라고 볼 수 있는데, 이런 요소들은 어떤 면에서는 기존의 고전적인 트레이딩 기법이나 자산 배분 방법론의 지식이 없는 상태에서 알고리즘을 짠다면 그냥 의미없는 숫자 놀음에 불과하기 때문입니다. 

 머신 러닝 알고리즘은 아무 생각 없이 온갖 데이터들을 다 집어넣어주면 알아서 짜잔하고 우상향 수익곡선을 만들어주는 마법의 요술램프가 절대로 아닙니다. 

 그 가능성도 강력한 만큼 제대로 작동하는 알고리즘을 짜기 위해서는 기존의 트레이딩 기법이나 자산 배분 방법보다 훨씬 더 세심한 주의와 노력이 필요합니다. 그러기 위해서는 오히려 기존의 트레이딩 기법이나 자산 배분 원칙, 투자의 기본적인 원리에 대해 훨씬 더 잘 알고 있어야만 제대로 작동하는 알고리즘을 짤 수 있고, 이런 관점에서 머신 러닝 알고리즘은 기존의 투자법보다 절대적으로 우월하다기 보다는 상호 보완적인 새로운 접근 방법이라는 관점에서 접근하는 것이 합리적이라고 생각됩니다. 


 다음 포스팅(클릭)에서는 가장 기본적이면서도 대표적인 머신러닝 분류 알고리즘인 kNN(k-nearest neighbor)과 SVM (support vector machine)을 이용하여 추세와 변동성에 기반을 둔 절대 수익 전략을 만들어보겠습니다. 


나가시기 전에 블로그 글 맨 하단의 배너 광고를 한 번만 클릭해주시면 더 좋은 콘텐츠를 만드는데 큰 도움이 됩니다~ 감사합니다! >

1. 네이버 카페 '실전주식투자 연구소' (클릭) 으로 오시면, 본 블로그의 모든 내용을 순서대로 확인하실 수 있고, 다양한 실전 투자 정보도 얻을 수 있습니다~


2. 'systrader79의 주식 단기 매매 전략 온라인 강좌'가 뉴지스탁에서 진행 중입니다!

   개별 주식을 이용한 단기 매매 기법, 뉴지스탁을 통한 완전 자동 투자 매매 구현에 관한 폭넓         은 노하우를 다루고 있으니, 많은 성원 부탁드립니다~

   첫 번째 강의는 수강 신청없이 무료로 시청 가능합니다 (아래 링크 클릭 --> 1번 방송 클릭)

     강의 소개 (클릭)

     * 강의 바로가기 (클릭)



3. 여러분의 인생이 걸린 너무나도 중요한 소식! --- > 여기를 클릭하세요!





728x90
반응형
그리드형

댓글