전성전(電聖戦, Electronic Holy War): 컴퓨터와 인간의 바둑대결
2014년 4월 1일  |  By:   |  과학  |  1 comment

1997년 IBM 의 딥블루는 체스 세계 챔피언이었던 개리 카스파로프를 물리쳤습니다. 그로 부터 두 달 후 뉴욕 타임즈는 동양에서 보다 인기있는 게임인 바둑을 이야기하며 “바둑에서 컴퓨터가 사람을 이기기 위해서는 100년 이상이 걸릴 지 모릅니다” 라고 적었습니다.

작년 3월, 일본에서는 컴퓨터와 사람의 첫 번째 공식 기전인 전성전(電聖戦, Electronic Holy War)이 열렸습니다. 그리고 컴퓨터 프로그램 “크레이지 스톤(Crazy Stone)”은 70년대 ‘컴퓨터’라는 별명을 가졌었고 일본 챔피언을 5차례 지냈던 이시다 요시오를 물리쳤습니다.

물론 이 승리는 딥 블루가 인간을 물리쳤던 것처럼 기계가 바둑에서 인간을 이겼다고 말할 수 있는 것은 아닙니다. 크레이지 스톤은 4점을 깔고 접바둑을 두었고, 이시다 요시오 역시 전성기를 한참 지난 상태였습니다. 하지만 이시다는 이 프로그램에게 “천재”라는 표현을 사용했습니다.

오늘날 컴퓨터 바둑은 개인이나 소규모의 팀들이 서로 다른 프로그램을 출시하고 있다는 점에서 80년대의 컴퓨터 체스와 비슷합니다. 크레이지 스톤 역시 프랑스 릴 3 대학의 전산학과 교수인 레미 쿨롬(Remi Coulom)이 혼자서 만든 프로그램입니다.

그러나 구글 리서치 소장이자 현대 인공지능의 아버지 중 한 명인 피터 노르빅은 구글이나 IBM 이 수백명의 인력을 쏟아 붇는다 하더라도 컴퓨터가 바둑에서 인간을 이길 수 있을지는 의문이라고 말합니다.

바둑은 매우 간단한 게임으로 보입니다. 사각형의 판 위에 세로와 가로로 그어져 있는 19줄은 361개의 교차점을 만듭니다. 두 선수는 게임이 끝날때까지 이 교차점 위에 흑돌과 백돌을 번갈아 놓으며 빈 교차점들을 둘러싸 자신의 집으로 만듭니다. 자신이 둘러싼 교차점 하나와 자신이 잡은 상대방의 돌 하나는 각각 1점이 됩니다.

그럼 왜 바둑은 체스보다 그렇게 어려운 것일까요? 한 가지 대답은 경우의 수가 훨씬 많다는 점입니다. 체스에서는 가능한 게임 상태의 수가 우주의 별의 수와 같아지는 데 15수가 필요합니다. 그러나 바둑에서는 10수만에 이 숫자에 도달합니다. 그리고 체스에서 15수가 두어졌다면, 이 때는 평균적으로 한 게임의 절반 이상이 진행된 상태입니다. 하지만 바둑에서 10수가 두어졌을 때는 이제 막 게임이 시작한 상태입니다. 바둑에서 한 게임은 평균적으로 150수를 진행하며, 전체 경우의 수는 무수히 많은 우주의 별의 수에 해당합니다.

그러나 IBM 에서 딥블루를 개발했던 머레이 캠벨은 바둑의 어려움은 다른 곳에 있다고 이야기합니다. “경우의 수가 10의 120승 정도가 되면 여기에서 다시 10의 몇 승이 더 올라가는 것은 큰 문제가 아닙니다.” 딥블루의 팀은 계산량을 줄이기 위해 체스의 한 가지 특징을 이용할 수 있었습니다. “체스에서 그랜드마스터의 수준에 오르면, 현재 누가 이기고 있는지를 남아있는 말의 종류와 위치만으로 판단할 수 있게 됩니다. 즉, 컴퓨터는 남은 수들을 계산할 때 자신이 이기게 되는 수만을 남길 수 있고 이는 계산량을 매우 크게 줄일 수 있습니다.”

하지만 바둑은 “상대를 둘러싸는 게임”입니다. 하나의 돌이 다른 돌들에게 둘러싸이면 그 돌은 판에서 제거됩니다. 이 규칙은 다수의 돌무리들에게도 적용되며, 따라서 여러 돌들이 얽혀 있을 때 어떤 돌들이 이기게 될지를 판단하는 것은 매우 어려운 문제입니다. 딥블루 팀의 펭-슁수는 바둑돌들의 관계를 “지붕위에서 자신을 엄호하는 소총수 한 명을 믿고 다른 카우보이를 권총으로 겨누는 한 카우보이”와 같다고 표현한 바 있습니다.

초기의 바둑프로그램은 – “쌍립은 끊지 마라”, “집에 불이 났을 때 낚시를 가서는 안된다”- 와 같은 수 천 년간 누적된 바둑의 격언들을 컴퓨터가 이해할 수 있는 형태로 옮기는 방식으로 만들어졌습니다. 예를 들어 “집에 불이 났을 때 낚시를 가서는 안된다”는 “판 전체에서 수를 찾기 보다 부분적인 대응을 우선시 하라”와 같은 규칙으로 바뀌었습니다.

그러나 쿨롬의 크레이지 스톤은 최초로 “몬테카를로(Monte Carlo)”알고리듬을 적용한 프로그램입니다. 이 알고리듬은 70년 전 맨하탄 프로젝트를 위해 개발된 알고리듬으로 임의성(randomness)에 의존해 수많은 가상의 세계를 시뮬레이션 하는 방식입니다.

“바둑에서 우리는 20수를 더 두어도 누가 이길지를 확신할 수 없습니다. 몬테카를로 방식으로 우리는 수많은 게임을 끝까지 두어 누가 이기게 되는지를 봅니다. 이런 일을 수백만번 반복하여 우리는 각 수의 낳을 결과를 계산합니다.”

크레이지 스톤은 자신이 처음으로 참여한 컴퓨터 프로그램끼리의 바둑 토너먼트에서 우승했습니다. 그 뒤로 몬테 카를로 방식은 컴퓨터 바둑계의 정석으로 자리잡았습니다. 이시다와의 게임에서 이 프로그램은 약 3억 6천만번의 바둑게임을 시뮬레이션 했습니다. 이는 이 프로그램이 지금까지 인간이 두어 본 모든 바둑게임보다 더 많은 게임을 시뮬레이션하는 데는 며칠 밖에 걸리지 않을 속도입니다.

“전성전”은 2017년까지 도꾜에서 매년 열릴 예정입니다. 지난 주 열렸던 제 2회 전성전에서 크레이지 스톤은 넉점을 받은 상태로 노리모토 요다 9단을 2집 반 차이로 이겼습니다. 게임이 끝난 후 요다는 후반부에 이 프로그램이 자신을 봐주어 차이를 좁힐 수 있었다고 말했습니다. 아마 프로그램은 우연히 그를 봐주었을 것입니다. 어쩌면, 동정심을 막 배운것일지도 모르지요. (Newyorker)

원문 보기