[알파고 원리 파헤치기]② 판세(Depth Reduction) 평가하기
알파고는 2국에서 마치 인간처럼 전체 판세를 읽으면서 승부수를 던졌다. 경기 중반까지 ‘집’ 수만 놓고 봤을 때 이세돌 9단이 유리했지만, 막판에 인간이 예측하기 어려운 수를 두면서 이겼다.
1편에서 본 바와 같이 인공지능으로 바둑 게임을 구현하려면 어떤 경기 상황에서 다음에 둘 수에 대한 선택확률과 바둑의 수읽기와 마찬가지로 향후 여러 수가 진행되었을 때 형세가 어떨지 예상해 볼 수 있는 지능적 게임 시뮬레이션 기능이 필요하다. 이번에 발표된 구글의AlphaGo에서는 딥러닝과 강화학습(Reinforcement Learning), 몬테카를로 트리 탐색(Monte Carlo Tree Search) 등 인공지능과 게임이론의 최신 기술을 적극 활용하고 구글의 거대한 계산 자원을 활용하여 프로기사를 이길 수 있는 수준으로 지능을 끌어올렸다.
▲ 알파고(AlphaGo)의 몬테카를로 트리 탐색 (자료=소프트웨어정책연구소)
이세돌 9단은 2국이 끝난 뒤 "지난 두 번의 대국을 통해 중반 이후로 승부처가 넘어가면 어렵다고 느꼈다. 그 전에 승부를 봐야 한다"고 말했고, 유창혁 9단 역시 "선택지가 많은 초중반에 알파고가 약한 모습이다. 대국 초중반에 무리하지 않는 모양 바둑을 두면서 어렵게 경기를 펼쳐나갈 필요가 있다"고 설명했다.
이세돌 9단은 중반 이전에 승부를 봐야한다고 말한 이유는 알파고가 판세를 평가할 능력을 가졌기 때문이다. 알파고는 초반에는 판세를 평가하기 어려운 면이 있지만 중후반 들어서는 판세를 평가하여 '끝내기'에 돌입할 개연성이 크기 때문이다.
▲ 게임트리의 탐색 (자료=SPRi)
1. 알파고의 판세(Depth Reduction) 평가하기
착수이후에 다음 이어질 수를 예측하고 이게 대국의 끝까지 진행되었을 때 내가 이기냐 지냐를 판별해야 하는데, 한 수 둘 때마다 여전히 시간이 엄청 오래 걸리게 된다. 알파고는 이를 해결하기 위해 판세(depth reduction)이라는 프로세스를 수행하는데, 이는 대국이 진행되면서 내가 다음에 두는 수의 가치는 어느 정도인가? 를 수치로 나타내어 대국의 끝까지 예측하지 않고 이 정도면 됐어!하는 지점에서 멈춰 예측을 보다 빨리 하는 과정이다.
▲ 몬테 카를로 탐색 트리 기법 a. Selection 이게 괜찮은 수인지, 되도 않는 수인지를 판단하여 경우의 수를 줄인다(Policy Network) b. Expansion, c. Evaluation 보다 빠른 예측을 거쳐 판세를 판단하고 수의 가치를 평가한다(Rollout, Value Network) 네이처 논문에서는 이 과정을 거쳐 2us안에 다음 수를 결정할 수 있다고 설명하고 있다. d. Backup b와 c과정의 결과값을 합쳐 최종적으로 수를 예측하고 결정한다. (그림=네이처)
바둑의 상태를 보고 모든 빈 칸에 대해 성공 가능성을 계산하는 다음 수 선택 확률은 다시 두 가지로 나눠서 구현했다. 첫째는 딥러닝 기법 중 컨벌루션신경망을 적용하여 과거 기보를 지도학습하는 단계이다. 컨벌루션신경망은 페이스북에서 얼굴인식에 사용한 것으로 유명해진 딥러닝 기술이며, 입력 이미지를 작은 구역으로 나누어 부분적인 특징을 인식하고 신경망 단계가 깊어지면서 이것이 결합하여 전체를 인식하는 특성을 가진다.

바둑에서도 사활문제같은 국지적 패턴이 중요하고 이런 부분적 패턴이 전반적인 형세와 점진적으로 연관되기 때문에 컨벌루션신경망을 이용하는 것은 적절한 선택이다. 알파고(AlphaGo)에서는 입력으로 19x19 크기의 바둑판 상황이 들어가고 출력도 19x19 각 바둑판 위치의 선택 확률 분포가 나오는 13단계의 신경망을 구성하고 KGS Go Server 에 있는 3천만가지 바둑판 상태를 학습했다. 페이스북이 9단계 신경망으로 얼굴인식을 구현한 것에 비교하면 이것은 막대한 계산량이 필요한 일이며 생각은 있어도 실제 시도할 수 있는 곳이 세계적으로 몇 안 될 것이다.
알파고는 실전 대국시에는 1) 경우의 수를 줄이고(Breadth Reduction) 2) 판세를 판단하고 결과를 더 빨리 예측(Depth Reduction)하는 인공지능입니다. 대국 메커니즘을 정리하면 아래와 같으며, 이런 방식을 몬테 카를로 탐색 트리 기법이라고 합니다.

▲ 알파고 ELO지표 (그림=네이처)
그래프는 몬테 카를로 서치 트리의 각 요소를 다양하게 조합해서 대국했을 때의 ELO 지표입니다. 당연하게도 다 쓰는게 가장 좋게 나온다.
그래프는 GPU와 연산에 사용하는 스레드의 갯수에 따른 ELO 지표다. 저 그래프대로라면 아무리 하드웨어를 늘린다고 해도 수렴하는 지점이 나올 것으로 예상되는데, 어디로 수렴할지는 의견이 갈리는 상황이다.
▲ 알파고의 신경망으로 판세를 읽는다 (자료=문승환)

알파고에는 분산 시스템 버전의 알파고가 참여한다. CPU 개수는 1202개로 GPU는 176개다. 구글 딥마인드에서는 더 이상의 CPU나 GPU 추가는 없다고 공언했지만 더 늘리지 않고도 인간을 이길 수 있다는 자신감에서 나온 것이 아닌가 하는 여운을 남긴다.
[1편 보기] [알파고의 작동 원리]① 경우의 수(Search Space) 줄이기
참고문헌 : 네이처지에 실린 논문 "Mastering the game of Go with deep neural networks and tree search"과 ( http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html ) Shane Moon님의 슬라이드 ( http://www.slideshare.net/ShaneSeungwhanMoon/ss-59226902 )