Convolutional Neural Network와 Monte Carlo Tree Search를 이용한 인공지능 바둑 프로그램의 구현

Implementation of Artificial Intelligence Computer Go Program Using a Convolutional Neural Network and Monte Carlo Tree Search

  • 발행 : 2016.10.27

초록

바둑, 체스, 장기와 같은 게임은 사람들의 두뇌발달에 도움을 주어왔다. 이 게임들은 컴퓨터 프로그램으로도 개발되었으며, 혼자서도 게임을 즐길 수 있도록 많은 알고리즘들이 개발되었다. 사람을 이기는 체스 프로그램은 1990년대에 개발된 것에 비해 바둑은 경우의 수가 너무 많아서 프로 바둑기사를 이기기는 불가능한 것으로 여겨졌다. 하지만 MCTS(Monte Carlo Tree Search)와 CNN(Convolutional Neural Network)의 이용으로 바둑 알고리즘의 성능은 큰 향상을 이루었다. 본 논문에서는 CNN과 MCTS를 사용하여 바둑 알고리즘의 개발을 진행하였다. 바둑의 기보가 학습된 CNN을 이용하여 최적의 수를 찾고, MCTS를 이용하여 게임의 시뮬레이션을 진행하여 이길 확률을 계산한다. 또한 기존 기보를 이용하여 바둑의 패턴 정보를 추출하고, 이를 이용하여 속도와 성능 향상을 도모하였다. 이 방법은 일반적으로 사용되는 바둑 알고리즘들에 비해 성능 향상이 있었다. 또한 충분한 Computing Power가 제공되면 더욱 성능이 향상될 것으로 보인다.

Games like Go, Chess, Janggi have helped to brain development of the people. These games are developed by computer program. And many algorithms have been developed to allow myself to play. The person winning chess program was developed in the 1990s. But game of go is too large number of cases. So it was considered impossible to win professional go player. However, with the use of MCTS(Monte Carlo Tree Search) and CNN(Convolutional Neural Network), the performance of the go algorithm is greatly improved. In this paper, using CNN and MCTS were proceeding development of go algorithm. Using the manual of go learning CNN look for the best position, MCTS calculates the win probability in the game to proceed with simulation. In addition, extract pattern information of go using existing manual of go, plans to improve speed and performance by using it. This method is showed a better performance than general go algorithm. Also if it is receiving sufficient computing power, it seems to be even more improved performance.

키워드