본문 바로가기
엑셈 경쟁력/전문가 기술기고

척척박사 윤박사가 들려주는 AI | 네 번째, 알파고의 도전과 시사점

by EXEM 2017. 4. 26.

 

 

 

필자는 앞에서 인공지능의 개요와 함께 왓슨(Watson)에 대해 이야기 했다. 이번에는 왓슨과 함께 세기의 대결을 펼친 구글의 알파고(AlphaGo)를 이야기 하고자 한다. 만약 우리가 인공지능 시스템을 개발한다고 하면, 퀴즈쇼와 게임 중에서 세계인이 관심을 가질 수 있는 공통의 분모를 찾고 흥미를 유발할 만큼의 이벤트가 필요할 것이다. 그렇기에 다음 인공지능 이벤트는 아마도 그랑프리나 렐리와 같은 자동차 경주에서 무인 자동차 대결이 아닐까?

 

 

- 구글의 딥러닝 도전과 이슈 만들기
  2016년 3월, 우리는 잊지 못할 세기의 대결을 보았다. 구글의 딥러닝 기반의 알파고와 이세돌 9단의 대국, 인간과 컴퓨터와의 3번째 큰 대결이었다. 첫 번째 대결은 IBM이 만든 체스 전용 컴퓨터 “딥 소트(Deep Thought)와 세계 체스 챔피언들과의 대결이다. 이 대결은 대부분 인간과 컴퓨터의 무승부로 마무리되었다. 두 번째 대결은 퀴즈쇼이다. IBM은 제퍼디 퀴즈쇼에서 왓슨을 소개하고, 퀴즈쇼 역대 우승자들을 상대로 일찌감치 승기를 잡은 대결이었다. 세계적인 관심을 이끌기에는 너무나 싱거운 사람의 패배였다. 세 번째 대결이 바로 우리가 잘 알고 있는 알파고와 이세돌 9단의 바둑이다. 구글은 이전에 IBM이 체스나 퀴즈쇼와 같은 챔피언쉽 대결로 개발한 딥러닝 성능이 우수하다는 것을 알리는 아주 큰 이벤트가 필요했다. 그래서 구글은 많은 게임들을 가지고 고민하였고, 이중에서 바둑을 가장 좋은 이벤트로 선택하였다. 특히 바둑은 우주의 원자수보다 많은 경우의 수를 가지고 있고 완벽한 탐색이 불가능하다는 이유와 함께 세계적인 챔피언스리그를 체계적으로 운영하는 게임 중의 하나였다.

 

 

 

 

바둑은 많은 경우의 수를 계산하는 NP(Non-deterministic, Polynomial time) complete와 유사한 문제에 대한 많은 수의 정답에서 최적의 정답을 찾는데 많은 시간이 소요되는 계산 복잡도(Computational Complexity)의 이슈를 가지고 있다. 그렇기 때문에 구글이 개발한 알파고는 왓슨이나 Deep Fritz보다 더 우수한 알고리즘이라 할 수 있다. 알파고와 이세돌 9단의 대국은 인공지능의 부활을 알리는 매우 훌륭한 이벤트였다.

 

 

- 알파고의 알고리즘은 어떻게 움직이나?
알파고는 경우의 수를 빠르게 탐색하는 인공지능 시스템이다. 알파고의 동작 원리는 게임을 좋아하는 사람들이라면 가장 쉽게 할 수 있는 동작의 원리를 가지고 있다. 게임은 승리를 위한 경우의 수를 가지고 있고, 이것들의 대표적인 것은 미로 찾기, 길 찾기, 이동장애물 피하기 등과 같은 것이다. 이러한 경우의 수를 찾는 동작 원리를 표현할 때, 보통 트리(Tree) 탐색이라는 방법을 적용한다. 대표적인 알고리즘은 몬테카를로 트리탐색(MCTS: Monte Carlo Tree Search) 알고리즘이다. 바둑은 다른 게임에 비해 경우의 수가 많은 10,360개가 존재한다. 바둑의 규칙을 고려하면 평균 250개로, 우주 원자의 개수 1,080개보다 많은 경우의 수를 가지고 있다. 아래 그림은 알파고에서 사용한 몬테카를로 트리 검색 방법이다. 이 방법을 이용하여 알파고는 현존하는 바둑 기보의 모든 경로를 학습하였다. 몬테카를로 트리 탐색은 선택(Selection), 확장(Expansion), 시뮬레이션(Simulation), 역전파(Backpropagation)로 구성된다. 최초 바둑돌을 두는 시점을 최상단 루트(Root)라고 했을 때, 상대방이 두는 바둑 돌을 다음 시점으로 하여 그 다음 점에서 승률이 높은 경로를 추적하면서 경우의 수를 줄여 나가는 방법이다. 이것은 대부분의 게임에서 적용되고 있다.

 

 

