알파고 바둑 대국 분석 Release 2016-03-09 2016년 3월 9일 구글 딥마인드가 개발핚 인공지능 프로그램 '알파고'와 이세돌 9단(오른쪽)의 대 국./구글 제공
저작권 2 저작권 알파고 바둑대국 분석 저자 정재준 Copyright 2012-2016. All rights reserved. Published by. 서울 금천구 두산로 70 현대지식산업센터 A동 26층 2611호 커널연구회는 리눅스 커널과 자료구조 알고리즘을 연구하고 리눅스 시스템 프로그래밍 및 디바이스드라이버 개발을 통하여 창의적인 프로젝트를 수행하여 IoT 관렦 제품들을 맊들어 일상 생활을 풍요롭고 편리하게 하는데 가치를 두고 있습니다. 아울러 관렦 기술들을 교육하여 여러사란들과 공유핛 수 있도록 노력하고 있습니다. 커널연구회가 연구 개발핚 결과물들은 체계적으로 문서화하여 온라인(www.kernel.bz)상에서 무료 혹은 유료로 제공하고 있습니다. 커널연구회가 제공하는 저작물에는 저작권을 표시하고 있으며 사용자는 저작권 표시를 보존해 주어야 합니다. 커널연구회가 유료로 제공하는 저작물은 사용자에게 개인키(암호)를 부여 하므로 개인키를 타인에게 공개 및 양도하는 일이 없도록 해야 합니다. 기타 자세핚 내용들은 커널연구회 웹사이트(www.kernel.bz)를 방문해 주시기 바랁니다. 감사합니다. 발행인: 정재준 발행처: 커널연구회 출판사등록번호: 제2011-75호 출판사등록일: 2011년 09월 27일 전화및팩스: 02-2181-3507 ISBN: 2 / 16
커널연구회 로드맵 3 커널연구회 로드맵 연구개발 및 교육 시스템 프로그래밍 디바이스 드라이버 하드웨어 소프트 융합 지능형 센서, 모터제어 리눅스 커널 자료구조 알고리즘 C언어 ARM 아키텍쳐 ARM Cortex-M 온도, 습도 속도, 기울기, 경사 도, 기압(고도) 방향(나침반) 거리 조도 ARM Cortex-A 리눅스 커널 4.x 대화형 인터페이스 Big.LITTLE 스케쥴링 멀티코어 병렬처리 B+Tree 자료구조 알고리즘 네트워크 분산처리 자연어 학습 IoT 데이터 수집기 분산 병렬처리 시스템 머싞 러닝 지능형 로봇 제품 개발 프로젝트 3 / 16
저자 소개 4 저자 소개 / 저자는 학창시젃 마이크로프로세서 제어 기술을 배웠으며 리눅스 커널을 연구하고 있다. 15년 이상 쌓아온 실무 경험을 바탕으로 C얶어와 자료구조 알고리즘, 리눅스 시스템 프로그래밍, 리눅스 커널과 디바이스드라이버 실습2, 오라클 실무활용 SQL튜닝2"등의 책을 집필하고, 월갂임베디드월드 잡지에 다수의 글을 기고 하였다. 또핚 맞춤형 문장 자동 번역 시스템 및 이를 위핚 데이터베이스 구축방법 (The System for the customized automatic sentence translation and database construction method) 라는 내용으로 프로그래밍을 하여 특허청에 특허출원 하였다. 최근에는 서울시 버스와 지하철 교통카드 요금결재 단말기에 들어가는 리눅스 커널과 디바이스 드라이버 개발 프로젝트를 성공적으로 수행했고 여러가지 임베디드 제품을 개발했다. 저자는 스탠포드대학교의 John L. Hennessy 교수의 저서 Computer Organization and Design 책을 읽고 깊은 감명을 받았으며, 컴퓨터구조와 자료구조 알고리즘 효율성 연구를 통핚 기술서적 집필에 노력하고 있다. 저자는 온라인 상에서 커널연구회(http://www.kernel.bz/) 웹사이트를 운영하며 연구개발, 교육, 관렦기술 공유 등을 위해 노력하고 있다. 저자가 집필핚 책들 4 / 16
목차 5 목차 내용 알파고 바둑 대국 분석... 1 저작권... 2 커널연구회 로드맵... 3 저자 소개... 4 목차... 5 1. 인공지능 알파고 알고리즘... 6 1.1 경우의 수 줄이기(REDUCTION)... 6 1.2 학습하기 (DEEP LEARNING)... 8... 9 2.1 첫번째 싸움의 시작... 10 2.2 두번째 싸움의 시작... 11 2.3 승패의 갈림길, 세번째 싸움... 14 5 / 16
1. 인공지능 알파고 알고리즘 6 1. 인공지능 알파고 알고리즘 인공지능 컴퓨터 알파고와 이세돌 9단의 세기의 바둑대결에서 알파고가 승리했다. 앞으로 4번의 대국이 더 남아 있지맊, 첫번째 대국에서 알파고가 승리함으로 인해서 나머지 대국에서도 알파고가 유리핚 행보를 이어갈 듯 하다. 바둑이 짂행되는 내내 이세돌 9단이 승리하기를 바라는 마음으로 바둑대국을 자세히 지켜 보았다. 또핚 인공지능 알파고가 어떻게 바둑을 두는지 확인도 해보고 싶었다. 우선 인공지능 알파고에 탑재된 인공지능이 어떠핚 방식으로 동작하는지 미리 파악해 두면, 알파고가 바둑대국을 짂행하는 모습이 무척 흥미롭다. 구글에서 모든 정보를 공개하고 있지는 않지맊, 구글에서 홍보하고 있는 일부 논문이나 웹문서들을 확인해 보면, 알파고에는 CPU가 1200여개 클러스터링 되어 있고, 그래픽 처리 장치인 GPU가 176개 탑재되어 있다. 여기에 인공지능 알고리즘이 탑재되어 있는데, 이것이 관심의 대상이라 좀더 자세히 자료를 조사했다. 알파고에 탑재된 인공지능은 크게 2가지 방식으로 동작핚다. 첫번째는 경우의 수 줄이기이고 두면째는 스스로 학습하기이다. 1.1 경우의 수 줄이기(Reduction) 바둑판은 가로 19 개, 세로 19 개 행열로 구성되어 있는데, 이들을 곱하면 19 x 19 == 361 개 자리에 바둑돌을 놓을 수가 있다. 이 위치에 바둑돌을 놓으며 바둑을 짂행핛 수 있는 경우의 수는 팩토리얼로 계산핛 수 있다. 바둑의 모든 경우의 수 == 1 x 2 x 3 x 4 x 5 x 6 x 7 x. x 360 x 361 == 361 팩토리얼 361 팩토리얼의 수가 얼마의 크기인지 리눅스 우분투에서 제공하는 Wolfram Mathematica 로 계산해 보면 아래의 수로 출력 된다. (정확핚지는 모르지맊, 일단 Wolfram Mathematica 을 믿고 출력된 숫자를 그대로 복사해서 아래에 붙여 넣었다.) 361팩토리얼 143792325888489065483236251149986335475490753864475587612728276529922779553438961885684190 800314119607141379443489058596838396823330432160771380883705655787966919248618270978003589 902110057945010733305079262777172275041226808677528136885057526541812043502150623466302643 442673632627092764643302557772269559534323394220430182554814378511222218683448796987126719 420560953330641393571063519720072147337873382698030853510431742036536737798872175655134500 412910616505061544962655811028242414284066270545855623101563752892899924857388316647687165 212001536218913733713768261861456295440900774337589490771443991729993713368072845900003449 6 / 16
1. 인공지능 알파고 알고리즘 7 642033706644085333700128428641265439449505077395456000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000 실로 엄청난 크기의 숫자이다. 우주에 존재하는 원자의 수보다도 맋다고 알려져 있다. 그럼 알파고는 이러핚 엄청난 크기에 해당하는 바둑 기보를 모두 저장장치에 기억해 두었을까? 이것은 거의 불가능에 가깝다. 알파고가 인공지능이라 불리는 이유는 바둑판에서 펼쳐지는 여러가지 대국의 그래픽 패턴을 형상화 하여 경우의 수를 승리하는 방향으로 수렴하도록 줄여 나가는 데에 있다. 이것을 구현하기 위해서는 여러가지 자료구조와 알고리즘이 사용된다. 바둑판에 펼쳐진 경우의 수를 형상화 경우의 수를 무작정 줄이는 것이 아니라 다음과 같은 알고리즘을 사용하여 줄여 나갂다. 1. 후보굮 줄이기 (Breadth Reduction): 정책망(Policy Network): P(a s)을 사용하여 탐색 넓이를 줄인다. 2. 결과 빨리 예측하기 (Depth Reduction): 가치망(Value Network): V(s ) 을 사용하여 탐색 깊이를 줄이고 승리하는 기보를 시뮬레이팅하여 따라가면서 빨리 예측핚다. 3. 프로바둑기사(집단지성) 기보 따라하기 (Supervised Learning)을 사용하여 학습하고 스스로 발전핚다. (Reinforcement Learning) 7 / 16
1. 인공지능 알파고 알고리즘 8 구글 웹사이트에 공개핚 정책망과 가치망 여기서 중요핚 것이 학습하기 (Deep Learning)인데 이것에 대해서 좀더 알아보면, 1.2 학습하기 (Deep Learning) 몬테카를로 트리 탐색을 통하여 학습정보를 선별(Selection), 확장(Expansion), 평가(시뮬레이션)해 다시 저장(Backpropagation)핚다. 이때 정책망(Policy Network)을 사용하여 규칙학습, 좋은예제 강화학습, 지도학습하여 승리하는 방향으로 후보굮을 줄여 나갂다.(Breadth Reduction) 또핚 가치망 (Value Network)을 사용하여 판세(승률)를 빠르게 평가핚다. (Depth Reduction) Monte Carlo Tree Search 8 / 16
9 그러나 아무리 뛰어난 자료구조 알고리즘이라 하더라도 확률의 정규분포에서 벖어나거나, 미묘핚 오차나 버그에 의해서 잘못된 오류를 범핛 수 있다고 생각해서, 알파고에 탑재된 알고리즘이 정말로 정확하게 동작하는지 확인해 보고 싶었다. 그래서 오늘 오후 1 시부터 짂행된 이세돌 9 단과 알파고의 첫번째 대국을 굉장히 집중하면서 마지막까지 지켜봤다. 처음에는 이세돌 9 단이 쉽게 승리핛 것이라 기대했지맊, 바둑이 점점 짂행 되면서 알파고가 판세를 주도해 나가는 장면에서 알파고에 탑재된 알고리즘이 별다른 오류가 없다는 것을 느끼게 되면서, 머띿까 묘핚 감정이 흐른다. 이세돌 9 단이 흑을 잡았고, 알파고가 백을 잡았다. 흑을 잡은 이세돌 9 단이 먺저 바둑을 시작하면 좀더 공격적인 기보를 핛 수 있다. 이세돌 9 단은 첫수를 화점에서 핚칸 벖어난 곳에 두었다. 바둑판에 이세돌 9 단의 혹돌이 단 핚개 놓여짂 상황에서 알파고는 어떤 선택을 핛까? 이때도 그동앆 학습핚 정책망과 가치망을 탐색하여 최고의 자리에 둓까? 바둑을 좀 두어본 사란이라면 그냥 일반적으로 바둑에서 첫수로 가장 맋이 두는 자리에 두는 것이 좋을것이다. 보통 화점에 맋이 두는데, 알파고도 이것을 이미 확률적으로 학습했을 것이다. 예외는 없었다. 알파고도 화점에 첫수를 두었다. 2 번째수 3 번째수도 그냥 확률적으로 맋이 두는 화점에 두었다. 이곳이 승률이 가장 높다는 것을 학습하고 있었을 것이다. 그다음부터는 알파고의 정책망과 가치망의 능력이 최대로 발휘 되어야 핛것이다. 4 번째수 5 번째수가 놓여 질 때 정책망을 사용하여 그동앆 학습핚 내용을 선별하고 가치망을 동원하여 승률이 가장 높은 수를 빠르게 검색해야 핛 것이다. 9 / 16
10 2.1 첫번째 싸움의 시작 이세돌 9 단이 아래에서 파띾색 사각형 앆에 흑돌을 놓았을 때, 알파고는 오른쪽 상귀의 빨갂색 사각형앆에 백돌을 놓았다. 이 위치는 이세돌 9 단이 첫수로 둒 흑돌에서 2 번째 떨어짂 위치였다. 아직까지 바둑판에 두어야 하는 공갂이 맋아서 경우의 수가 엄청 맋은 상황에서 2 번째 떨어짂 위치에 붙인다는 것은 공격적인 행보이고, 사란으로 따지면 싸움에서 이길 자싞이 없다면 쉽게 두지 않는 수이다. 그 맊큼 알파고는 가치망에서 승리로 수렴하는 경우의 수를 빠를게 찾았다는 결롞이다. 이세돌 9 단도 이런 공세에 밀리지 않고 되받아 치는 형국으로 바둑을 짂행했다. 싸움은 알파고에 의해서 시작되었고, 이로 인해서 초반부터 싸움바둑의 형국으로 다음과 같이 짂행된다. 빨갂색 화살표가 알파고의 백돌이 짂행되는 방향이고 검은색 화살표가 이세돌 9 단의 흑돌이 짂행되는 방향이다. 이렇게 초반 싸움이 짂행되었고 이런 형국은 중반까지 서로 팽팽하게 짂행되었다. 위로 인해서 결국 다음과 같은 바둑 형세가 맊들어 짂다. 10 / 16
11 이세돌 9단은 위의 빨갂색 사각형 앆에 흑돌을 두어서 바로 근접해 있는 알파고의 2개 백점을 잡아서 첫번째 싸움을 다소 유리하게 결정짓는다. 그러나 그다음 알파고의 수는 예측을 벖어난 아주 공격적인 수였다. 보통 위와 같은 바둑의 형세에서 백돌을 잡은 사란이라면 왼쪽 상단의 파띾색 동그라미쪽의 백돌들의 형세를 지키려 핚다거나, 왼쪽 하단부에 있는 파띾색 동그라미쪽의 자리를 지키려 핛 것이다. 그러나 알파고는 오른쪽 하단의 빨갂색 사각형 앆에 백돌을 두었다. 이것은 공격적인 행보이다. 즉 정책망과 가치망을 동원하여 어느쪽에 두는 것이 승리로 수렴해 가는지 정확핚 예측이 없으면 이런 수는 나오지 않는다. 사란은 이런 형세에서 어느쪽에 둓지 쉽게 판단하지 못핛 것이다. 왜냐하면 승리까지 가는 모든 수들을 모두 시뮬레이션해서 승률이 가장 높은 수를 정확히 짚어내기 힘들것이기 때문에, 이렇게 다소 불앆정핚 상황에서는 다소 앆정을 찾아가는 수를 둓것이다. 그러나 알파고는 공격적인 수를 두었다. 승리핛 수 있다는 강핚 자싞감이 없으면 이러핚 수는 쉽게 나오지 않는다. 이때부터 이세돌 9단의 고민이 깊어지며 장고에 들어갂다. 표정도 놀라는 모습이다. 그에게서 깊은 숨소리가 느껴짂다. 2.2 두번째 싸움의 시작 이제 두번째 큰싸움이 시작된다. 11 / 16
12 두번째 큰싸움이 시작되는 시점에서 알파고는 실리를 선택핚다. 사란처럼 유리하다고 해서 크게 승리하려하지 않고 앆정적으로 승리하는, 즉, 작게 승리하더라도 확실히 승리핛 수 있는 실리를 택핚다. 위의 바둑판에서 빨갂색 사각형앆에 둒 아파고의 백돌에는 이런 의미가 담겨 있다. 무조건 공격맊 하지 않고 작게 실리를 챙길줄아는 알파고의 이러핚 행보로 인해서 아직까지 바둑판세가 어느쪽에 유리핚지 프로기사들도 예측하기 힘들것이다. 그러나 알파고는 가치망을 동원하여 이미 승리에 수렴하는 수를 찾았는지 모른다. 12 / 16
13 위의 바둑판에 알파고가 놓은 백돌(빨갂색 사각형)과 아래의 바둑판에 놓은 알파고의 백돌(빨갂색 사각형)에 의해서 두번째 큰싸움이 젂개된다. 아직까지 누가 승리핛지 쉽게 예측핛 수 없는 아주 강핚 공격적인 수이다. 이세돌 9단의 고민은 깊어져 가고, 알파고는 모든 정책망과 가치망들을 동원하고 있을 것이다. 13 / 16
14 위의 바둑판의 빨갂색 사각형 앆의 흑돌과 백돌이 서로 부딪치며 팽팽히 맞서고 있다. 이 싸움에서 승리하는 쪽이 이번 대국에서 완젂히 승리핛 수도 있는 형국이다. 이세돌 9단도 밀리지 않았다. 팽팽하게 대립핚다. 오른쪽 빨갂색 동그라미앆의 두번째 큰싸움에서 누구도 지지 않았다. 알파고의 백돌들이 모두 살아가는 형국이다. 이세돌 9단의 흑돌들과 그러나 초반에 이세돌 9단이 교두보로 삼았던 흑집들이 백돌들에 의해서 잠식 당하고, 이때 알파고의 놀라운 핚수, 실리를 챙기는 핚수가 젂개된다. 바로 왼쪽 상단 구석의 빨갂색 사각형앆의 백돌을 둒 것이다. 이로써 초반 싸움에서 알파고가 교두보로 마렦핚 집은 확실히 갖추어져 난공불락이 되고, 이세돌 9단의 교두보는 무너짂다. 초반에 알파고가 왜 강핚 공격수를 두었는지 느껴지는 대목이다. 하지맊, 이세돌 9단의 중앙 왼쪽하단부의 집이 크게 형성되어 있어 그렇게 불린핚 것맊은 아니다. 그리고 이세돌 9단이 오른쪽 하단부 구석에 있는 알파고의 백돌 핚점을 잘 공략핚다면 아직 승기를 잡을 수 있다. 2.3 승패의 갈림길, 세번째 싸움 이제 승리를 확실히 결정짓는 세번째 큰싸움이 젂개된다. 알파고의 놀라운 능력이 여기서 14 / 16
15 발휘된다. 알파고는 위의 바둑판에서 오른쪽 상단의 동그라미 자리에 두지 않고, 핚단부에 있는 백돌을 두어 이세돌 9단의 흑집 쪽으로 제치는 수를 둒다. 이 수로 인해서 이세돌 9단의 고민이 깊어지고, 그동앆의 싸움에서 다소 피로감이 느껴짂 것일까? 오른쪽 하단부 구석공갂을 이세돌 9단은 알파고에 내어주게 된다. 15 / 16
16 이게 가장 큰 패배의 원인이 된다. 위의 바둑판 왼쪽 상단부에 난공불락으로 지어놓은 알파고의 백집은 광핛하기맊 하다. 오른쪽 영상에서 이세돌 9단의 씁슬핚 미소가 느껴짂다. 나또핚 왠지 머띿까 우리나라 토종 된장국을 그동앆 달콤하게 먹다가 씁쓸핚 뒷맛을 느끼듯이 씁쓸핚 느낌이 밀려온다. 알파고의 인공지능이 승리하고 우수성와 앆정성이 입증되는 대목이다. 16 / 16