구글 DeepMind가 바둑 인공지능 프로그램 AlphaGo를 공개한지 한 달의 시간이 흘렀다. 유럽 바둑챔피온인 판후이 프로 2단을 꺾고, 세계 바둑챔피온 이세돌 프로 9단에게 도전장을 냈다. 아직까지 많은 전문가들이 이세돌 9단의 우세를 점치고 있으나, 도전자인 AlphaGo가 챔피온이 되는 날이 머지않을 것으로 전망했다. 판후이와 대국 당시, 심판과 전문 프로기사들 역시 AlphaGo의 바둑이 사람과 크게 다르지 않다고 평했다. 인공지능 바둑프로그램이 인간을 넘어서는 초읽기가 시작된 것이다. 그렇다면 “어떻게 사람처럼 바둑을 두는 것이 가능한가?”에 대한 자연스러운 물음을 하게 된다. AlphaGo가 기존 바둑프로그램의 한계를 뛰어 넘은 핵심을 더 깊게 이해할 필요가 있다. 본 보고서는 AlphaGo의 인공지능 알고리즘을 더 이해하기 쉽게 전달하는 것을 목표로 한다. AlphaGo에 대한 막연한 궁금증을 풀기위해서 인공지능 게임 알고리즘의 핵심인 게임 트리 알고리즘부터 살펴보고자 한다.
바둑은 우주의 원자수보다 많은 경우의 수를 가지고 있다. 완벽한 탐색은 불가능에 가깝다. 실제 프로바둑기사들도 직관에 의해 경기를 진행한다. 컴퓨터가 인간의 직관을 표현할 수 있을까? 딥러닝이 그 대안이 될 수 있다. 딥러닝은 기존의 인공신경망을 확장한 개념으로 빅데이터 분석, 얼굴 인식, 이미지 분류 등 신산업의 곳곳에서 응용되고 있다. 딥러닝의 핵심은 사람처럼 학습하는 것이다. AlphaGo에서 역시 딥러닝을 활용하여 프로기사들의 기보 16만개를 학습했다. 이것은 사람이 1년 동안 공부하는 기보의 수를 1,000개라고 해도 평생 동안 학습할 수 없는 숫자이다. 더욱이 AlphaGo가 16만개의 기보를 학습하는데 걸린 시간은 고작 5주 밖에 되지 않는다. 그동안 쌓여온 바둑의 정수를 순식간에 학습했다는 것이다. AlphaGo는 이에 그치지 않고 스스로 대국하여 훈련하고 있다. 이것이 강화학습(reinforcement learning)이다.
착수를 결정하는 부분에는 몬테카를로 트리 탐색(Monte Calro Tree Search, MCTS) 기법이 사용됐다. MCTS는 바둑 인공지능에서 가장 널리 사용되는 알고리즘으로 무한대에 가까운 탐색의 폭과 깊이를 줄이는 역할을 한다. 탐색의 폭을 줄이는 것은 정책(policy)으로, 다음 수를 어디에 두는 것이 가장 좋은가에 대한 역할을 한다. 탐색의 깊이는 가치(value) 값으로 정해지고, 이것은 현재 대국에서 승산을 근사적으로 표현한다. 따라서 MCTS의 성능은 정책과 가치의 정확도에 따라 좌우된다. AlphaGo에서는 이 정책과 가치를 딥러닝으로 구현한 것이다. 바둑의 탐색 범위를 프로기사의 관점으로 좁힌 것이다. 그 결과 AlphaGo는 바둑 유럽챔피온에게 압도적인 승리를 거뒀다. 구글의 DeepMind가 이렇게 강력한 인공지능을 개발할 수 있었던 바탕은 풍부한 계산자원에 있다. 판후이와 대국을 한 분산 AlphaGo의 경우 1202개의 CPU와 176개의 GPU가 사용됐다. 바둑 인공지능 프로그램에 이정도 환경을 투자할 수 있는 기업은 전 세계적으로도 손에 꼽을 것이다. 또한 AlphaGo의 파급효과 역시 상당할 것으로 기대된다. AlphaGo 개발진은 AlphaGo를 활용하여 음성인식, 기후변화, 헬스케어 등에 접목하겠다고 밝혔다. 게임 인공지능 프로그램으로 시작했지만 그 활용분야는 무궁무진한 것이다. 국내에서도 인공지능 연구를 위한 환경조성이 시급하다. 정부차원에서의 대규모 계산자원 지원방안과 현실적인 문제해결을 위한 연구소 설립이 필요할 것이다.
문서이력
버전, 날짜, 변경내역 순으로 구성되어있는 문서이력 표
버전
날짜
변경내역
1.1
2016.3.9
1) 4장 강화학습 세부내용 수정
변경전 : 약 128번의 자체대결을 수행
변경후 : 약 128번의 자체대결을 1만 번씩 수행 (총 128만 번)
2) 각주 20번 수정
변경전 : 약 150배정도 빠름
변경후 : 약 1500배정도 빠름