* 참조 : mastering the Game of Go with Deep Neural Networks and Tree Search, google Deepmind

 

 

 

알파고는 바둑에서 모든 경우의 수를 학습하기 위해 넓이 탐색을 이용하여 다음 수를 찾는 기보의 패턴을 반복적으로 학습시켰다. 그리고 각 단계별 시뮬레이션 예측 결과를 트리 상태 정보에 업데이트 하였다. 하지만 기계학습을 이용한 경로 추적의 단점은 경우의 수가 없는 입력이 반영되었을 때이다. 이 경우에는 최적의 경로를 찾기 위해 이전의 경로 값들이나 새로운 경로를 재구성하는 문제를 가지고 있다. 그래서 이세돌 9단이 전혀 생각하지 못한 곳에 바둑돌을 놓았을 때, 알파고는 사람이라면 생각할 수 있는 “왜 그곳에 돌을 두었을까” 하는 고민보다는 기보에서 최적의 경로만을 찾아 바둑 돌을 두는 실수 아닌 실수를 하게 되었다. 그래서 알파고 팀은 학습한 기보에만 최적화되는 것을 예방하기 위해 자기 학습을 위하여 강화학습을 함께 적용하였다. 그럼으로써 승률을 높이는 최적의 경로를 탐색할 수 있는 구조로 개선하였다. 아래의 그림은 알파고의 패턴 학습에 강화학습 모델을 적용한 신경망 학습 구조이다.

 

 

* 참조 : mastering the Game of Go with Deep Neural Networks and Tree Search, google Deepmind

 

 

그림을 보면, 알파고는 정책 네트워크(Policy network)라는 예측 네트워크를 두고 기계 학습을 하였다. 정책 네트워크는 CNN(Convolutional Neural Network) 이라는 딥러닝 구조를 가지고 있다. 학습을 위해 방대한 양의 기보 데이터를 KGS라는 사이트에서 확보하였다. 알파고는 총 3천만 개 정도의 상태값을 가지고 정책 네트워크를 훈련시켰다. 그리고 몬테카를로 트리 검색을 이용하기 위해 Rollout Policy라는 네트워크를 준비하여 네트워크를 강화시켰다. 그리고 강화학습(RL: Reinforcement Learning)을 이용한 자가 학습으로 네트워크 성능을 향상시켰다. 또한 알파고는 몬테카를로 트리 탐색을 적용한 상태값을 Value Network의 학습 데이터로 이용하여 학습 완성도를 높임으로써, 이세돌 9단과의 대결에서 승리할 수 있었다.

 

 

- 알파고는 왜 왓슨보다 활용을 못할까?

앞에서 살펴본 것과 같이, 알파고는 바둑에서 최적의 경로를 찾기 위해 인공지능을 적용한 사례이다. 그리고, 바둑이라는 게임을 위해 1,202개의 CPU와 176개의 GPU 자원을 사용한 시스템이다. 만약, 알파고를 사람들 개개인의 행동을 학습하기 위해 사용한다면 구글의 모든 컴퓨팅 자원을 동원해도 어려울 것이다. 이것은 알파고뿐만 아니라 차세대 인공지능 시스템의 한계이기도 하다. 그리고 알파고를 적용할 수 있는 산업 분야도 극히 제한적이다. 예를 들면, 게임, 자율주행, 스케줄링 및 계획, 고객 추천 서비스 등과 같은 분야가 대표적일 것이다. 이에 비해 왓슨은 자연어를 기반으로 만들었기 때문에 사람과 밀접한 업무 또는 서비스를 빠르게 구성할 수 있다. 그래서 왓슨은 자동응답 서비스, 개인화 서비스, 고객 추천 서비스 등과 같이 다양한 분야에서 직접적으로 적용되거나 도입을 준비하는 대표적인 인공지능 시스템이 된 것이다. 이처럼 왓슨이나 알파고와 같은 인공지능 시스템이 아직까지 만능은 아니다. 하지만 사람의 일자리를 뺏는 구조로 기업이 인공지능 기술을 도입하고 있는 것은 사실이다. 그렇기 때문에 인공지능 서비스를 기획하고 도입하는 기업들은 사람의 일자리를 뺏는 시스템이 아닌 보조해 주는 시스템으로 인공지능을 고민하고 서비스를 개발하는 것이 필요하다.

 

다음에는 인공지능 시스템을 구축하기 위한 인프라와 플랫폼에 대한 이야기 하고자 한다. 인공지능 시스템을 어떻게 도입할까? 어떤 서비스를 개발할까? 도 중요하지만 기본적으로 어떻게 구성하는가가 현재 시점에서는 무엇보다 중요할 것이다.

 

 

 

 

 

 

 


 

댓글