본문 바로가기
주제별 글모음/인공지능에 대한 글

오버피팅(과적합)과 알파고의 실수

by 격암(강국진) 2016. 3. 14.

2016.3.14

 

이번에 알파고가 4국을 이세돌에게 패했습니다. 그런데 대국을 보면 78번째로 이세돌이 돌을 놓은 후에 알파고가 이상한 행보를 합니다. 그리고는 결국 패하고 말았습니다. 이것에 대해 여러가지 해석이 있고 그걸 버그라고 생각하는 사람들도 있는 것같습니다. 그 설명 중 하나로 나온 것이 바로 오버피팅의 문제입니다. 오버피팅은 기계학습분야에서 해결해야할 장벽중의 하나입니다.

 

기계학습이란 모델을 데이터에 맞추는 즉 피팅하는 과정이라고 말할 수 있습니다. 예를 들어 아래의 그림을 생각해 봅시다.

 

 

 

 

위의 그래프에서 X표가 된 것이 데이터들입니다. 그리고 두개의 빨간선들이 모델들이죠. 직선은 직선모델이고 곡선은 3차함수 모델이라고 할 수 있겠습니다. 여기서 문제는 주어진 데이터를 두개의 모델은 모두 잘 만족시킨다는 점입니다. 그리고 사실 예를 들어서 두개를 그렸을 뿐 세개의 점을 지나는 곡선의 수는 무한히 많기 때문에 주어진 데이터를 만족시키는 모델은 이론적으로 무한히 많다고 할 수 있습니다. 

 

이런 경우에 통상 우리는 더 간단한 모습을 갖춘 직선쪽을 선택하는데요. 그것을 오캄의 면도날 원칙이라고 부릅니다. 더 간단한 설명이 더 훌룡한 설명이라는 원칙이죠. 그러나  사실 이런 원칙대로 선택한 것이 반드시 옳다고 할 수는 없습니다. 실제로는 복잡성과 정답률 사이에서 고민을 해야 합니다. 그리고 그 고민을 자동적으로 해결하기는 무척어려워서 사람이 거기에 인위적으로 개입해야 합니다. 왜냐면 실은 구불거리는 복잡한 선의 경우에는 주어진 데이터에 더 완벽히 맞추기가 쉽기 때문이죠. 그러므로 무조건 모델의 오차를 줄이려고만 하면 복잡한 모델이 선호되는 겁니다. 반면에 직선처럼 간단한 함수는 오차가 생기기 쉽습니다. 그래서 간단한 쪽이 좋은가 아니면 주어진 데이터를 완벽히 맞추는 쪽이 좋은가에 대한 고민이 필요합니다. 

 

어떤 모델이 정말로 좋은지 어떤지는 오직 저렇게 발견한 모델을 가지고 실전에서 테스트 해보는 수밖에 없습니다. 새로운 데이터가 발생했을 때 정말 우리가 발견한 모델이 내놓는 값이 실제 값과 비슷한가를 보고 우리 모델이 좋은가 나쁜 가를 판단하는 것이죠. 이렇게 모델을 선택할 때 쓰지 않은 데이터에서 발생한 오차를 일반화 오차라고 합니다. 기계가 주어진 데이터에서 일반화를 했을 때 발생하는 오차라는 뜻이죠. 

 

앞에서 단순성과  주어진 데이터를 완벽히 맞추는 것 사이에서 선택이 필요하다고 했습니다. 우리가 후자쪽으로 지나치게 무게를 실어주었을 때 즉 오차를 줄이는 것에만 너무 집중했을 때 우리는 매우 구불거리는 복잡한 모델을 선택하게 되는 데 이렇게 해서 발생하는 문제를 바로 오버피팅의 문제라고 합니다. 

 

