뉴스 스크랩

인공지능, 바둑까지 침범하다

황령산산지기 2006. 9. 24. 18:50
한때 체스에 미친 사람들이 많았지만 그 후 인공지능 마니아들은 체스가 너무 시시해진 나머지 바둑으로 눈을 돌렸다. 왜 바둑일까?

바둑의 역사는 체스의 역사보다 천 년 이상 앞서고 있고, 바둑에서 가능한 수(手)의 숫자는 우주의 원자 개수를 능가한다. 그러나 가장 중요한 것은, 컴퓨터 프로그램이 아직까지 인간 바둑고수를 이긴 적이 없다는 사실이다.

전 세계 프로그래밍 코더(coder)들은 컴퓨터 바둑 메일링리스트에서 비결들을 교환하고 매월 KGS 컴퓨터 바둑 토너먼트를 연다.

작년에 프랑스 릴(Lille) 대학교의 컴퓨터 과학자인 레미 쿨롱(R?mi Coulom)이 만든 새로운 전략은 프로그래머들의 문제 접근방식을 근본적으로 바꿔놓았다. 클롱의 ‘크레이지 스톤(Crazy Stone)'은 이탈리아 토리노에서 열린 2006 컴퓨터 올림피아드에서 금메달을 수상했다. 최근 쿨롱은 바둑이 풀어야 할 일부 과제와 크레이지 스톤의 눈부신 성능에 관해 와이어드 뉴스와 이야기를 나눴다.

와이어드뉴스(이하 WN): 체스 프로그래밍보다 바둑 프로그래밍이 그토록 힘든 이유는?

레미 쿨롱: 바둑에서는 (체스처럼) 상대편 말을 붙잡지 않기 때문에 그저 판만 보고서는 흑이 앞서 있는지 백이 앞서 있는지 말하기가 매우 어렵다. 살아남기 위해서는 돌들이 두 개의 “눈” - 상대편이 침입할 수 없는 빈 공간 -을 둘러싸야 한다.

19x19(칸) 바둑판에서는 생사가 결정되지 않은 돌들이 많은데, 이는 안정적인 분석이 극도로 어렵다. 판을 보면 “내가 당신보다 졸 하나가 많아.”라고 말할 수 있는 체스나 체커의 경우와는 다르다.

WN: “몬테카를로(Monte Carlo)” 방식은 무엇이며 바둑에는 어떻게 적용되는가?

쿨롱: 몬테카를로라는 이름은 카지노로 유명한 모나코의 지명에서 딴 것이다. 바둑의 경우, 기본 개념은 가능한 수를 따져보기 위해 닥치는 대로 수많은 게임들을 모의훈련 삼아 해보는 것이다. 그러다가 만약 흑이 백보다 이기는 경우가 많다면 그 수는 흑에게 유리한 수임을 알게 된다.

WN: 일반적으로 한 게임이 약 250수로 구성된다는 점을 감안하면, 대단한 연산능력을 필요로 할 것 같다.

쿨롱: 토리노 올림피아드 때의 크레이지 스톤 버전은 4CPU - 2.2GHz의 2개의 듀얼코어 AMD Opteron - 환경에서 실행되었고 초당 약 5만 개의 무작위 게임을 했다. 기존의 알고리듬과는 달리 몬테카를로 방식은 평행화하기 매우 쉬워 차세대 프로세서의 멀티코어 아키텍처의 이점을 활용할 수 있다.

WN: 크레이지 스톤은 몬테카를로 방식을 사용한 최초의 프로그램은 아니지만 바둑 프로그래머들 사이에서 트렌드가 되기에 충분한 성공을 거두었다. 혁신기술은 무엇이었나?

쿨롱: 무작위로 나올 수 있는 모든 게임을 샘플링할 수는 없기 때문에 몬테카를로 알고리듬은 최고의 수(手)를 찾는 데는 실패하기 쉽다. 예를 들어 만약 특정한 수의 결과로 나온 무작위 게임들이 대부분 지고 한 게임에 대해서만 승리가 보장된다면 기본 알고리듬은 이 게임들의 평균을 낼 때 여전히 불리한 포지션으로 평가할 것이다. 크레이지 스톤은 이러한 문제점을 해결할 수 있을 만큼 똑똑하다. 일련의 수들이 다른 수들보다 나아보이면 무작위 게임에서 그 수를 더 자주 두는 경향이 있다.

WN: 매월 열리는 KGS 토너먼트의 사회자인 닉 웨드) 같은 사람들이 몬테카를로 프로그램으로 진행되는 게임을 관전하면 따분할 수 있다고 불평하는 이유는 무언가?

클롱: 몬테카를로 프로그램은 점수의 차이가 아니라 승리의 가능성을 최대화한다. 상대편보다 한참 앞서 있으면 늘 안전한 수를 두는데 이 때문에 다른 공격적인 프로그램들과 비교했을 때 따분해보일 수도 있을 것이다. 하지만 승리에는 더 효율적이다.

WN: 최고의 바둑 프로그램들은 최고의 바둑 고수들에 의해 만들어지는 경우가 많다는 말을 들었다. 그런 게임을 해보니 어떤가?

쿨롱: 처음으로 바둑 프로그램을 짜기 전에 나는 다른 프로그램을 이길 수 있을 만큼 충분히 바둑을 해보기로 결심했다. 하지만 좋은 프로그램을 만들기 위해 실제로 뛰어난 바둑 실력을 가지는 것이 중요하다고는 생각하지 않는다. 체스 프로그램을 만들고 있을 때도 그 사실은 명백했다. 내 프로그램이 나보다 훨씬 더 잘했다.

그런 프로그램들 중 일부는 ‘조세키(정석定石)’라 불리는 집합 배열들을 사용하지만 나는 이 지식을 하드코딩(hard coding) 하는 일은 피한다. 무작정 하드코딩된 패턴을 적용하는 일부 프로그램들은 잘못됐다고 생각한다.

(wired.daum.net) = By Brendan Borrell