PGR21.com
- 자유 주제로 사용할 수 있는 게시판입니다.
- 토론 게시판의 용도를 겸합니다.
Date 2016/03/15 23:42:22
Name 65C02
Subject [일반] 인공신경망과 알파고 - 알파고는 어떻게 동작하는가?(1)
이전 글 : 1. 인공신경망이란 무엇인가? https://cdn.pgr21.com./pb/pb.php?id=freedom&no=64050&page=3


오늘 이세돌이 패배함으로써 인간 고수대 인공지능의 대결은 1승 4패로 인공지능의 승리로 돌아갔습니다. 4번째 대국에서 이세돌이 승리했기에 저는 내심 ‘이세돌이 4번째 대국과 정확하게 동일한 수로 진행하면 어떨까?’하는 생각을 잠깐 해 보았습니다. 

물론 알파고는 학습이 가능하기에 어제의 기보도 실시간으로 학습되었을 수 있습니다만, 이미 수억번의 훈련을 거친 후이기 때문에 어제의 단 한번의 패배가 인공신경망 계수(weight)값들에 큰 영향을 주었을 지 궁금했기 때문입니다. 극단적인 비유를 하자면 제가 지난번에 만들었던 인공신경망 ‘시노자키 AI’에게 지금까지 훈련 데이터로 사용한 입/출력값과 다른 훈련 데이터인 “입력이 일반인(0.5)과 시노자키 아이(1)일 때 출력이 썸(1)”이라는 데이터로 한 두 번 훈련시킨다 해도, 출력값이 크게 달라질 수는 없을 것입니다. 

구글 딥마인드 CEO 트윗으로는 79수 이전까지는 알파고의 승리확률이 70%였다는데, 그렇다면 4국과 동일한 수를 두어도 79수 근처까지는 아마도 동일하게 진행되고, 그 후로는 바뀔 수도 있고 아닐 수도 있다고 봅니다. 이세돌과의 대국 기보는 중요한 정보이므로 일반적인 기보로 훈련할 때와는 달리 제4국 기보로 훈련을 여러 번 시키거나 가중치를 주어서 훈련시켰을 수도 있고, 그런 경우 알파고의 후속 수는 바뀔 수도 있을 것입니다. M형 탈모 아저씨는 이미 5국이 시작되기 전에 동일한 게임 진행을 해 보아서 그 결과를 알고 있지 않았을까요.

본론으로 들어가서 알파고의 동작을 이해하기 위해 주로 두 개의 문서를 참고했습니다. SPRi 소프트웨어 정책연구소에서 작성한 “AlphaGo의 인공지능 알고리즘 분석” 과 구글 딥마인드에서 네이처를 통해 발표한 “Mastering the game of Go with deep neural networks and tree search” 입니다. 전자는 http://spri.kr/post/14725 에서 다운로드 받을 수 있습니다.

이번 글은 지난번 글보다는 복잡하고 이해하기 힘들 수 있습니다만, 최대한 간략하게 풀어서 설명해 보겠습니다. 지나치게 테크니컬한 부분의 설명은 차라리 논문을 읽어보는 것이 나을 것이기에 생략하겠습니다. 또한 저는 이제 전공자가 아니기 때문에 논문을 해석하는데 있어서 잘못된 부분이 분명 있을 수 있습니다. 이 점 양해 부탁드립니다. 이 글에서 pi, sigma, rho 라는 말은 각각 그리스어 알파벳임을 아시면 그림과 글을 연관지어서 보기 쉬울 것입니다.

알파고가 바둑을 진행하는데 있어서 가장 중요한 요소는 인공신경망과 몬테카를로 트리 탐색 (Monte CalroTree Search) 알고리즘입니다. 몬테카를로 트리 탐색 알고리즘은 바둑에서 가장 널리 사용되는 인공지능 알고리즘이라고 합니다. 먼저 그나마 익숙한 인공신경망부터 알아보도록 하겠습니다. 

