SlideShare a Scribd company logo
알파고 해부하기
1부
이동헌
donghun2014@gmail.com
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
2. 바둑인들을 위한 알파고
3/13/2016 알파고 해부하기 1부 © 이동헌 2
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
• 관심있으신 분 누구든지
• 알파고의 기본원리와 정체를 쉽게 설명
2. 바둑인들을 위한 알파고
3/13/2016 알파고 해부하기 1부 © 이동헌 3
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
• 관심있으신 분 누구든지
• 알파고의 기본원리와 정체를 쉽게 설명
2. 바둑인들을 위한 알파고
• 알파고를 바둑으로 상대할 분들에게
• 알파고의 바둑 자체를 알고 싶은 분들에게
• 알파고의 구조와 바둑 원리를 수식 없이 최대한 자세히 설명
3/13/2016 알파고 해부하기 1부 © 이동헌 4
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
2. 바둑인들을 위한 알파고
• 많은 피드백 감사드립니다! 그 중…
• 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요?
• 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요?
• 이거 “썰”인거같은데? 전문가이신가요?
3/13/2016 알파고 해부하기 1부 © 이동헌 5
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
2. 바둑인들을 위한 알파고
• 많은 피드백 감사드립니다! 그 중…
• 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요?
• 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요?
• 이거 “썰”인거같은데? 전문가이신가요?
• 간단히 해명부터 하겠습니다
3/13/2016 알파고 해부하기 1부 © 이동헌 6
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
2. 바둑인들을 위한 알파고
• 많은 피드백 감사드립니다! 그 중…
• 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요?
• 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요?
• 이거 “썰”인거같은데? 전문가이신가요?
• 간단히 해명부터 하겠습니다 
• 쉽게
• 하지만, 최대한 정확하게
• 알파고에 대한 지식을 함께하기 위해…
• 기존 두 개의 “쉬운” 알파고 게시물을 쓸 때
저는 다음과 같은 태도로 임했습니다
1. 알파고 원리에 대한 가장 신뢰성있는 원자료
(구글 알파고 팀이 2016년 출판한 네이쳐 논문
– 아래 참조)를 주 근거자료로,
Mastering the game of Go with deep neural
networks and tree search [바로가기]
2. 다른 근거자료는 위 주 근거자료의 내용과
논리상충되지 않을 경우에만 내용참고하며,
3. 제가 최선을 다해 읽어본 뒤 정확하게
이해했다고 생각되는 내용만 골라서,
4. 능력껏 최대한 쉽게 풀어쓴 후,
5. “틀리다고 반박할 명확한 근거는 없다” 라고
스스로 납득하는 것을 공유한다
3/13/2016 알파고 해부하기 1부 © 이동헌 7
시작하면서
• 기존 두 개의 “쉬운” 알파고 게시물
1. 모두의 알파고
2. 바둑인들을 위한 알파고
• 많은 피드백 감사드립니다! 그 중…
• 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요?
• 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요?
• 이거 “썰”인거같은데? 전문가이신가요?
• 간단히 해명부터 하겠습니다 
• 그리고 간단히 제 소개를 드립니다
• 쉽게
• 하지만, 최대한 정확하게
• 알파고에 대한 지식을 함께하기 위해…
• 기존 두 개의 “쉬운” 알파고 게시물을 쓸 때
저는 다음과 같은 태도로 임했습니다
1. 알파고 원리에 대한 가장 신뢰성있는 원자료
(구글 알파고 팀이 2016년 출판한 네이쳐 논문
– 아래 참조)를 주 근거자료로,
Mastering the game of Go with deep neural
networks and tree search [바로가기]
2. 다른 근거자료는 위 주 근거자료의 내용과
논리상충되지 않을 경우에만 내용참고하며,
3. 제가 최선을 다해 읽어본 뒤 정확하게
이해했다고 생각되는 내용만 골라서,
4. 능력껏 최대한 쉽게 풀어쓴 후,
5. “틀리다고 반박할 명확한 근거는 없다” 라고
스스로 납득하는 것을 공유한다
3/13/2016 알파고 해부하기 1부 © 이동헌 8
시작하면서
• 간단히 제 소개를 드립니다
• 프린스턴 복학 예정이며, 연구관심분야는 불확실한 복잡계의 최적 결정방법입니다
• 원래는 고등학교때부터 생물학 공부를 많이 해 왔습니다만,
• 2007년부터 인공지능, 머신러닝, 강화학습을 연구해왔습니다
2012-2015 삼성전자 메모리사업부 SW개발팀 병역특례 근무
2009-2012 프린스턴대 Computer Science 박사 (휴학)
2007-2009 카네기멜론대 Computational Biology 석사 (졸업)
2003-2007 콜럼비아대 생화학과 학사 (졸업)
3/13/2016 알파고 해부하기 1부 © 이동헌 9
시작하면서
• 간단히 제 소개를 드립니다
• 프린스턴 복학 예정이며, 연구관심분야는 불확실한 복잡계의 최적 결정방법입니다
• 원래는 고등학교때부터 생물학 공부를 많이 해 왔습니다만,
• 2007년부터 인공지능, 머신러닝, 강화학습을 연구해왔습니다
• 최선을 다해 알파고를 해부해보겠습니다
2012-2015 삼성전자 메모리사업부 SW개발팀 병역특례 근무
2009-2012 프린스턴대 Computer Science 박사 (휴학)
2007-2009 카네기멜론대 Computational Biology 석사 (졸업)
2003-2007 콜럼비아대 생화학과 학사 (졸업)
3/13/2016 알파고 해부하기 1부 © 이동헌 10
시작하면서
• “알파고 해부하기”는
• 알파고를 정말 제대로 알고 싶은 분들에게
• 정확성을 최우선가치로 설명하려 합니다
• 이전 게시물에서는 이해의 편의를 위해 디테일을 생략하고 뭉뚱그렸지만,
• 여기선 이해편의와 정확성 둘 중 하나만 골라야 된다면 정확하게 할겁니다
• 이해편의도 최대한 함께하겠습니다
3/13/2016 알파고 해부하기 1부 © 이동헌 11
시작하면서
• “알파고 해부하기”는
• 알파고를 정말 제대로 알고 싶은 분들에게
• 정확성을 최우선가치로 설명하려 합니다
• 이전 게시물에서는 이해의 편의를 위해 디테일을 생략하고 뭉뚱그렸지만,
• 여기선 이해편의와 정확성 둘 중 하나만 골라야 된다면 정확하게 할겁니다
• 이해편의도 최대한 함께하겠습니다
• “알파고 해부하기”의 목표
• 알파고의 내부구조를 정확하게 설명
• 알파고의 착수과정 정체와 착수특성을 정확하게 설명
• 알파고의 (기존 바둑 프로그램 대비)혁신점을 정확하게 설명
3/13/2016 알파고 해부하기 1부 © 이동헌 12
당부말씀
• 정확성을 최우선가치로 씁니다
• 정확하지 않은 내용을 찾으시면 꼭! 피드백 부탁드립니다
• donghun2014@gmail.com
• 내용의 한 부분만 뚝 잘라서 인용하시면 위험합니다
• 정확한 내용들이 보통 그렇듯이, 부분을 잘라내면 뜻이 달라질 수 있어요
3/13/2016 알파고 해부하기 1부 © 이동헌 13
목차
• 알파고의 구조
• 알파고 소프트웨어의 구성
• 알파고 S/W의 대국시 동작법
• 알파고 S/W의 대국 전 트레이닝법
• 알파고 S/W의 혁신점
• 알파고의 혁신점
3/13/2016 알파고 해부하기 1부 © 이동헌 14
목차
• 알파고의 구조
• 알파고 소프트웨어의 구성
• 알파고 S/W의 대국시 동작법
• 알파고 S/W의 대국 전 트레이닝법
• 알파고 S/W의 혁신점
• 알파고의 혁신점
3/13/2016 알파고 해부하기 1부 © 이동헌 15
알파고의 구조
미국 중서부 어딘가의
구글 데이터센터
서울 포시즌스 호텔 대국장
이세돌 9단
현재 바둑판
Aja Huang
구글 데이터센터
자료사진
3/13/2016 알파고 해부하기 1부 © 이동헌 16
서울 포시즌스 호텔 대국장
이세돌 9단
현재 바둑판
Aja Huang
알파고의 구조
미국 중서부 어딘가의
구글 데이터센터
구글 데이터센터
자료사진
소프트웨어
하드웨어
네트워크네트워크
3/13/2016 알파고 해부하기 1부 © 이동헌 17
서울 포시즌스 호텔 대국장
이세돌 9단
현재 바둑판
Aja Huang
알파고의 구조
미국 중서부 어딘가의
구글 데이터센터
구글 데이터센터
자료사진
소프트웨어
하드웨어
네트워크네트워크
3/13/2016 알파고 해부하기 1부 © 이동헌 18
서울 포시즌스 호텔 대국장
이세돌 9단
현재 바둑판
Aja Huang
알파고의 구조
미국 중서부 어딘가의
구글 데이터센터
구글 데이터센터
자료사진
네트워크네트워크
3/13/2016 알파고 해부하기 1부 © 이동헌 19
알파고의 구조: 네트워크
• 네트워크는 알파고와는 별 상관 없습니다
• 바로 넘어가려고 합니다만..
• 네트워크 없이는 이번 대국장소가 한국이 아니었겠지요
• 기여하신 수많은 분들.. 존경합니다!
• 인터넷
• 네트워크를 통한 신호 라우팅
• 태평양을 건너오는 라인을 만들고 유지하시는 분들
• 그 외의 모든 “네트워크”구축, 유지, 보수에 도움을 주시는 분들
3/13/2016 알파고 해부하기 1부 © 이동헌 20
서울 포시즌스 호텔 대국장
이세돌 9단
현재 바둑판
Aja Huang
알파고의 구조
미국 중서부 어딘가의
구글 데이터센터
구글 데이터센터
자료사진
하드웨어
3/13/2016 알파고 해부하기 1부 © 이동헌 21
알파고의 구조: 하드웨어
• 미국 중서부에 있는 구글 데이터센터 사용
• 스펙
• CPU 1920개, GPU 280개를 썼다고 합니다
• 내용출처: Economist의 구글 딥마인드 창립자 인터뷰 [링크]
• 판후이 2단 경기때 (CPU 1202개, GPU 176개)보다 업그레이드
• 내용출처: Nature지 논문 [링크]
• 변경점?
• 병렬처리능력을 조금 더 키웠으니, 능력이 향상되었을 겁니다
• 특히, 소프트웨어 구성요소 3: Monte-Carlo Tree Search 에 따른 “수읽기” 능력이 더욱.
3/13/2016 알파고 해부하기 1부 © 이동헌 22
서울 포시즌스 호텔 대국장
이세돌 9단
현재 바둑판
Aja Huang
알파고의 구조
미국 중서부 어딘가의
구글 데이터센터
구글 데이터센터
자료사진
소프트웨어
3/13/2016 알파고 해부하기 1부 © 이동헌 23
알파고의 구조: 소프트웨어
• 알파고 프로그램 모식도
• “모두의 알파고”에서 가져온
 모식도인데
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
3/13/2016 알파고 해부하기 1부 © 이동헌 24
알파고의 구조: 소프트웨어
• 알파고 프로그램 모식도
• “모두의 알파고”에서 가져온
 모식도인데
