빅데이터는 그것의 양과 비정형적 형태 때문에 단순한 엑셀 프로그램이나 간단한 차트만으로는 분석이 불가능하다. 따라서 빅데이터를 보다 효과적으로 분석하기 위해서는 기존에는 없던 새로운 분석 방법론이 필요한데, 그것이 바로 우리가 요새 흔히 들을 수 있는 머신러닝(Machine Learning)이라는 기법이다. 머신러닝은 빅데이터를 분석하여 인간이 인지할 수 없는 데이터 속에 숨겨진 패턴을 찾을 수 있고 또한 기존의 전통적인 데이터셋을 보다 효율적으로 분석할 수 있다.
우리는 이미 다른 산업 군에서 이미지 처리, 패턴 인식, 자연어 처리, 그리고 자율 주행차 같은 복잡한 일들을 머신러닝 기술이 아주 잘 해결해내는 것을 경험했으며, 또한 머지않아 머신러닝 기법은 금융산업에서도 새로운 분석 방법론의 표준이 되어 다양한 금융적 문제 해결을 위해 사용될 것임을 직감할 수 있다.
그렇다면 머신러닝이란 무엇이며, 이것은 어떤 모습을 지니고 있는가? 또한 머신러닝은 어떻게 금융적 문제 해결에 도움을 줄 수 있을까? 이러한 질문에 답하기 위해 여기서 우리는 기존의 업무 자동화와 머신러닝이 어떻게 다른지, 그리고 머신러닝은 무엇이며 이것은 어떤 요소들로 구성되어 있는지, 나아가 각각의 부문들은 무엇이고 이것이 어떤 방식으로 활용될 수 있는지에 대해 알아볼 것이다. 물론 머신러닝을 제대로 이해하기 위해서는 보다 세부적인 내용에 대한 학습이 필요하며 그것은 그리 녹록지 만은 않은 과제이다. 하지만 이렇게 머신러닝과 인공지능에 대한 프레임워크를 스케치해보는 것은 머신러닝을 학습하기에 앞서 전체적인 숲을 직관적으로 이해할 수 있도록 도움을 준다.
# 상징적 인공지능
우선 머신러닝을 다루기에 앞서 우리가 짚고 넘어가야 할 점은 업무 자동화라는 것이 머신러닝을 의미하지는 않는다는 것이다. 우리는 예전부터 컴퓨터에게 일련의 규칙과 순서를 통해 특정 업무를 처리하도록 시킬 수 있었지만, 이것을 머신러닝이라고 부르지는 않는다. 예를 들어, 우리는 컴퓨터에게 만약 주가가 일정 정도 하락한다면 해당 종목을 매도하도록 명령할 수 있다. 우리는 이를 '상징적 인공지능(Symbolic Artificial Intelligence)'이라고 부르는데, 이것은 머신러닝이라기보다는 단순한 업무 자동화이다. 이러한 상징적 인공지능의 문제점은 미리 정해준 규칙 이외의 상황에 맞닥뜨리게 되면, 컴퓨터는 이를 어떻게 해결해야 할지 몰라 가동을 멈춘다는 것이다.
# 머신러닝
머신러닝은 이러한 상징적 인공지능과 확연히 다른 모습을 보여준다. 머신러닝에서는 컴퓨터가 일련의 입력값과 출력값을 받으면 스스로가 입력과 출력 간의 관계를 설명할 수 있는 법칙을 찾아내거나 학습한다. 이러한 학습의 궁극적인 목적은 바로 주어지지 않은 샘플에 대해서도 잘 작동을 하는 모델을 만드는 것에 있다. 결국 우리는 머신러닝을 활용해 여러 변수들 간의 상관관계에 대한 유용한 지식을 얻을 수 있으며, 아직 보지 못한 상황에서의 결과를 예측할 수 있다. 아래의 그림은 머신러닝의 전체적인 구성을 간단하게 묘사하고 있으며, 머신러닝은 크게 지도 학습과 비지도 학습, 딥러닝, 그리고 기타 머신러닝 기법으로 나뉜다. 여기서 지도 학습과 비지도 학습은 고전적 의미의 머신러닝 기법이다.
1) 지도 학습
우선 지도 학습(Supervised Learning)에서 알고리즘은 과거의 입력 데이터와 출력 데이터가 주어지며, 알고리즘은 표본 외 데이터에 대한 가장 좋은 예측력을 가지는 모델을 찾기 위해 노력한다. 지도 학습은 좀 더 세부적으로 회귀와 분류로 나누어질 수 있다. 회귀(Regression)는 어떤 입력 변수가 주어졌을 때 이를 기반으로 출력 변수를 예측하기 위한 모델이다. 회귀가 풀고자 하는 문제의 예시로는 갑작스러운 인플레이션이 발생했을 때 시장은 어떻게 반응할 것인가가 있다. 분류(Classification)는 출력값들을 특정 카테고리로 분류하고자 하는 모델이다. 예를 들어, 물가, GDP, 주가 등의 입력 변수가 주어졌을 때 달러를 살 것이냐 말 것이냐 하는 이진 의사결정 같은 것이 분류 모델이 풀어야 할 문제이다.
우리가 흔히 알고 있는 매우 단순한 선형 회귀 모델 또한 사실은 이러한 지도 학습 머신러닝의 일종이다. 하지만, 이러한 선형 회귀 분석 모델은 너무나 단순해서 변수들 간의 실제 상관관계를 밝혀내기에는 한계가 있다. 예를 들어, 일반적으로 인플레이션은 주식 시장에 호재로 작용하나, 너무 높은 수치의 인플레이션은 오히려 주가에 악영향을 끼치는데 선형 회귀 모델은 말 그대로 선형적 관계만을 고려하므로 이러한 변수들 간의 비선형적 관계를 설명해낼 수가 없는 것이다.
머신러닝 회귀 모델에는 여러 가지 세부적인 방법론들이 존재한다. 예를 들어, 가장 간단한 형태의 회귀 모델은 라쏘 회귀(Lasso Regression)이다. 라쏘 회귀는 가장 설명력이 높은 입력 변수들을 최소한으로 선택하여 상관관계를 찾아내려 한다. 또한 K-최근접 이웃(K-nearest neighbors) 알고리즘은 과거 데이터를 보고 비슷한 상황들이 발생한다면 어떤 결괏값이 나올 것인가를 예측하는 모델이다.
머신러닝 분류 모델의 대표적인 예에는 로지스틱 회귀(Logistic Regression)가 있다. 로지스틱 회귀는 수많은 입력 변수들이 있을 때 이를 기반으로 주식을 살 것인가 팔 것인가 같은 이진 의사결정을 할 때 주로 사용된다. 의사결정 트리(Decision Tree) 또한 분류 모델의 일종이며, 이것은 연속적인 의사결정 과정에 기반하여 결과를 예측하기 위한 최적의 법칙을 찾으려 하는 방식이다. 의사결정 트리는 과거 수익률을 매우 잘 설명해 주지만 표본 외 성과가 그리 좋지 못하다는 치명적인 단점이 있다. 랜덤 포레스트(Random Forests)는 이러한 의사결정 트리의 단점을 보완한 분류 모델인데, 랜덤 포레스트는 그 이름 그대로 수많은 의사결정 트리를 무작위적으로 생성해놓고 그것들의 결과를 평균 내어 분석 결과를 사용한다.
2) 비지도 학습
다음으로 비지도 학습(Unsupervised Learning)은 데이터들의 공통적인 특징을 찾아 데이터들이 가지고 있는 구조를 파헤치기 위한 방법론이다. 비지도 학습 모델에서 알고리즘은 아무런 레이블 처리도 되어있지 않은 데이터 더미를 받게 된다. 즉, 그 데이터가 독립 변수인지 종속 변수인지에 대한 아무런 설명이 제공되지 않는 것이다. 비지도 학습 상에서 알고리즘은 스스로 데이터들 간의 공통점을 찾고, 그룹 지어진 데이터들을 공통적으로 설명하는 요인이 무엇인지 찾으려 학습을 시도한다. 비지도 학습은 크게 클러스터링과 팩터 분석으로 나누어진다.
클러스터링(Clustering)은 데이터들의 닮은꼴에 기반하여 전체 데이터셋을 몇 개의 그룹으로 나눈다. 클러스터링 기법을 활용한 예시는 고변동성/저변동성 국면, 금리 상승/금리 하락 국면, 물가 상승/물가 하락 국면을 나누는 알고리즘이 있다. 만약 이러한 국면에 대한 구분이 적절하게 이루어진다면 우리는 각각에 국면에 대해 적절한 포트폴리오 비중을 분배함으로써 투자의 성과를 높일 수 있다. 클러스터링 기법의 대표적인 예시는 K-평균(K-means) 알고리즘인데, 이 알고리즘은 각 클러스터의 분산을 최소화하는 K개의 그룹을 만들어낸다.
팩터 분석(Factor Analyses)은 데이터 이면의 주요 동인을 파악하기 위해 사용되는 비지도 학습 기법이다. 예를 들어, 이자율 커브의 움직임은 크게 전체 금리 레벨의 변화, 금리 커브 기울기의 변화, 그리고 금리 커브 볼록성의 변화로 대부분 설명이 가능한데, 이러한 현상 이면에 존재하는 근본적인 원인이 무엇인가를 찾는 것이 팩터 분석의 주요 목적이다. 주성분분석(PCA; Principal Component Analysis)는 이러한 팩터 분석의 대표적인 예이다.
3) 딥러닝
인공신경망 기술은 우리 인간의 뇌가 작동하는 방식에 영감을 받아 만들어진 방법이다. 인공신경망 내에서 각각의 뉴런은 다른 뉴런들로부터 입력값을 전달받아 입력값에 대한 가중평균을 계산한다. 만약 이러한 가중평균값이 특정 역치를 넘게 되면, 뉴런은 또다시 다른 뉴런들에게 출력값을 전송하게 되고 궁극적으로 이러한 일련의 과정은 최종 결괏값의 계산으로 이어진다. 여러 입력값에 대한 가중치를 얼마나 부여할 것인가는 학습을 통한 과거 경험에 의해 결정된다. 컴퓨터 과학자들은 소위 딥러닝이라는 기술을 활용해 뇌 구조와 비슷한 인공신경망 구조를 개발해오고 있다.
구체적으로 말하자면 딥러닝(Deep Learning)은 수많은 뉴런 계층에 데이터를 전달하여 분석하는 방법이다. 이러한 뉴런들의 다층 구조는 딥러닝 모델이 인간의 능력으로는 풀기 힘든 매우 복잡한 문제까지 해결할 수 있도록 도와준다. 딥러닝의 구조에 따라 해결할 수 있는 문제의 종류도 달라지는데, 어떤 구조는 시계열 데이터 분석에 특화되어 있는 반면, 또 다른 구조는 이미지와 텍스트 같은 비정형 데이터를 분석하는데 특화되어 있다.
소위 다층 퍼셉트론(Multilayer Perceptron)이라고 불리는 딥러닝 구조는 다층 인공신경망의 가장 초기 버전 디자인 중 하나이며, 이는 입력 시그널이 각각의 노드를 한 번씩만 지나도록 설계된 구조이다. 합성곱 신경망(CNN; Convolutional Neural Networks)은 이미지 처리에 특화되어 있는 딥러닝 구조이다. 이 모델은 서로 오버랩된 데이터 조각들을 통해 데이터가 가지고 있는 특성을 추출한다. 또한 장단기 메모리(LSTM; Long Short-term Memory) 구조는 각 노드 상의 피드백 구조를 포함하는 딥러닝 구조인데, 이 모델은 이전에 처리된 시그널을 다시 한번 동일 노드에 통과시킴으로써 과거에 대한 기억을 만들어낼 수 있다. 이 구조는 특히 시계열 분석에 용이한데 그 이유는 이 모델이 서로 다른 시간 프레임 상에서 시장의 패턴과 국면을 보다 효과적으로 인식할 수 있기 때문이다.
4) 기타 머신러닝 기법
이외에도 다른 머신러닝 기법들이 존재하는데, 여기에는 강화 학습, 반지도 학습, 그리고 능동 학습 등이 포함된다. 특히 앞으로 가장 유망 있는 분야는 바로 강화 학습(Reinforcement Learning) 영역이 될 것으로 보이는데, 이것은 알고리즘이 최종 보상 수준을 극대화할 수 있는 일련의 행동을 스스로 선택하게 하는 방법이다. 예를 들어, 강화 학습 모델은 100번의 매매 후 최종 손익을 극대화할 수 있는 트레이딩 법칙을 찾는 것과 같은 문제를 풀기 위해 존재한다. 강화 학습의 핵심은 바로 알고리즘이 풀어야 하는 두 가지 과제로 압축된다. 하나는 알고리즘이 최종 보상을 극대화하기 위해 새로운 행동을 시도해볼 것인가, 아니면 현재의 보상을 위해 기존의 행동을 고수할 것인가이며, 다른 하나는 과연 몇 번째 행동이 최종 보상에 중요한 영향을 미칠 것인가를 판단하는 일이다.
마지막으로 반지도 학습(Semi-supervised Learning)은 지도 학습과 비지도 학습의 요소들을 섞어 만든 새로운 유형의 머신러닝 기법이며, 능동 학습(Active Learning)은 알고리즘이 문제를 해결하기 위해 직접 스스로 도움이 될만한 데이터셋을 선택하고 분석하는 기법을 의미한다.
# 최고의 모델을 찾는 것, 공짜 점심은 없다
어떤 데이터셋에 머신러닝 방법론을 적용하는 것은 과학이라 말할 수 있다. 하지만 수많은 머신러닝 방법론들 중 특정 모델을 선택하고 또 모델의 패러미터를 조정하는 것은 사실 예술의 영역이다. 컴퓨터 과학자들은 종종 이를 '공짜 점심은 없다(No Free Lunch Theorem)'라고 표현하는데, 이 정리는 결국 다양한 상황, 다양한 데이터셋 하에서 최고의 퍼포먼스를 낼 수 있는 단 하나의 머신러닝 알고리즘은 존재하지 않는다는 것을 의미한다. 즉, 어떤 데이터로 굉장히 좋은 성과를 내는 모델이 다른 데이터로는 좋지 못한 성과를 낼 수도 있으며, 과거 데이터로 수익을 냈던 백테스팅 결과가 실제 프로덕션 과정에서는 손실을 끼칠 수도 있는 것이다. 표본 외 데이터에 대한 예측 안정성을 유지하는 것은 퀀트 트레이딩 영역에서 가장 달성하기 어려운 과업 중 하나인데, 빅데이터와 머신러닝을 활용한 전략들 또한 이러한 상황에서 예외가 될 수는 없다.
이러한 이슈에서 가장 핵심이 되는 이론은 바로 편향-분산 트레이드오프(Bias-Variance Tradeoff)이다. 이것은 표본 외 예측이 크게 세 가지 이유에 의해 나빠질 수 있다는 것을 의미한다. 이 세 가지는 바로 1) 표본 내 에러, 2) 모델의 불안정성, 그리고 3) 랜덤 에러이며, 예측에 대한 오류는 이 세 가지의 합으로 표현될 수 있다.
그중에서도 모델 예측력의 퀄리티를 결정하는 두 가지 주요 요인은 표본 내 에러와 모델의 불안정성이다. 우선 표본 내 에러는 모델 자체가 과거 데이터를 제대로 설명하지 못하는 데에서 발생하는 오류이다. 표본 내 에러가 크다는 것은 향후 미래 데이터를 예측함에 있어서도 모델의 성과가 좋지 못할 가능성이 크다는 것을 의미한다. 이는 모델 편향(Model Bias)이라고 불리는데, 우리는 모델의 복잡도(Model Complexity)를 증가시켜 모델 편향을 감소시킬 수 있다. 새로운 패러미터들을 모델에 추가하여 모델의 복잡도를 증가시키면 모델은 과거 데이터를 정확하게 맞출 수 있고, 결국 표본 내 에러는 감소한다. 하지만 보통 이는 과최적화(Overfitting)로 이어지며, 표본 외 에러를 증가시키고 예측력을 떨어뜨린다. 모델의 복잡도를 증가시키는 것은 모델의 불안정성을 높이기 때문이다. 우리는 이것을 모델 분산(Model Variance)이라 부른다. 결국 머신러닝의 예술은 모델 편향과 모델 분산 간의 최적 밸런스를 찾는 것이라고 할 수 있다.
모델 예측력의 퀄리티는 결국 모델 복잡도에 대한 함수이다. 모델의 복잡도가 증가하면 할수록 표본 내 에러는 줄어들지만, 반대로 모델의 불안정성은 커지게 된다. 보다 엄밀한 수학적인 이론에 따르면, 모델 전체의 에러를 최소화시킬 수 있는 모델 복잡도의 최적점은 항상 존재한다. 아래의 그림은 편향-분산 트레이드오프 그리고 모델 복잡도와 모델 에러의 관계를 직관적으로 보여주고 있다.
결론적으로 머신러닝 영역에서도 모든 문제를 해결할 수 있는 유일무이한 성배 같은 해결책은 존재하지 않는다. 머신러닝 또한 금융공학과같이 과학과 예술의 모습을 동시에 지니고 있다. 따라서 빅데이터를 분석하기 위한 가장 적합한 방법론은 선택하기 위해서는 다양한 머신러닝 방법론들에 익숙해져야 한다. 또한 각각의 장점과 단점은 무엇인지, 각각의 특징은 무엇인지, 그리고 머신러닝 기법을 금융 시계열 예측에 사용하기 위해서는 어떤 것들은 주의해야 하는지에 대한 깊이 있는 고민이 필요하다. 또한 머신러닝 기법 자체에 대한 이해와 더불어 우리가 사용하고자 하는 데이터에 대한 근본적인 이해 및 금융 시장에 대한 깊이 있는 도메인 지식 또한 필요하다. 결국 금융 머신러닝의 본질은 머신러닝에 있는 것이 아니라 금융에 방점이 찍혀 있기 때문이다. 머신러닝은 결국 금융적 문제를 해결하기 위한 한 가지 도구일 뿐이다.