디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

전문가 입장에서 본 알파고의 알고리즘과 약점

OO갤로그로 이동합니다. 2016.03.11 19:57:47
조회 454 추천 5 댓글 10

2016/03/11 10:43

알파고의 알고리즘과 약점 나홀로 리서치


먼저 저는 전공자가 아니고 알파고의 네이처 논문만 보고 느낀 점을 정리한 것이기 때문에 한계가 있다는 점은 이해 바랍니다.


바둑이나 체스와 같은 보드게임을 포함한 모든 게임에서 필요한 모든 정보를 가지고 있다고 가정할 때, 현재의 상태를 보면 누가 이길지에 대한 확률을 계산할 수 있습니다. 바둑에서 현재 돌이 놓인 모양을 보고 사람들이 대충 누가 유리하겠구나 판단하는 것이 이 과정에 해당합니다. 이것을 가치 함수 (value function) 라고 합니다.

단순한 게임일 수록 이 확률을 정확하게 계산하기 쉽죠. 예를 들면 기본적인 룰만 적용한 오목은 현재 놓인 돌의 모양을 보고 누가 이길지 100% 예측할 수 있으며 심지어 아무 돌이 놓여 있지 않아도 100% 예측할 수 있습니다. 다시 말해 무조건 선이 이깁니다. 물론 이것은 각 플레이어가 최선의 선택을 한다는 가정하에서 입니다. 사람은 그 모든 경우를 다 계산할 수 없지만 컴퓨터는 가능합니다. 이처럼 가능한 경우의 수를 플레이해 보는 것을 트리 탐색 (tree search) 이라고 합니다. 트리 탐색을 완벽하게 하면 정확한 가치 함수를 계산할 수 있습니다.

하지만 게임이 복잡해 질 수록 경우의 수가 기하급수적으로 늘어나서 아무리 빠른 컴퓨터로도 그 모든 경우를 다 계산하는 것은 불가능해 집니다. 바둑이 그 대표적인 예입니다. 바둑에서 나올 수 있는 모든 경우의 수를 다 플레이해 보고 이길 확률을 계산하는 것은 인간이 만들 수 있는 컴퓨터로는 불가능합니다. 

따라서 모든 경우를 다 플레이해 보지 않고도 최선의 수를 찾아내는 것이 인공지능 개발에서 핵심적인 알고리즘이 됩니다.

경우의 수를 줄이는 첫 번째 방법은 경우의 수를 플레이해보는 단계를 줄이는 것입니다. 바둑이라면 끝까지 두어보는 것이 아니라 한 20~30 수 정도만 두어보고 좋은 수인지 나쁜 수인지를 판단하는 거죠. 하지만 끝까지 두어보지 않으면 승패를 알 수 없죠. 따라서 20~30 수 정도를 둔 후에 높은 가치 함수를 갖는 모양이 나올 수 있는 경우의 수를 좋은 수라고 판단하고 이를 바탕으로 가치 함수를 계산합니다.

여기서 잠깐 뭔가 이상한 것을 느끼셨을 겁니다. 가치 함수를 계산하기 위해서는 트리 탐색을 해야 하는데 그 트리 탐색을 하기 위해서 서는 가치 함수가 필요한 무한 반복에 빠지게 되는 거죠. 이런 경우에는 가상의 가치 함수를 가정하고 트리 탐색을 한 뒤 새로운 가치 함수를 계산합니다. 그 뒤 계산한 가치 함수를 이용하여 다시 트리 탐색을 해서 더 나은 가치 함수를 계산하는 거죠. 이와 같은 과정을 계속 반복하면 가치 함수가 점점 가장 정확한 값에 수렴하게 됩니다. 이와 같은 방법을 반복법 (iteration) 이라고 합니다. 어려운 문제에서 최적값을 찾기 위해 가장 흔하게 쓰는 방법이죠.

물론 이 방법이 100% 정확하지는 않습니다. 구하는 값이 진짜 최적값이 아니라 인접한 구간에서의 최적값에 수렴할 수도 있거든요. 예를 들면 열심히 등산을 해서 정상에 올랐는데 알고보니 안개에 가린 저 멀리에 진짜 최고봉이 있었다라는 식입니다. 그래도 대부분의 경우에는 상당히 정확합니다. 체스 챔피언을 이긴 인공지능도 이 알고리즘으로 만들어졌죠.

