비전공자도 이해할 수 있는 AI지식8 -알파고는 어떻게 학습했을까?-

1. 정책망(policy network), 어디에 돌을 놓아야하는가?

 

정책망은 사람이 만든 기보를 이용하여 학습한다. 학습에 사용한 데이터는 KGS라는 바둑 사이트에서 가져왔으며 6단 이상의 고수의 기보만 사용했다고 한다.

 

얼핏 생각하면 9단 기사의 데이터를 사용하면 가장 바람직하겠지만, 그러기에는 데이터의 수가 부족했다.

 

알파고 개발자는 데이터의 수가 충분하면서도 좋은 기보 수준을 6단으로 정했던 것이다. 

 

각 데이터는 바둑판의 상태와 해당 상태에서 실제로 다음번 바둑알을 둔 곳의 위치를 함께 쌍으로 구성되었고

 

(그러니까 (바둑판의 상태,다음번에 바둑알을 둔 위치)로 데이터가 주어진다는 말인듯)

 

정책망은 약 16만회의 게임에서 총 3000만 수를 가져와 학습했다.

 

학습을 마친 정책망은 바둑판의 현재 상태 정보를 입력값으로 할때, 361개의 바둑 칸 중 어디에 돌을 내려놓을지 확률을 계산하여 return한다.

 

361명의 후보 중에서 당첨 가능성이 가장 높은 후보를 골라내는 것과 비슷하다.

 

(실제 알파고 논문에 제시된 그림)

 

이럴때, 정확도가 약 57%정도라고 한다. 정답을 가려놓고 "상대는 어디에 둘까?"라고 물어본다면, 정답을 맞힐 확률이 57%정도 된다는 이야기이다.

 

아주 높은 수치는 아니지만 이게 꼭 나쁜 것만은 아니다.

 

제 아무리 고수라 하더라도 그가 두는 모든 수가 항상 최고라고는 할 수 없다.

 

즉 알파고의 수준은 5단 정도에 불과했다. 6단 이상의 데이터로 학습했지만 최종 결과물은 오히려 5단인 이유는 바둑 기사들의 다양한 기풍때문이다.

 

예를 들어 이창호 기사는 치밀한 계산에 기반한 수비 바둑을 구사하는 반면에 이세돌 기사는 공격적이고 창의적으로 바둑을 둔다

 

이처럼 워낙 다양한 플레이어의 전략이 뒤섞이면서 오히려 전체적인 실력이 떨어졌다.

 

게다가 바둑의 모든 국면을 학습할 수는 없으므로 학습하지 않은 국면을 마주할때 실력이 현저히 떨어질 것이다.

 

그래서 알파고는 이를 보완할 수 있는 다양한 방법을 찾아나섰다.

 

 

2. 3가지 정책망으로 나눠 학습하다

 

우선 각각의 상황에 따라 정책망 3가지를 만들었다.

 

첫번째는 사람의 기보를 이용해 학습한 "기보 학습 정책망"이다. 두번째는 "롤아웃 정책망"이다. 이는 기보학습 정책망과 비슷하지만 훨씬 작고 가벼운 망이다.

 

훨씬 작게 만들었으므로 첫번째 망보다 약 1500배 정도 빨리 수를 둘 수 있다. 

 

즉 첫째 망이 한번 착점할 시간에 롤아웃 정책망은 1500번을 착점할 수 있는데 당연히 성능은 현저히 떨어진다.

 

첫째 망도 정확도가 57%로 높은 편은 아니지만 롤아웃 정책망은 24%에 불과하다.

 

하지만 계산 속도가 매우 빨라 탐색을 빠르게 진행할 때 많은 도움이 된다.

 

마지막으로 남은 망은 바로 알파고의 핵심인 스스로 대국하며 강화학습을 수행한 정책망이다.

 

이 망은 알파고끼리 대국을 치르면서 스스로 실력을 향상하는 망이다. 

 

무작위로 바둑을 두게 되면 제대로 된 대국 경험을 쌓기 힘드므로 시작은 기보학습 정책망을 활용한다.

 

미리 사람의 기보를 이용해 학습한 정책망을 이용해 어느 정도 기본 실력을 쌓게 한 다음 스스로 바둑을 두면서 계속해서 실력을 향상시키는 것이다.

 