알파고의 인공신경망은 정책망(policy network)과 가치망(value network)으로 구성됩니다. 정책망의 입력값은 현재 진행되는 바둑의 상태이고 출력값은 다음 수를 어느 위치에 두어야 할 지에 대한 확률분포입니다. 가치망의 입력값은 정책망과 거의 비슷하고 출력값은 현재 바둑 상태에서의 승산입니다. 


정책망과 가치망의 입력 데이터는 위의 표에 나와있습니다. 바둑판의 19*19개 자리 모두에 대해서 표의 정보들이 생성되어 인공신경망의 입력 데이터로 사용되는 것입니다. 보시다시피 단순히 현재 바둑판의 단순한 상태만을 입력으로 삼는 것이 아니라, 각각의 자리에서 마지막 움직임 후에  몇 턴이 지났는지(Turns since), 축, 활로 등의 부가정보가 담겨있습니다. (그러므로 알파고의 바둑이 연속성이 전혀 없다는 말, 즉 매 턴마다 새로운 사람이 와서 두는 바둑과 같다는 말은 엄밀히 말하면 ‘Turns since’ 입력값 때문에 틀린 말입니다. 바둑판 상태를 처음부터 보지 않은 사람은 알 수 없는 정보이기 때문입니다.) 맨 밑에 player color는 가치망에서만 사용하고 정책망일때는 제외되는 입력값인데, 가치망에서는 승산 계산을 해야 하므로  7집 반의 덤 때문에 필요한 값이 아닌가 추측해봅니다. 

바둑판 19*19 개의 모든 자리 대해서 위의 데이터들이 생성되는 것이므로, 정책망은 48*19*19개, 가치망은 49*19*19개의 바이너리 데이터를 입력값으로 사용하는 것입니다. 두 개의 망 모두 layer는 13입니다. 지난번 글에서 제가 보여드렸던 입력 2, 출력 1, layer 3짜리 시노자키 AI 신경망과 비교하면 규모면에서도 엄청난 차이가 느껴집니다.


위의 그림은 정책망, 가치망의 입출력을 보여줍니다. 왼쪽의 정책망은 현재의 바둑 정보를 이용해서 전체 바둑판에 대한 다음 수의 확률을 계산합니다. 출력값은 바둑판 위치 19*19개 각각에 대한 확률값입니다. 초록색 그래프가 높은 위치가 다음 수가 놓일 확률이 높은 자리라고 볼 수 있습니다. 오른쪽의 가치망은 현재의 바둑 정보에서 최종 승산을 출력값 하나로 생성합니다. 



위의 그림은 정책망과 가치망을 어떻게 훈련시켰는지 보여줍니다. 정책망은 두 종류가 있는데, 간단히 설명하면 하나는 입력값이 단순하고 계산이 빠르지만 정확도는 떨어지고(정책망pi) 또 하나는 입력값이 복잡하고 느리지만 정확도는 더 높습니다(정책망sigma). KGS Go Server 프로 6단에서 9단사이의 실제 대국 16만개의 기보로부터 3000만 개의 바둑 상태를 추출하여 그 중 2900만개를 이용하여 이 두 개의 정책망을 훈련시켰다고 합니다. 나머지 100만개의 상태는 훈련된 정책망을 테스트하는데 사용했다고 합니다.

이 부분을 부연설명하자면, 16만개의 기보 중 어느 한 대국, 어느 한 시점에서의 바둑 상태와 그 시점에 프로기사가 놓은 돌의 위치 정보를 2900만개 모아서 입력데이터와 출력데이터로 사용하여 훈련시켰다는 말입니다. 즉 이런 상황(입력값)에서 다음 수는 이 위치(출력값), 이렇게 훈련시킨 것이죠. 나머지 100만 가지 상태로 정책망sigma를 테스트해 본 결과 57%의 정확도를 보였다고 합니다. 

이렇게 프로기사의 돌 놓는 방법을 훈련시킨 정책망sigma를 이용해서 스스로 대국하는 것(알파고 vs 알파고)을 128만번 수행하여 인공신경망의 계수값들을 강화시켰다고 합니다. 이렇게 강화된 정책망을 정책망rho라고 합니다. 또한 이 자체대국 과정에서 생성된 3000만개의 바둑 상태를 이용해서 가치망을 훈련시켰다고 합니다. 

