이번 장에서는 기계 학습을 조금 더 파헤쳐본다. 사실 기계 학습이라는 단어를 처음 접했을 때는 마치 “사람이 어떤 기계에 대해서 학습하는 것”을 의미하는 것처럼 보인다. 그러나 실제로는 이와 정반대로 “기계가 학습하는 것”을 의미한다. 아마 원래 영문 용어인 Machine Learning을 직역하는 과정에서 생기는 차이인 것 같다.

단어 자체에서 알 수 있듯이 결국 중요한 포인트는 기계 (Machine)와 학습(Learning)이다. 따라서 그 둘 사이의 관계를 이해하는 것이 무엇보다도 중요한데, 이는 학습의 주체 (누가), 목표 (무엇을), 원천 (어디서)을 아는 것에서 시작한다.

먼저 기계 학습에서 학습의 주체는 명확하다. 바로 기계 혹은 컴퓨터이다.

그렇다면 기계는 무엇을 배우는가? 앞 장에서 기계 학습이 인공 지능 개발의 일부분인 것을 상기해보면, 기계가 배우고자 하는 그것은 바로 인간의 지능, 문제 해결 능력이라고 말할 수 있다. 물론 모든 문제에 대해 해결 할 수 있는 능력이면 좋겠지만 아직까지는 일반화된 문제 해결 능력보다는 특정 문제에 초점을 두고 있다.

마지막으로 배움의 원천 (source), 어디서 혹은 무엇을 통해 배우는 지를 알아야한다. 흔히 우리는 세상을 통해서 배운다고 한다. 그리고 사람은 눈, 귀, 코 등의 감각 기관을 통해 세상을 인지한다. 기계는 센서를 통해 들어오는 신호로 세상을 인지하고, 결국 그 신호란 데이터를 의미한다.

따라서 기계 학습은 “데이터를 통해서 기계가 문제 해결 능력을 배우는 것”이 된다.

1. 학습의 정의

한편 인간에게 있어서 학습 (Learning)이란 무엇일까? 교육학 용어 사전에 나온 학습에 대한 정의를 참고해보면, 학습의 뜻은 다음과 같다.

학습이란 연습이나 경험의 결과 일어나는 행동의 지속적인 변화를 의미하고 다음의 내용을 수반한다. 학습이란

1) 행동의 변화이고,

2) 그 변화는 연습, 훈련, 경험에 의한 것에 한하며,

3) 그 변화는 비교적 영속적이어야한다.

​ - 교육학 용어사전, 1995, 하우동설

2. 인간의 학습과 기계의 학습

그렇다면 추상적으로 보여지는 학습의 정의와 기계 학습은 어떻게 연결되는 것일까? 앞서 기계 학습이란 “데이터를 통해서 기계가 문제 해결 능력을 배우는 것”으로 정의했다. 수학적으로 보았을 때, 기계의 문제 해결 능력이란 어떠한 상황이나 그에 대한 정보 $x$가 입력되면 이에 대한 결과 혹은 답으로서 를 출력하는 하나의 함수 $y=f(x)$라고 이야기 할 수 있다. 결국 기계의 문제 해결 결과로서의 $y$라는 답은 학습의 정의에서 이야기하는 행동과 일맥상통한다. 또한 $y$는 $f(x)$에 의해 정의되기때문에 행동의 변화는 결국 $f(x)$의 변화를 의미한다.

$f(x)$의 변화에 대해서 간단한 1차 함수 $f(x)=ax+b$를 예를 들어 생각해보자. 아래는 $(a,b)$가 각각 $(1,1), (2,1), (1/2,0)$인 경우의 $f(x)$ 그래프로 서로 다른 형태를 갖는 것을 볼 수 있다.

alt
서로 다른 파라미터를 가진 세가지 함수 그래프.

$f(x)$의 변화는 $(a,b)$가 다르기 때문이다. 그래프의 형태는 $(a,b)$ 값에 의해 결정되고, 이와 같이 그래프의 형태를 결정하는 값, 파라미터들을 $w$라 하면, 함수 $f(x)$의 표기를 파라미터까지 포함하여 $f(x;w)$ 꼴로 나타낼 수 있고 최종적으로

  • 행동의 변화란 함수 $f(x;w)$에서 $w$의 변화를 의미한다.

두번째로 이러한 행동의 변화 (즉, $w$의 변화)는 연습, 훈련, 경험에 의한 것에 한하고, 성숙에 의한 변화는 학습으로 간주되지않는다는 것은 무엇을 의미할까? 먼저, 성숙에 의한 변화는 기계가 생물이 아니기때문에 논외로 쳐도 무방 할 것이다. 중요한 것은 연습, 훈련, 경험에 의한 변화라는 것이고, 훈련(연습)과 경험을 나누어 이야기하고자 한다.

먼저 기계학습에서의 경험이란 $w$를 찾는 과정에서 필요한 데이터 $D$를 말한다. 경험 속에서 우리는 어떠한 행동이 정답인지 판단 할 수 있고, 학습은 결국 그 판단을 바탕으로 올바른 $w$를 찾아가는 과정이다. 그러므로 $w$는 주어진 데이터 혹은 경험 $D$에 의해 결정되며 최종적으로 $f(x;w)$는 $f(x;w \mid D)$로 나타낼 수 있다.

다음으로 훈련(연습)이란 $w$를 변화하는 과정과 같다고 본다. 어떤 문제와 그에 관한 경험 혹은 데이터 $D$가 주어지면, 그에 대한 행동은 $f(x;w \mid D)$를 통해 이루어진다. 이 때 주어진 경험 $D$에서는 $w=1$일때 $f(x;w=1 \mid D)$의 결과 (행동)가 옳다면, 기계는 임의의 $w$값에서 훈련을 통해 $w=1$이라는 것을 배워야 한다. 따라서 $D$ 에 기반한 판단을 통해 올바른 $w$를 찾아가는 과정이 기계 학습에서의 훈련이고, 특히 인공 신경망에서는 이러한 훈련이 오류 역전파 (Backpropagation) 알고리즘을 통해 이루어진다. (오류 역전파에 대한 이야기는 차후에 인공신경망과 함께 살펴볼 것이다.)

  • $w$의 변화는 주어진 경험 $D$와 이를 바탕으로 한 훈련 (오류 역전파 알고리즘)을 통해 이루어진다.

마지막으로 변화는 비교적 영속적이어야 한다는 것은 훈련이 아닌, 시간이 지남에 따라서 자동적으로 $w$가 변화하지 않는 다는 것인데, 이는 학습의 주체가 기계이기때문에 메모리에 저장되는 한 학습의 결과로 얻은 $w$ 는 영속적으로 유지될 것이다.

정리해보면 기계 학습이란 데이터 $D$를 통해서 기계가 $f(x;w \mid D)$를 배우는 것이고, 그 과정에서 주어진 데이터 $D$로부터 어떻게 올바른 $w$를 학습하는지가 중요하다. 사람이 공부하는 것도 이와 동일하게 개개인이 겪는 경험 (혹은 문제들), 그리고 그 경험을 통한 올바른 방향으로의 행동 변화 과정이 중요한 것이다.

*(실제로는 배우는 것 뿐만 아니라 배운 것을 수행하는 부분도 포함된다. 1959년 아서 사무엘은 기계 학습에 대해서 “기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야”라고 정의했다. )

댓글남기기