2016. 1. 30. 14:16

인공지능의 머신러닝 강화학습과 몬테카를로 검색

인공지능의 머신러닝에서 지도학습 이후에 강화학습이라면 다른 말로 심화학습쯤 될텐데 이걸 컴퓨터가 스스로 한다는 게 놀라운거고, 이제는 약한 인공지능이 일반화 되어가는 시점이 온 것 같습니다. 그리고 이건 앞으로의 강한 인공지능으로의 발전 토대가 될 것으로 보이기도 합니다.

그러면 우리 인간들은 앞으로 긴장타야할지도 모르겠습니다. 따뜻한 마음이 배제된 상태에서 차가운 머리만으로 무조건 효율적인 측면만 계산해 이익에 최적으로 부합하는 결과를 도출하는 인공지능이 만약 결정권까지 가진다면..? 영화 터미네이터가 현실이 안 된다는 보장이 없습니다. 물론 이건 어디까지나 아직은 상상 속 전망입니다.

28일 네이처에 게재된 '심층신경망과 트리 검색으로 바둑 게임 정복하기(Mastering the game of Go with deep neural networks and tree search)’란 논문에서 기존의 접바둑이 아닌 대등한 바둑 대결을 이긴 것으로 소개된 구글의 인공지능 `알파고(AlphaGo)`는 인공지능 기업 딥마인드가 개발한 바둑 프로그램입니다.

바둑은 가로 19X세로 19칸으로 구성된 바둑판 위에 최적의 지점을 찾는 게임으로 고려해야 할 경우의 수가 엄청난데 가장 적합한 곳에 가장 적합한 수를 두는게 인공지능 프로그램의 핵심 알고리즘이 됩니다.

바둑 한 수를 둘 때 고려할 경우의 수가 250개 정도면 한 경기에 150수 이상 둔다고 가정할때 '250의 150승'에 달하는 경우의 수가 만들어집니다. 더욱 어려운 점은 바둑의 각 수들이 서로 유기적으로 연결돼 있는 관계로 중간에 수 하나가 달라지면 결과는 완전 판이하게 달라집니다. 그간 인공지능 프로그램이 바둑을 이기기 힘든 이유가 바로 이것이죠.

알파고는 이 많은 경우의 수를 줄이는 방법으로 최적의 수를 도출해낸 AI입니다. 이를 위해 알파고는 가치망(value networks)과 정책망(policy networks)이란 두개의 신경망을 구성하여 여기에 몬테카를로 트리 검색(MCTS)을 결합했습니다. MCTS(Monte Carlo Tree Search)는 다양한 경우를 감안해 가장 적합한 결정을 할 수 있도록 해 주는 알고리즘이라고 합니다. 정보처리 이론의 비선형 검색으로 보입니다.

정책망은 다음 번 돌을 놓을 위치를 선택하고, 가치망은 승자를 예측하는 역할을 하는데 이 복잡한 과정을 최대한 간소화하기 위해 ‘검색 가능한 경우의 수’를 줄여나가는 방법은 크게 두 가지입니다. 우선 위치 평가를 통해 어떤 곳에 놓을 때 최적의 승률을 낼 수 있을지 알아내는 작업이 우선. 이를 통해 ’검색의 깊이’를 줄일 수 있었다는 설명.

​그런 다음엔 적절한 바둑 수를 축적한 정책망에서 예측 가능한 행위를 추출하여 이를 통해 검색 범위를 줄일 수 있었다고 논문에서 밝혔는데 요는 검색의 깊이와 범위를 줄이는 것이었군요. 이를 위한 알파고의 훈련 과정은 3단계로 진행되었고, 먼저 1, 2 단계에서는 ‘지도학습(supervised learning, SL)’과 ‘강화학습(reinforecd learning, RL)’이란 두 단계 학습법이 동원됐습니다.

첫 단계 정책망 지도학습은 최적의 수를 찾는 방법을 학습시키는 작업으로 방대한 바둑 데이터베이스가 사용되었습니다. 그리하여 그 동안의 각종 기보들을 통해 인간 프로기사들이 둘만한 장소를 찾아내는 작업입니다. KGS 바둑 서버에 있는 3천만 개 위치 정보를 입력하는 방식으로 반복 훈련을 통해 ‘다음 수 예측률’을 크게 높일 수 있었습니다. 이전까지 44.4%였던 바둑 프로그램의 다음 수 예측 확률을 57%까지 향상시킨 것. 13%P 늘어난 예측 정확도는 엄청난 승률 향상으로 이어졌다고 설명하고 있습니다.

