감사의 글 | 목차 | 1.2 왜 머신러닝을 사용하는가?
대부분 사람들은 ‘머신러닝Machine Learning’이란 말을 들으면 로봇을 떠올립니다. 누구에게 묻는 지에 따라 믿음직한 집사 로봇이나 살인 병기 터미네이터를 생각할 것입니다. 하지만머신러 닝은 초현실 판타지가 아니고 이미 우리 주위에 있습니다. 사실 광학 문자 판독기Optical Character Recognition (OCR) 같은 특별한 몇 가지 애플리케이션이 수십 년 동안 사용되어 왔습니다. 수억 명의 생활을 편리하게 만들어 주류가 된 첫 번째 머신러닝 애플리케이션은 1990년대에 시작되었습니다. 바로 스팸 필터spam filter입니다. 스스로 생각하는 스카이넷Skynet 1 정도는 아니지만 기술적으로 머신러닝이라 할 수 있습니다(실제로 잘 학습되어 있어서 여러분은 더 이상 이메일에 스팸이라고 표시할 일이 거의 없습니다). 이후 추천과 음성 검색으로 발전했으며, 매일 사용하는 많은 제품과 기능을 소리 없이 향상시킨 수백 개의 머신러닝 애플리케이션이 나왔습니다.
머신러닝은 어디서 시작하고 어디서 끝나는 걸까요? 기계가 배운다는 것이 정확히 무엇을 의미하는 걸까요? 내가 위키백과 문서를 내려받으면 내 컴퓨터가 실제로 무언가를 배울 수 있을까요? 컴퓨터가 갑자기 똑똑해질 수 있을까요? 머신러닝이 무엇인지, 왜 머신러닝이 필요한지 살펴보면서 이 장을 시작하겠습니다.
머신러닝의 세상을 탐험하기 전에 전체 머신러닝의 그림을 조망하고 주요 영역과 가장 중요한 랜드마크인 지도 학습과 비지도 학습, 온라인 학습과 배치 학습, 사례 기반 학습과 모델 기반 학습을 알아보겠습니다. 또한 전형적인 머신러닝 프로젝트의 작업 흐름을 살펴보고 만날 수 있는 주요 문제점과 머신러닝 시스템을 평가하고 세밀하게 튜닝하는 방법을 다루겠습니다.
이 장에서는 모든 데이터 과학자가 꼭 알아야 할 여러 가지 기초 개념과 용어를 소개합니다. 거시적인 소개를 담고 있고 코드가 많지 않은 유일한 장입니다. 간단한 내용이지만 이 책의 나머지를 읽기 전에 반드시 모든 내용을 완벽하게 이해해야 합니다. 커피 한잔하면서 같이 시작해 보죠!
1.1 머신러닝이란?
머신러닝은 데이터로부터 학습하도록 컴퓨터를 프로그래밍하는 과학(또는 예술)입니다.
조금 더 일반적인 정의는 다음과 같습니다.
[머신러닝은] 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다.
_아서 사무엘Arthur Samuel, 1959
조금 더 공학적인 정의는 다음과 같습니다.
어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다.
_톰 미첼Tom Mitchell, 1997
예를 들어 스팸 필터는 (사용자가 스팸이라고 지정한) 스팸 메일과 일반 메일의 샘플을 이용해 스팸 메일 구분법을 배울 수 있는 머신러닝 프로그램입니다. 시스템이 학습하는 데 사용하는 샘 플을 훈련 세트training set라고 하고 각 훈련 데이터를 훈련 사례training instance (혹은 샘플)2라고 합니다. 이 경우 작업 T는 새로운 메일이 스팸인지 구분하는 것이고, 경험 E는 훈련 데이터training data이며, 성능 측정 P는 직접 정의해야 합니다. 예를 들면 정확히 분류된 메일의 비율을 P로 사용할 수 있습니다. 이 성능 측정을 정확도accuracy라고 부르며 분류 작업에 자주 사용됩니다.
위키백과 문서를 모두 내려받으면 여러분 컴퓨터는 아주 많은 데이터를 갖게 됩니다. 그렇다고 해서 어떤 작업이 갑자기 좋아지는 것은 아닙니다. 그러므로 이는 머신러닝이 아닙니다.
1 옮긴이_ 스카이넷은 영화 <터미네이터> 시리즈에 나오는 인공지능 슈퍼컴퓨터입니다.
2 옮긴이_ 원서에서는 ‘instance’가 여러 의미로 사용됩니다. 번역서에서는 ‘instance-based’의 경우 사례 기반으로, ‘example’을 의미할 때는 ‘샘플’로, 파이썬 객체를 나타낼 때는 ‘인스턴스’라고 번역했습니다.
감사의 글 | 목차 | 1.2 왜 머신러닝을 사용하는가?