알파고

2국 김학도와 이민진 7단이 해설

홈페이지

알파벳구글 딥마인드에서 개발한 컴퓨터 바둑 인공지능 프로그램. 프로기사를 맞바둑으로 최초로 이긴 바둑 프로그램이기도 하다. 이름에서 "Go"란 일본어로 바둑을 뜻하는 碁(음독:고)1))를 의미한다2).

구글에 인수된 딥마인드에서 개발한 머신러닝 기반 프로그램으로 자신과의 미러매치를 통한 학습이 가능하다고 한다. 사내 테스트 결과 다른 바둑 인공지능 프로그램들을 상대로 500전 499승을 기록했다. 그 중 한판은 알파고의 실수로 졌다고 하며 그 약점은 이미 "보완"이 끝나 명실공히 현 최강의 인공지능 프로그램으로 군림하고 있다. 현재까지 나온 모든 바둑 인공지능을 성능으로 압도하는 모습에 일부 개발자들 사이에선 Zen이나 Crazystone 등의 프로그램들이 더이상 존재 의미가 있는가, 바둑 인공지능 대회인 UEC를 계속 지속해야 하는가 등을 투표하는등 굉장한 충격을 던지고 있다.

본래 체스 (Chess)라면 과거 IBM의 딥 블루가 가리 카스파로프를 상대로 대결해 이긴 바가 있지만, 바둑은 체스에 비해 경우의 수가 너무 많아서3) 지금까지는 인공지능이 프로 바둑 기사를 이기지 못하였는데, 알파고가 프로바둑기사를 이긴 최초의 바둑 인공지능인 것 이다.

덤으로 서로 바둑 최강국임을 자부하며 10년넘게 바둑 인공지능을 개발해오던 한국, 중국, 일본의 개발자들은 그 모든 기술과 노하우들이 고작 개발이 1년 좀 넘은 정도인 알파고가 발표됨과 동시에 전부 따라잡히며 성능으로도 처참하게 발려버리는 엄청난 격차가 생겨 순식간에 모든 프로그램을 한물 간 프로그램으로 만들어버리는 데꿀멍, 안습한 상황이 벌어졌다… 세계자본이 바둑에 관심을 보이면 어떤일이 일어나는지 잘 보여주는 장면. 단, 컴퓨터 비전이나 음성 인식 등 패턴 인식 류 AI 쪽에서 딥러닝이 나오면서 최근 2년 동안의 결과가 지난 30~40년간의 결과를 다 발라버리는 사례는 비단 바둑 뿐만은 아니다. 그러나 딥러닝은 나름대로의 최신 트렌드인데다 이미지, 음성, 자연어 처리 같이 해야 할 일이 산더미 같은 상황에 바둑에 연구진을 투입할 수 있는 여유를 가진 곳은 드물다. AI와 하드웨어, 분산 처리 모두에 풍부한 박사급 인력을 가진 미국, 거기에서도 구글에서나 해볼만한 일이며, 현 시점 한중일에서는 비슷한 것을 시도해 볼 수 있는 회사는 없다고 보면 된다.

특징

동작 방식

알파고는 다음 세 가지 다른 인공지능 구조를 혼합하여 동작하도록 되어 있다.

  • 가치망 (Value Network) : 현재 국면에서 이길 확률이 얼마인지를 점수로 뽑아낸다. 일반적인 강화 학습에서 보는 가치 함수 역할. 심층 컨볼루션 신경망(Deep Convolutional Neural Network)이다. 탐색 과정이 없는 행렬 연산이므로 순식간(0.1초 미만)에 결과가 나온다.
  • 정책망 (Policy Network) : 바둑판을 인식하여 직관적으로 어디에 두는 것이 좋을 지 각 위치에 대한 점수를 뽑아낸다. 역시 심층 컨볼루션 신경망(Deep Convolutional Neural Network)이며, 결과는 순식간에 나온다.
  • 몬테 카를로 트리 검색(MCTS) : 다양한 경우의 수를 따져 보는 인공지능. 기존 바둑 프로그램은 떡수를 막기 위해 정석과 같은 DB를 활용해서 경우의 수를 줄이는 방식을 썼는데, 알파고는 DB 대신 정책망을 이용해서 경우의 수를 줄여 나간다.

구글 Deep Mind 내부에는 다양한 버전의 알파고가 존재한다. 위 셋 중에 하나 혹은 둘만 쓴 버전도 있고, 한 대에서 돌아가는 버전, 클라우드용 버전, 신경망의 커널을 다르게 한 버전 등.. 판후이전에 사용한 버전은 세 가지를 모두 쓴 클라우드 버전이며, 논문에서는 ELO rating 3140점으로 추정하고 있었다.

기존 바둑 프로그램과 달리, 바둑의 룰이나 기보 DB에 따른 특수 처리를 하지 않는 것이 특징이며, 구글에서는 이것을 바둑 이외의 전문 분야에서도 어려운 문제를 해결하는데 쓸 수 있을 것으로 보고 있다. 구체적으로는 기상 예측이나 질병의 해석 등을 들었다.

학습 방법

KGS 공개서버에서 플레이된 게임들 중 비교적 고수(6단부터 9단)의 게임 16만개로부터 약 3천만수를 가져와 정책망을 학습시킨다. 교사학습(Supervised Learning)으로 진행된다. 이 부분은 바둑의 룰에 따라 착점하는 것을 이해하는 초기화 과정이라고 보면 된다. - 1. 교사학습된 다양한 버전의 정책망끼리 서로 대전시키며 정책망의 성능을 개선해나간다. 강화학습(Reinforcement Learning)으로 진행된다. - 1. 스스로의 대전 기록을 복기하며 가치망의 성능을 개선해나간다. 강화학습(Reinforcement Learning)으로 진행된다.

KGS 기보 데이터베이스는 정책망 초기화(1번)에만 사용되고, 이후의 학습에는 전혀 사용하지 않는다. 실제 학습 진행은 모두 스스로와 대전하는 강화학습으로 진행되며, 이같은 학습방식은 알파고가 독학으로 기력을 향상시킨다는 것을 말하기 때문에 바둑 세계 챔피언을 알파고가 이긴다면 이때까지의 정석이나 좋은 포석 등으로 알려진 것들이 바뀔 것이라 예상된다고 한다. –흠좀무

1)
한국에서는 이 한자를 안쓰고 대신 棋(한국발음:기)를 사용한다. 碁나 棋나 어차피 똑같은 한자다.( 바둑 기
2)
일반적으로 서양의 언론에서 바둑을 의미할 때 "고"란 말을 쓴다.
3)
체스가 바둑에 비해 쉽고 단순하다기 보다는 체스는 주어진 기물을 이동하는데 그치지만 바둑은 매 턴마다 새 기물을 추가하는 게임이기 때문에 알고리즘을 짜는 것이 매우 어렵기 때문이다.