하지만 바둑은 경우의 수가 훨씬 많아서 이 방법만으로는 부족합니다. 그래서 나온 두 번째 방법이 모든 경우의 수를 다 플레이해보지 않고 일부 경우의 수만 플레이해 보는 것입니다. 이를 몬테카를로 (Monte carlo) 방법이라고 합니다. 다음 수를 두었을 때 벌어질 수 있는 모든 경우를 다 고려하는 것이 아니라 일부 경우만 골라 계산해보고 거기서 나오는 부분 평균값을 전체의 평균이라고 가정하는 거죠.

일부의 경우를 고르는 방법은 그냥 랜덤하게 고르기도 하지만 바둑과 같이 일반적인 플레이어가 바둑판에 랜덤하게 돌을 놓는 것이 아니라 나름의 결정에 의해 플레이 하는 경우에는 상식적으로 많이 돌을 놓는 경우를 골라 플레이해 보는 것이 더 좋겠죠. 이와 같이 다음에 어디에 돌을 놓을까에 대한 정보를 제공하는 것을 정책 (policy) 이라고 합니다.

즉, 모든 경우를 다 플레이해 보는 것이 아니라 사전에 결정된 정책에 의해 나올 확률이 높은 경우들만 골라 플레이해보고 이를 바탕으로 가치 함수를 계산한다는 거죠. 그럼 그 정책은 어떻게 결정될까죠. 물론 가치 함수에 기반해서 결정됩니다. 또 무한 반복이 나왔죠. 가치 함수를 계산하기 위해서는 정책이 필요한데 그 정책을 결정하기 위해서는 가치 함수가 필요한거죠. 하지만 걱정하지 말고 위에 나왔던 반복법을 다시 쓰면 됩니다. 지금까지의 바둑 인공지능은 이 방법을 이용해서 아마추어 수준의 기력을 갖출 수 있었죠.

알파고는 이를 더 발전시키기 위해 몇 가지 추가적인 방법을 적용합니다. 첫 번째는 신경망 (neural network) 기술입니다. 신경망 기술이란 인간의 뉴런 구조에 착안한 것으로 서로 직접적인 연관성이 약한 수 많은 요소들이 결합되어 만들어 내는 결과를 예측하기 위해 쓰는 기법입니다. 신경망 자체는 예전부터 많이 활용되던 기법이지만 알파고는 최신 신경망 기법을 활용하여 앞서 설명한 가치를 평가하는 가치 네트워크와 정책을 결정하는 정책 네트워크 간의 적절한 상호작용을 만들어 내어, 트리 탐색을 수행하는 단계 (depth) 를 줄이고, 몬테카를로 트리 탐색과 결합하여 탐색을 수행하는 회수 (breadth) 를 줄이는 데 성공합니다.

또한 이러한 신경망 구조를 훈련시키는 단계에서 기존에 사람이 플레이하였던 기보들을 입력하는 감독 학습 (supervised learning) 뿐 아니라 자기 자신과의 대국을 통해 만들어 지는 기보를 이용한 강화 학습 (reinforcement learning)을 통해 가치 네트워크와 정책 네트워크의 정확성을 더욱 끌어올립니다. 이렇게 함으로써 알파고는 인간을 뛰어넘는 기력을 갖추게 된거죠.

많은 기사에서 알파고 알고리즘의 핵심이 몬테카를로 인 것 처럼 보도되었지만 (그리고 실제 해당 전공분야에서 핵심적인 기술 진보가 그 부분일 지도 모르지만), 일반인 입장에서 이해할 수 있는 핵심적 기법은 신경망과 강화 학습이라고 생각됩니다. 신경망 기법은 수 많은 요소들이 조금씩 기여하여 결과를 만들어 내고 그 기여도가 수렴되는 방향이 미리 계획되지 않기 때문에 알고리즘을 설계한 사람 조차 어떤 결과가 나올지는 알 수 없습니다. 이러한 신경망이 강화 학습을 통해 최적화 되면서 인간이 만들었지만 인간이 이해할 수는 없는 인공지능이 탄생하게 되는 거죠.

그럼 이렇게 만들어 진 알파고를 인간이 이길 수 있는 방법은 없을까요. 굉장히 힘들겠지만 굳이 방법을 억지로 생각해 보자면 다음과 같습니다.

알파고가 다음 수를 계산하는 과정은 다음과 같습니다.



D. Silvar, et al. "Mastering the game of Go with deep neural networks and tree search", Nature 529, 484–489 (2016)


