• 2016-001
AlphaGo의 인공지능 - 구글의 바둑인공지능 AlphaGo, 인간 챔피온을 꺾다.
날짜2016.01.28
조회수17408
글자크기
요약문 상세
    • 바둑은 고전 게임 중 탐색 범위가 가장 넓고 보드의 상황을 평가하는 것이 어려워서 인공지능의 가장 큰 숙제 중 하나였다. 체스와 퀴즈게임에서 세계챔피언을 이기는 현재도 당분간 바둑만큼은 사람이 인공지능보다 나을 것으로 예상되어 왔다. 그런데 이 예상도 의외로 빨리 깨지게 될지 모르겠다. 구글이 개발한 알파고(AlphaGo)라는 프로그램이 유럽챔피언을 5대0으로 완파한 것이다. 이 유럽챔피언은 중국에서 자라면서 바둑을 배운 판후이 프로2단으로 실질적으로는 세계 최강 중국의 바둑 2단을 이긴 것으로 볼 수 있다. 이 프로그램이 이번엔 진짜 세계 최고 수준의 바둑에 도전하기 위해 우리나라의 이세돌 9단과 오는 3월에 서울에서 대결을 펼치기로 했다. 과연 인공지능이 바둑에서도 세계챔피언을 꺾을 수 있을까 궁금해 하기 전에 구글의 AlphaGo가 어떤 것인지 살펴보자.
      인공지능으로 바둑 게임을 구현하려면 어떤 경기 상황에서 다음에 둘 수에 대한 선택 확률과 바둑의 수읽기와 마찬가지로 향후 여러 수가 진행되었을 때 형세가 어떨지 예상해 볼 수 있는 지능적 게임 시뮬레이션 기능이 필요하다. 이번에 발표된 구글의 AlphaGo에서는 딥러닝과 강화학습(Reinforcement Learning), 몬테카를로 트리 탐색(Monte Carlo Tree Search) 등 인공지능과 게임이론의 최신 기술을 적극 활용하고 구글의 거대한 계산 자원을 활용하여 프로기사를 이길 수 있는 수준으로 지능을 끌어올렸다.
      바둑의 상태를 보고 모든 빈 칸에 대해 성공 가능성을 계산하는 다음 수 선택 확률은 다시 두 가지로 나눠서 구현했다. 첫째는 딥러닝 기법 중 컨벌루션신경망을 적용하여 과거 기보를 지도학습하는 단계이다. 컨벌루션신경망은 페이스북에서 얼굴인식에 사용한 것으로 유명해진 딥러닝 기술이며, 입력 이미지를 작은 구역으로 나누어 부분적인 특징을 인식하고 신경망 단계가 깊어지면서 이것이 결합하여 전체를 인식하는 특성을 가진다. 바둑에서도 사활문제같은 국지적 패턴이 중요하고 이런 부분적 패턴이 전반적인 형세와 점진적으로 연관되기 때문에 컨벌루션신경망을 이용하는 것은 적절한 선택이다. AlphaGo에서는 입력으로 19x19 크기의 바둑판 상황이 들어가고 출력도 19x19 각 바둑판 위치의 선택 확률 분포가 나오는 13단계의 신경망을 구성하고 KGS Go Server에 있는 3천만가지 바둑판 상태를 학습했다. 페이스북이 9단계 신경망으로 얼굴인식을 구현한 것에 비교하면 이것은 막대한 계산량이 필요한 일이며 생각은 있어도 실제 시도할 수 있는 곳이 세계적으로 몇 안 될 것이다.
      두번째 단계로 지도학습한 신경망끼리 게임을 하고 이긴 쪽으로 가중치를 조정하는 강화학습을 적용했다. 첫 단계가 기보를 배워서 기보를 둔 사람 수준의 바둑을 목표로 한다면 이 단계에서는 기보를 넘어서는 성능을 쌓기 위한 개인 훈련으로 볼 수 있다. 실제로 이 단계를 통해 성능이 많이 개선되었고 첫 단계만 학습한 신경망과의 대결에서 80%의 승률을 보인다고 한다. 두번째 단계도 입력과 출력은 19x19 바둑판 상황과 선택 확률 분포이다. 이 두 가지 신경망을 정책망(policy network)라고 부르며 첫 단계 결과는 SL정책망(Supervised Learning Policy Network), 둘째 단계의 결과는 RL정책망(Reinforcement Learning Policy Network)이라고 부른다. 정책망과 더불어 바둑 상황에 대해 승리할 기대값을 예측하는 신경망(v: value network)도 학습지도와 유사한 컨벌루션신경망으로 학습한다. 앞서 설명한 1단계 정책망 학습과 다른 점은 출력이 확률분포가 아닌 특정 값이 나온다는 점이다. 이 값이 바둑용어로 형세판단의 결과라고 볼 수 있을 것이다.
      강화학습에서 신경망끼리 게임을 하려면 형세판단을 하고 다음 수를 결정하는 지능적 게임 실행 기능이 필요하며 이것은 실제 바둑 경기를 할 때도 필요하다. AlphaGo에서는 2000년대 중반에 발표되어 인기를 끌고 있는 몬테카를로 트리 탐색 방법을 정책망과 결합하여 활용한다. AlphaGo의 몬테카를로 트리 탐색은 다음 수를 찾기 위해 현 상태에서 나와 상대가 모두 동일한 정책망을 가진 것으로 가정하고 여러 번 시뮬레이션을 돌려서 가장 높은 빈도로 선택한 수를 택하는 방식이다. 이 방법은 모든 트리를 탐색하지 않아도 좋은 성능의 장비에 의해 충분한 시뮬레이션을 돌릴 수 있으면 최적에 가까운 결과를 내는 것으로 알려져 있다. 구글은 충분한 시뮬레이션을 위해 병렬처리를 지원하고 많은 CPU와 GPU를 할당하여 계산한다. 또한 시뮬레이션을 게임 종료까지 실행하는 대신 적당한 깊이까지 탐색하고 그 이후는 앞서 계산한 value network과 보다 단순화시킨 시뮬레이션을 종합한 결과로 대치하여 신속한 계산을 하도록 구현했다. 구글은 실험에 의해 이 단순화가 승리 확률에 영향을 미치지 않는다는 것을 확인했다고 한다.
      이 연구의 가장 큰 기여는 인공지능 딥러닝 기술을 활용해서 기존 게임 탐색 방법의 품질을 획기적으로 개선할 수 있다는 점을 보인 것이다. 그리고 그 결과를 제시하는 방법으로 현실의 강력한 목표를 찾아서 실증하여 일반인에게 강한 인상을 주게 된 것이다. 국내 연구 현실을 생각한다면 연구자가 자신의 아이디어를 실험해 볼 수 있는 대용량 컴퓨팅 환경을 제공하는 것이 필요하고, 연구자도 현실적 문제에 도전하여 해결하고 실증하는 사례가 늘어나야 할 것으로 생각한다.
      이세돌 9단은 종종 파격적인 전술로 상대방을 공략하는 것을 좋아하는 바둑천재다. 일반적인 전략으로 AlphaGo를 상대한다면 인공지능 기술이 얼마나 발전했는지 확인하는 것이 흥미로울 것이다. 그러나 상대가 컴퓨터 프로그램임을 고려한다면 그동안 다른 사람이 잘 사용하지 않았던 전략과 전술로 상대하는 것이 승산을 높이는 것이 아닐까 예상된다. 판후이 선수를 완파한 것으로 보아 AlphaGo의 학습범위나 게임 성능은 상당한 수준일 것이며 기존 기보의 학습이나 심지어 이세돌 9단의 과거 기보도 학습이 되어 있을 것 같다. 이세돌 9단의 특기인 파격적 발상을 최대한 활용하여 부담없이 경기에 임하면 게임도 재미있고 과연 AlphaGo가 새로운 패턴에 어떻게 대응하는지 배울 수 있는 좋은 기회가 될 것 같다.
    • * 보고서 中 일부 문구를 수정하여 2016.02.25. 재게시합니다.
목차 상세
    • 1. AlphaGo 인공지능 바둑 프로그램의 등장
    • 2. AlphaGo의 성능과 바둑게임 프로그램 비교
    • 3. 게임 트리 탐색 알고리즘
    • 4. MCTS 알고리즘
    • 5. AlphaGo의 특징
    • 6. 결론 및 시사점