• 기술적으로는
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
3/13/2016 알파고 해부하기 1부 © 이동헌 25
알파고의 구조: 소프트웨어
• 알파고 프로그램 모식도
• “모두의 알파고”에서 가져온
 모식도인데
• 기술적으로는
• DL: Deep Learning
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
DL
DL
DL DL
DL
3/13/2016 알파고 해부하기 1부 © 이동헌 26
알파고의 구조: 소프트웨어
• 알파고 프로그램 모식도
• “모두의 알파고”에서 가져온
 모식도인데
• 기술적으로는
• DL: Deep Learning
• RL: Reinforcement Learning
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
RL
DL
DL
DL DLRL RL RL
RL
RL
DL
RL
3/13/2016 알파고 해부하기 1부 © 이동헌 27
알파고의 구조: 소프트웨어
• 알파고 프로그램 모식도
• “모두의 알파고”에서 가져온
 모식도인데
• 기술적으로는
• DL: Deep Learning
• RL: Reinforcement Learning
• MCT Monte-Carlo Tree Search
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
RL
MCTS
DL
DL
DL DLRL RL RL
RL
MCTS RL
MCTS
DL
RL
3/13/2016 알파고 해부하기 1부 © 이동헌 28
알파고의 구조: 소프트웨어
• 알파고 프로그램 모식도
• “모두의 알파고”에서 가져온
 모식도인데