알파고에 대해 기사를 읽어보면 알파고는 사람이 둔 기보를 가지고 학습을 했을 뿐만 아니라 알파고가 알파고와 바둑을 두면서도 학습을 했다고 합니다. 그런데 알파고가 알파고와 계속 바둑을 두면 알파고는 바로 오버피팅의 문제를 발생시킬 가능성이 큽니다. 말하자면 특정인물 즉 바로 자기 자신과의 바둑에만 특화되는 것이죠. 

 

알파고는 심층학습을 합니다. 그것도 13층의 층을 가진 신경망을 쓴다고 하더군요. 심층학습이란 게 왜 효과를 발휘하는가는 이론적으로 잘 규명된 것이 아닙니다. 물론 상식적으로 뭘 하고 있다라는 것정도는 말할 수 있지만 수학적으로 그렇게 하면 꼭 잘된다더라가 증명되었다는 식이라기 보다는 그런 아이디어로 실제로 해봤더니 잘 되더라는 식에 가깝습니다. 수학적 분석이 어렵기 때문이죠. 

 

그런 학습에서 아마도 어느 정도를 하면 오버피팅 문제가 발생하는 것인지 아닌지를 인간이 판단하기란 거의 불가능할 것입니다. 왜냐면 이미 알파고는 너무 강해서 이세돌이 한판을 이기기 전까지는 도대체 인간이 알파고를 이길수 있는지 없는지 알수 없었기 때문이지요. 그래서 구글은 이세돌이 필요했던 것입니다. 자신들은 이미 알파고와 싸워 이길 수가 없었으니까요. 알파고와 알파고가 대국을 계속하면 한쪽의 알파고는 지고 다른 쪽은 이기겠지만 그런 식의 강화학습을 계속하면 실은 우리가 모르는 가운데 오버피팅이 더 심해지면서 실력이 오히려 줄어들 수도 있습니다.

 

이세돌은 4국에서 신의 한수라고 평가받는 78수를 둡니다. 그리고 그후에 알파고는 인간이 보기에 기괴한 행보를 한 끝에 집니다. 우리는 인간이라면 두지 않을 수를 알파고가 몇번이나 둔다고 놀랐는데 알파고는 그 78수를 보고 알파고라면 두지 않을 수를 인간이 뒀다고 놀란 겁니다. 

 

기계란 데이터에서 학습합니다. 인간도 경험을 통해 학습하지요. 어쩌면 기계가 영원히 인간을 쫒아 올 수 없는 부분이 있다면 학습의 내용이 아니라 학습의 과정 그 자체일지 모릅니다. 즉 놀라는 상황, 미지의 상황에 부딪혔을 때 그걸 어떻게 우리의 일부로 포용하는가 하는 것이죠. 

 

제가 기계보다 인간이 이 방면에서 더 뛰어날거라고 생각하는 이유는 이렇습니다. 우리도 우리가 뭘 어떻게 학습하는지 잘 모르기 때문이죠. 뇌의 연구는 그 방면으로 아주 멀고도 멀었습니다. 그러니 우리의 피조물인 기계가 창조주의 학습능력보다 더 뛰어나기는 어렵지 않나합니다. 오버피팅의 문제가 인공지능의 한계일 수 있는 것은 이때문입니다. 

 

물론 시간이 지남에 따라 이제까지 그래왔듯이 기계도 차차 더 좋아질 것은 분명합니다. 게다가 인간이 설사 기계보다 더 뛰어난 잠재력이 있다고 해도 그 잠재력을 모두가 실현하는 것은 아니라는 것도 사실이기는 합니다. 제가 알파고를 바둑으로 이길 수 없듯이 말입니다. 미래에는 우리는 모두 각자 나름대로의 알파고와 만나게 될 것입니다. 이세돌처럼 인간으로서의 잠재력을 보여주지 못한다면 부끄러운 창조주가 될 수도 있습니다. 이 세돌을 제가 응원하는 것에는 이제보니 그런 이유가 있는게 아닌가 싶습니다.

 

 

 

 

댓글