실력은 어떻게 향상시킬까?

 

경기에서 이기면 승리측의 모든 수의 점수가 더욱 높아지는 방법으로 향상시킨다. 그래서 강화학습(reinforcement learning)이라고 부른다.

 

여기서 핵심은 알파고는 오직 승리만을 쟁취하는 것을 목표로 하는 것이지, 큰 점수차로 이기는 것이 아니라는 것이다.

 

반 집차이로 이기든 100집 차이로 이기든 알파고에게는 똑같은 승리이다.

 

그래서 이세돌과의 대국에서도 집 차이를 늘리려고 하기보다는 집 차이가 얼마 나지 않더라도 어떻게든 이길 수 있는 방향으로 수를 두는 경우를 자주 보여줬다.

 

알파고에게는 반 집 차이로 아슬아슬하게 승리하더라도 아무 상관이 없기 때문이다.

 

이런 방식으로 알파고는 스스로 학습했고, 강화학습 정책망은 기보학습 정책망과 대국을 두면 약 80%확률로 승리했다고 한다.

 

5단을 80%확률로 이기는 수준이다.

 

그렇다면 강화학습 정책망이 가장 강하니까 이것만 활용해서 바둑을 두면 되는가?

 

사실 강화학습 정책망은 정작 바둑 대국에서는 쓰이지 않았다. 강화학습 정책망도 고작 5단을 이길 확률이 80%이기 때문이다.

 

9단을 넘어 세계챔피언 이세돌을 꺾기에는 아직 많이 부족하다. 그래서 강화학습 정책망 대신에 또 다른 망을 학습하는데 활용하여 실력을 더욱 키운다.

 

 

3. 가치망(value network), 대국의 형세를 판단하다

 

또 다른 망은 바로 가치망(value network)이라고 부른다. 정책망과는 구조가 훨씬 더 단순할 정도로 다르다.

 

가치망은 현재 국면에서 승패 여부를 예측하는 망이다. 

 

정책망이 바둑판의 상태를 보고 361개의 바둑 칸 중 수를 둬야할 지점을 골라내는 신경망이라면

 

가치망은 오직 승리할 가능성만을 계산한다.

 

50%가 넘는다면 승리할 가능성이 높은 국면이고 50%가 넘지 않는다면 패배할 가능성이 높은 국면이다.

 

실제 논문의 value network, policy network 그림

 

그림처럼 value network는 s'에 착수할때, 예상되는 승리 가능성을 내놓는다.

 

바둑 인공지능에서 가장 풀기 어려운 문제 중 하나가 형세를 알아내는 것이다.

 

체스는 남은 기물의 점수를 합산하여 어느 정도 우세를 판별할 수 있는데 반해 바둑은 순수하게 국면의 형태만 보고 승패를 예측해야하기 때문이다.

 

그런데 알파고는 현 상황만을 보고 우세를 예측하는 망을 만들어냈다. 어떻게 가능했을까?

 

알파고는 여러 정책망 중 가장 실력이 좋은 강화학습 정책망끼리 서로 3000만번의 대국을 두게 하고

 

각 경기에서 한 장면씩 3000만 장면을 추출해 해당 장면 이후 누가 이겼는지를 학습했다.

 

만약 74%라는 확률을 내놓았다면, 해당 국면에서 강화학습 정책망끼리 대국을 벌이면 승리할 확률이 74%라는 이야기이다.

 

이처럼 승리할 가능성이 높은지, 패배할 가능성이 높은지를 확률로 표현한 것이 바로 가치망이고 알파고의 가장 혁신적인 성과 중 하나이다.

 

알파고는 강화학습을 이용해 지금까지 바둑 인공지능이 감히 만들어내지 못한 게임의 판도를 판단할 수 있는 정교한 알고리즘을 마침내 찾아낸 것이다.

 

종합하자면 알파고는 고수의 기보로 지도학습을 수행하여 어디에 돌을 착수할지 판단하는 정책망을 만들고

 

정책망을 이용해 스스로 대국을 두어 강화학습을 진행하여 승리할 확률이 얼마인지 대국의 형세를 판단하는 가치망을 만들어냈다.

 

 

 

Mastering the game of Go with deep neural networks and tree search (storage.googleapis.com)

 

TAGS.

Comments