Machine Learning

기계 학습(Machine learning)을 학습의 의미를 살펴보면, 컴퓨터가 판단을 내릴 수 있는 기준을 가지고 경험을 통해 주어질 일에 대한 능력을 높이는 것이다[1]. 기계를 주어진 경험, 예를 들어, 음성인식에서 소리를 구분하기 위해 인식기를 학습시키기 위한 말뭉치, 문자인식을 하기 위해서 미리 주어지는 여러 필기 데이터를 여기에서 경험이라 들 수 있다.

또 다른 정의로, 기계 학습은 경험을 통하여 자동적으로 컴퓨터의 알고리즘을 발전시키는 것에 관한 연구이다[1]. 인간은 경험에서 오는 학습을 통하여 자신의 지식을 계속적으로 확장시켜 나갈 수 있고, 기계 학습은 궁극적으로 인간의 이러한 학습능력을 구현하고자 하는 시도인 것이다. 학습을 함으로써 하나의 문제를 수행한 후에, 그 수행과정에서 얻은 경험을 바탕으로 프로그램을 수정 및 보완하여, 다음에 그 문제 또는 비슷한 문제를 수행할 때 이전보다 효율적이고 정확하게 문제를 해결할 수 있도록 하고자 하는 것이다.

이는 학습을 통해 수행하려는 작업에 따라, 사용되는 알고리즘에 따라 여러 가지 방법을 포함한다[2].

* 지도 학습(Supervised Learning): 이 학습의 결과로 어떤 입력과 출력 사이의 사상(mapping)을 결정하는 함수가 만들어진다. 예를 들어, 분류(classification) 문제에서, 학습기(learner)는 입력 벡터와 분류 범주들(classes) 사이를 매핑하는 함수를 '입력-출력' 예제들을 봄으로써 근사화(approximate)한다. 즉, 수집한 다수의 '입력과 출력의 쌍으로 이루어진 데이터'를 어떤 수학적 방법으로 살펴봄으로써 입력과 출력 사이의 관계를 나타내는 어떤 임의의(unknown) 함수를 근사적으로 계산해 낼 수 있다. 이 함수를 통해, 이후 어떤 새로운 패턴의 입력이 들어왔을 때 출력을 예측할 수 있다. 이 출력이 유한 집합의 여러 구성 요소 중 하나, 또는 복수를 선택하는 형태가 될 때, 이를 분류 작업이라 볼 수 있다. 출력이 연속된 수의 한 점이나 범위를 가질 때, 다시 말해 예측하려는 출력이 실수값일 때의 문제를 회귀(regression)라 한다.

* 비지도 학습(Unsupervised Learning): 군집화(clustering)과 같이, 입력들을 어떤 기준에 따라 몇몇 개의 집합(set)으로 묶는 것을 말한다. 이 때는 출력이 제공되지 않기 때문에(단, 군집의 개수는 제공될 수 있다.), 오직 학습기는 입력 샘플들 각각의 유사성을 보고 이들을 임의의 개수의 집합으로 묶는다.

* 준 지도 학습(Semi-supervised Learning): 출력(목표값)이 표시된 데이터(labeled examples)와 표시되지 않은 데이터(unlabeled examples)를 모두 훈련(학습)에 사용하는 방법이다.

* 강화 학습(Reinforcement Learning): 주어진 환경에 대한 관찰을 통해, 어떻게 행동해야 할지를 학습하는 것이다. 환경에 대해 특정한 행동을 취했을 때, 그 결과로 상 또는 처벌을 받는다. 즉 포상(reward)을 받고, 이는 상과 처벌을 포함하는 개념으로서, 상은 양수(+), 처벌은 음수(-)로 생각한다. 이 학습 알고리즘을 통해, 누적되는 포상이 최대가 되는 행동 양식(또는 순서, sequence)을 찾아내어 저장한다. 아무 것도 모르는 처음 상태에서부터 시작하여 조금씩 포상을 통해 어떤 환경에서 어떤 행동이 득이 되고 또는 실이 되는지를 더 정확히 예측할 수 있게 된다.

* 기타: Transduction, Multi-task Learning, ...

[1] Mitchell, M. (1996). An Introduction to Genetic Algorithms. MIT PRESS.
[2] From Wikipedia, http://en.wikipedia.org/wiki/Machine_learning