가치망을 훈련시키는 과정은 아마도 “이러한 바둑 상태(입력값)에서는 이겼다(출력값=1)” 혹은 “이러한 바둑 상태(입력값)에서는 졌다(출력값=0)” 이런 식으로 아니었을까 합니다.

여기까지 생성한 정책망rho 만으로도 사실 바둑 두는 것이 가능합니다. 현재의 바둑 상황을 입력하면 프로 기사들이 그 다음 수로 놓을 만한 가장 확률 높은 자리가 출력으로 나오니, 이것을 반복하면 되겠죠. 실제로 이것만으로도 Pachi라는 기존의 바둑 프로그램에게 85%의 승률을 보였다고 합니다. 여기에 몬테카를로 트리 검색 알고리즘이 추가됩니다. –꼐속


통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
디포르테
16/03/16 00:16
수정 아이콘
5번의 대국기간 중에는 학습을 진행하지않는다가 조건 중 하나여서 이세돌9단과의 기보가 학습에 사용되진 않았을겁니다
16/03/16 09:30
수정 아이콘
그게 사실이라면 몇가지 가정하에 재밌는 상황이 연출될 수도 있었네요.

대국기간중에 학습하지 않는다 -> 알파고 신경망 계수값들이 변경되지 않는다 -> 알파고가 같은 상황에서는 같은 방식으로 동작한다 -> 이세돌이 첫판을 이긴다 -> 이세돌이 나머지 4국도 똑같이 두어서 5승 무패로 끝난다 -> 하사미스 트윗 "이세돌 바둑 X같이 두네!"
아싸리리이
16/03/16 12:56
수정 아이콘
뭐 비슷하게는 흘러가겠지만 저번에 읽은 글로는 랜덤 결정값이 들어간다고 하네요. 랜덤 결정값이 들어가면 똑같이 움직이지는 않겠지요.
석박사
16/03/16 00:17
수정 아이콘
이런걸 실현 시켰다는 것이 참 대단하네요
16/03/16 00:58
수정 아이콘
정말 좋은글이군요.
감사하면서 읽겠습니다.

