데이터이야기

DB 노하우, 데이터직무, 다양한 인터뷰를 만나보세요.

알파고가 우리에게 남긴 교훈

데이터 이야기
작성자
dataonair
작성일
2016-04-29 00:00
조회
4297


‘알파고가 우리에게 남긴 교훈



기술의 발전은 언제나 우리를 깜짝 놀라게 만든다. 그리고 궁극적으로 사람들의 인식을 바꾸어 놓는다. 기술적인 혁신이 일어나는 과정을 살펴보자. 처음에는 다들 불가능한 일이라고 말한다. 하지만 그 중에 누군가는 상세히 따져보고 ‘아니야, 어려운 일이기는 하지만 충분히 가능한 일이야.’라고 생각하고는 프로젝트를 진행한다. 혁신을 만들어 내는 사람은 주변의 온갖 우려와 냉소를 딛고 마침내 제품을 내 놓는다. 그러면 사람들은 깜짝 놀란다. 처음에는 있을 수 없는 일이라 부정하기도 하고 ‘어떻게 이런 일이!’라며 분노하기도 한다. 그러다가 자신이 목격한 것을 부정할 수 없을 정도로 명확한 증거가 제시되면 그 때부터는 현실과 타협하기 시작한다. 그 과정에서 약간의 우울함도 느끼지만 결국 새로운 현실을 수용하고 그 바탕 위에서 다시 살아갈 방법을 찾는다. 바둑 또한 마찬가지였다.

바둑이라고 하는 게임은 정말 어려운 게임이다. 요즘은 거의 안 두지만 나도 인터넷 바둑 사이트에서 3~4단 정도 왔다 갔다 하는 실력이니 아주 문외한은 아니다. 그리고 컴퓨터과학, 그 중에서도 인공지능과 데이터 마이닝을 본격적으로 공부한 사람이기도 하다. 그렇기 때문에 나 또한 ‘바둑을 컴퓨터로 푼다면 어떻게 해야 할까’라는 고민을 해 본 적이 있다.

바둑이라는 게임은 이론상으로 명확하게 정답이 존재하는 게임이다. 서로 한 수씩 교대로 두는 게임이라는 측면에서 근래에 쏟아져 나오는 컴퓨터게임과는 근본적으로 다르다. 그리고 모든 정보가 공개되어 있다. 이 부분에서 상대방의 패를 볼 수 없는 포커 같은 게임과 다르다. 따라서 바둑은 우연의 요소가 전혀 없는 게임이다. 바둑판에서 벌어지는 모든 일은 대국하는 사람의 책임이고 어떠한 상황에서든 정답이 명확하게 존재한다. 그 정답을 계산을 통해서 찾을 수 있다. 게임 자체의 속성만을 보면 컴퓨터에게 절대적으로 유리한 게임이다.

하지만 문제는 요구되는 계산양이 너무 많다는 점이다. 바둑판이 가로 세로 19줄이니 둘 수 있는 곳은 총 361곳이다. 기존에 돌이 놓인 자리에는 둘 수가 없으니 두 번째 수를 둘 수 있는 곳은 360곳이 있다. 이런 식으로 모든 경우의 수를 탐색하면 대략 361!이라는 사이즈가 나온다. 바둑에는 패라는 규칙이 있어서 경우의 수가 더 많아지기는 하지만 그래도 대략적인 자릿수는 변하지 않는다. 대강 계산해 봐도 최소한 600자리를(즉, 0이 600개) 거뜬히 넘기는 정도의 어마어마한 숫자가 나온다. 이 정도 사이즈는 지구상에 존재하는 모든 컴퓨터를 총동원해도 계산이 불가능하다. 물론 컴퓨터과학에서 이 공간을 보다 효과적으로 탐색하는 여러 가지 방법을 만들어 놨지만 그 정도 가지고 어찌 해 볼 수 있는 사이즈가 아니다.

체스하고 비교를 해 보면 명확하다. 체스는 한 번에 둘 수 있는 수가 훨씬 적다. 한 편이 16개의 기물을 가지고 시작하고, 하나의 기물을 가지고 움직일 수 있는 경우의 수는 적게는 하나부터 (폰은 직진밖에 못 한다.) 최대한으로 해 봐야 28이다. (퀸은 가로세로 대각선으로 움직일 수 있어 장애물이 없으면 최대 28곳까지 갈 수 있다.) 체스판에서 둘 수 있는 수를 다 합쳐봐야 보통 100곳도 안 된다. 게다가 체스는 형세판단이 바둑에 비해 훨씬 쉽다. 바둑은 이게 흑이 좋은지 백이 좋은지를 판단하기가 어렵지만 체스는 남아있는 기물의 종류와 숫자를 보면 거의 정확하게 판단이 가능하다. 예를 들어 퀸이 잡혔으면 매우 불리한 상황이라는 것을 누구나 쉽게 알 수 있다. 그래서 컴퓨터를 가지고 처리하기가 바둑보다는 쉽다. 체스가 바둑보다 10년 이상 먼저 풀린 것은 우연이 아니다. 그리고 많은 전문가들이 ‘체스와 바둑은 다르다. 체스는 컴퓨터가 사람을 이겼어도 바둑은 아직 멀었다.’고 말한 것도 충분히 근거가 있다.

