[알파고 기획]알파고, 어떻게 생각하나

바둑은 선택의 연속이다. 내가 한 수를 선택하면 상대가 응수한다. 다시 내 차례가 돼 다음 수를 선택한다. 대국 종료까지 선택이 이어지며 가지치기를 한다. 만약 ‘모든 경우의 수’를 ‘대국 종료’까지 시뮬레이션한 결과를 미리 본다면 반드시 이길 수 있다. 마치 시험장에 답안지를 갖고 가는 것과 같다. 그러나 바둑은 경우의 수가 10의 170승으로 막대하다. 컴퓨터가 모두 계산하는 게 불가능하다.

바둑 프로그램은 이런 문제를 해결하기 위해 일종의 ‘여론조사’를 실시한다. 기존 기보를 바탕으로 통계적으로 전문가가 둔 선호도를 보여준다. 이를 ‘정책’이라고 부른다. 이를 통해 다음 수 후보의 범위를 줄인다. 그 뒤 줄어든 후보군 승률을 각각 계산한다. 인간 기사가 수읽기를 하는 것과 비슷하다. 가상으로 진행해본 뒤 유·불리를 판단한다. 이를 ‘가치’라고 부른다. 이런 방식을 몬테카를로 트리서치(MCTS)라 한다.

하지만 기존 몬테카를로 트리서치 방식으로는 프로 바둑기사 수준에 이르지 못했다. 크레이지 스톤, 젠 등도 프로기사와 접바둑 수준을 벗어나지 못했다. 수의 범위를 잘못 줄이거나 한 수를 검토할 때 많은 계산을 요구했다. 여론조사를 실시할 때 표본을 잘못 추출해 오차범위가 넓어진 셈이다. 추형석 소프트웨어정책연구소 선임연구원은 “기존 몬테카를로 트리서치만 이용한 프로그램은 효율성이 떨어져 아마추어 바둑 기사 수준에서 벗어나지 못했다”고 지적했다.

알파고도 몬테카를로 트리서치 방식을 기본으로 한다. 하지만 이 방식을 좀 더 효율적으로 개선했다.

알파고 정책망은 몬테카를로 트리서치 방식의 정책에 해당한다. ‘롤아웃’ 정책망 ‘지도학습 정책망’ ‘강화학습 정책망’ 등으로 나뉜다. 롤아웃 정책망은 간단한 규칙이 입력됐다. 지도학습 정책망은 일종의 연습문제 풀이다. 이를 통해 바둑 원리를 학습한다. 인간은 다른 인간에게 직접 나쁘고 좋은 곳을 배운다. 하지만 알파고는 사례를 통해 어떤 수가 좋고 어떤 수가 나쁜지 스스로 파악한다. 기존 아마추어 고수 바둑 기보 16만건을 바탕으로 3000만 착점을 익혔다. 하지만 이것만으론 부족하다. 아마추어 고수 의견을 종합한다고 해서 인간 최고수를 이긴다고 보장하기는 어렵다. 그래서 알파고는 지도학습으로 배운 것을 스스로 맞는지 검증한다. 이를 위해 알파고 내부에서 알파고대 알파고 대결을 벌인다. 추 선임연구원은 “강화학습은 여론조사로 나온 결과를 다 믿지 못하니 내가 다시 한번 생각해 보겠다는 것과 유사하다”며 “스스로 검증을 통해 기존 정책망 선호도를 조정한다”고 설명했다. 이 일련의 과정은 수학을 공부하는 학생이 원리를 외우고, 연습문제를 풀고, 답이 맞는지 증명하는 것과 유사한 방식이다.

승률을 평가하는 가치망도 강화학습을 이용했다. 정확한 승률을 알려면 가능한 모든 수를 고려해야 한다. 하지만 불가능하다. 최대한 적게 검토하고 정확한 승률 계산이 나와야 한다. 추 선임연구원은 “기존 방식이 한 착점에 100수 뒤까지 계산했다고 가정하면 알파고는 이를 30수 뒤까지만 검토해도 정확한 승률 판별이 가능하게 한 셈”이라고 말했다.

이런 과정을 통해 전문가 시점으로 정밀하게 검토할 수를 줄였다. 인간 바둑기사가 직관으로 몇 군데 가능한 수만 추려서 필요한 단계까지만 수읽기를 진행하는 것과 같은 효과를 냈다. 추 선임연구원은 “기존 몬테카를로 트리서치 방식 핵심이 계산 범위를 줄이는 것인데 알파고는 기계학습을 통해 계산 범위를 더욱 전문가같이 정확하게 줄였다”고 설명했다.

오대석기자 ods@etnews.com