이 글은 누군가 머신러닝을 시작하기 전에:

  • 머신러닝은 무엇을 하는 것인지
  • 크게 몇 가지의 세부적인 것으로 나눌 수 있는지
  • 주어진 데이터 셋을 어떻게 구분할 수 있는지

위와 같이 기초적인 틀을 잡아주는 연습으로 시작할 것입니다.


뜻과 그 쓰임새

머신러닝은 사실 오래 전부터 시작되어 왔습니다. 그리고 Alexnet에서 처음으로 기존의 이미지 인식보다 훨씬 뛰어난 성능을 보여주어 현재의 활발한 커뮤니티 상태를 만들었습니다. 아마 Alexnet이 그만한 성능을 보여주지 않았다면 지금의 머신러닝은 현재의 상태를 이룰 수 없었을 것입니다. 이론의 처음에서 머신러닝이라는 것에 대한 명확한 뜻이 아직 제시되지 않은 상태였습니다. 우리는 Tom Mitchell이라는 사람이 정의한 뜻을 시작으로 머신러닝이 무엇인지 알아보려고 합니다.

그는 머신러닝을 3가지의 기호를 사용하여 표현하였습니다.

A computer program is said to learn from experience E with respect to 
some task T and some performance measure P, if its performance on T, 
as measured by P, improves with experience E.

Tom Mitchell
  • T (Task); 기계가 학습하여 풀려는 문제 또는 해결해야 할 상황
  • E (Experience); 기계가 학습하는데에 사용하는 데이터 셋
  • P (Performance measure); 푼 문제나 해결한 상황에 대한 정확도나 성능 수치

위를 정리해서 표현하자면:

풀려는 문제나 해결해야 할 상황을 경험으로부터 배워 해결하려는 것

위와 같이 나타낼 수도 있습니다. 이를 제가 처음에 제시하는 이유는 그저 와! 머신러닝이다!를 시작으로 갑자기 자신의 컴퓨터를 혹사하는 현상은 발생하지 않아야 하기 때문입니다. 저희는 컴퓨터에게 데이터 셋이라는 연습용(학습용) 데이터를 제공할 것입니다. 그리고 컴퓨터는 이를 기반으로 새로운 알고리즘을 작성하거나 그 효율을 높이는 작업을 하게 됩니다.

스팸 메일을 선별해야 하는 상황을 예로 들겠습니다. 여기에서 Tom Mitchell의 정의에 따르면 각각 T, E, P는 아래와 같이 서술될 수 있습니다.

  • T; 컴퓨터가 메일이 스팸인지 아닌지 확인하는 작업
  • E; 사람들이 메일이 스팸인지 아닌지 표시한 메일
  • P; 컴퓨터가 얼마나 정확히 스팸 메일을 판별하는지에 대한 수치

예로 스팸 메일의 선별 작업을 들었는데 이미 어느정도 어디에 쓰이는지 듣고 오셨거나 눈치를 채셨을 겁니다. 스팸 메일의 경우에는 매우 다양한 형태로 이루어지고 있습니다. 하지만 우리가 그 모든 규칙을 코드로 작성해야 하나요? 정말 많기 때문에 하지 못합니다.

다른 예로는 검색 엔진 등이 해당됩니다. 검색 엔진을 구동하는 이론이나 방법론은 이 시간에도 개선되고 있습니다. 하지만 한 가지는 기억해야 합니다. 우리는 검색을 했을 경우 보통 Google에서 검색할 때 결과가 가장 정확함을 느낍니다. Bing이나 Yahoo는 왜 지금 큰 인기를 끌지 못하고 있을까요? 바로 데이터의 양이나 품질에 차이가 있습니다. 컴퓨터는 새로운 결과를 만들어낼 때 경험을 기반으로 하기 때문입니다. 그러므로 데이터 셋이나 데이터 또한 매우 중요한 요소 중 하나에 속합니다. 알고리즘만 신경 쓰다보면 놓쳐버릴 수 있는 요소 중 하나입니다.

머신러닝의 몇 가지 큰 틀

위에서 머신러닝에서 몇 가지의 세부적인 것으로 나눌 수 있다고 했었습니다. 그리고 이제 그 몇 가지는 무엇인지 알아볼 차례입니다. 그리고 이를 알고 있다는 것은 머신러닝을 시작할 때 어떤 데이터를 수집하고 어떤 알고리즘을 대략적으로 선택해야 할지 알 수 있게 할 것입니다.

먼저 첫 번째로 두 가지의 대다수의 알고리즘이 속한 그룹은 교사학습(Supervised learning)과 비교사학습(Unsupervised learning)입니다. 그리고 많이 검색을 해보셨다면 다음에 나오는 알고리즘들 또한 익숙하게 들으실 수 있을겁니다. 강화학습(Reinforcement learning)이나 추천 시스템(Recommendation system) 등 또한 위의 지도학습과 비지도학습 외에 것으로 분류할 수 있습니다.

저희는 다음 글에서 교사학습을 조금 더 세부적으로 알아볼 것입니다. 그리고 처음으로 여러가지 상황들을 보고 접근 방식을 다시 세부적으로 나누어 볼 겁니다.

읽어주셔서 감사합니다 :/