그렇다면 궁금한 부분이 생긴다. 사람은 어떻게 해서 이 어마어마한 사이즈의 게임을 할 수 있는 것일까 정답은 계산이 아닌 직관에 의존해서 탐색공간을 줄이기 때문이다. 사람은 굳이 바둑판을 다 채워서 끝까지 가 보지 않더라도 어느 정도 돌의 숫자가 많아지고 형태가 정리되면 ‘이 모양은 백이 좋다.’ 혹은 ‘흑이 좋다.’라는 이야기를 할 수 있다. 그리고 주변의 모양에 따라서 ‘이 자리는 생각해 볼만한 자리다.’ ‘이 자리는 생각해 볼 필요조차 없이 정답과는 거리가 멀다.’라는 판단을 할 수 있다. 그렇기 때문에 한정된 시간 안에 계산을 끝낼 수 있다.

바둑을 잘 두는 사람들은, 프로를 포함해서, 바로 위의 두 가지 문제에 대해 직관적인 판단을 내리는 능력이 훌륭한 사람들이다. 그리고 이러한 능력을 향상시키기 위해서 사활문제를 풀어본다거나 기보를 놓아본다거나 하면서 더 좋은 수를 효율적으로 찾기 위한 훈련을 한다.

이 문제를 다시 한 번 컴퓨터의 관점에서 보자. 그렇다면 컴퓨터도 똑같은 방법으로 탐색공간을 줄이면 될 것 아닌가 컴퓨터가 바둑판을 딱 봐서 모양만 보고도 ‘흑이 좋다.’ 혹은 ‘백이 좋다.’ 하는 식의 판단을 할 수 있게 하면 되지 않겠나 또한 컴퓨터가 생각해 볼만한 가치가 있는 자리인지 아닌지를 모양만 보고 판단할 수 있게 하면 되지 않겠나 하는 질문이다. 이론상으로는 가능하다. 하지만 구체적인 방법을 찾는 일은 생각보다 어려운 일이다. 컴퓨터는 원래 할 수 있는 일이 숫자계산밖에 없다. 조금 심하게 말해서 더하기, 빼기, 곱하기, 나누기를 엄청나게 빨리 할 수 있는 멍청한 기계에 불과하다. 이걸 가지고 어떻게 바둑판의 형세판단을 할까 하는 문제는 또 다른 문제다.

나는 이 단계에서 답을 못 내고 포기했다. 아마도 기존의 많은 전문가들이 그랬을 것이다. 알파고 팀 또한 같은 문제에 봉착했다. 하지만 그들은 답을 찾았다. 형세판단을 하는 도구로 가치망을(Value Network) 만들어 냈고, 둘 만한 수를 빨리 찾아내기 위한 도구로 정책망을(Policy Network) 만들어 냈다. 이 두 가지 모델을 딥러닝 기법을 이용해서 훈련시켜서 인간이 의사결정을 내리는 과정을 흉내 낸 것이다. 그리고 훈련과정 또한 사람이 기보를 놓아보면서 감을 키우는 것과 거의 동일한 과정을 거쳤다. 알파고는 인간의 문제풀이 방법을 모방해서 인간을 뛰어넘은 것이다. 이세돌 한 명 이겼다고 해서 뛰어넘었다고 할 수 있느냐는 반론도 있을 수 있다. 하지만 이세돌도 현존하는 정상급 프로 가운데 한 명이고 컴퓨터의 눈으로 보기에는 정상급 프로들의 실력 차이는 크지 않을 것이다. 게다가 알파고는 그 이후로도 계속해서 발전하고 있다. 이세돌이 딥마인드 챌린지 제4국에서 따낸 1승은 인간이 컴퓨터를 상대로 마지막으로 올린 1승이 될 가능성이 높다. 바둑은 실질적으로는 이미 ‘풀린’ 문제이다.

알파고가 우리에게 남긴 교훈은 무엇일까 나는 이번 딥마인드 챌린지를 보면서 내가 지금 살고 있는 세상에 대한 가정 자체를 완전히 바꿨다. 그 전까지는 ‘아무리 기술이 발전해도 컴퓨터가 실질적인 문제에 있어서 인간의 지능 활동을 대체하기는 어렵다. 적어도 내가 죽기 전까지는 불가능할 것이다.’라는 전제 하에서 인생을 살고 있었다. 하지만 지금은 달라졌다. ‘모든 전문가가 컴퓨터로 대체할 수 없는 인간 고유의 지능이 필요한 일이라고 했던 문제라도 누군가가 컴퓨터를 이용해서 풀어낼 수 있다. 그것도 깜짝 놀랄 정도로 빠른 시간 내에!’

이미 혁신을 주도해 나가는 회사들은 이 방향을 시야에 넣고 있다. 아마존이 AWS를 내놓으면서 누구나 저렴한 비용으로 인터넷 기반 서비스를 만들 수 있게 되었다. 이러한 혁신을 주도했던 회사들이 자사의 클라우드 플랫폼에서 머신러닝이 가능하도록 만들고 있다. 누구든 클라우드를 이용해서 알파고를 만들 수 있는 세상이 머지않았는지도 모른다.



출처 : 한국데이터베이스진흥원

제공 : 데이터 전문가 지식포털 DBguide.net