• 기술적으로는
• DL: Deep Learning
• RL: Reinforcement Learning
• MCT Monte-Carlo Tree Search
• 3가지 큰 틀이 있습니다
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
RL
MCTS
DL
DL
DL
DL DLRL RL RL
RL
MCTS RL
MCTS
RL
3/13/2016 알파고 해부하기 1부 © 이동헌 29
알파고의 구조: 소프트웨어
• 지금부터는…
• 모듈을 크게 3종류로
• 주요 알고리즘에 따라서
• Deep Learning부분
• Reinforcement Learning부분
• Monte-Carlo Tree Search부분
• 알고리즘의 이론에 대해서는
필요한 순간 필요최소량만.
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
DL
DL
DL DLRL RL RL
RL
MCTS RL
MCTS
RL
3/13/2016 알파고 해부하기 1부 © 이동헌 30
목차
• 알파고의 구조
• 알파고 소프트웨어의 구성
• 알파고 S/W의 대국시 동작법
• 알파고 S/W의 대국 전 트레이닝법
• 알파고 S/W의 혁신점
• 알파고의 혁신점
3/13/2016 알파고 해부하기 1부 © 이동헌 31
알파고 소프트웨어의 구성
• 먼저 살펴볼 것은알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
바둑판 현상황 인식 프로그램
DL
DL
DL DLRL RL RL
RL
MCTS RL
MCTS
RL
3/13/2016 알파고 해부하기 1부 © 이동헌 32
알파고 소프트웨어의 구성
• 먼저 살펴볼 것은
• 바둑판 상황인식
• Deep Learning
알파고 바둑 프로그램
상대 바둑기사
다음 수
예측 프로그램
알파고의
다음 수
결정 프로그램
바둑경기
상황
유/불리
분석
프로그램
바둑판 미래
예측 시도
여러 번 미래예측 후 가장 많이 둔 수로 선택
DL DL DLRL RL RL
RL
MCTS RL
MCTS
RL
바둑판 현상황 인식 프로그램DL
3/13/2016 알파고 해부하기 1부 © 이동헌 33
알파고 S/W 구성: Deep Learning
• Deep Learning 이야기는 너무너무 많이 다뤄졌습니다
• 인터넷에 이미 많이 있고 책도 논문도 많습니다
• 여기서는
• 최소한의 이론적 배경과
• 어떻게 알파고에 적용해 넣었는지를 보겠습니다
3/13/2016 알파고 해부하기 1부 © 이동헌 34
알파고 S/W 구성: Deep Learning
• Deep Learning의 근본 그리고 수학적 증명?
• Deep Learning (2012년~)
• 그 근본은 인공신경망 (1965년~)
• 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기]
• 위 증명의 확장 (1991년) [바로가기]
3/13/2016 알파고 해부하기 1부 © 이동헌 35
알파고 S/W 구성: Deep Learning
• Deep Learning의 근본 그리고 수학적 증명?
• Deep Learning (2012년~)
• 그 근본은 인공신경망 (1965년~)
• 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기]
• 위 증명의 좀 더 일반화된 확장 (1991년)
3/13/2016 알파고 해부하기 1부 © 이동헌 36
알파고 S/W 구성: Deep Learning
• Deep Learning의 근본 그리고 수학적 증명?
• Deep Learning (2012년~)
• 그 근본은 인공신경망 (1965년~)
• 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기]
• 위 증명의 좀 더 일반화된 확장 (1991년)
특정 조건 만족하는 함수들
(1991년 논문은 이 부분을 확장합니다)
3/13/2016 알파고 해부하기 1부 © 이동헌 37
알파고 S/W 구성: Deep Learning
• Deep Learning의 근본 그리고 수학적 증명?
• Deep Learning (2012년~)
• 그 근본은 인공신경망 (1965년~)
• 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기]
• 위 증명의 좀 더 일반화된 확장 (1991년)
유한 개를 선형으로 합하면
3/13/2016 알파고 해부하기 1부 © 이동헌 38
알파고 S/W 구성: Deep Learning
• Deep Learning의 근본 그리고 수학적 증명?
• Deep Learning (2012년~)
• 그 근본은 인공신경망 (1965년~)
• 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기]
• 위 증명의 좀 더 일반화된 확장 (1991년)
어떠한(*) 함수 𝑓(𝑥)이든지
임의의 정확도로 근사 가능하다
(*) n차원 compact 공간에서
연속유계함수인 어떠한 함수든지
3/13/2016 알파고 해부하기 1부 © 이동헌 39
알파고 S/W 구성: Deep Learning
• Deep Learning의 근본 그리고 수학적 증명?
• Deep Learning (2012년~)
• 그 근본은 인공신경망 (1965년~)
• 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기]
• 위 증명의 좀 더 일반화된 확장 (1991년)
세부 내용은 구성상 생략합니다
원 논문을 읽어주세요
3/13/2016 알파고 해부하기 1부 © 이동헌 40
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 출력단이 연속유계함수의 값들
3/13/2016 알파고 해부하기 1부 © 이동헌 41
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 출력단이 연속유계함수의 값들
3/13/2016 알파고 해부하기 1부 © 이동헌 42
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함
• 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다.
• 출력단이 연속유계함수의 값들
3/13/2016 알파고 해부하기 1부 © 이동헌 43
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함
• 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다.
• 출력단이 연속유계함수의 값들
• 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”)
3/13/2016 알파고 해부하기 1부 © 이동헌 44
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함
• 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다.
• 출력단이 연속유계함수의 값들
• 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”)
• 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념)
3/13/2016 알파고 해부하기 1부 © 이동헌 45
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함
• 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다.
• 출력단이 연속유계함수의 값들
• 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”)
• 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념)
• 이 출력단 부분이 무엇이 되는지 간단히 살펴보면
3/13/2016 알파고 해부하기 1부 © 이동헌 46
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함
• 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다.
• 출력단이 연속유계함수의 값들
• 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”)
• 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념)
• 이 출력단 부분이 무엇이 되는지 간단히 살펴보면
• 하나는 바둑판의 “가능한 착수들 중 다음 수가 될 확률값”
• 또 다른 하나는 바둑판의 “승리로 이어질 확률값”
3/13/2016 알파고 해부하기 1부 © 이동헌 47
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 입력단이 유한차원 compact 공간
• 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다
• 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함
• 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다.
• 출력단이 연속유계함수의 값들
• 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”)
• 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념)
• 이 출력단 부분이 무엇이 되는지 간단히 살펴보면
• 하나는 바둑판의 “가능한 착수들 중 다음 수가 될 확률값”
• 또 다른 하나는 바둑판의 “승리로 이어질 확률값”
• “유계”는 당연, “연속”부분은 컴퓨터 한계상 어차피 “조밀”한 실수 표현불가 (언더플로우)
3/13/2016 알파고 해부하기 1부 © 이동헌 48
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 진행상 수학적으로 살짝 건너뛴 부분
• 컴퓨터 S/W 입장에서 필요한 정도만 설명했습니다
• 수학적으로 관심있는 분들은 직접 채워서 이해하실 수학적 지식이 있을것이고
• 이해 안가시는 분들은 그냥 넘어가주세요 (굳이 필요하지 않습니다)
3/13/2016 알파고 해부하기 1부 © 이동헌 49
알파고 S/W 구성: Deep Learning
• 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다
• 진행상 수학적으로 살짝 건너뛴 부분
• 컴퓨터 S/W 입장에서 필요한 정도만 설명했습니다
• 수학적으로 관심있는 분들은 직접 채워서 이해하실 수학적 지식이 있을것이고
• 이해 안가시는 분들은 그냥 넘어가주세요 (굳이 필요하지 않습니다)
• 그러면 이제 바둑판을 컴퓨터용 입력값으로 매핑해봅시다
3/13/2016 알파고 해부하기 1부 © 이동헌 50
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
3/13/2016 알파고 해부하기 1부 © 이동헌 51
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
• 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다
3/13/2016 알파고 해부하기 1부 © 이동헌 52
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
• 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다
• 그래서 위의 상황을
• “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인)
• “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인)
• “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인)
• 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다
• (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다)
3/13/2016 알파고 해부하기 1부 © 이동헌 53
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
• 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다
• 그래서 위의 상황을
• “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인)
• “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인)
• “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인)
• 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다
• (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다)
4국 알파고 “멘붕의 101수” 해석
Boundary condition부분 해결을 위해,
바둑판 행렬 언저리 상하좌우로 2줄씩
추가해서 23x23 행렬화 시키는 부분이
바로 이어져서 나옵니다.
3/13/2016 알파고 해부하기 1부 © 이동헌 54
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
• 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다
• 그래서 위의 상황을
• “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인)
• “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인)
• “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인)
• 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다
• (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다)
4국 알파고 “멘붕의 101수” 해석
Boundary condition부분 해결을 위해,
바둑판 행렬 언저리 상하좌우로 2줄씩
추가해서 23x23 행렬화 시키는 부분이
바로 이어져서 나옵니다.
이렇게 추가된 가상의 언저리에는
흑백돌이 놓인 대국이 절대 없겠지요?
(알파고의 “판세분석의 불완전성” 약점)
3/13/2016 알파고 해부하기 1부 © 이동헌 55
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
• 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다
• 그래서 위의 상황을
• “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인)
• “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인)
• “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인)
• 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다
• (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다)
4국 알파고 “멘붕의 101수” 해석
Boundary condition부분 해결을 위해,
바둑판 행렬 언저리 상하좌우로 2줄씩
추가해서 23x23 행렬화 시키는 부분이
바로 이어져서 나옵니다.
이렇게 추가된 가상의 언저리에는
흑백돌이 놓인 대국이 절대 없겠지요?
(알파고의 “판세분석의 불완전성” 약점)
가상언저리에 돌이 놓인 걸 본 적 없고,
실제로도 가장자리 단으로 연장하는 걸
별로 본 적 없는 알파고
3/13/2016 알파고 해부하기 1부 © 이동헌 56
알파고 S/W 구성: Deep Learning
• 먼저 가능한 모든 바둑판 공간을 정의합니다
• 바둑판을 19x19 행렬로 봅시다
• 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나
• 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다
• 그래서 위의 상황을
• “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인)
• “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인)
• “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인)
• 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다
• (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다)
4국 알파고 “멘붕의 101수” 해석
Boundary condition부분 해결을 위해,
바둑판 행렬 언저리 상하좌우로 2줄씩
추가해서 23x23 행렬화 시키는 부분이
바로 이어져서 나옵니다.
이렇게 추가된 가상의 언저리에는
흑백돌이 놓인 대국이 절대 없겠지요?
(알파고의 “판세분석의 불완전성” 약점)
가상언저리에 돌이 놓인 걸 본 적 없고,
실제로도 가장자리 단으로 연장하는 걸
별로 본 적 없는 알파고
“가장자리 너머는 돌이 안놓이던데?!!”
“돌 안놓이는 방향으로 내밀면 안정적?”
3/13/2016 알파고 해부하기 1부 © 이동헌 57
Time Over
• 벌써 월요일 아침입니다
• 화이트데이네요
• 퇴근후 남는시간에 쓰는거라 이제 끊어야 합니다
• 이해 부탁드려요…
• 마침 50슬라이드 넘었습니다 (100 슬라이드씩 만들면 읽기 힘드시죠?)
• 최대한 노력해서 얼른 이어서 쓰도록 하겠습니다
• 4국 알파고 기권! 이세돌 9단 정말 수고많으셨어요!!!
3/13/2016 알파고 해부하기 1부 © 이동헌 58
Time Over: 진행상황
• 알파고의 구조
• 알파고 소프트웨어의 구성
• 알파고 S/W 구성: Deep Learning 유관 부분
• 바둑판 인식 프로그램
• 알파고 S/W의 대국시 동작법
• 알파고 S/W의 대국 전 트레이닝법
• 알파고 S/W의 혁신점
• 알파고의 혁신점
3/13/2016 알파고 해부하기 1부 © 이동헌 59
다음 이야기
• 다음 링크를 따라가세요
• 알파고 해부하기 2부
• 알파고 해부하기 3부
• 피드백/오류 제보 이메일이 필요하시면 여기로 보내주세요
• donghun2014@gmail.com
3/13/2016 알파고 해부하기 1부 © 이동헌 60

