brunch

방정식(equation)과 머신러닝 (2)

by 노다해


머신러닝은 방정식을 푸는 수치적 방법론의 일종이라고 할 수 있다.


'방정식'과 '수치적 방법론'에 대해서는 이전 글에서 설명했다.

https://brunch.co.kr/@dahaeroh/130



이번 글에서는 '머신러닝'에 대해 조금 더 이야기해보려고 한다.


앞선 글에서 방정식을 푸는 일은 세상의 규칙을 찾아가는 과정이라고 언급한 바 있다.


그때는 마치 우리가 마음만 먹으면 언제든 방정식을 세울 수 있는 것처럼 말했지만, 사실 현실은 그렇지 않다. 애초에 방정식을 세우는 것 자체가 불가능한 경우도 많다. 규칙이 무엇인지도 모르겠고, 어떤 식으로 표현할 수 있을지도 모르고, 그저 데이터만 주어진 상황이 훨씬 더 많다.


그럴 때는 방정식을 풀 수 없을 때 썼던 방법처럼 수치적으로, 그러니까 이것 저것 대입해보면서 근사적으로 답을 찾아가는 방법을 방정식을 유추하는데에 활용할 수 있다. 방정식을 직접 세울 수는 없어도, 데이터로부터 그럴듯한 규칙을 찾아내고, 그 규칙이 데이터를 가장 잘 설명하도록 조정해가는 것이다. 즉, 머신러닝은 방정식의 형태를 데이터로부터 유추해가며, 세상의 규칙을 근사적으로 찾아가는 방법이라고 할 수 있다.




# 기계가 학습을 한다고?


그렇다면 왜 "컴퓨터"가 아니라 "기계"가 학습한다고 말하는 걸까? 생각해보면, 실제로 학습을 수행하는 건 모든 기계가 아니라 연산이 가능한 컴퓨터다. 그런데도 왜 우리는 여전히 "기계학습(Machine Learning)"이라는 말을 사용할까?


그 이유는 컴퓨터가 처음 등장했던 시기로 거슬러 올라가면 이해할 수 있다. 1950~60년대, 컴퓨터는 계산을 수행하는 '기계(Machine)'로 인식되었고, 실제로 ‘기계’라는 표현은 컴퓨터를 지칭하는 일반적인 용어로 자주 사용되었다. 예를 들어 1936년 앨런 튜링(Alan Turing)은 ‘계산하는 기계(Computing Machine)’라는 개념을 설명하기 위해 튜링 머신(Turing Machine)을 제안했다. 즉 '기계'라는 표현은 계산 장치를 지칭하는 넓은 개념으로 사용되었다.


게다가 그 당시만 해도 ‘Computer’라는 단어는 계산을 수행하는 사람을 가리키는 표현이었다. 이후 시간이 흐르면서, 이 용어는 점차 계산하는 기계를 뜻하는 말로 바뀌게 되었다. 이러한 맥락에서 "컴퓨터 학습"이 아닌 "기계 학습"이라는 용어가 자리잡았다고 할 수 있다.


다음으로는 학습의 의미를 돌이켜보자. 사람이 수학 문제 푸는 법이나 전거 타는 법 등을 익힐 때에는 반복적으로 시도하고 피드백을 받으며 점점 더 잘하게 된다. 처음에는 틀리기도 하고 넘어지기도 하지만, 무엇이 잘못되었는지 확인하고 고쳐나가면서 방법을 학습하게 된다.


기계학습도 본질적으로는 같은 원리다. 인간의 학습처럼 기계도 시행 착오를 거친다. 다만 인간의 학습이 무언가를 할 수 있게 되는 것이 목적이라면, 기계의 학습은 데이터를 잘 설명하는 규칙을 찾는 것을 목표로 한다. 인간이 인지 작용을 통해 학습한다면, 기계는 규칙을 조금씩 바꿔가면서, 데이터를 잘 설명하는 규칙을 찾아낸다.


데이터를 기계에게 그냥 던져준다고 해서, 기계가 스스로 규칙을 깨닫고 학습하는 것은 아니다. 기계가 어떤 방식으로 데이터를 해석할 것인지, 그리고 무엇을 기준으로 좋은 규칙이라고 판단할 것인지는 사람이 미리 정해주어야 한다.




# 모델과 손실함수


기계가 데이터를 해석하는 구조를 모델(Model)이라고 부른다. 모델(model)은 무언가를 단순화해서 보여주거나 예시로 보여주는 것을 칭한다. 건축 모델은 실제 건물을 짓기 전에 축소해서 만들어 보는 작은 모형이고, 패션 모델은 옷이 어떤 느낌인지 대신 보여주는 사람이다.


머신러닝에서 사용하는 ‘모델’도 이와 같은 맥락에서 이해할 수 있다. 다만 여기서의 모델은 수학적이고 계산적인 구조다. 현실 세계의 데이터를 수학적으로 단순화해서, 그 안에 숨어 있는 규칙을 이해하고 예측할 수 있도록 도와준다.


정리하자면 직접 방정식을 세울 수 없는 복잡한 문제들에 대해 사람이 대강의 모델을 정하고, 이 모델이 데이터에 알맞도록 조금씩 변형하는 과정을 기계 학습이라고 할 수 있다. 이 때 모델이 얼마나 데이터에 알맞은지 평가할 기준이 필요하다. 이를 손실함수(Loss Function)이라 부른다. 당연한 이야기겠지만, 손실함수는 어떤 모델을 사용하는지에 따라 정의된다.




# 지도 학습과 비지도 학습


기계 학습은 정답이 있는지 없는지에 따라 지도학습(Supervised Learning)과 비지도학습(Unsupervised Learning)으로 나뉜다.


지도학습에서는 입력 데이터에 대한 정답(출력값)이 함께 주어진다. 예를 들어 키와 몸무게 데이터를 바탕으로 사람의 성별을 예측하는 모델을 학습시킨다고 해보자. 이 때 모델이 입력값(키와 몸무게)을 바탕으로 예측한 성별의 결과가 실제 성별(정답)과 얼마나 차이 나는지를 손실함수를 통해 평가한다. 그리고 이 손실을 줄이도록 모델을 조금씩 조정해가며 학습을 이어간다.


반면 비지도학습에서는 출력값, 즉 정답이 주어지지 않는다. 입력 데이터만을 보고 그 안에서 의미 있는 구조나 패턴을 스스로 찾아야 한다. 예를 들어 설문조사 데이터를 바탕으로 소비자 유형을 분류한다거나, 서로 비슷한 사람들을 묶어 그룹을 나누는 문제 등이 이에 해당한다. 이 경우에는 예측과 정답의 차이를 비교할 수 없기 때문에, 데이터의 구조나 거리 등을 기준으로 패턴을 찾아낸다.







keyword
매거진의 이전글방정식(equation)과 머신러닝 (1)