먼저 알파고는 가치 네트워크를 이용하여 좋은 착점을 선별합니다(a). 그리고 트리 탐색을 통해 선별한 착점을 평가합니다(b,c). 그 뒤 선택된 착점들에 대해 정책 네트워크를 이용하여 가상으로 대국을 진행해 보며 착점들을 다시 걸러냅니다(d,e). 그 결과 선택된 최종적인 착점 (붉은 원) 과 알파고의 이후 예상 진행이 (f) 입니다. 실제 판후이 2단이 대응한 곳은 흰색 네모 (붉은 원 바로 위) 였지만 후분석을 통해 알파고가 예상한 흰색 1이 더 좋은 대응이었다고 평가되었습니다.

구체적으로 알 수는 없지만 알파고는 단계적으로 선택의 수를 줄여가며 점점 더 많은 단계를 플레이 해 보는 식으로 계산 양을 줄이는 것 같습니다. 즉, 트리의 폭 (breadth) 을 줄이며 깊이 (depth) 를 늘리는 방식인 거죠. 일단 알파고가 많은 단계를 시뮬레이션 해 본다면 실수를 기대하기 힘듭니다. 따라서 좋은 착점이 깊이가 얕은 단계에서 버려지기를 기대해야 합니다.

이를 위해서는 일단 처음에 버려지는 착점이 많은 초반이 유리합니다. 또한 가치 네트워크를 이용하여 일차적인 선택을 하는 알파고의 특성상 포석에서의 가치가 높은 귀나 변은 버려지지 않을 확률이 높습니다. 따라서 초반에 반드시 중앙에 돌을 놓아야 하는 상황이 나왔을 때 알파고가 실수할 확률이 있습니다.

만일 초반에 전투가 벌어져서 그 전투가 중앙으로 번진다면 알파고가 사활이 걸린 수를 놓치고 세력을 위해 잘못된 선택을 하는 경우가 발생할 수도 있지 않을까요. 저는 바둑을 잘 모르기 때문에 그게 가능한 지는 알 수 없습니다. 어쩌면 2국 초반에 좌하변에서 알파고에게 불리하게 진행된 대국 양상이 그와 관련되어 있지는 않을까 조심스럽게 추측해 봅니다.


추천 비추천

5

고정닉 0

