기계학습 (Machine Learning). 첫 인상으로는 상당히 복잡해보이고 어려워보이는 개념이다. 뭔가 단어는 많이 들어봤는데, 워낙 전문적인 용어처럼 느껴져서 자세히 알아본 적이 없었던 탓이다. 그러나 기계학습, 조금 자세히 알아보니 개념 자체는 생각보다 어렵지 않다. 그럼 어떤 개념일까?
"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."
카네기 멜론 교수이자 인공지능 연구의 대가 중 한 명인 톰 M 미첼(Tom M. Mitchell)은 위의 말로 기계학습을 설명하고 있었다. 즉, 특정 작업T(Task)에 대해 학습한 경험 E(Experience)가 성능 P(Performance)를 개선해주는 방식의 컴퓨팅 프로그램이라면 기계학습이라고 할 수 있다는 것이다. 여기서 컴퓨터의 경험 E는 결국 데이터(Data)일 수 밖에 없는데, 어떤 작업에 대한 과업 과정에서 쌓이는 데이터를 활용해 자신의 로직을 수정함으로써 성능을 개선하는 것으로 재정의할 수 있다.
즉, 여기서 말하는 학습이란 결국엔 로직의 수정이자 프로그램의 자체적 보완을 의미하는데 기계학습이란 것을 이해하기 위해서는 결국 이 보완의 과정이 어떤 식으로 일어나는 지를 살펴보는 것이 중요했다. 기계의 목표는 작업에 대한 수많은 데이터들 중에서 가장 많은 데이터에 부합하는 수식을 찾아 이 수식으로 자신의 로직을 수정하는 것인데 수많은 데이터를 단순화시켜야 하므로, 이 때 관련되는 학문은 통계학, 그 중에서도 선형 회귀(線形 回歸; Linear Regression)를 대표적으로 이야기한다.
선형 회귀는 경향성을 갖는 데이터가 평균에 가까워지는 것을 이용하는 통계학적인 방법론인데, 이를 사전적으로는 "한 개 이상의 독립 변수 x에 의해 변화하는 종속 변수 y가 갖는 선형 상관 관계를 모델링하는 방법"이라고 정의한다. 쉽게 이야기하면 여러 가지 상황 변수에 따라 데이터가 어떻게 변하는 지를 식으로 계산하는 방법이라고 설명할 수도 있겠다.
H(x) = Wx + b
즉, 가설 H는 x의 값에 따라 W라는 가중치(weight)와 b라는 편향(bias)의 영향을 받아 그 결과 값이 달라지게 되는데, 이 가중치와 편향을 조정하여 상황 변수에 따라 기계가 얻은 데이터 값이 동일하게 나오도록 하는 게 학습 목표에 맞는 최적의 가설이라고 할 수 있다.
이 최적의 가설은 당연히 처음부터 얻을 수가 없는데, 어떤 값을 넣었더라도 그 값이 최적의 값인지를 알기 위해서는 수많은 데이터에 검증을 해야 하며, 처음 넣은 값이 최적의 값과 다르다면 당연히 계산식의 수정이 필요하고, 설령 운 좋게 처음부터 최적 값을 넣어더라도 그 값이 최적임을 알기 위해서는 데이터를 수없이 넣어보고 계산식도 수없이 바꿔보며 검증이 필요하기 때문이다.
기계 학습이란 이 수많은 선을 그려보는 과정에서 가장 데이터에 부합한 선을 찾는 과정이라고 할 수 있다. 이 가장 가까운 선에 맞는 가중치와 편향값을 찾는 것이 가장 기초적인 기계학습인 것이다. 각 선과 데이터 간의 거리를 비용(Cost)이라고 하는데, 이를 계산하고 적용하는 방법에 대해서 다음 글을 통해 알아볼 예정이다.
인간은 직관적으로 이 선을 찾아낼 수 있지만, 기계는 절대로 그럴 수 없다. 계산이 빠르면 인간과 유사하게 이 선을 직관적으로 찾는 것처럼 느껴질 수 있지만, 본질적으로 기계는 알고리즘에 따른 무수한 추정이 없으면 인간처럼 인지적인 지름길(抽單; Heuristic)을 쓰는 것은 불가능하다. 이 점은 개인적으로 기계가 열등하면서도 우위를 가질 수 있는 점인 것 같다. 뻔히 보이는 길을 돌아가야 하지만, 그렇기 때문에 뻔히 보이는 것도 전부 새롭게 볼 수 있기 때문이다.
'Artificial.Intelligence' 카테고리의 다른 글
[AI-06] 신경망의 활동을 표현하다 : 시그모이드 함수 (0) | 2024.05.28 |
---|---|
[AI-05] 수치화하여 방향성 찾기: 벡터와 텐서 (0) | 2024.05.12 |
[AI-04] 학습이 일어나는 곳 : 인공신경망 (1) | 2024.05.11 |
[AI-03] 오차를 줄여나가다: 경사하강법 (0) | 2024.05.03 |
[AI-02] '배움'의 목표를 잡다: 비용함수와 제곱오차 (1) | 2024.04.30 |