데이터 과학 미니북 - 1. 기초 개념
앞서 모델이란 말이 통계학자와 머신 러닝 엔지니어의 업무 속에서 잠깐 나왔었습니다. 그들이 만들고 학습시키는 것이 통계 모델 또는 머신 러닝 모델입니다. 모델이란 말은 데이터 과학에서 가장 많이 쓰이는 말 중 하나입니다. 이 책 또한 데이터 과학자들이 사용하는 통계 모델과 머신 러닝 모델들을 설명하는 데에 상당한 분량이 할애되어 있습니다. 모델은 또한 데이터 과학과 통계가 구분되는 지점 중의 하나이기도 합니다. 통계학은 특정 모델없이 데이터를 설명하거나 결론을 이끌어내기도 하지만, 데이터 과학에서는 거의 예외없이 모든 분석에 모델을 도입합니다.
이 장에서는 1장의 마지막으로, 모델이란 무엇인가에 대해서 생각해 보겠습니다.
우선 다음 그림을 한번 보겠습니다.
[그림 1]에 나온 레고로 만든 헬리콥터[1]는 실제 헬리콥터에 대한 하나의 모델이라 볼 수 있습니다. 이것은 헬리콥터에 대한 좋은 모델일까요? 아이들에게 헬리콥터의 모양이 어떻게 생겼는지 설명하는 데에는 좋은 모델입니다. 그러나, 이것을 가지고 헬리콥터가 실제 하늘을 날 수 있다는 것을 증명하거나, 헬리콥터의 성능을 개선하기 위한 실험을 할 수는 없습니다.
다른 그림을 한장 보겠습니다.
[그림 2]는 여러분들의 핸드폰에 모두 하나씩 들어있는 와이파이(WiFi) 송수신기의 동작 과정을 그래프로 표현한 모델입니다.[2] 앞서 레고 헬리콥터가 플라스틱 블록을 재료로 만든 모델이라면, 이 모델은 그래프를 재료로 만든 모델입니다. 이 모델은 좋은 모델일까요? 이 모델은 와이파이 송수신기의 성능을 높이기 위한 설정 값들을 계산해 내는 데에는 아주 좋은 모델입니다. 반면, 전문적인 엔지니어가 아닌 사람들에게 이 모델은 그저 복잡해 보일 뿐 아무 쓸모도 없습니다.
통계학자인 대니얼 카플란 교수는 저서에서 이렇게 말하고 있습니다:[3]
모델이란 특정 목적을 위한 표현입니다. (A model is a representation for a particular purpose.)
모델은, 그것이 물리적 실체이든 추상적 아이디어이든, 항상 다른 무언가를 나타냅니다. 그것은 표현입니다. 인형은 아기와 동물을, 건축 설계도는 건물을, 백혈구 수는 사람의 면역 체계 수준을 의미합니다.
모형을 만들 때는 염두에 두어야 할 목적이 있습니다. 장난감은 아이들의 즐거움을 위해 만들어집니다. 인형, 블록, 모형 비행기, 기차 등 다양한 종류의 장난감은 이러한 목적에 맞는 형태를 가지고 있습니다. 그들이 표현하는 것과는 달리, 장난감 버전은 작고 안전하고 저렴합니다.
데이터 과학에서, 즉 통계와 머신 러닝에서, 모델은 무엇을 나타내는 것일까요? 두 말 할 것도 없이 데이터입니다. 데이터 과학에서 모델은 데이터의 특징을 담아낸 것입니다. 헬리콥터 대신 레고 장난감을 들고 다니는 것처럼, 데이터 전체를 들고 다닐 수 없기 때문에, 핵심만 뽑아내어 모델로 들고 다닌다고 생각하면 그리 틀린 생각이 아닙니다.
그렇다면, 데이터 과학에서 모델의 목적은 무엇일까요? 현실 세계의 문제에 대한 해결책을 제시하는 것입니다. 구체적으로는, 어떤 현상을 정량적으로 설명하거나, 예측하는 것입니다. 특히, 예측은 최근 데이터 과학자가 하는 업무의 상당 부분을 차지하고 있습니다. 앞으로 이 책에서 언급될 분류 모델과 회귀 모델들의 목표가 전부 ‘예측’이라 할 수 있습니다.
소위 AI라고 불리는 챗봇(Chat-bot)도 하나의 모델입니다. 챗봇은 사람의 대화 과정에 대한 모델로, 단순하게 말하면 수많은 텍스트 데이터를 모아 특징을 뽑아낸 것이라고 할 수 있습니다. 챗봇의 목표도 예측입니다. 지금까지 전개된 대화 내용을 토대로 다음에 이어질 대사를 예측하는 것입니다.
데이터를 이용해서 모델을 만드는 것은 그 방식이 어떠냐에 따라 계산이라고 하기도 하고, 학습이라고 하기도 합니다. 계산이든 학습이든 결국 모델은 데이터의 특징을 요약해서 담게 됩니다. 데이터 과학자는 데이터를 이용해서 모델을 만들고, 그 모델은 세계를 예측합니다. 모델이 이토록 중요한 데이터 과학의 세계에서, 자주 쓰이는 유명한 모델은 거의 예외없이 각종 오픈소스로 구현이 완료되어 있습니다. 또한 대부분의 경우 하둡에 있는 데이터에 직접 적용할 수 있는 형태로 구현되어 있습니다. 이들을 잘 활용하면 데이터, 모델, 예측으로 이어지는 분석 과정을 매우 빠르게 수행할 수 있습니다. 오픈 소스에 구현된 머신 러닝 모델들을 잘 활용하는 것이 데이터 과학자의 첫째 덕목이 된 데에는 이유가 있는 것입니다.
데이터 과학의 모델들이 예측이라는 목적을 가지고 데이터의 특징을 표현한 것이라고 앞에서 말씀드렸습니다만, 그래서 그 모델이 구체적으로 어떻게 생긴 것일까요? 예측 모델의 경우 모델은 하나의 함수로 보아도 무방합니다. 우리가 중고등학교 수학 시간에 배운 그 함수입니다.
단적인 예로, 선형 모델은 y = 3 x + 2 와 같이 일차 함수의 형태를 띄고 있으며, x가 데이터로 주어지면 y값이 예측되는 형태로 현실 문제에 접근합니다. 선형 모델 보다 복잡한 다양한 모델들이 있지만 기본적으로는 y = f(x) 라는 함수 형태에서 x는 데이터, y는 예측 목표, f가 바로 모델이라고 할 수 있습니다.
데이터 과학이 중학교 수학과 다른 점은, 중학교 수학 문제는 f와 x가 주어지고 y를 구하거나, f와 y가 주어지고 x를 구하는 경우가 많은 반면, 데이터 과학의 문제는 거의 예외 없이 x와 y가 주어지고 f를 구하는 문제라는 것입니다.
또한 데이터 과학에서는 이 f는 단 한 가지의 정답으로 결정되는 경우보다 확률적으로 가능성이 높은 여러 개의 정답 후보가 존재하는 경우가 많습니다. 데이터 과학은 많은 후보 중에서 적당한 수준의 f를 골라 답으로 삼습니다. 데이터 과학의 용어로, 주어진 x와 y는 데이터, f는 모델, 적당한 f를 찾아내는 과정은 모델 학습이라 할 수 있습니다.
[1] 레고 헬리콥터: https://www.lego.com/en-us/product/fire-helicopter-30566
[2] 와이파이 동작 모델: https://www.eng.buffalo.edu/~tmelodia/papers/bianchi.pdf
[3] 카플란 교수 저서: https://dtkaplan.github.io/SM2-bookdown/introduction.html