Upload
donghun-lee
View
12.531
Download
2
Embed Size (px)
Citation preview
들어가면서
• 알파고는 “인간과 바둑을두어승리”하기위한기계1)입니다• 알파고와인간이두는바둑을논하려면
3/11/2016 바둑인을위한알파고 © 2016 이동헌 2
1) 원래 ‘ “인간의바둑”을두는기계’ 이었던표현을, 오해의여지가있다는정태호님(미국일리노이공대)의제보에동의하여, ‘ “인간과바둑을두어승리”하기위한기계’로정정합니다.제보감사합니다!
들어가면서
• 알파고는 “인간과 바둑을두어승리”하기위한기계입니다• 알파고와인간이두는바둑을논하려면
知己知彼百戰不殆
不知彼而知己一勝一負
不知彼不知己每戰必殆
• 당연히상대방을 알아야합니다• 체급이안맞는불리한시합이지만인간의승리를바라면서
• “바둑인을위한알파고”자료를만듭니다
• 아직안보셨다면 “모두의알파고”를먼저가볍게읽어주시길권합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 3
목차: 바둑인을위한알파고
• 알파고는사람이 아닙니다
• 알파고가보는것들
• 알파고를상대방 수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 4
목차: 바둑인을위한알파고
• 알파고는사람이아닙니다
• 알파고가보는것들
• 알파고를상대방 수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 5
알파고는사람이아닙니다
• 알파고는사람이 하지못하는일을할수있습니다
• 수읽기의예를든다면• 1초에백만회이상의속도 (추정)로수읽기
• 모든읽은수의승리가능성을정확하게기억하기
• 승리가능성들중에서가장높은것을정확하게선택하기
• 위의과정을여유시간동안반복하기
• 위과정에서각수마다선택된횟수를정확하게기억하기
• 위과정에서가장많이선택된수를실제로놓기
• 위과정에 “계산실수”는없습니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 6
알파고는사람이아닙니다
• 알파고는기계이기때문에가능합니다
• 수읽기의예를든다면• 1초에백만회이상의속도 (추정)로수읽기
• 모든읽은수의승리가능성을정확하게기억하기
• 승리가능성들중에서가장높은것을정확하게선택하기
• 위의과정을여유시간동안반복하기
• 위과정에서각수마다선택된횟수를정확하게기억하기
• 위과정에서가장많이선택된수를실제로놓기
• 위과정에 “계산실수”는없습니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 7
알파고는사람이아닙니다
• 이번알파고-이세돌9단 대국은사람대사람의바둑이아닙니다
• 굳이무협지에비유하자면,• 이세돌9단은팔두개의초절정인간고수
• 상대방은 수많은팔에각종무기를들고나온괴수• 상황에맞는무기를골라서쓸겁니다
• 옆의천수관음같은이미지입니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 8
알파고는지피지기를실천합니다
• 지기: “나를알다”
• 알파고의 “지기”• 컴퓨터로서, 기억과연산을매우잘할수있다
• 기억은영원히, 용량은기계추가로늘리면된다
• 연산은매우빠르게, 능력은기계추가로늘리면된다
• 시뮬레이션은나의특기이다• 핵폭탄실험의시뮬레이션은이미 1950년대에성공
• 경우의수를따지는게임은잘할수있다• 체스인간챔피언은 2000년도초반에제압성공
3/11/2016 바둑인을위한알파고 © 2016 이동헌 9
알파고는지피지기를실천합니다
• 지피: “상대를알다”
• 알파고의 “지피”• “바둑”을수학적인의미의 “게임”으로분석함
• “인간의바둑”을통계적으로분석함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 10
알파고는지피지기를실천합니다
• 알파고는바둑을 수학적으로분석했습니다
• 바둑은게임입니다• 승리조건은 “끝날때상대방보다집을많이가질것”
• 규칙에따라나와상대방이둘수있는곳들은정해짐
• 나와상대방은같은규칙으로게임을함
• 나와상대방은같은정보를갖고게임을함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 11
알파고는지피지기를실천합니다
• 알파고는바둑을 수학적으로분석했습니다
• 바둑은게임입니다• 승리조건은 “끝날때상대방보다집을많이가질것”
• 수학적으로명확하게계산됩니다
• 규칙에따라나와상대방이둘수있는곳들은정해짐
• 나와상대방은같은규칙으로게임을함
• 나와상대방은같은정보를갖고게임을함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 12
알파고는지피지기를실천합니다
• 알파고는바둑을 수학적으로분석했습니다
• 바둑은게임입니다• 승리조건은 “끝날때상대방보다집을많이가질것”
• 규칙에따라나와상대방이둘수있는곳들은정해짐• 규칙상안되는 “수”는절대나오지않습니다제반여건상생각하지못한 “수”는있을지언정...
• 나와상대방은같은규칙으로게임을함
• 나와상대방은같은정보를갖고게임을함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 13
알파고는지피지기를실천합니다
• 알파고는바둑을 수학적으로분석했습니다
• 바둑은게임입니다• 승리조건은 “끝날때상대방보다집을많이가질것”
• 규칙에따라나와상대방이둘수있는곳들은정해짐
• 나와상대방은같은규칙으로게임을함• 상대방을나와같은상황에놓고수읽기를할수있습니다
• 나와상대방은같은정보를갖고게임을함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 14
알파고는지피지기를실천합니다
• 알파고는바둑을 수학적으로분석했습니다
• 바둑은게임입니다• 승리조건은 “끝날때상대방보다집을많이가질것”
• 규칙에따라나와상대방이둘수있는곳들은정해짐
• 나와상대방은같은규칙으로게임을함
• 나와상대방은같은정보를갖고게임을함• 정보: 바둑판의상황, 누구차례, 몇점을땄는가등등..
• 상대방의특성이외에추측할숨겨진다른정보가없음
3/11/2016 바둑인을위한알파고 © 2016 이동헌 15
알파고는지피지기를실천합니다
• 알파고는바둑을 수학적으로분석했습니다
• 바둑은게임입니다• 승리조건은 “끝날때상대방보다집을많이가질것”
• 규칙에따라나와상대방이둘수있는곳들은정해짐
• 나와상대방은같은규칙으로게임을함
• 나와상대방은같은정보를갖고게임을함• 정보: 바둑판의상황, 누구차례, 몇점을땄는가등등..
• 상대방의특성이외에추측할숨겨진다른정보가없음• 알파고팀이주목한점: 상대방은 “인간”
3/11/2016 바둑인을위한알파고 © 2016 이동헌 16
알파고는지피지기를실천합니다
• 알파고는 “인간의바둑”을공부했습니다• “인간의바둑”을흉내내는법을익히자
• 온라인대국(KGS)기보자료
• 어중이떠중이도프로기사도 “인간”입니다.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 17
알파고는지피지기를실천합니다
• 알파고는 “인간의바둑”을공부했습니다• “인간의바둑”을흉내내는법을익히자
• 온라인대국(KGS)기보자료• “인터넷의어중이떠중이기보”도있겠지만
• 전세계프로기사들의프로경기기보도올라옵니다
• 대국당사자들의기력을수치화시킨 ELO값도제공
• 어중이떠중이도 프로기사도 “인간”입니다.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 18
알파고는지피지기를실천합니다
• 알파고는 “인간의바둑”을공부했습니다• “인간의바둑”을흉내내는법을익히자
• 온라인대국(KGS)기보자료
• 어중이떠중이도프로기사도 “인간”입니다.• “인간”이두는바둑에는인간의특성과한계가녹아있습니다
• “인간의바둑”16만대국에서나온 3천만수를분석
3/11/2016 바둑인을위한알파고 © 2016 이동헌 19
알파고는지피지기를실천합니다
• 알파고는 “인간의바둑”을공부했습니다• “인간의바둑”을흉내내는법을익히자
• 온라인대국(KGS)기보자료
• 어중이떠중이도프로기사도 “인간”입니다.• “인간”이두는바둑에는인간의특성과한계가녹아있습니다
• “인간의바둑”16만대국에서나온 3천만수를분석• 컴퓨터만이할수있는방법을사용
3/11/2016 바둑인을위한알파고 © 2016 이동헌 20
알파고는지피지기를실천합니다
• 알파고의지피:• “바둑”그리고 “인간의바둑”을공부했습니다
• 알파고의지기:• 알파고의컴퓨터로서의능력을최대화해서임합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 21
인간도지피지기를합시다
• 알파고의지피:• “바둑”그리고 “인간의바둑”을공부했습니다
• 알파고의지기:• 알파고의컴퓨터로서의능력을최대화해서임합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 22
인간도지피지기를합시다
• 알파고의지피:• “바둑”그리고 “인간의바둑”을공부했습니다
• 알파고의지기:• 알파고의컴퓨터로서의능력을최대화해서임합니다
• 알파고와인간의 바둑대결에는• 인간도 “알파고의바둑”을이해하고임해야합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 23
목차: 바둑인을위한알파고
• 알파고는사람이 아닙니다
• 알파고가보는것들
• 알파고를상대방 수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 24
알파고가보는것들
• 알파고는바둑을 둘때어떤것들을신경쓸까요?
• 일단안보는것들은다음과같습니다• 상대방의경력약력평가
• 상대방의표정이나행동
• 상대방이한수를두기위해고민한시간
• 이경기뒤에생길일들
3/11/2016 바둑인을위한알파고 © 2016 이동헌 25
알파고가보는것들
• 알파고는바둑을 둘때어떤것들을신경쓸까요?
• 보는것은다음과같습니다• 바둑판에놓인돌의배치, 잡힌돌, 잡은돌, 누구차례
• 자신에게남은시간 (전체시간및초읽기시간)
• 신경쓰는것은다음과같습니다• “내가두는수”가만들어갈바둑판의미래모양들
• 그바둑판의수많은미래에서승리할확률평균을극대화할한수
3/11/2016 바둑인을위한알파고 © 2016 이동헌 26
알파고가보는것들
• 알파고의기본태도를요약하면,
“평균적으로이길수밖에없는방향으로한수씩차근차근”
3/11/2016 바둑인을위한알파고 © 2016 이동헌 27
알파고가보는것들
• 구체적으로바둑판의뭘보는지알아봅시다• 특성별로 9가지를반영합니다
• 현재바둑판의각점 (19x19=361점)에 대해1. 각점고유한특성 (몇행몇열?)
2. 내돌이놓였는지? 적돌이놓였는지? 빈칸인지?
3. 돌이놓여있다면몇수전에놓았는지? (1~8수전까지 1수단위로기억)• (8수전보다더전에놓였다면, 알파고는그런옛돌들의 “착수순서”를잊어먹는다?!)
3/11/2016 바둑인을위한알파고 © 2016 이동헌 28
알파고가보는것들
• 구체적으로바둑판의뭘보는지알아봅시다• 특성별로 9가지를반영합니다
• 현재바둑판의각점 (19x19=361점)에 대해4. 그점에놓여있는연결된돌(말)의활로가몇개인지? (1~8개까지 1개
단위로고려) (8개이상이면 8개로생각할듯 (추정))
5. 그점이단수자리라면상대가두었을때내가몇개의돌을잃을지(1~8개까지 1개단위로고려) (8개이상이면 8개로생각할듯 (추정))
6. 이번수를그점에놓을때, 그점에연결될돌(말)의활로가몇개인지(1~8개까지 1개단위로고려) (8개이상이면 8개로생각할듯 (추정))
3/11/2016 바둑인을위한알파고 © 2016 이동헌 29
알파고가보는것들
• 구체적으로바둑판의뭘보는지알아봅시다• 특성별로 9가지를반영합니다
• 현재바둑판의각점 (19x19=361점)에 대해7. 이번수를그점에놓을때, 내가축을만드는데성공할지
8. 이번수를그점에놓을때, 내가축을탈출하는데성공할지
9. 그점에착수하는게바둑의착수규칙에어긋나지않는지 (“패”를고려)
3/11/2016 바둑인을위한알파고 © 2016 이동헌 30
알파고가보는것들
• 매번자기차례에, 바둑판의모든점에대해서, 위의 9가지특성을정확하게계산합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 31
알파고가보는것들
• 매번자기차례에, 바둑판의모든점에대해서, 위의 9가지특성을정확하게계산합니다
• 여기에서부터 1차적으로, 바둑판의각점에대해• 주변상하좌우 2칸씩의영역을고려 (5x5)
• 수백개의 5x5패턴 “1차패턴”에일치도를계산
• 각점주변 2칸의영역을고려한일치도를각 1차패턴별로기억.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 32
*수학식, 그리고딥러닝에대한설명없이는여기서더들어가면더이상 “바둑인을위한“ 이아니게된다고생각합니다** 그래도.. 19x19 바둑판에대한 9개의피쳐셋, 5x5 CNN 과 3x3 CNN 및각각에적용되는필터의예를쉽게그려서보여줄그림자료를넣으면좋겠는데, 일러스트가능하신분연락부탁합니다: [email protected]
알파고가보는것들
• 1차패턴별일치도계산값을기반으로• 각점주변상하좌우 1칸씩의영역을고려 (3x3)
• 수백개의 3x3 패턴 “2차패턴”에일치도를계산
• 각 2차패턴별일치도계산값을기억
• 2차부터 12차패턴까지 11개층을반복• 12차패턴까지일치도계산값을모두기억
3/11/2016 바둑인을위한알파고 © 2016 이동헌 33
*수학식, 그리고딥러닝에대한설명없이는여기서더들어가면더이상 “바둑인을위한“ 이아니게된다고생각합니다** 그래도.. 19x19 바둑판에대한 9개의피쳐셋, 5x5 CNN 과 3x3 CNN 및각각에적용되는필터의예를쉽게그려서보여줄그림자료를넣으면좋겠는데, 일러스트가능하신분연락부탁합니다: [email protected]
알파고가보는것들
• 알파고의바둑판 분석을요약한다면• 각점별로돌의유무및고유특성분석
• 각점에연결된말의사활분석
• 각점별축, 패관련특수상황분석
• 각점별상하좌우 2칸씩고려한 5행 5열공간을 1차국지분석
• 국지분석결과기반, 상하좌우 1칸고려한 2차연결공간분석
• 위의연결공간분석을 11개층 (2차-12차)으로최대 11칸까지확장연결• 19행 19열바둑판의귀퉁이점에서는바둑판의대략 ¼을, 중앙점에서는바둑판전체까지분석가능하게명확히구조설계됨
3/11/2016 바둑인을위한알파고 © 2016 이동헌 34
알파고가보는것들
• 알파고의바둑판 분석을더욱요약한다면• 각점별, 그리고각말별분석이가능
• 국지분석과전체분석이가능한구조
• 인간보다더뛰어난점이있다면• 착수전에저분석을위한계산을바로할수있고
• 계산값을모두정확하게기억하고있으며
• 따라서비교를할때애매해서고민할필요가없으며
• 덤으로시합내내지치지않고계산할수있음
3/11/2016 바둑인을위한알파고 © 2016 이동헌 35
알파고가보는것들
• 알파고의바둑판 분석을더욱요약한다면• 각점별, 그리고각말별분석이가능
• 국지분석과전체분석이가능한구조
• 인간보다더뛰어난점을요약한다면• 지치지않고엄청난양의계산과기억을한다는것.
• 컴퓨터수백대가 동시에동원되므로가능한일
3/11/2016 바둑인을위한알파고 © 2016 이동헌 36
목차: 바둑인을위한알파고
• 알파고는사람이 아닙니다
• 알파고가보는것들
• 알파고를상대방수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 37
알파고의상대방수읽기
• 알파고의상대방 다음수예측프로그램기본구조• 바둑판이주어졌을때,
• 앞에설명한바둑판인식과정을거친뒤
• 모든둘수있는자리에대해
• 각자리에수가나올확률을계산
• 그중가장확률이높은수를 “다음수”로예측
• 57% 확률로성공
3/11/2016 바둑인을위한알파고 © 2016 이동헌 38
알파고의상대방수읽기
• “인간이두는바둑”다음한수를 57% 확률로예측• “인간”에는프로기사도포함되어있음
• 바둑판에놓을수있는모든수중에서한수를 예측• 한수를정확히예측하는데 57% 성공
3/11/2016 바둑인을위한알파고 © 2016 이동헌 39
알파고의상대방수읽기
• “인간이두는바둑”다음한수를 57% 확률로예측• “인간”에는프로기사도포함되어있음
• 바둑판에놓을수있는모든수중에서한수를 예측• 한수를정확히예측하는데 57% 성공
• 하지만, 중요한내용이비공개상태• 놓을수있는모든수가많은초반성공확률
• 놓을수있는모든수가적어진후반성공확률
3/11/2016 바둑인을위한알파고 © 2016 이동헌 40
알파고의상대방수읽기
• “인간이두는바둑”다음한수를 57% 확률로예측• “인간”에는프로기사도포함되어있음
• 바둑판에놓을수있는모든수중에서한수를 예측• 한수를정확히예측하는데 57% 성공
• 하지만, 중요한내용이비공개상태• 놓을수있는모든수가많은초반성공확률
• 놓을수있는모든수가적어진후반성공확률
• 추정컨대, 후반예측성공확률은 57%보다높을것 (고를선택지가줄어듦)
3/11/2016 바둑인을위한알파고 © 2016 이동헌 41
알파고의상대방수읽기
• “인간이두는바둑”다음한수를 57% 확률로예측• “인간”에는프로기사도포함되어있음
• 바둑판에놓을수있는모든수중에서한수를 예측• 한수를정확히예측하는데 57% 성공
• 하지만, 중요한내용이비공개상태• 놓을수있는모든수가많은초반성공확률
• 놓을수있는모든수가적어진후반성공확률
• 추정컨대, 후반예측성공확률은 57%보다높을것 (고를선택지가줄어듦)
• 따라서, 평균 57%라면전반예측률은당연히 57%보다낮을것
3/11/2016 바둑인을위한알파고 © 2016 이동헌 42
목차: 바둑인을위한알파고
• 알파고는사람이 아닙니다
• 알파고가보는것들
• 알파고를상대방 수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 43
알파고의수내다보기
• 알파고는수내다보기에 두가지방법을섞습니다• 알파고의바둑판세분석에따른승리확률치
• 알파고의상대방수읽기에기반을둔시뮬레이션
3/11/2016 바둑인을위한알파고 © 2016 이동헌 44
알파고의수내다보기
• 알파고는수내다보기에 두가지방법을섞습니다• 알파고의바둑판세분석에따른승리확률치
• 알파고의상대방수읽기에기반을둔시뮬레이션
• 섞는이유는명확합니다• 수읽기는매우힘듭니다. 특히놓을곳이많은초반에는더욱.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 45
알파고의수내다보기
• 알파고는수내다보기에 두가지방법을섞습니다• 알파고의바둑판세분석에따른승리확률치
• 알파고의상대방수읽기에기반을둔시뮬레이션
• 섞는이유는명확합니다• 수읽기는매우힘듭니다. 특히놓을곳이많은초반에는더욱.
• 알파고의상대방 수읽기이미살펴보았으니, 이제알파고의판세분석에대해알아봅시다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 46
알파고의수내다보기
• 알파고의바둑판세 분석프로그램의구조• 바둑판상황인식은앞에설명한 1차+(2-12차) 구조를그대로씁니다
• 판세분석은미리미리해둔값을그대로쓰는것입니다
• 미리판세분석을어떻게해보았을까?• 자기자신과의대국, 3천만대국을미리했습니다
• 각대국별로딱한상황의딱한수를보고 “기억”합니다
• 그딱한상황의딱한수가마지막에승리로이어졌는지아닌지를
3/11/2016 바둑인을위한알파고 © 2016 이동헌 47
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 그 “한상황”은어떻게선택했는가?• 각게임의처음에몇번째수를쓸건지무작위로결정
• 1~480 수사이의한수결정
• 예를들어, 50번째수라고합시다
• 바둑기사들에게서배운 “인간의바둑”을사용해서그직전까지진행• 50번째수를배울예정이면, 49수까지지요
3/11/2016 바둑인을위한알파고 © 2016 이동헌 48
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• “마지막”까지어떻게진행하는가? (제 50수를배우기로정했다면)• 50번째수부터몇수를더 “무작위로”둘것인지결정
• 1~391 사이의수.
• 예를들어 33이나왔다고합시다
• 50+33 = 83번째수를두기직전까지 “무작위로”착수• 최소한의규칙에어긋나지않는범위에서 “무작위”
3/11/2016 바둑인을위한알파고 © 2016 이동헌 49
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• “마지막”까지어떻게진행하는가? (제 50수를배우기로정했다면)• 83번째수부터는자체대국을통해배운수내다보기프로그램으로착수진행해서승부가날때까지진행• 최종결과결정.
• 결과가승리라면그 50번째둔수의 “마지막”이승리로간주.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 50
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 판세분석을위한가상대결법요약 (제 50수를배우기로정했다면)• 49수까지는 “인간의바둑”흉내내기
• 50번째수는무작위착수
• 그후 32회 (무작위착수횟수를 33회로정한다면) 무작위착수 (82수까지무작위착수함)
• 경기종료까지 “알파고자체대국의바둑”으로진행
3/11/2016 바둑인을위한알파고 © 2016 이동헌 51
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 판세분석을위한가상대결법요약 (제 50수를배우기로정했다면)• 49수까지는 “인간의바둑”흉내내기
• 인간과두는바둑에서나오는판들을중점적으로분석함
• 50번째수는무작위착수
• 그후 32회 (무작위착수횟수를 33회로정한다면) 무작위착수 (82수까지무작위착수함)
• 경기종료까지 “알파고자체대국의바둑”으로진행
3/11/2016 바둑인을위한알파고 © 2016 이동헌 52
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 판세분석을위한가상대결법요약 (제 50수를배우기로정했다면)• 49수까지는 “인간의바둑”흉내내기
• 50번째수는무작위착수• 이부분을통해 “말도안되는수”, “변칙수”를메꾸려는시도
• 그후 32회 (무작위착수횟수를 33회로정한다면) 무작위착수 (82수까지무작위착수함)
• 경기종료까지 “알파고자체대국의바둑”으로진행
3/11/2016 바둑인을위한알파고 © 2016 이동헌 53
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 판세분석을위한가상대결법요약 (제 50수를배우기로정했다면)• 49수까지는 “인간의바둑”흉내내기
• 50번째수는무작위착수
• 그후 32회 (무작위착수횟수를 33회로정한다면) 무작위착수 (82수까지무작위착수함)• 무작위착수횟수도무작위로정한다는점을잘봐둡시다
• 경기종료까지 “알파고자체대국의바둑”으로진행
3/11/2016 바둑인을위한알파고 © 2016 이동헌 54
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 판세분석을위한가상대결법요약 (제 50수를배우기로정했다면)• 49수까지는 “인간의바둑”흉내내기
• 50번째수는무작위착수
• 그후 32회 (무작위착수횟수를 33회로정한다면) 무작위착수 (82수까지무작위착수함)
• 경기종료까지 “알파고자체대국의바둑”으로진행• 무작위시점종료이후에는, 마치알파고가실제로둔것처럼승패예측을하기위함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 55
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱 “한상황”의딱 “한수”가마지막에승리로이어졌는지아닌지를?
• 다양한판세분석을위해반복연습• 자체대국을 3천만번반복.
• 각대국별로딱한수를배움.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 56
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱한상황의딱한수가마지막에승리로이어졌는지아닌지를?
• 대체적으로올바른방향• 인간과의대국상황에중점적으로
• 무작위한전개시점의 “딱한상황”에서 (1~480수사이)
• 무작위적 “딱한수”를평가할때
• 무작위적착수요소를무작위분량으로추가 (1~361회사이)
• 최종마무리는알파고의바둑으로 (마치알파고가두는것처럼)
• 승패를결정하여
• “딱한상황의무작위딱한수”가승리로연결되는지살펴봄
3/11/2016 바둑인을위한알파고 © 2016 이동헌 57
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱한상황의딱한수가마지막에승리로이어졌는지아닌지를?
• 대체적으로올바른방향
• 문제점 1• 대국시뮬레이션시 “무작위”착수가 “무작위”분량추가되므로
• 3천만대국이충분히많은양인지단정하기힘듦
3/11/2016 바둑인을위한알파고 © 2016 이동헌 58
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱한상황의딱한수가마지막에승리로이어졌는지아닌지를?
• 대체적으로올바른방향
• 문제점 1
• 문제점 2• “무작위”착수를 “무작위”분량진행함
• 초반상황부터무작위착수한경우, 특히 “무작위”착수분량이길게나올수있음
• 이경우에는승리패배의결과를신뢰하기힘들어짐
3/11/2016 바둑인을위한알파고 © 2016 이동헌 59
알파고의수내다보기
• 이러한판세분석이올바른가?• 그딱한상황의딱한수가마지막에승리로이어졌는지아닌지를?
• 대체적으로올바른방향
• 문제점 1
• 문제점 2
• 위의문제점들이구조적으로내재된알파고판세분석
3/11/2016 바둑인을위한알파고 © 2016 이동헌 60
알파고의수내다보기
• 그렇지만..
• 알파고판세분석을알파고바둑판미래예측의 보조로도입• 판세분석이완벽하지않고, 구조적인문제가있지만
• 특히초반에더문제가있지만
• 미리예습해둔것은가치가있다!• 미래예측을위한시간을절약할수있으므로
• 포석정석을공부해서사용하는것과유사한장점
3/11/2016 바둑인을위한알파고 © 2016 이동헌 61
알파고의수내다보기
• 판세예측은다살펴봤습니다. 이제바둑판미래예측을 봅시다.
• 알파고바둑판미래예측프로그램구조• 체스프로그램과근본적으로유사한구조
• 인간의수를예측하고
• 알파고의착수를진행하는과정을
• 미래 “몇수”까지진행• “몇수”까지인지는공개되어있지않음
3/11/2016 바둑인을위한알파고 © 2016 이동헌 62
알파고의수내다보기
• 알파고바둑판미래예측프로그램• 수백대의컴퓨터를활용해도불가능한것은있음
• 초반부터미래끝까지예측하기엔시간이모자람• 따라서특정 “몇수” 이후 “판세예측”에의존
3/11/2016 바둑인을위한알파고 © 2016 이동헌 63
알파고의수내다보기
• 알파고바둑판미래예측프로그램• 수백대의컴퓨터를활용해도불가능한것은있음
• 초반부터미래끝까지예측하기엔시간이모자람• 따라서특정 “몇수” 이후 “판세예측”에의존
• 미래 “몇수”까지진행하는지를시간분배의관점에서조절(추정)• “몇수”까지인지는공개되어있지않지만, 가변적으로조절가능
3/11/2016 바둑인을위한알파고 © 2016 이동헌 64
알파고의수내다보기
• 알파고바둑판미래예측프로그램• 수백대의컴퓨터를활용해도불가능한것은있음
• 초반부터미래끝까지예측하기엔시간이모자람• 따라서특정 “몇수” 이후 “판세예측”에의존
• 미래 “몇수”까지진행하는지를시간분배의관점에서조절(추정)• “몇수”까지인지는공개되어있지않지만, 가변적으로조절가능
• 초반에는짧게끊고, 중후반에는더멀리까지내다보기가능• 알파고가중후반에시간을더들여 “고민”할가능성이훨씬큰이유
3/11/2016 바둑인을위한알파고 © 2016 이동헌 65
알파고의수내다보기
• 알파고바둑판미래예측프로그램• 수백대의컴퓨터를활용해도불가능한것은있음
• 초반부터미래끝까지예측하기엔시간이모자람• 따라서특정 “몇수” 이후 “판세예측”에의존
• 미래 “몇수”까지진행하는지를시간분배의관점에서조절(추정)• “몇수”까지인지는공개되어있지않지만, 가변적으로조절가능
• 초반에는짧게끊고, 중후반에는더멀리까지내다보기가능• 알파고가중후반에시간을더들여 “고민”할가능성이훨씬큰이유
• “신의한수”가중후반에나올수있는이유
3/11/2016 바둑인을위한알파고 © 2016 이동헌 66
목차: 바둑인을위한알파고
• 알파고는사람이 아닙니다
• 알파고가보는것들
• 알파고를상대방 수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 67
알파고의수결정하기
• 기본적으로알파고는 “승리”에가까워지는수를둡니다• 승리할확률이가장높아지는판모양을만들어갑니다
• 이러한수를결정하는데는• 미래예측프로그램 + 판세예측프로그램을통한승리확률계산
• 초반에는판세예측이우세하고• 초반미래예측을길게하기에는알파고의시간과능력부족
• 후반에는미래예측이우세합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 68
알파고의수결정하기
• 기본적으로알파고는 “승리”에가까워지는수를둡니다• 승리할확률이가장높아지는판모양을만들어갑니다
• 이러한수를결정하는데는• 미래예측프로그램 + 판세예측프로그램을통한승리확률계산
• 바둑판미래전개를시뮬레이션하는원리• 처음몇번시뮬레이션에는 “해본적없는것”을좀시도 (“시뮬레이션”에서!)
• 반복을통해서엉뚱한시도횟수를차차줄여감• 확실한수를중점적으로체크함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 69
알파고의수결정하기
• 기본적으로알파고는 “승리”에가까워지는수를둡니다• 승리할확률이가장높아지는판모양을만들어갑니다
• 이러한수를결정하는데는• 수많은시뮬레이션이수많은컴퓨터에서실행되면서
• 각수마다여러번해봐서판세가얼마나좋은지평균값들이나옵니다
• 그평균값이최대가되는수를놓으면제일좋겠지요?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 70
알파고의수결정하기
• 기본적으로알파고는 “승리”에가까워지는수를둡니다• 승리할확률이가장높아지는판모양을만들어갑니다
• 이러한수를결정하는데는• 수많은시뮬레이션이수많은컴퓨터에서실행되면서
• 각수마다여러번해봐서판세가얼마나좋은지평균값들이나옵니다
• 그평균값이최대가되는수를놓으면제일좋겠지요?
• 알파고는그 “최대가되는수” 가 “내가가장많이해본수”일때바로그수를선택해서착수• 만약가장많이해본게아니라면, 추가시간을들여서더시뮬레이션해봄
3/11/2016 바둑인을위한알파고 © 2016 이동헌 71
알파고의수결정하기
• 요약한다면, 알파고는 두단계로나누어서착수합니다• 수많은시뮬레이션
• 판세분석과미래예측의결합 (어쩔수없다면미래예측을짧게끊음)
• 평균적으로더 “승리가확실한” 판으로가는수를파악
• 그리고필요하다면재확인• 제일 “승리가확실한” 수를시뮬레이션으로거듭확인
• 확인되면그수로선택
3/11/2016 바둑인을위한알파고 © 2016 이동헌 72
알파고의수결정하기
• 요약한다면, 알파고는 두단계로나누어서착수합니다• 수많은시뮬레이션
• 판세분석과미래예측의결합 (어쩔수없다면미래예측을짧게끊음)
• 평균적으로더 “승리가확실한” 판으로가는수를파악
• 그리고필요하다면재확인• 제일 “승리가확실한” 수를시뮬레이션으로거듭확인
• 확인되면그수로선택
• 이것이알파고가 “안정적인수”를두는비결이고
• 이것이알파고가 후반부에가끔대충두는이유입니다• 대충둬도승리가 (조금이나마더) 확실하다고판단했기때문입니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 73
목차: 바둑인을위한알파고
• 알파고는사람이 아닙니다
• 알파고가보는것들
• 알파고를상대방 수읽기
• 알파고의수내다보기
• 알파고의수결정하기
• 알파고를상대하려면?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 74
알파고를상대하려면
• 알파고는사람이 만든기계입니다• 당연히한계가있습니다 (바둑의신이아닙니다!)
• 다만 “인간과의바둑”에특화해서설계되어서무적처럼보이는것입니다
• 후반부에갈수록강해지는특성이있습니다• 정말모든수를내다보고완벽히승리를향해움직일수있습니다
• 따라서, 알파고의 구조적약점을공략해야합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 75
알파고를상대하려면
• 지금까지분석한 알파고의구조적약점
1. 판세분석데이터의잠재적불완전성
2. 짧은기억력 - 돌이놓인지 8수가지나면 “옛날돌”로간주함
3. 시간제한으로모든경우의수고려하지못하는한계
3/11/2016 바둑인을위한알파고 © 2016 이동헌 76
알파고를상대하려면
• 약점 1: 판세분석데이터의잠재적불완전성• 최대한 “인간과의바둑대결”에특화된 3천만자체모의대국
• 그시작은항상 “인간의바둑”을흉내낸바둑판• 바둑인들께질문: 인간의바둑같지않은, 하지만매우좋은포석을만드는방법은?
• 자체대국의착수과정에임의적무작위성주입으로인해판세분석값이100% 정확하지는않음
• 3천만대국으로 “인간의바둑”의모든경우를헤아린다는보장도없음
• 특히초반에는더욱경우의수가많기때문에더욱판세분석이불완전함
3/11/2016 바둑인을위한알파고 © 2016 이동헌 77
알파고를상대하려면
• 약점 2: 짧은기억력 - 돌이놓인지 8수가지나면 “옛날돌”로간주• 8수가지나버린착수들은착수순서를잊어버린다는말
• 인간이초반변칙공격에약할것이란점은중론이지만• (약점 1 때문 – 본적없는판이나오면알파고판세분석이믿을수없게됨)
• 인간의한계상• 20세기-21세기바둑에서인간이두지않은변칙포석이면서유리한포석이있을까?
• 이걸며칠사이에찾아내서다듬고완성할수있을까?
• 하지만지난 8수까지만순서를기억하는 “짧은기억력”을악용해주면?• 4귀와 4변총합 8군데의포석을한번에한수씩시계방향으로돌면서두면?
• 이렇게둔인간이있을까? 동시에 8군데포석계획을동시에진행할수는있을까?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 78
알파고를상대하려면
• 약점 3: 시간제한으로 인한모든경우의수고려불가능• 구글의컴퓨터로도알파고가첫수부터모든경우의수를고려하지는못합니다• 알파고뿐만이아니라, 수내다보기의당연한한계입니다
• 이것을위해서알파고는 “판세예측값”을쓰는데, 이값자체가약점1 입니다.
• 2시간생각시간제한• 상대방이생각하는시간동안도알파고는다음수읽기를합니다 (공짜시간이니까요)
• 알파고의차례에는초반부엔시간을아껴쓰리라생각됩니다• 미래예측을좀줄이고, 판세예측값을좀더일찍사용하니까요
• 그래야중반부에더깊은수읽기를보다일찍시작할여유시간이생기니까요
3/11/2016 바둑인을위한알파고 © 2016 이동헌 79
알파고를상대하려면
• 알파고의구조적 약점을초중후반으로나누어봅니다
• 초반부의약점• 여유시간배분을위해판세분석데이터에의존. 이판세분석의잠재적불완전성
• 8수전보다더오래된수는착수순서를기억하지못함. 멀리떨어진여러곳(예를들어 4귀, 4변도합 8곳)의동시다발포석진행이가능한여유공간이있음
• 중반부의약점• 미래예측을위한여유시간이모자라면먼미래까지수읽기시작이늦어짐
• 후반부의약점• 경우의수가줄어들어승리를향한거의완벽한수읽기가가능하므로약점이없음
• 자기가보기에어떠한수를두어도승리확률이 10%미만인순간기권한다는게약점?
3/11/2016 바둑인을위한알파고 © 2016 이동헌 80
알파고를상대하려면
• 알파고의구조적 약점공략키포인트
• 초반부의알파고의구조적약점을공격• 판세예측이불완전하고, 미래예측이얕음 + 8수의 “짧은기억력” 공략하여본적없다고착각하는판을만들어서흔들기
• 초중반에생각시간을줄여서알파고에주는공짜시간을줄이기• 알파고의시간을최대한사용할수밖에없게해서알파고가깊은수읽기를조기에시작하지못하게지연
• 따라서후반부로넘어가는시간을최대한지연
• 후반부에완벽한방어로알파고의기권을유도
3/11/2016 바둑인을위한알파고 © 2016 이동헌 81
알파고를상대하려면
• 알파고에게승리를거두려면• 알파고의기권으로불계승을거두기를목표로도전해야합니다
• 한수의낭비도없이시작부터견실한공격으로실세를쌓고
• 여기저기 (8곳이상이면좋지요) 한수씩진행하는포석으로혼란시키고
• 알파고의후반부전환을눈치채서철저한방어태세로전환하여
• 기권이나올때까지희생을최소화하며빈틈없는굳히기
• 왜냐면후반부의알파고는정말 “바둑의신”같아질수있기때문입니다• 모든미래를다계산할수있게되니까요
• “바둑판의미래를알고, 철저히승리할확률을높여가는것”과바둑을둔다면, 인간으로서승리를장담하기버거움
• 최대한시간을아껴두고, 최대한수를읽으며, 방어를굳혀야합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 82
알파고를상대하려면
• (미숙하지만) 인간의승리를위한구도를그려봅니다• 알파고가약한초반을압도하는 (변칙)맹공
• 핵심목표: 최대한전체구도를장악하기
• 보조목표: 최소한의시간사용으로알파고가자기시간을최대한소모하게하기
• 중반까지대국적인안정을추구하고실세를챙겨나감• 핵심목표: 초반에얻은실세를굳혀나가기
• 보조목표: 알파고가후반부로넘어가는순간을눈치채기
• 후반알파고의맹공을완벽하게막으며빈틈을줄여나가승리를굳히기• 핵심목표: 빈틈을막아알파고의기권을유도
• 보조목표: 알파고가내는묘수의참뜻을이해하기
3/11/2016 바둑인을위한알파고 © 2016 이동헌 83
알파고를상대하려면
• (미숙하지만) 인간의승리를위한구도를그려봅니다• 알파고가약한초반을압도하는 (변칙)맹공
• 핵심목표: 최대한전체구도를장악하기
• 보조목표: 최소한의시간사용으로알파고가자기시간을최대한소모하게하기
• 초중반에알파고의방어를뚫어최대한챙겨놓고
• 중반까지대국적인안정을추구하고실세를챙겨나감• 핵심목표: 초반에얻은실세를굳혀나가기
• 보조목표: 알파고가후반부로넘어가는순간을눈치채기
• 후반알파고의맹공을완벽하게막으며빈틈을줄여나가승리를굳히기• 핵심목표: 빈틈을막아알파고의기권을유도
• 보조목표: 알파고가내는묘수의참뜻을이해하기
3/11/2016 바둑인을위한알파고 © 2016 이동헌 84
알파고를상대하려면
• (미숙하지만) 인간의승리를위한구도를그려봅니다• 알파고가약한초반을압도하는 (변칙)맹공
• 핵심목표: 최대한전체구도를장악하기
• 보조목표: 최소한의시간사용으로알파고가자기시간을최대한소모하게하기
• 초중반에알파고의방어를뚫어최대한챙겨놓고
• 중반까지대국적인안정을추구하고실세를챙겨나감• 핵심목표: 초반에얻은실세를굳혀나가기
• 보조목표: 알파고가후반부로넘어가는순간을눈치채기
• 중후반에알파고의공격을최소한의희생으로막는다
• 후반알파고의맹공을완벽하게막으며빈틈을줄여나가승리를굳히기• 핵심목표: 빈틈을막아알파고의기권을유도
• 보조목표: 알파고가내는묘수의참뜻을이해하기
3/11/2016 바둑인을위한알파고 © 2016 이동헌 85
마무리하며
사실알파고-이세돌9단 대국은기계의도전이아닙니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 86
마무리하며
사실알파고-이세돌9단 대국은기계의도전이아닙니다
인간의도전입니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 87
마무리하며
사실알파고-이세돌9단 대국은기계의도전이아닙니다
인간의도전입니다
인간바둑의역사의일부분그자체를,현존최고수준의인공지능기술로,
불완전하게나마 실체화한것이알파고입니다.
3/11/2016 바둑인을위한알파고 © 2016 이동헌 88
마무리하며
사실알파고-이세돌9단 대국은기계의도전이아닙니다
인간의도전입니다
인간바둑의역사의일부분그자체를,현존최고수준의인공지능기술로,
불완전하게나마 실체화한것이알파고입니다.
이에현존인간최강의바둑기사가도전하는것입니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 89
마무리하며
2016년 3월 10일, 제2국에서이세돌 9단이패배한후,
주변에서종종들립니다
“알파고를상대하기에이창호 9단이더낫지않았을까?”
3/11/2016 바둑인을위한알파고 © 2016 이동헌 90
마무리하며
2016년 3월 10일, 제2국에서이세돌 9단이패배한후,
주변에서종종들립니다
“알파고를상대하기에이창호 9단이더낫지않았을까?”
초반의맹공보다는
누구보다빨리시작하는중후반수읽기
그에기반한누구보다도굳건한굳히기와정교한마무리
이창호 9단의바둑이라고들었습니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 91
마무리하며
초반의맹공보다는
누구보다빨리시작하는중후반수읽기
그에기반한누구보다도굳건한굳히기와정교한마무리
이창호 9단의바둑이기도하지만,
알파고의바둑의특징이기도합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 92
마무리하며
초반의맹공보다는
누구보다빨리시작하는중후반수읽기
그에기반한누구보다도굳건한굳히기와정교한마무리
이창호 9단의바둑이기도하지만,
알파고의바둑의특징이기도합니다
알파고는어떤인간보다도많은수를빨리읽습니다
알파고의실체는수백대의컴퓨터일테니까요
어떤인간도수읽기로도전해서는이기지못하리라장담합니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 93
마무리하며
이세돌 9단에게,
3/11/2016 바둑인을위한알파고 © 2016 이동헌 94
마무리하며
이세돌 9단에게,
당신이이창호 9단에처음도전할때를떠올려주세요
3/11/2016 바둑인을위한알파고 © 2016 이동헌 95
마무리하며
이세돌 9단에게,
당신이이창호 9단에처음도전할때를떠올려주세요
당신의이번상대인알파고는
더욱빨리수읽기를시작하고있을것이며
후반에는인간을넘어선완벽한수읽기를할것입니다
3/11/2016 바둑인을위한알파고 © 2016 이동헌 96
마무리하며
이세돌 9단,
인간의한계를초월한바둑기사에게 도전한다는마음으로
인간바둑역사의새로운장을연다는마음으로
3/11/2016 바둑인을위한알파고 © 2016 이동헌 97
마무리하며
이세돌 9단,
인간의한계를초월한바둑기사에게 도전한다는마음으로
인간바둑역사의새로운장을연다는마음으로
도전하고
3/11/2016 바둑인을위한알파고 © 2016 이동헌 98
마무리하며
이세돌 9단,
인간의한계를초월한바둑기사에게 도전한다는마음으로
인간바둑역사의새로운장을연다는마음으로
도전하고
승리하세요
3/11/2016 바둑인을위한알파고 © 2016 이동헌 99
수고하셨습니다
• 개인적인부탁• 알파고-이세돌9단 2국패배소식을듣자마자시간을최대한빼내글을작성했지만.. 쉽게풀어쓰느라예상보다시간이더걸렸습니다
• 이세돌 9단에게다음대국전되도록빨리이글을전하고싶습니다
• 아쉽지만저는직접연락이닿지않습니다
• 독자여러분들, 공유/전파/전달부탁드립니다
• 피드백/오류제보는 여기로보내주세요• [email protected]
3/11/2016 바둑인을위한알파고 © 2016 이동헌 100