알파고 (바둑 인공지능)의 작동 원리
TRANSCRIPT
발표자:문승환
PhD studentLanguage Technologies Institute, School of Computer Science
Carnegie Mellon University
3/2/2016
작동원리
알파고 vs 유럽챔피언 (판후이 2단)
2015년 10월 5일 – 9일
<공식경기>-‐ 제한시간 1시간, 30초초읽기 3회-‐ 5:0 알파고승리 (불계승 4번)
알파고 vs 세계챔피언 (이세돌 9단)
2016년 3월 9일 – 15일
<공식경기>-‐ 제한시간 2시간, 1분초읽기 3회
서울광화문포시즌스호텔
이미지출처:조선일보 1월 28일자
인간과컴퓨터의자존심을건 '세기의대결'
이세돌
사진출처:매일경제 2013/04
“자신이없어요.질자신이요”
사진출처:바둑 TV
"아, 싸울만해서싸워요. 수가보이는데어쩌란말이에요."
사진출처
"불리하다보니이기자는생각없이대충뒀는데이겼네요.”
-‐구리九단에게대역전승을거둔직후의인터뷰
사진출처
바둑인공지능?
바둑인공지능?정의하자면:
s (state)
d = 1
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 1 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
=
(예를들면이런식으로행렬로표현)
* 실재론 board position 외다른 feature들도포함
바둑인공지능?정의하자면:
s (state)
d = 1 d = 2
a (action)
Given s, pick the best a
바둑인공지능s a s'
바둑인공지능? 이렇게만들어보면?d = 1 d = 2
…
모든경우의수를시뮬레이션
바둑인공지능? 이렇게만들어보면?d = 1 d = 2
…
d = 3
…
…
…
…
바둑인공지능? 이렇게만들어보면?d = 1 d = 2
…
d = 3
…
…
…
…
… d = maxD
끝까지시뮬레이션해서Win?Lose? 결과리포트
바둑인공지능? 이렇게만들어보면?d = 1 d = 2
…
d = 3
…
…
…
…
… d = maxD
Win?Lose? 결과리포트
여기에두면 13번이기더라
37,839번
431,320번
끝까지시뮬레이션해봤을때제일많이이긴 “다음수”를고름
Maximum depth search: 이방법은경우의수가우주의원자수보다많아불가능
핵심:경우의수 (Search Space)줄이기
경우의수 (Search Space)줄이기
1. “action” 후보군줄이기 (Breadth Reduction)
d = 1 d = 2
…
d = 3
…
…
…
… d = maxD
Win?Lose?
“이런수는사람이두지않는다”고판단하는모델이있다면 …
경우의수 (Search Space)줄이기
1. “action” 후보군줄이기 (Breadth Reduction)
d = 1 d = 2
…
d = 3
…
… d = maxD
Win?Lose?
Search 후보군에서미리제외 (breadth reduction)
경우의수 (Search Space)줄이기
2. 결과더빨리예측하기 (Depth Reduction)
d = 1 d = 2
…
d = 3
…
… d = maxD
Win?Lose?
Maximum depth까지시뮬레이션하지않고 ..
경우의수 (Search Space)줄이기
2. 결과더빨리예측하기 (Depth Reduction)
d = 1 d = 2
…
d = 3
…
V = 1
V = 2
V = 10
V(s): “state s의판세”로요약
경우의수 (Search Space)줄이기
1. “action” 후보군줄이기 (Breadth Reduction)
2. 결과더빨리예측하기 /판세평가하기 (Depth Reduction)
1. “action” 후보군줄이기
Learning: P ( next action | current state )
= P ( a | s )
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
현재판
예측모델
다음판
s1 s2
s2 s3
s3 s4
Data: 온라인바둑고수 (5~9단)기보 16만개,착점 3000만개
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
예측모델
현재판 다음판
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
예측모델
현재판 다음액션
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
예측모델
현재판 다음액션
0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 -‐1 0 0 1 -‐1 1 0 00 1 0 0 1 -‐1 0 0 00 0 0 0 -‐1 0 0 0 00 0 0 0 0 0 0 0 00 -‐1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
s af: sà a* 실재론 board position 외다른 feature들도포함
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
예측모델
현재판 다음액션
0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 -‐1 0 0 1 -‐1 1 0 00 1 0 0 1 -‐1 0 0 00 0 0 0 -‐1 0 0 0 00 0 0 0 0 0 0 0 00 -‐1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
s g: sà p(a|s)
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0.2 0.1 0 00 0 0 0 0 0.4 0.2 0 00 0 0 0 0 0.1 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
p(a|s) aargmax
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
예측모델
현재판 다음액션
0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 -‐1 0 0 1 -‐1 1 0 00 1 0 0 1 -‐1 0 0 00 0 0 0 -‐1 0 0 0 00 0 0 0 0 0 0 0 00 -‐1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
s g: sà p(a|s) p(a|s) aargmax
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
Deep Learning(13 Layer CNN)
현재판 다음액션
0 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 -‐1 0 0 1 -‐1 1 0 00 1 0 0 1 -‐1 0 0 00 0 0 0 -‐1 0 0 0 00 0 0 0 0 0 0 0 00 -‐1 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 1 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
s g: sà p(a|s)
0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0.2 0.1 0 00 0 0 0 0 0.4 0.2 0 00 0 0 0 0 0.1 0 0 00 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0
p(a|s) aargmax
Convolutional Neural Network (CNN)
CNN은레이어별로 input image를추상화시켜 Image Recognition을굉장히잘함이미치 출처
Convolutional Neural Network (CNN)
이걸바둑의판세를읽는데에사용
바둑:추상화하는능력이중요
CNN: 추상화하는능력이뛰어난모델
바둑두는 Task와 CNN의장점이맞물린경우
Deep Learning
~= Representation Learning
à단을쌓아올라갈수록추상화된feature를익힘
1. “action” 후보군줄이기
(1)프로바둑기사따라하기 (supervised learning)
프로기사흉내내는모델(w/ CNN)
현재판 다음액션
Training:
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
프로기사흉내내는모델
(w/ CNN)
프로기사흉내내는모델
(w/ CNN)VS
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
프로기사흉내내는모델
(w/ CNN)
프로기사흉내내는모델
(w/ CNN)VS
Return: 대국기보,승/패자정보
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
프로기사흉내내는모델(w/ CNN)
어느판 승/패
Training:
패z = -‐1
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
프로기사흉내내는모델(w/ CNN)
어느판 승/패
Training:
승z = +1
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
업데이트모델ver 1.1
업데이트모델ver 1.3VS
Return: 대국기보,승/패자정보
프로기사흉내내는모델과똑같은 topology, 업데이트된 parameters를사용
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
업데이트모델ver 1.3
업데이트모델ver 1.7VS
Return: 대국기보,승/패자정보
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
업데이트모델ver 1.5
업데이트모델ver 2.0VS
Return: 대국기보,승/패자정보
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning)
업데이트모델ver 3204.1
업데이트모델ver 46235.2VS
Return: 대국기보,승/패자정보
1. “action” 후보군줄이기
(2)스스로발전하기 (reinforcement learning) 트레이닝결과
업데이트모델ver 1,000,000VS
최종모델이 80%승리
프로기사흉내내는모델
2. 판세평가하기
2. 판세평가하기
업데이트모델ver 1,000,000
어느판
Training:
승/패
승(0~1)
예측모델(Regression)
기존모델에 regression layer를더함0~1사이의값으로예측1에가까우면좋은판세0에가까우면좋지않은판세
경우의수 (Search Space)줄이기
1. “action” 후보군줄이기 (Breadth Reduction)
2. 판세평가하기 (Depth Reduction)
Policy Network
Value Network
알파고논문에서이런용어를만들어서부름
+수읽기 (w/ Monte Carlo Search Tree)
Action 후보군줄이기(Policy Network)
수평가하기(Value Network)
(Rollout): Faster version of estimating p(a|s); shallow network (3 msà 2µs)
* Rollout 결과와 value network 결과값을반반씩합쳐서최종 prediction
결과Elo rating system
알파고 components 들의 조합에 따른 성능 비교
Takeaways임의의 task를위해 training한 network를다양하게활용
이세돌 9단 vs 알파고
이세돌 9단 vs 알파고
이세돌 알파고
-‐ 성인하루권장칼로리: ~2,500 kCal-‐ 가정:대국에하루필요한모든칼로리소모
2,500 kCal * 4,184 J/kCal
~= 10M [J]
-‐ CPU: ~100 W, GPU: ~300 W-‐ CPU 1,202개, GPU 176개
170,000 J/sec * 5 hr * 3,600 sec/hr
~= 3,000M [J]
정말대충계산해서 …
현재알파고는프로 5단수준?
= multiple machines European champion
CPU / GPU를무한정늘리면?
그러나구글은 CPU/GPU 늘리지않겠다고약속
어떻게수렴할지의견이분분
매일 3만대국씩학습한다던데?
결국은어떤점으로수렴하겠지만알파고논문에서 “자가대결대국수 (RL sample #)와성능개선”간의그래프는공개하지않음
이세돌 9단의기보를학습하면?
구글은일단이세돌 9단의기보를보고학습하지않겠다고약속
학습한다해도이세돌과의적은수 (5판)의대국데이터로수백만번의대국데이터로 training된모델을 tune하는것은힘듦
(prone to over-‐fitting, etc.)
알파고의약점은?
AlphaGo작동원리발표자:문승환
PhD studentLanguage Technologies Institute, School of Computer Science
Carnegie Mellon [email protected]
3/2/2016
Reference
• Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search." Nature 529.7587 (2016): 484-‐489.