More Related Content

What's hot

ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門
Hiroya Nagao
 
golang profiling の基礎
golang profiling の基礎golang profiling の基礎
golang profiling の基礎
yuichiro nakazawa
 
트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기
Yan So
 
안.전.제.일. 강화학습!
안.전.제.일. 강화학습!안.전.제.일. 강화학습!
안.전.제.일. 강화학습!
Dongmin Lee
 
Introduction to Alphago Zero
Introduction to Alphago ZeroIntroduction to Alphago Zero
Introduction to Alphago Zero
Chia-Ching Lin
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
lcplcp1
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
Jaikwang Lee
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
Mr. Vengineer
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
NAVER D2
 
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
Dylan Ko
 
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
hdais
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
SECCON Beginners
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
Jeongsang Baek
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
Denys Haryachyy
 
OSセキュリティチュートリアル
OSセキュリティチュートリアルOSセキュリティチュートリアル
OSセキュリティチュートリアル
Kuniyasu Suzaki
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
DaeMyung Kang
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
Yongho Ha
 
暗号技術入門
暗号技術入門暗号技術入門
暗号技術入門
MITSUNARI Shigeo
 
AIX - LVM 이란?
AIX - LVM 이란?AIX - LVM 이란?
AIX - LVM 이란?
CheolHee Han
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
Hyojun Jeon
 

What's hot (20)

ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門ChordアルゴリズムによるDHT入門
ChordアルゴリズムによるDHT入門
 
golang profiling の基礎
golang profiling の基礎golang profiling の基礎
golang profiling の基礎
 
트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기트위터의 추천 시스템 파헤치기
트위터의 추천 시스템 파헤치기
 
