데이터 과학은 현실 세계의 데이터를 활용해서 현상을 예측할 수 있는 모델을 만드는 과정이다. 이 과정에서 핵심적으로 딥러닝을 비롯한 머신 러닝을 통해 현상의 다양한 특성을 대신하여 표현할 수 있는 모델을 만들어낸다. 이러한 데이터가 없다면 현실 세계의 예측 및 모델 구현도 불가능하기 때문에 데이터를 ‘현실 세계의 아주 작은 조각’이라고 할 수 있다. 이러한 조각을 많이 모으면 많이 모을수록 현실 세계를 좀 더 정확하게 구현할 수 있는 재료가 만들어지게 된다.
먼저 머신러닝에 필요한 데이터는 숫자이다. 현실에서 데이터를 광범위하게 수집해서 열심히 표로 정리했다고 하더라도 그 데이터를 표현하는 값들의 형태는 매우 다양할 수 있다. 때로는 성별과 같은 카테고리일 수도 있고, 숫자, 소수점, 백분율과 같이 숫자 자체를 표현하는 형태도 다양하다. 일부 데이터들은 값들이 비어있을 수도 있고, 잘못된 값들이 들어와 있는 경우들도 있다. 따라서 숫자가 아닌 데이터들은 처리하기 적절하게 미리 숫자로 바꾸는 과정이 필요하고, 전체 데이터의 불필요하면서 노이즈를 만들어내는 데이터 일부는 걸러내는 등의 작업들이 필요하다. 이 과정을 가리켜 데이터 준비(data preparation) 혹은 데이터 전처리(data pre-processing)라고 한다. Crowd Flower Survey(2016)에 따르면 데이터 과학에 사용하는 시간 중 약 80%의 정도는 이처럼 데이터를 모으고 정제하는 데 사용된다. 좋은 데이터를 모으는 것은 전체적인 데이터 과학의 성과를 좌우할 만큼 매우 중요하기 때문에 이만큼의 시간을 써서라도 데이터를 정제해야 한다. 아무리 머신러닝의 기술이 향상이 된다고 하더라도 모아놓은 데이터의 질이 떨어지면 절대로 좋은 결과를 만들어낼 수 없기 때문이다.
또한 이러한 데이터 전처리 과정은 데이터를 효율적으로 분석을 할 수 있게 도와준다. 이 과정에서 수학적인 사고와 통계적인 시각을 통해 각 요인(Factor, 속성) 간의 관계를 살펴보며 해석을 하기도 하고, 불필요한 정보를 제거하기도 한다. 불필요한 자료들이 많이 섞여있는 자료를 억지로 머신러닝을 힘들게 돌려 얻은 결과가 좋을 리가 없다. 이는 잘 정돈된 데이터로 산출한 머신러닝의 결과와는 엄청난 차이가 존재할 것이다. 머신 러닝 모델을 위한 데이터를 분석하면서 필요한 성분을 생성하거나 선택하는 기술을 Featuring Engineering이라고 한다. 이 특징 추출 작업은 머신 러닝의 결과인 모델의 성능 (현실과 얼마나 비슷한가? 현실을 얼마나 잘 반영하는가?)에 가장 큰 영향을 주는 중요한 단계이다. 이 때문에 인공지능을 공부할 때 이와 같은 데이터의 중요성은 반드시 한 번 살펴보고 넘어가야 한다.
머신러닝의 핵심 요소 2 : Learning (학습)
우리는 '학습'이라는 단어를 들으면 흔히 책상에 앉아 뭔가를 열심히 공부하는 모습을 떠오른다. 머신러닝에서 학습은 넓은 의미로 ‘경험에 의해 뭔가를 자꾸 개선해가는 모든 것’들을 의미한다. 예를 들어서 엉금엉금 기어 다니는 귀여운 아기를 생각해보자. 뒤뚱거리면서 걷다가 넘어지고.. 그런 과정을 반복해서 잘 걷게 되는 과정도 학습이라고 할 수 있다. 아기는 비록 언어를 잘 모르지만, 지속적으로 “아빠야~”, “엄마 여기 있지~”라는 말을 반복적으로 들어가며 아빠와 엄마를 구분하기 시작한다. 이 경험들을 통해 아빠 같은 사람은 남자, 엄마 같은 사람은 여자.. 경험적으로 하나씩 깨달아가는 모든 것들을 학습이라고 할 수 있다. 이 과정에서 말도 배워가고 어색한 걸음은 어느새 자연스러워진다.
이와 같은 학습이란 현상은 살아있는 모든 생물에게서 일어난다. 화분에 심어놓은 식물이 햇빛이 쫘악~ 들어오는 창가 쪽으로 계속 고개를 돌리는 현상은 왜 일어날까? 유전적으로 물려받은 요인(알고리즘)이 존재하고, 주어진 자극과 입력에 맞추어 반응을 하는 것이다. 이처럼 입력값에 대해 결과를 자꾸 업데이트 해가는 과정을 학습이라고 생각할 수 있다.
이러한 학습이 인공지능에서 주목받는 이유는 기존의 프로그래밍, 혹은 알고리즘에서 ‘구조화하기 어려운 지식’을 쉽게 해결할 수 있기 때문이다. 예를 들어 목소리 인식 기능을 한 번 살펴보자. 목소리만 듣고 그 목소리의 주인공이 그게 누구인지 어떻게 알 수 있을까? 결과를 내어놓기는 어렵지 않은데 이를 논리적으로 잘 설명하기는 어렵다.
마치 연속극 대장금의 한 장면과 같다. 정상궁이 왜 홍시 맛이 나냐고 할 때 장금이는 홍시 맛이 나니까 홍시 맛이 난다고 대답을 했다. 다시 생각해보면 이 홍시 맛은 장금이의 경험(데이터, 통계)에 가장 가까운 맛을 확률적으로 추측한 것이라고 할 수 있다. 이처럼 입력값을 판단하는 과정에서 학습은 논리적인 구조 외에도 확률적이고 통계적인 방법까지 활용한다. 기존에 학습된 데이터 중에서 입력값과 가장 비슷한 학습 내용을 찾아서 판단을 하는 것이다. 이처럼 확률과 통계를 적절히 활용함으로써 머신러닝은 논리와 추론으로 다 구현해내지 못했던 한계를 극복할 수 있었다.