1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 비난 여론에도 뻔뻔하게 잘 살 것 같은 스타는? 운영자 24/06/03 - -
88608 오늘 TV조선 꼴릿함 ㅇㅇ(1.247) 16.03.12 93 0
88607 tv조선 해설들이 진짜 뭔가 전문적이다. [1] 11111(59.14) 16.03.12 213 0
88606 끝났네 챙챙갤로그로 이동합니다. 16.03.12 55 0
88605 좌상부분 해석좀 ㅇㅇ(39.112) 16.03.12 26 0
88604 바알못인데 지금 대국에서도 장생나오면 무승부로 함? ㅇㅇ(117.111) 16.03.12 40 0
88603 이세돌 마시는거 00010111갤로그로 이동합니다. 16.03.12 50 0
88601 예전에 어떤 프로가 컴퓨터가 인간 능가하면 바둑판 한줄 늘리면 된다고했지 [1] Doll갤로그로 이동합니다. 16.03.12 178 2
88600 오늘은 TV조선이다 ㅓㅜㅑ ㅇㅇ(121.131) 16.03.12 53 0
88599 백이 너무 유리하다 ㅇㅇ(121.166) 16.03.12 56 0
88598 인터넷으로 해설 보는데 어디 볼 수 있냐? [1] ㅇㅇ(121.140) 16.03.12 51 0
88597 세돌이 씹덕이었노 ㅋㅋ ㅇㅇ(147.47) 16.03.12 113 0
88596 tv조선 다원이 의상이.. [3] 신의경지(1.254) 16.03.12 398 4
88595 신에 대항하는 인간죽창.jpg [3] ㅇㅇ(183.101) 16.03.12 342 0
88594 이세돌 덕후행 ㅋㅋㅋㅋ ㅇㅇ(14.43) 16.03.12 238 0
88593 아는 것도 없는 새끼들이 뭐만하면 신의한수 지랄이네 ㅇㅇ(112.187) 16.03.12 37 0
88592 정다원 솔직히 바둑 캐스터 이모 체강이다 ㅇㅇ(116.32) 16.03.12 137 1
88591 티비조선 여자 캐스터 가슴뽕 ㄷ존나 넣었네 ㅋㅋㅋ ㅇㅎ(175.223) 16.03.12 75 0
88590 바둑은 절대 컴퓨터가 못이긴다는 병신들도 이제는 사라지고 바둑도 좃망됨 [1] ㅇㅇ(45.64) 16.03.12 135 4
88589 천원 첫수 따라두기는 그냥 발려 병신아 [1] ㅇㅇ(104.159) 16.03.12 121 0
88588 바둑티비 탈모아재가 나와야하는데 DDD(121.150) 16.03.12 78 0
88587 속보) 전국에 알사범님 신도 넘쳐나. 직접 뵙고싶다는 신자들 줄서 기다려 ㅇㅇ(61.41) 16.03.12 42 0
88586 알파고 두는거봐라 아직도 초반에 바르고 시작하는게 가능해보임? [1] ㅇㅇ(223.33) 16.03.12 89 0
88585 엥 TV조선 거기 틀니딱딱충만 보는 데 아니냐 [6] 사자에갤로그로 이동합니다. 16.03.12 175 1
88584 해설 어디가 좋냐 ㅁㄴㅇ(211.58) 16.03.12 33 0
88583 이미 알사범 승 ㅇㅇ(14.36) 16.03.12 45 0
88582 이겨야 대단한거지 븅신같은것들 ㅇㅇ(218.52) 16.03.12 20 0
88581 티비조선 대박남ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ ㄹㅇㅁ(211.110) 16.03.12 256 0
88580 야니들 지금 뭐보냐 나 원어로 보는데 이거 자증남ㅡㅡ [3] 꽃놀이✿갤로그로 이동합니다. 16.03.12 159 0
88579 김성룡어디서 해설하냐 ㅂㅂ(122.42) 16.03.12 38 0
88578 tv좆선 바알못 여러명이 바잘알 괴롭히는 컨셉인데 ㅇㅇ(8.37) 16.03.12 66 0
88577 바둑티비 그 아재해설 어디 갔음? smf갤로그로 이동합니다. 16.03.12 31 0
88576 바둑티비에선 아직 무난한 진행이라는데 (49.1) 16.03.12 72 0
88575 오늘은 티비조선이다 ㅇㅇ(27.124) 16.03.12 59 0
88574 질거 같으니 알파고는 천명이 상의해 두는거나 마찬가지라고 핑계대고 있음 ㅇㅇ(211.58) 16.03.12 47 0
88572 티비 조선 알파고 수를 두세수까지 앞서 해설하네 ㅇㅇ(223.33) 16.03.12 87 1
88571 K-바둑 남자 해설 짜증나네 Doll갤로그로 이동합니다. 16.03.12 92 0
88570 따라바둑은 진짜 최후의 수단이다 5국쯤에서나 나올 수 ㅁㄴㅇㄹ(114.206) 16.03.12 49 0
88569 왜들그래? 난 TV조선이 좋은데?ㅋ [1] (223.33) 16.03.12 134 0
88568 와 갓파고 사범님 보고 싶어서 네이버 12만 보고 있네 ㅇㅇ(220.77) 16.03.12 55 0
88567 야 광고끝난 바둑티비 지금 좋음 존나 좋음 [2] ㅇㅇ(118.42) 16.03.12 228 0
88566 좃센 너무 정신사나움 [1] ㅁㅁ(211.36) 16.03.12 67 1
88565 벌써 흑이 싸잡혀 먹힌 느낌 안보이냐 니들은 ㅇㅇ(66.254) 16.03.12 62 0
88564 알파고가 이세돌 가지고 노네 ㅇㅇ(49.166) 16.03.12 48 0
88563 아근데 시발 김성용이 해설안하니까 존나 노잼 시발 알파고위엄이 안느껴짐 [1] 12(59.0) 16.03.12 171 1
88562 패覇를 구사하지 않는 이유가 만약 패는 승부처가 아니었다라면..진짜공포. [3] ㅇㅇ(180.228) 16.03.12 103 0
88561 신의 칼날 10수 나왔고 신의 비수 12수 나왔네 ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 끝남 dㅇㅇ(58.142) 16.03.12 78 0
88560 정다원 너무 이쁜척 함 ㅇㅇ(115.95) 16.03.12 64 0
88559 바둑TV 한국기원이 모기업(?)이지? [1] 사자에갤로그로 이동합니다. 16.03.12 43 0
88557 세판 중에 제일 이세돌 답게 두네 ㅇㅇ(59.25) 16.03.12 66 0
88556 티비졷선은 말이 너무 많다 ㅇㅇ(218.52) 16.03.12 26 1
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2