SlideShare a Scribd company logo
1 of 100
Download to read offline
바둑인을 위한 알파고
+ 알파고의 구조적 약점 3가지
이동헌
donghun2014@gmail.com
들어가면서
• 알파고는 “인간과 바둑을 두어 승리”하기 위한 기계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 및 각각에 적용되는 필터의 예를 쉽게 그려서 보여줄
그림자료를 넣으면 좋겠는데, 일러스트 가능하신분 연락 부탁합니다: donghun2014@gmail.com
알파고가 보는 것들
• 1차 패턴별 일치도 계산값을 기반으로
• 각 점 주변 상하좌우 1칸씩의 영역을 고려 (3x3)
• 수백개의 3x3 패턴 “2차 패턴”에 일치도를 계산
• 각 2차 패턴별 일치도 계산값을 기억
• 2차부터 12차 패턴까지 11개 층을 반복
• 12차 패턴까지 일치도 계산값을 모두 기억
3/11/2016 바둑인을 위한 알파고 © 2016 이동헌 33
*수학 식, 그리고 딥러닝에 대한 설명 없이는 여기서 더 들어가면 더이상 “바둑인을 위한“ 이 아니게 된다고 생각합니다
** 그래도.. 19x19 바둑판에 대한 9개의 피쳐 셋, 5x5 CNN 과 3x3 CNN 및 각각에 적용되는 필터의 예를 쉽게 그려서 보여줄
그림자료를 넣으면 좋겠는데, 일러스트 가능하신분 연락 부탁합니다: donghun2014@gmail.com
알파고가 보는 것들
• 알파고의 바둑판 분석을 요약한다면
• 각 점 별로 돌의 유무 및 고유특성 분석
• 각 점에 연결된 말의 사활 분석
• 각 점별 축, 패 관련 특수상황 분석
• 각 점별 상하좌우 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단에게 다음 대국 전 되도록 빨리 이 글을 전하고 싶습니다
• 아쉽지만 저는 직접 연락이 닿지 않습니다
• 독자 여러분들, 공유/전파/전달 부탁드립니다
• 피드백/오류 제보는 여기로 보내주세요
• donghun2014@gmail.com
3/11/2016 바둑인을 위한 알파고 © 2016 이동헌 100

More Related Content

Viewers also liked

딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망NAVER Engineering
 
Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?NAVER Engineering
 
Step-by-step approach to question answering
Step-by-step approach to question answeringStep-by-step approach to question answering
Step-by-step approach to question answeringNAVER Engineering
 
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단NAVER Engineering
 
알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review상은 박
 
Multimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QAMultimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QANAVER Engineering
 
Video Object Segmentation in Videos
Video Object Segmentation in VideosVideo Object Segmentation in Videos
Video Object Segmentation in VideosNAVER Engineering
 
Online video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident networkOnline video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident networkNAVER Engineering
 
RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기Woong won Lee
 
Finding connections among images using CycleGAN
Finding connections among images using CycleGANFinding connections among images using CycleGAN
Finding connections among images using CycleGANNAVER Engineering
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기NAVER Engineering
 
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기이 의령
 
알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리Shane (Seungwhan) Moon
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016Taehoon Kim
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017Taehoon Kim
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Jeongkyu Shin
 
what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_shareNAVER D2
 
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 [143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 NAVER D2
 
[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래NAVER D2
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라NAVER D2
 

Viewers also liked (20)

딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
딥러닝을 활용한 비디오 스토리 질의응답: 뽀로로QA와 심층 임베딩 메모리망
 
Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?Deep Learning, Where Are You Going?
Deep Learning, Where Are You Going?
 
Step-by-step approach to question answering
Step-by-step approach to question answeringStep-by-step approach to question answering
Step-by-step approach to question answering
 
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
조음 Goodness-Of-Pronunciation 자질을 이용한 영어 학습자의 조음 오류 진단
 
알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review
 
Multimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QAMultimodal Sequential Learning for Video QA
Multimodal Sequential Learning for Video QA
 
Video Object Segmentation in Videos
Video Object Segmentation in VideosVideo Object Segmentation in Videos
Video Object Segmentation in Videos
 
Online video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident networkOnline video object segmentation via convolutional trident network
Online video object segmentation via convolutional trident network
 
RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기RLCode와 A3C 쉽고 깊게 이해하기
RLCode와 A3C 쉽고 깊게 이해하기
 
Finding connections among images using CycleGAN
Finding connections among images using CycleGANFinding connections among images using CycleGAN
Finding connections among images using CycleGAN
 
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
 
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
[2017 PYCON 튜토리얼]OpenAI Gym을 이용한 강화학습 에이전트 만들기
 
알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017알아두면 쓸데있는 신기한 강화학습 NAVER 2017
알아두면 쓸데있는 신기한 강화학습 NAVER 2017
 
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
Let Android dream electric sheep: Making emotion model for chat-bot with Pyth...
 
what is_tabs_share
what is_tabs_sharewhat is_tabs_share
what is_tabs_share
 
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템 [143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
[143]알파글래스의 개발과정으로 알아보는 ar 스마트글래스 광학 시스템
 
[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래[132]웨일 브라우저 1년 그리고 미래
[132]웨일 브라우저 1년 그리고 미래
 
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
[141] 오픈소스를 쓰려는 자, 리베이스의 무게를 견뎌라
 

바둑인을 위한 알파고

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