머신러닝이란

위키백과에서는 머신러닝을 "the scientific study of algorithms and statistical models that computer systems use to perform a specific task without using explicit instructions, relying on patterns and inference instead."라고 정의하고 있다. 즉, 컴퓨터 시스템이 패턴과 추론에 의지하는 대신에 명시적 지시를 사용하지 않고 특정 작업을 수행하는 데 사용하는 알고리즘 및 통계 모델에 대한 과학적 연구이다.

 

일반적으로 소프트웨어라고 생각하는 명시적인(explicit) 프로그램들은 한계를 가지고 있다. 스팸 메일 필터나 자율 주행 자동차를 떠올려보자. 계산기 프로그램을 만드는 것처럼 스팸 메일 필터를 만들면 어떻게 될까? 스팸 메일을 구분하기 위한 규칙들을 개발자가 직접 명시하기에는 너무나도 많은 경우의 수가 존재하며 이를 개발 단계에서 프로그래밍하기에는 명백한 한계를 가지고 있다. 그래서 나온 방법이 프로그램이 데이터로부터 스스로 학습하도록 프로그래밍하는 것이다. 스팸 메일의 경우 계속해서 진화하는 스팸 메일의 내용에 맞춰 프로그램이 스스로 학습하게 되면, 프로그램의 유지 보수가 용이해지며 정확도가 더 높아진다. 

 

머신러닝은 다음과 같은 경우에 적합하다.

  • 기존의 해결 방법으로는 많은 수동 조정과 규칙이 필요한 문제.
  • 전통적인 방법으로는 전혀 해결 방법이 없는 복잡한 문제.
  • 유동적인 환경에 적응해야 하는 문제.
  • 복잡한 문제와 대량의 데이터에서 통찰 얻기. (e.g. 데이터 마이닝)

 

"The field of study that gives computers the ability to learn without being explicitly programmed."
: "명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다"
-아서 사무엘(Arthur Samuel), 1959

 

"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by p, improves with experience E."
"어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다."
-톰 미첼(Tom Mithchell), 1997

 

학습 방법에 의한 구분

머신러닝의 학습 방법은 접근 방식, 입력 및 출력하는 데이터 유형 및 해결하려는 작업 또는 문제의 유형에 따라 다르다. 보다 다양한 학습 방법의 구분은 다음에서 확인할 수 있다.

 

그중에서 학습하는 동안의 감독의 형태에 따라 지도 학습과 비지도 학습으로 구분할 수 있는데 다음과 같다.

 

지도 학습(Supervised Learning)

지도 학습은 입력과 원하는 출력을 모두 포함하는 예제(labeld examples)를 학습 데이터셋(training data set)으로 활용하여 수학적 모델을 구축한다. 각각의 훈련 예제는 하나 이상의 입력과 각 입력에 대응해 기대하는 결과를 함께 포함하고 있다. 분류(classfication)가 전형적인 지도 학습 작업이며 에측 변수(predictor variable)라 부르는 특성(e.g. 공부시간, 과제점수 등)을 사용해 타깃(e.g. 최종 학점)의 수치를 예측하는 것 역시 지도 학습을 이용한 전형적인 작업에 속한다.

예를 들면, 여러 동물 사진을 가지고 각 사진이 어떤 동물인지를 구분하는 프로그램을 학습시키고자 할 때, 지도 학습 방법은 프로그램을 학습시킬 때, 각 사진이 어떤 동물의 사진인지를 구분(labeled)을 먼저 한 뒤에 프로그램을 학습시키는 방법이다.

 

비지도 학습(또는 자율학습, Unsupervised Learning)

지도 학습과 달리 비지도 학습은 훈련 데이터셋에 구분이 되어 있지 않다. 따라서, 프로그램이 스스로 도움 없이 학습을 해야한다. 이 학습 방법에서는 군집화(Clustering)가 중요하다. 프로그램은 데이터 간의 공통점을 식별하고 새로운 데이터의 이러한 공통점의 존재 여부에 따라 반응한다. 

예를 들면, 뉴스 기사를 구분 하고자 할 때, 비지도 학습 방법은 여러 뉴스 기사를 통해 다른 기사와 유사한 점과 유사하지 않은 점을 구분해 나가며 군집(Cluster)을 만들어 나가며 그룹을 짓는다. 즉, 감독의 개입 없이 데이터셋만 가지고 스스로 학습하는 것이다.

 

학습 데이터셋(Training Data Set)

머신러닝 알고리즘은 간단한 학습 데이터(training data)를 기반으로 명시적인 프로그래밍 없이 예측 또는 결정을 하기 위한 수학적인 모델을 만든다. 학습 데이터셋은 쉽게 말해 학습에 사용하기 위한 데이터들의 모음이다.

 

참고

오렐리앙 게론, "핸즈온 머신러닝", 한빛미디어, 2017년 3월

Edwith, 머신러닝과 딥러닝 BASIC 중 '기본적인 Machine Learning의 용어와 개념 설명', http://www.edwith.org/others26/lecture/10729/

MIT, Introduction to Machine Learning, https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0002-introduction-to-computational-thinking-and-data-science-fall-2016/lecture-videos/lecture-11-introduction-to-machine-learning/

Wikipedia, Machine Learning, https://en.wikipedia.org/wiki/Machine_learning

 

 

+ Recent posts