내용도 흥미롭지만 결국 결과가 궁금한데요.
아마도 저는... 동일한 수가 전개되기 전에 알파고는 다르게 두지 않았을까 싶네요..
16/03/16 09:33
수정 아이콘
네 저도 그 전에 다루게 두었을 수도 있을거라는 생각도 듭니다. 알파고가 다음편에 얘기할 몬테카를로 트리 서치 알고리즘으로 수읽기를 진행하는데 사용하는 것이 정책망, 가치망이기 때문에, 계수의 미묘한 변화로도 수읽기 깊이가 진행될 때마다 마치 나비효과처럼 전혀 다른 결과가 나올 수도 있으리라 생각됩니다.
3막1장
16/03/16 11:03
수정 아이콘
꼐속이 깨알같네요 크크
회사에서 윗분들이 자료좀 만들라고 해서 여기저기 찾아 해매는 상태임다
슬라이드셰어에 바둑인을 위한 알파고란 제목으로 프린스턴 나온 양반이 쓴 것도 읽고 있는데 재미있네요
16/03/16 11:18
수정 아이콘
Rollout Policy 는 정책망(Policy Network) 까지는 아닌거 같고
Linear 정책?(단순 Policy 수준) 정도이고 나중에 시뮬레이션시에 활용하는거 같네요
제 추측에는 프로기사들이 중간에 추정계가를 할때 적당히 중간 라인을 그어놓고 추정계가를 하는데... 그런 용도로 사용되는게 아닐까 합니다
16/03/16 12:28
수정 아이콘
좋은글 감사 합니다.
MDIR.EXE
16/03/16 12:48
수정 아이콘
가치망에서 player color 가 추가로 필요한이유는 알파고 기준으로 승률을 잡기위해서 같아요.
70 30 70 30 보다 70 70 70 70 이 보기 편하니까요
일루져니스
16/03/16 20:27
수정 아이콘
지금까지 본 글중 가장 괜찮네요 알파고 정보에 대하여
클리스
16/03/17 08:40
수정 아이콘
잘 읽었습니다. 감사합니다
16/03/18 14:28
수정 아이콘
분명 하단에 "꼐속"이라고 쓰신 겁니다?
2편 기다리고 있겠습니다?
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회 추천
64129 [일반] <삼국지> 유비가 즉위한 것에 대한 의의. [1] 靑龍4090 16/03/16 4090 6
64128 [일반] 한국의 장바구니 물가는 왜 유달리 비쌀까? [35] santacroce11617 16/03/16 11617 41
64127 [일반] 봄맞이(?) 신발 대 추천 [159] aura17491 16/03/16 17491 18
64126 [일반] [WWE/스포] 2016/3/14 RAW 데이브멜처 팟캐스트(펌) [27] 피아니시모5455 16/03/16 5455 0
64125 [일반] 캐치 유 타임 슬립! - 9 튜토리얼(끝) (본격 공략연애물) [6] aura4082 16/03/16 4082 3
64123 [일반] 이세돌 대 알파고 딥마인드 챌린지 매치 5번기 관전 후기 [54] 홈런볼11874 16/03/16 11874 14
64122 [일반] 3회 사소한 지식 경연 대회 기부 후기입니다. [11] OrBef4411 16/03/16 4411 21
64121 [일반] 미 공화당의 대선후보 마르코 루비오가 대선경선후보에서 사퇴했습니다 [40] Igor.G.Ne9104 16/03/16 9104 0
64120 [일반] 일본, 섭정의 역사 - 1 [52] 눈시10724 16/03/16 10724 9
64119 [일반] 출사 : 삼국지 촉서 제갈량전 21 (외전 : 맹덕) [35] 글곰4946 16/03/16 4946 58
64118 [일반] 인공신경망과 알파고 - 알파고는 어떻게 동작하는가?(1) [13] 65C0210257 16/03/15 10257 11
64117 [일반] 독일언론에서 긁어오기 - 알파고(4) [2] 표절작곡가6115 16/03/15 6115 7
64116 [일반] 후일담 - 테러방지법과 대한변호사협회 [33] 烏鳳8722 16/03/15 8722 2
64115 [일반] [바둑] 인공지능의 도전 제5국 - 알파고 불계승 [65] 낭천15494 16/03/15 15494 2
64114 [일반] 잡채밥 [10] 라디에이터5406 16/03/15 5406 6
64113 [일반] [WWE/스포] 최후의 부자의 역반응과 무반응 [51] 피아니시모6842 16/03/15 6842 1
64112 [일반] 브라질: 300만 명의 시위대와 금융시장 랠리가 원하는 것은? [10] santacroce6569 16/03/15 6569 13
64110 [일반] [역사] 18-19세기 초 일본의 해외방비론 [8] aurelius5574 16/03/15 5574 2
64109 [일반] [야구] 한화 이글스, 용병 투수 알렉스 마에스트리 영입. [26] 레이오네7365 16/03/15 7365 0
64108 [일반] [연애] 옛날글에 후기 와 이불킥 사건입니다. [26] 사신군8481 16/03/15 8481 1
64107 [일반] CGV 가격 정책 바뀌고 처음 예매한 후기... [55] 카스트로폴리스10178 16/03/15 10178 2
64106 [일반] 검정치마/제시의 뮤직비디오와 레드벨벳/GOT7의 티저가 공개되었습니다. [6] 효연덕후세우실5012 16/03/15 5012 0
64105 [일반] 주알못의 코데즈 컴바인에 대한 추억 [33] CLAMP 가능빈가8442 16/03/15 8442 1
목록 이전 다음
댓글

+ : 최근 1시간내에 달린 댓글
+ : 최근 2시간내에 달린 댓글
맨 위로