머신 러닝

머신러닝은 기계가 스스로 학습하는 것을 말한다. 이는 프로그래머가 손으로 직접 하나하나 코딩하는 개념과 대비된다.

예를들어 얼굴을 인식한다고 해보자. 어떤 사람이 데이터베이스에 있는 사람 중 John 이 맞는지 확인하기 위해 한땀한땀 코드를 작성했다고 해보자. 가장 간단한 방법으로 정면을 보고 있는 사진을 하얀 배경에서 찍게 하고 데이터베이스의 사진과 몇개 픽셀이 겹치는지 보는 방법을 생각해 볼 수 있다. 이처럼 손으로 작성한 그럴듯한 추론 방식을 휴리스틱(Heuristics) 이라고 한다.

반면 John 의 사진을 다수 주고 알고리즘이 스스로 학습하여 주어진 사진이 John인지 아닌지 판단하는 방법은 머신 러닝 (또는 기계학습)이다.

머신러닝의 정의는 여러가지가 있지만 그 중 Tom Mitchell 의 정의가 마음에 들어 소개한다.

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$.

https://en.wikipedia.org/wiki/Machine_learning

즉 머신 러닝이란 경험 $E$으로 부터 배워 주어진 과제 $T$를 해나가는데 있어 특정 성능 평가기준 $P$에 따라 측정하였을 때 경험 $E$가 많을 수록 더 잘 해나가게 되는 방식이다.

이러한 정의에는 알고리즘이 학습하는 능력이 있다는 것이 전제된다. 과제 해결 방식이 사전에 모두 정의되었다면 경험이 많다고 해서 성능이 나아지는 일은 없을 것이기 때문이다.

또한 머신 러닝에는 성능 평가 기준인 P가 있다. 이 기준은 알고리즘이 스스로 학습해나가는데 있어 그 방향을 지정해준다. 최종 사용자의 입장에서 John 판별기의 성능 평가 기준은 정확도이다. 그러나 머신 러닝의 학습 알고리즘을 항상 정확도의 기준으로 수식을 쓸 수는 없다. 그래서 최종적인 방향은 비슷하지만 구체적인 계산은 다른 기준을 사용하기도 한다.

Last change: 2024-01-11