안.전.제.일. 강화학습!
안.전.제.일. 강화학습!안.전.제.일. 강화학습!
안.전.제.일. 강화학습!
 
Introduction to Alphago Zero
Introduction to Alphago ZeroIntroduction to Alphago Zero
Introduction to Alphago Zero
 
Introduction to eBPF and XDP
Introduction to eBPF and XDPIntroduction to eBPF and XDP
Introduction to eBPF and XDP
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
TensorFlow XLAの可能性
TensorFlow XLAの可能性 TensorFlow XLAの可能性
TensorFlow XLAの可能性
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기
 
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장
 
UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編UnboundとNSDの紹介 BIND9との比較編
UnboundとNSDの紹介 BIND9との比較編
 
CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料CTF for ビギナーズ ネットワーク講習資料
CTF for ビギナーズ ネットワーク講習資料
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
DPDK KNI interface
DPDK KNI interfaceDPDK KNI interface
DPDK KNI interface
 
OSセキュリティチュートリアル
OSセキュリティチュートリアルOSセキュリティチュートリアル
OSセキュリティチュートリアル
 
How to build massive service for advance
How to build massive service for advanceHow to build massive service for advance
How to build massive service for advance
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
 
暗号技術入門
暗号技術入門暗号技術入門
暗号技術入門
 
AIX - LVM 이란?
AIX - LVM 이란?AIX - LVM 이란?
AIX - LVM 이란?
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 

Viewers also liked

