단순하다고 저급한게 아니다
대학시절 4학년때 들었던 머신러닝 수업의 첫 챕터에서 들은 개념 중 하나가 ‘오컴의 면도날’이었다. 내용인 즉슨, 같은 내용을 설명할 때 가장 간단한 모델을 택하라는 것이었다. 이 개념을 소챕터 하나를 할애하면서 꽤나 강조하였는데, 당시에 나는 왜 이런 당연한 내용을 강조하는지 이해가 되지 않았다.
지금은 이 부분이 얼마나 중요한지 느낀다. 자연계는 필연적으로 복잡한 쪽으로 간다. 열역학 제 2법칙만 봐도 가만히 냅두면 복잡한 무질서로 간다. 인간도 본능적으로 복잡한 개념과 인과 관계로 설명하려 한다. 그러나 좋은 시스템은 언제나 간결하고 직관적이다.
글을 쓰거나 설명할 때 이런 부분이 중요하다는 건 많이 알려진 사실이다. 복잡하고 어려운 단어를 쓰면서 쓴 글은 보통 좋은 글이 아니거나 해당 개념을 글쓴이가 잘 모르는 경우가 많다.
디자인이나 UX에서도 마찬가지이다. 같은 Function을 하도록 할 때, 직관적이고 간단한 디자인으로 실행하도록 할 수록 좋은 디자인이라고 할 수 있다.
일반적인 개념에서는 오컴의 면도날 실천은 비교적 쉬운 편인데, 전문적인 영역으로 갈 수록 어려워진다. 사업가들이나 전문직들이 이러한 오류를 자주 범한다. 남들과 차별성을 두어야 하기 때문에 복잡한 사업 모델이나 기술을 채택하고, IR이나 기술 시연에서 이러한 복잡함을 어필한다. 특히 간단해서 따라할 수 있을 것 같은 사업 모델을 운영할 수록 이러한 오류에 빠지기 쉽다.
머신러닝 수업에서 이러한 부분을 강조한 이유도 비슷하다. 복잡한 데이터를 설명하려다보면 모델 수정을 거듭하여서 과최적화(Overfitting)을 하게 되는 경우가 많다. 과최적화된 모델은 범용성이 떨어지고 미래 예측력이 없게 된다. 같은 결과를 낸다면 컴퓨팅 파워를 많이 쓰기 때문에 자원 비효율적이기도 하다.
물론 오컴의 면도날이 무조건 간단한 모델을 채택하라는 뜻은 아니다. 같은 현상을 설명하거나 같은 목표를 달성할 수 있는 여러가지 방법론이 있을 때 간단한 것을 택하라는 것이다. 어려운 문제에는 당연히 어려운 해결법이 따르기 마련이다.
단순화를 하는 것은 생각보다 매우 어려운 작업이고 모든 면을 이해한 고수들만 할 수 있는 작업이다. 이러한 이해도가 없기 때문에 사업에서도 "저렇게 간단한 모델로 돈을 번단 말이야?" "저건 누구나 할 수 있는 것 아니야?" 같은 말을 하게 된다. 나 또한 저런 실수를 많이 하였다.
재밌게도 이러한 오류를 가장 많이 일으키는 곳 중 하나가 퀀트이다. 퀀트(혹은 투자) 업계는 수익을 내기 위해서 복잡한 모델과 시스템을 이용해야한다는 강박이 강하다. 심지어 간단한 전략을 운용하는 사람을 조롱하기도 한다. 그러나 잊지 말아야할 것은 "수익"이라는 목표를 이루기위한 도구일 뿐이고, 이 도구는 간단하고 직관적일 수록 좋다는 것이다. 의외로 알파라는 것은 아무도 모르는 복잡한 성배가 아니라 누구나 쉽게 이해할 수 있는 직관적인 개념을 잘 정리하고 시스템화한 것이다. 어차피 트레이딩 업계에서 승자는 수익을 낸 사람이지 멋지고 복잡하게 거래하는 사람이 아니다.