이런 식으로 지도학습을 끝낸 뒤에는 두 번째 단계인 강화학습으로 이어집니다. 알파고의 진짜 경쟁력은 바로 이 부분에서 나오는데 비단 바둑 프로그램이나 알파고 뿐만 아니라 모든 인공지능은 이런 방식으로 개발, 강화됩니다. 강화학습이란 지도학습을 끝낸 뒤에 이어지는 것으로 알파고의 진짜 경쟁력은 바로 이 부분에서 나옵니다.

강화학습 알고리즘은 어떤 로봇이 현재 상태를 인식한 뒤 행동을 취하고, 그럴 경우 이 로봇은 행동 결과에 따라 포상을 얻게 되는데 이때 긍정, 부정 포상이 모두 가능하지만 이런 과정을 거치면서 가장 많은 포상을 받을 수 있는 행동이나 선택을 찾아내는 방법을 탐구하는 것으로 마치 동물원이나 써커스의 동물들을 조련시키는 방법과 비슷합니다.

강화학습은 실전을 통해 지도학습으로 습득한 데이터를 가다듬는 과정이고, 이를 위해 지도학습 데이터를 무작위로 추출한 뒤 경기를 벌이는 방식을 택하여 최상의 성과를 낸 수를 계속 강화해나가는 방식입니다.

마지막 단계는 가치망을 훈련시키는 작업입니다. 여기엔 수를 둘 위치 평가(position evaluation)에 초점을 맞추고 이를 통해 경기를 할 두 선수가 어떤 곳에 바둑알을 놓을 지 예측하는 작업으로 가치망이 중요한 이유입니다. 알파고의 두 신경망인 정책망과 가치망은 최적의 수를 찾는 역할을 한다는 점에선 비슷하지만 정책망은 여러 경우의 수를 제시하는 반면 가치망은 ‘가장 적합한 한 가지 예측치(a single prediction)’를 제시하기 때문입니다.

알파고는 이 문제를 해결하기 위해 개별 수 대신 게임 전체를 회귀분석하는 방법으로 접근했는데 돌 하나 때문에 결과가 확 달라지는 것을 피하기 위해서였습니다. 구글은 3천만 개 가량의 위치 정보로 구성된 데이터를 이용해 자체 경기를 반복했다고 하니 이를 통해 경기력이 꾸준히 향상되었겠습니다. 역시 중요한 건 기본기와 반복.

정책망과 가치망 활용해 최적의 수 찾기에서 알파고는 두 개 신경망(가치망+정책망)과 MCTS를 함께 활용해 어디에 바둑알을 놓을 지를 골라내는데 이 때 각 검색 트리의 위치 정보에는 행동가치, 방문 횟수, 그리고 사전 확률 등이 담겨 있습니다. 이 중 상태가치와 함께 강화학습의 중요한 개념 중 하나인 행동 가치는 특정 행동을 했을 때 기대되는 미래 가치의 총합을 의미합니다.

​MCTS에서는 이런 공식을 활용해 가장 행동 가치가 높은 지점을 추려나가는 과정으로 시뮬레이션 작업을 통해 검색 트리 상의 모든 지점들이 행동 가치와 방문 횟수 정보를 계속 반복해서 업데이트하게 됩니다.

정책망과 가치망 강화학습과 내부 트레이닝을 거친 알파고는 다른 바둑 프로그램들과 총 495회 경기를 해서 494회 승리하여 승률 99.8%를 보여줬고 4점을 깔아준 뒤에 크레이지 스톤, 젠, 파치 등 세 개 바둑 프로그램과 벌인 ‘넉점 접바둑’ 실험에서도 각각 77%, 86%, 99% 승률을 기록한 이후 이제는 사람에게 도전하고 있습니다.

기사 참조 - http://m.zdnet.co.kr/news_view.asp?article_id=20160129140506&re=