[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER
NAVER D2
 
기계학습(Machine learning) 입문하기
기계학습(Machine learning) 입문하기기계학습(Machine learning) 입문하기
기계학습(Machine learning) 입문하기
Terry Taewoong Um
 
Introduction to Machine Learning and Deep Learning
Introduction to Machine Learning and Deep LearningIntroduction to Machine Learning and Deep Learning
Introduction to Machine Learning and Deep Learning
Terry Taewoong Um
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전
Modulabs
 
Deview deep learning-김정희
Deview deep learning-김정희Deview deep learning-김정희
Deview deep learning-김정희
NAVER D2
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
Taehoon Kim
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
Taehoon Kim
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가
Yongha Kim
 

Viewers also liked (8)

[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER[2A4]DeepLearningAtNAVER
[2A4]DeepLearningAtNAVER
 
기계학습(Machine learning) 입문하기
기계학습(Machine learning) 입문하기기계학습(Machine learning) 입문하기
기계학습(Machine learning) 입문하기
 
Introduction to Machine Learning and Deep Learning
Introduction to Machine Learning and Deep LearningIntroduction to Machine Learning and Deep Learning
Introduction to Machine Learning and Deep Learning
 
쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전쫄지말자딥러닝2 - CNN RNN 포함버전
쫄지말자딥러닝2 - CNN RNN 포함버전
 
Deview deep learning-김정희
Deview deep learning-김정희Deview deep learning-김정희
Deview deep learning-김정희
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
딥러닝과 강화 학습으로 나보다 잘하는 쿠키런 AI 구현하기 DEVIEW 2016
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가
 

Similar to 알파고 해부하기 1부

모두의 알파고
모두의 알파고모두의 알파고
모두의 알파고
Donghun Lee
 
파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터
Eunjeong (Lucy) Park
 
05.comparing on changes in cond jumps, animate overin, breakpoints hangul
05.comparing on changes in cond jumps, animate overin, breakpoints hangul05.comparing on changes in cond jumps, animate overin, breakpoints hangul
05.comparing on changes in cond jumps, animate overin, breakpoints hangul
re4lfl0w
 
바둑인을 위한 알파고
바둑인을 위한 알파고바둑인을 위한 알파고
바둑인을 위한 알파고
Donghun Lee
 
PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기
PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기
PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기
Hyeshik Chang
 
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
re4lfl0w
 
07.intermediate level patching, kanal in PEiD hangul
07.intermediate level patching, kanal in PEiD hangul07.intermediate level patching, kanal in PEiD hangul
07.intermediate level patching, kanal in PEiD hangul
re4lfl0w
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
Heungsub Lee
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP
Eunjeong (Lucy) Park
 
1st cardano korea_meetup
1st cardano korea_meetup1st cardano korea_meetup
1st cardano korea_meetup
Wangjea Lee
 
알파고는 어떤 바둑을 둘까
알파고는 어떤 바둑을 둘까알파고는 어떤 바둑을 둘까
알파고는 어떤 바둑을 둘까
이정원 JeongwonLee
 
Cs seminar
Cs seminar Cs seminar
Cs seminar
Changhyun Lee
 
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Taejun Kim
 

Similar to 알파고 해부하기 1부 (13)

모두의 알파고
모두의 알파고모두의 알파고
모두의 알파고
 
파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터파이썬과 커뮤니티와 한국어 오픈데이터
파이썬과 커뮤니티와 한국어 오픈데이터
 
05.comparing on changes in cond jumps, animate overin, breakpoints hangul
05.comparing on changes in cond jumps, animate overin, breakpoints hangul05.comparing on changes in cond jumps, animate overin, breakpoints hangul
05.comparing on changes in cond jumps, animate overin, breakpoints hangul
 
바둑인을 위한 알파고
바둑인을 위한 알파고바둑인을 위한 알파고
바둑인을 위한 알파고
 
PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기
PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기
PyCon Korea 2015: 탐색적으로 큰 데이터 분석하기
 
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
08.debugging with w32 dasm, rva, va and offset, using lordpe as a hexeditor h...
 
07.intermediate level patching, kanal in PEiD hangul
07.intermediate level patching, kanal in PEiD hangul07.intermediate level patching, kanal in PEiD hangul
07.intermediate level patching, kanal in PEiD hangul
 
파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)파이썬 생존 안내서 (자막)
파이썬 생존 안내서 (자막)
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP
 
1st cardano korea_meetup
1st cardano korea_meetup1st cardano korea_meetup
1st cardano korea_meetup
 
알파고는 어떤 바둑을 둘까
알파고는 어떤 바둑을 둘까알파고는 어떤 바둑을 둘까
알파고는 어떤 바둑을 둘까
 
Cs seminar
Cs seminar Cs seminar
Cs seminar
 
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류
 

알파고 해부하기 1부

  • 2. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 3/13/2016 알파고 해부하기 1부 © 이동헌 2
  • 3. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 • 관심있으신 분 누구든지 • 알파고의 기본원리와 정체를 쉽게 설명 2. 바둑인들을 위한 알파고 3/13/2016 알파고 해부하기 1부 © 이동헌 3
  • 4. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 • 관심있으신 분 누구든지 • 알파고의 기본원리와 정체를 쉽게 설명 2. 바둑인들을 위한 알파고 • 알파고를 바둑으로 상대할 분들에게 • 알파고의 바둑 자체를 알고 싶은 분들에게 • 알파고의 구조와 바둑 원리를 수식 없이 최대한 자세히 설명 3/13/2016 알파고 해부하기 1부 © 이동헌 4
  • 5. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? 3/13/2016 알파고 해부하기 1부 © 이동헌 5
  • 6. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? • 간단히 해명부터 하겠습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 6
  • 7. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? • 간단히 해명부터 하겠습니다  • 쉽게 • 하지만, 최대한 정확하게 • 알파고에 대한 지식을 함께하기 위해… • 기존 두 개의 “쉬운” 알파고 게시물을 쓸 때 저는 다음과 같은 태도로 임했습니다 1. 알파고 원리에 대한 가장 신뢰성있는 원자료 (구글 알파고 팀이 2016년 출판한 네이쳐 논문 – 아래 참조)를 주 근거자료로, Mastering the game of Go with deep neural networks and tree search [바로가기] 2. 다른 근거자료는 위 주 근거자료의 내용과 논리상충되지 않을 경우에만 내용참고하며, 3. 제가 최선을 다해 읽어본 뒤 정확하게 이해했다고 생각되는 내용만 골라서, 4. 능력껏 최대한 쉽게 풀어쓴 후, 5. “틀리다고 반박할 명확한 근거는 없다” 라고 스스로 납득하는 것을 공유한다 3/13/2016 알파고 해부하기 1부 © 이동헌 7
  • 8. 시작하면서 • 기존 두 개의 “쉬운” 알파고 게시물 1. 모두의 알파고 2. 바둑인들을 위한 알파고 • 많은 피드백 감사드립니다! 그 중… • 구체적으로 어떻게 돌아가는건지 설명 더해주실수 있나요? • 세부적인 내용들 (8수까지 착순기억, 승률 10%미만 기권 등..) 어떻게 아셨나요? • 이거 “썰”인거같은데? 전문가이신가요? • 간단히 해명부터 하겠습니다  • 그리고 간단히 제 소개를 드립니다 • 쉽게 • 하지만, 최대한 정확하게 • 알파고에 대한 지식을 함께하기 위해… • 기존 두 개의 “쉬운” 알파고 게시물을 쓸 때 저는 다음과 같은 태도로 임했습니다 1. 알파고 원리에 대한 가장 신뢰성있는 원자료 (구글 알파고 팀이 2016년 출판한 네이쳐 논문 – 아래 참조)를 주 근거자료로, Mastering the game of Go with deep neural networks and tree search [바로가기] 2. 다른 근거자료는 위 주 근거자료의 내용과 논리상충되지 않을 경우에만 내용참고하며, 3. 제가 최선을 다해 읽어본 뒤 정확하게 이해했다고 생각되는 내용만 골라서, 4. 능력껏 최대한 쉽게 풀어쓴 후, 5. “틀리다고 반박할 명확한 근거는 없다” 라고 스스로 납득하는 것을 공유한다 3/13/2016 알파고 해부하기 1부 © 이동헌 8
  • 9. 시작하면서 • 간단히 제 소개를 드립니다 • 프린스턴 복학 예정이며, 연구관심분야는 불확실한 복잡계의 최적 결정방법입니다 • 원래는 고등학교때부터 생물학 공부를 많이 해 왔습니다만, • 2007년부터 인공지능, 머신러닝, 강화학습을 연구해왔습니다 2012-2015 삼성전자 메모리사업부 SW개발팀 병역특례 근무 2009-2012 프린스턴대 Computer Science 박사 (휴학) 2007-2009 카네기멜론대 Computational Biology 석사 (졸업) 2003-2007 콜럼비아대 생화학과 학사 (졸업) 3/13/2016 알파고 해부하기 1부 © 이동헌 9
  • 10. 시작하면서 • 간단히 제 소개를 드립니다 • 프린스턴 복학 예정이며, 연구관심분야는 불확실한 복잡계의 최적 결정방법입니다 • 원래는 고등학교때부터 생물학 공부를 많이 해 왔습니다만, • 2007년부터 인공지능, 머신러닝, 강화학습을 연구해왔습니다 • 최선을 다해 알파고를 해부해보겠습니다 2012-2015 삼성전자 메모리사업부 SW개발팀 병역특례 근무 2009-2012 프린스턴대 Computer Science 박사 (휴학) 2007-2009 카네기멜론대 Computational Biology 석사 (졸업) 2003-2007 콜럼비아대 생화학과 학사 (졸업) 3/13/2016 알파고 해부하기 1부 © 이동헌 10
  • 11. 시작하면서 • “알파고 해부하기”는 • 알파고를 정말 제대로 알고 싶은 분들에게 • 정확성을 최우선가치로 설명하려 합니다 • 이전 게시물에서는 이해의 편의를 위해 디테일을 생략하고 뭉뚱그렸지만, • 여기선 이해편의와 정확성 둘 중 하나만 골라야 된다면 정확하게 할겁니다 • 이해편의도 최대한 함께하겠습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 11
  • 12. 시작하면서 • “알파고 해부하기”는 • 알파고를 정말 제대로 알고 싶은 분들에게 • 정확성을 최우선가치로 설명하려 합니다 • 이전 게시물에서는 이해의 편의를 위해 디테일을 생략하고 뭉뚱그렸지만, • 여기선 이해편의와 정확성 둘 중 하나만 골라야 된다면 정확하게 할겁니다 • 이해편의도 최대한 함께하겠습니다 • “알파고 해부하기”의 목표 • 알파고의 내부구조를 정확하게 설명 • 알파고의 착수과정 정체와 착수특성을 정확하게 설명 • 알파고의 (기존 바둑 프로그램 대비)혁신점을 정확하게 설명 3/13/2016 알파고 해부하기 1부 © 이동헌 12
  • 13. 당부말씀 • 정확성을 최우선가치로 씁니다 • 정확하지 않은 내용을 찾으시면 꼭! 피드백 부탁드립니다 • donghun2014@gmail.com • 내용의 한 부분만 뚝 잘라서 인용하시면 위험합니다 • 정확한 내용들이 보통 그렇듯이, 부분을 잘라내면 뜻이 달라질 수 있어요 3/13/2016 알파고 해부하기 1부 © 이동헌 13
  • 14. 목차 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 14
  • 15. 목차 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 15
  • 16. 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 구글 데이터센터 자료사진 3/13/2016 알파고 해부하기 1부 © 이동헌 16
  • 17. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 소프트웨어 하드웨어 네트워크네트워크 3/13/2016 알파고 해부하기 1부 © 이동헌 17
  • 18. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 소프트웨어 하드웨어 네트워크네트워크 3/13/2016 알파고 해부하기 1부 © 이동헌 18
  • 19. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 네트워크네트워크 3/13/2016 알파고 해부하기 1부 © 이동헌 19
  • 20. 알파고의 구조: 네트워크 • 네트워크는 알파고와는 별 상관 없습니다 • 바로 넘어가려고 합니다만.. • 네트워크 없이는 이번 대국장소가 한국이 아니었겠지요 • 기여하신 수많은 분들.. 존경합니다! • 인터넷 • 네트워크를 통한 신호 라우팅 • 태평양을 건너오는 라인을 만들고 유지하시는 분들 • 그 외의 모든 “네트워크”구축, 유지, 보수에 도움을 주시는 분들 3/13/2016 알파고 해부하기 1부 © 이동헌 20
  • 21. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 하드웨어 3/13/2016 알파고 해부하기 1부 © 이동헌 21
  • 22. 알파고의 구조: 하드웨어 • 미국 중서부에 있는 구글 데이터센터 사용 • 스펙 • CPU 1920개, GPU 280개를 썼다고 합니다 • 내용출처: Economist의 구글 딥마인드 창립자 인터뷰 [링크] • 판후이 2단 경기때 (CPU 1202개, GPU 176개)보다 업그레이드 • 내용출처: Nature지 논문 [링크] • 변경점? • 병렬처리능력을 조금 더 키웠으니, 능력이 향상되었을 겁니다 • 특히, 소프트웨어 구성요소 3: Monte-Carlo Tree Search 에 따른 “수읽기” 능력이 더욱. 3/13/2016 알파고 해부하기 1부 © 이동헌 22
  • 23. 서울 포시즌스 호텔 대국장 이세돌 9단 현재 바둑판 Aja Huang 알파고의 구조 미국 중서부 어딘가의 구글 데이터센터 구글 데이터센터 자료사진 소프트웨어 3/13/2016 알파고 해부하기 1부 © 이동헌 23
  • 24. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 3/13/2016 알파고 해부하기 1부 © 이동헌 24
  • 25. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 3/13/2016 알파고 해부하기 1부 © 이동헌 25
  • 26. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 DL DL DL DL DL 3/13/2016 알파고 해부하기 1부 © 이동헌 26
  • 27. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning • RL: Reinforcement Learning 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 RL DL DL DL DLRL RL RL RL RL DL RL 3/13/2016 알파고 해부하기 1부 © 이동헌 27
  • 28. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning • RL: Reinforcement Learning • MCT Monte-Carlo Tree Search 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 RL MCTS DL DL DL DLRL RL RL RL MCTS RL MCTS DL RL 3/13/2016 알파고 해부하기 1부 © 이동헌 28
  • 29. 알파고의 구조: 소프트웨어 • 알파고 프로그램 모식도 • “모두의 알파고”에서 가져온  모식도인데 • 기술적으로는 • DL: Deep Learning • RL: Reinforcement Learning • MCT Monte-Carlo Tree Search • 3가지 큰 틀이 있습니다 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 RL MCTS DL DL DL DL DLRL RL RL RL MCTS RL MCTS RL 3/13/2016 알파고 해부하기 1부 © 이동헌 29
  • 30. 알파고의 구조: 소프트웨어 • 지금부터는… • 모듈을 크게 3종류로 • 주요 알고리즘에 따라서 • Deep Learning부분 • Reinforcement Learning부분 • Monte-Carlo Tree Search부분 • 알고리즘의 이론에 대해서는 필요한 순간 필요최소량만. 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 DL DL DL DLRL RL RL RL MCTS RL MCTS RL 3/13/2016 알파고 해부하기 1부 © 이동헌 30
  • 31. 목차 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 31
  • 32. 알파고 소프트웨어의 구성 • 먼저 살펴볼 것은알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 바둑판 현상황 인식 프로그램 DL DL DL DLRL RL RL RL MCTS RL MCTS RL 3/13/2016 알파고 해부하기 1부 © 이동헌 32
  • 33. 알파고 소프트웨어의 구성 • 먼저 살펴볼 것은 • 바둑판 상황인식 • Deep Learning 알파고 바둑 프로그램 상대 바둑기사 다음 수 예측 프로그램 알파고의 다음 수 결정 프로그램 바둑경기 상황 유/불리 분석 프로그램 바둑판 미래 예측 시도 여러 번 미래예측 후 가장 많이 둔 수로 선택 DL DL DLRL RL RL RL MCTS RL MCTS RL 바둑판 현상황 인식 프로그램DL 3/13/2016 알파고 해부하기 1부 © 이동헌 33
  • 34. 알파고 S/W 구성: Deep Learning • Deep Learning 이야기는 너무너무 많이 다뤄졌습니다 • 인터넷에 이미 많이 있고 책도 논문도 많습니다 • 여기서는 • 최소한의 이론적 배경과 • 어떻게 알파고에 적용해 넣었는지를 보겠습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 34
  • 35. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 확장 (1991년) [바로가기] 3/13/2016 알파고 해부하기 1부 © 이동헌 35
  • 36. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 3/13/2016 알파고 해부하기 1부 © 이동헌 36
  • 37. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 특정 조건 만족하는 함수들 (1991년 논문은 이 부분을 확장합니다) 3/13/2016 알파고 해부하기 1부 © 이동헌 37
  • 38. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 유한 개를 선형으로 합하면 3/13/2016 알파고 해부하기 1부 © 이동헌 38
  • 39. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 어떠한(*) 함수 𝑓(𝑥)이든지 임의의 정확도로 근사 가능하다 (*) n차원 compact 공간에서 연속유계함수인 어떠한 함수든지 3/13/2016 알파고 해부하기 1부 © 이동헌 39
  • 40. 알파고 S/W 구성: Deep Learning • Deep Learning의 근본 그리고 수학적 증명? • Deep Learning (2012년~) • 그 근본은 인공신경망 (1965년~) • 인공신경망의 수학적인 한계/가능성에 대한 결정적인 증명 (1989년) [바로가기] • 위 증명의 좀 더 일반화된 확장 (1991년) 세부 내용은 구성상 생략합니다 원 논문을 읽어주세요 3/13/2016 알파고 해부하기 1부 © 이동헌 40
  • 41. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 출력단이 연속유계함수의 값들 3/13/2016 알파고 해부하기 1부 © 이동헌 41
  • 42. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 출력단이 연속유계함수의 값들 3/13/2016 알파고 해부하기 1부 © 이동헌 42
  • 43. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 3/13/2016 알파고 해부하기 1부 © 이동헌 43
  • 44. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) 3/13/2016 알파고 해부하기 1부 © 이동헌 44
  • 45. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) 3/13/2016 알파고 해부하기 1부 © 이동헌 45
  • 46. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) • 이 출력단 부분이 무엇이 되는지 간단히 살펴보면 3/13/2016 알파고 해부하기 1부 © 이동헌 46
  • 47. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) • 이 출력단 부분이 무엇이 되는지 간단히 살펴보면 • 하나는 바둑판의 “가능한 착수들 중 다음 수가 될 확률값” • 또 다른 하나는 바둑판의 “승리로 이어질 확률값” 3/13/2016 알파고 해부하기 1부 © 이동헌 47
  • 48. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 입력단이 유한차원 compact 공간 • 수학적으로는 유한차원의 실수값 공간 (좌표공간) 이라면 위 조건을 만족합니다 • 우리가 알고있는 좌표평면, 3차원 좌표공간 등이 포함 • 컴퓨터 입장에서는 보통 숫자값(int계열, double계열)으로 array 만들면 됩니다. • 출력단이 연속유계함수의 값들 • 수학적 의미의 “연속” (미분가능하면 연속이다.. 라고 하던 그 “연속”) • 수학적 의미의 “유계” (수학적인 상한/하한이 무한대가 아니다.. 의 개념) • 이 출력단 부분이 무엇이 되는지 간단히 살펴보면 • 하나는 바둑판의 “가능한 착수들 중 다음 수가 될 확률값” • 또 다른 하나는 바둑판의 “승리로 이어질 확률값” • “유계”는 당연, “연속”부분은 컴퓨터 한계상 어차피 “조밀”한 실수 표현불가 (언더플로우) 3/13/2016 알파고 해부하기 1부 © 이동헌 48
  • 49. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 진행상 수학적으로 살짝 건너뛴 부분 • 컴퓨터 S/W 입장에서 필요한 정도만 설명했습니다 • 수학적으로 관심있는 분들은 직접 채워서 이해하실 수학적 지식이 있을것이고 • 이해 안가시는 분들은 그냥 넘어가주세요 (굳이 필요하지 않습니다) 3/13/2016 알파고 해부하기 1부 © 이동헌 49
  • 50. 알파고 S/W 구성: Deep Learning • 인공신경망 증명은 Deep Learning에 그대로 적용가능합니다 • 진행상 수학적으로 살짝 건너뛴 부분 • 컴퓨터 S/W 입장에서 필요한 정도만 설명했습니다 • 수학적으로 관심있는 분들은 직접 채워서 이해하실 수학적 지식이 있을것이고 • 이해 안가시는 분들은 그냥 넘어가주세요 (굳이 필요하지 않습니다) • 그러면 이제 바둑판을 컴퓨터용 입력값으로 매핑해봅시다 3/13/2016 알파고 해부하기 1부 © 이동헌 50
  • 51. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 3/13/2016 알파고 해부하기 1부 © 이동헌 51
  • 52. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 3/13/2016 알파고 해부하기 1부 © 이동헌 52
  • 53. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 3/13/2016 알파고 해부하기 1부 © 이동헌 53
  • 54. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 3/13/2016 알파고 해부하기 1부 © 이동헌 54
  • 55. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 이렇게 추가된 가상의 언저리에는 흑백돌이 놓인 대국이 절대 없겠지요? (알파고의 “판세분석의 불완전성” 약점) 3/13/2016 알파고 해부하기 1부 © 이동헌 55
  • 56. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 이렇게 추가된 가상의 언저리에는 흑백돌이 놓인 대국이 절대 없겠지요? (알파고의 “판세분석의 불완전성” 약점) 가상언저리에 돌이 놓인 걸 본 적 없고, 실제로도 가장자리 단으로 연장하는 걸 별로 본 적 없는 알파고 3/13/2016 알파고 해부하기 1부 © 이동헌 56
  • 57. 알파고 S/W 구성: Deep Learning • 먼저 가능한 모든 바둑판 공간을 정의합니다 • 바둑판을 19x19 행렬로 봅시다 • 자연스러운 생각이라면, 행렬에 넣을 수 있는 원소는 {흑, 백, 빈칸}중 하나 • 하지만 컴퓨터는 0/1로 보는게 제일 좋습니다 • 그래서 위의 상황을 • “흑돌” 바둑판 19x19 행렬 (0이면 흑돌이 없고, 1이면 놓인) • “백돌” 바둑판 19x19 행렬 (0이면 백돌이 없고, 1이면 놓인) • “빈칸” 바둑판 19x19 행렬 (0이면 뭔가 돌이 있고, 1이면 빈칸인) • 이렇게 3개 층을 쌓은 19x19x3 텐서 로 만듭니다 • (텐서는 개념상 2차원 이상의 행렬로 생각하면 됩니다) 4국 알파고 “멘붕의 101수” 해석 Boundary condition부분 해결을 위해, 바둑판 행렬 언저리 상하좌우로 2줄씩 추가해서 23x23 행렬화 시키는 부분이 바로 이어져서 나옵니다. 이렇게 추가된 가상의 언저리에는 흑백돌이 놓인 대국이 절대 없겠지요? (알파고의 “판세분석의 불완전성” 약점) 가상언저리에 돌이 놓인 걸 본 적 없고, 실제로도 가장자리 단으로 연장하는 걸 별로 본 적 없는 알파고 “가장자리 너머는 돌이 안놓이던데?!!” “돌 안놓이는 방향으로 내밀면 안정적?” 3/13/2016 알파고 해부하기 1부 © 이동헌 57
  • 58. Time Over • 벌써 월요일 아침입니다 • 화이트데이네요 • 퇴근후 남는시간에 쓰는거라 이제 끊어야 합니다 • 이해 부탁드려요… • 마침 50슬라이드 넘었습니다 (100 슬라이드씩 만들면 읽기 힘드시죠?) • 최대한 노력해서 얼른 이어서 쓰도록 하겠습니다 • 4국 알파고 기권! 이세돌 9단 정말 수고많으셨어요!!! 3/13/2016 알파고 해부하기 1부 © 이동헌 58
  • 59. Time Over: 진행상황 • 알파고의 구조 • 알파고 소프트웨어의 구성 • 알파고 S/W 구성: Deep Learning 유관 부분 • 바둑판 인식 프로그램 • 알파고 S/W의 대국시 동작법 • 알파고 S/W의 대국 전 트레이닝법 • 알파고 S/W의 혁신점 • 알파고의 혁신점 3/13/2016 알파고 해부하기 1부 © 이동헌 59
  • 60. 다음 이야기 • 다음 링크를 따라가세요 • 알파고 해부하기 2부 • 알파고 해부하기 3부 • 피드백/오류 제보 이메일이 필요하시면 여기로 보내주세요 • donghun2014@gmail.com 3/13/2016 알파고 해부하기 1부 © 이동헌 60