알파고 그리고 강화 학습

Posted 2017.08.01 16:37

 2016년 3월 9일, 바둑 역사에 길이 남을 경기가 시작되었다. 영국 국기를 단 알파고와, 대학민국 국기를 단 이세돌의 5판 3선승제의 바둑 경기, 대부분의 여론은 이세돌의 3:0승을 점췄지만, 최종 경기 결과는 알파고의 4대 1 승리였다. 이 경기 이후에 인공지능, 강화 학습, 심도 학습의 키워드가 엄청난 주목을 받기 시작했고, 그 열풍은 지금까지도 이어지고 있다. 


이세돌과 알파고의 경기가 있은지 약 1년 후인 2017년 ~월 ~일에는 바둑 세계 랭킹 1위의 커제와 새로워진 알파고의 경기가 있었고, 새로워진 알파고는 커제와 중국 기사들에게 단 한경기도 내주지 않는 더욱 완벽한 모습을 보여 주었다. 커제의 경기를 해설하는 이세돌을 보면서, 이제는 은퇴한 알파고를 이긴 최초이자 마지막 인간의 자부심을 엿볼 수 있었다. 


바둑을 접한지 채 5년이 되지않은 알파고가 이토록 바둑을 잘 둘 수 있었던 이유는 무엇일까? 이에 대해서 자세히 알아보기 이전에 바둑이란 게임이 왜 여태까지 컴퓨터에게 난공분락의 요새였는지에 대해서 짚어보자. 일반적으로 바둑가 체스와 같이 두 명의 선수가 번갈아가면서 하는 게임을 풀기 위해서 사용했던 방법은 tree search 기반의 전수 조사였다. 그 대표적인 예로 체스를 두는 인공지능 '딥블루'가 있다. 딥블루는 1900년도에 상대방과 자신이 둘 수 있는 모든 수(!)를 고려하기 때문에, 그 당시 세계 체스 챔피언이었던 가리 카스파로프를 이긴바가 있다. 당연히 딥블루 이후에 체스의 신은 인간의 손을 들어주지 않았다. 


체스의 경우 상대방과 자신이 둘 수 있는 모든 경우의 수를 계산해보면 10의 100승 정도가 된다. 이 수는 엄청 큰 수임에는 분명하나 병렬 처리 기술을 활용하면 주어진 시간 내에 모두 고려 가능한 수이다. 하지만 바둑의 경우 이 경우의 수는 10의 200승이 넘어가고, 이는 전 우주에 있는 분자의 수보다도 많은 수라고 한다. 다시 말해서, 현존하는 기술로는 이 모든 경우의 수를 모두 고려할 수 없고, 당분간도 없을 예정이다. 


알파고의 엄청난 기력(바둑 실력)은 크게 두 가지 기법의 조합으로 이뤄져있다. 첫 번째는 모든 가능한 수를 조사하지 않아도, 제한된 시간 내에 효과적으로 수를 계산하는 Monte Carlo tree search (MCTS)라는 기법이 사용되었고, 두 번째로는 심도 학습을 통해서 이 MCTS를 더 효과적으로 수행하였다. 여기서 심도 학습의 역할은 크게 두 가지로, 현재 바둑판이 주어졌을 때, 상대방이 다음에 어디를 둘지 예측하는 policy network와 바둑의 판세를 읽어는 value network를 학습시켜서 더욱 효과적인 MCTS를 가능하게 하였다. 심도 학습이 이러한 역할을 할 수 있었던 것은 deep neural network가 많은 양의 정보를 고려한 학습이 가능하고, 또 일반화 성능이 좋기 때문이다. 


알파고에 사용된 MCTS 외에도 심도 학습은 일반적인 강화 학습에도 많이 사용되고 있고, 이러한 형태의 강화 학습을 deep refinforcement learning (Deep RL)이라고 부른다. 뒤에서 더 자세히 설명하겠지만, Deep RL의 목적은 크게 두 가지고, Q function을 deep neural network로 모델링하는 DQN과 policy function을 모델링하는 deep policy gradient로 나뉠 수 있다. 




신고
« PREV : 1 : 2 : 3 : 4 : 5 : 6 : 7 : 8 : ··· : 133 : NEXT »