알파고의 작동 원리를 설명한 슬라이드입니다.
English version: http://www.slideshare.net/ShaneSeungwhanMoon/how-alphago-works
- 비전공자 분들을 위한 티저: 바둑 인공지능은 과연 어떻게 만들까요? 딥러닝 딥러닝 하는데 그게 뭘까요? 바둑 인공지능은 또 어디에 쓰일 수 있을까요?
- 전공자 분들을 위한 티저: 알파고의 main components는 재밌게도 CNN (Convolutional Neural Network), 그리고 30년 전부터 유행하던 Reinforcement learning framework와 MCTS (Monte Carlo Tree Search) 정도입니다. 새로울 게 없는 재료들이지만 적절히 활용하는 방법이 신선하네요.
17. 경우의 수 (Search
Space) 줄이기
1.
“action”
후보군 줄이기 (Breadth
Reduction)
d
=
1 d
=
2
…
d
=
3
…
…
…
… d
=
maxD
Win?
Lose?
“이런 수는 사람이 두지 않는다”고 판단하는
모델이 있다면 …
18. 경우의 수 (Search
Space) 줄이기
1.
“action”
후보군 줄이기 (Breadth
Reduction)
d
=
1 d
=
2
…
d
=
3
…
… d
=
maxD
Win?
Lose?
Search
후보군에서 미리 제외 (breadth
reduction)
19. 경우의 수 (Search
Space) 줄이기
2.
결과 더 빨리 예측하기 (Depth
Reduction)
d
=
1 d
=
2
…
d
=
3
…
… d
=
maxD
Win?
Lose?
Maximum
depth까지 시뮬레이션 하지 않고 ..
20. 경우의 수 (Search
Space) 줄이기
2.
결과 더 빨리 예측하기 (Depth
Reduction)
d
=
1 d
=
2
…
d
=
3
…
V
=
1
V
=
2
V
=
10
V(s):
“state
s의 판세” 로 요약
21. 경우의 수 (Search
Space) 줄이기
1. “action”
후보군 줄이기 (Breadth
Reduction)
2. 결과 더 빨리 예측하기 / 판세 평가하기 (Depth
Reduction)
22. 1.
“action”
후보군 줄이기
Learning:
P
(
next
action
|
current
state
)
=
P
(
a
|
s
)
23. 1.
“action”
후보군 줄이기
(1) 프로 바둑기사 따라하기 (supervised
learning)
현재 판
예측 모델
다음 판
s1 s2
s2 s3
s3 s4
Data:
온라인 바둑 고수 (5~9단)
기보 16만 개, 착점 3000만 개
24. 1.
“action”
후보군 줄이기
(1) 프로 바둑기사 따라하기 (supervised
learning)
예측 모델
현재 판 다음 판
25. 1.
“action”
후보군 줄이기
(1) 프로 바둑기사 따라하기 (supervised
learning)
예측 모델
현재 판 다음 액션
34. 1.
“action”
후보군 줄이기
(1) 프로 바둑기사 따라하기 (supervised
learning)
프로기사 흉내내는 모델
(w/
CNN)
현재 판 다음 액션
Training:
35. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
프로기사
흉내내는 모델
(w/
CNN)
프로기사
흉내내는 모델
(w/
CNN)
VS
36. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
프로기사
흉내내는 모델
(w/
CNN)
프로기사
흉내내는 모델
(w/
CNN)
VS
Return:
대국 기보, 승/패자 정보
37. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
프로기사 흉내내는 모델
(w/
CNN)
어느 판 승/패
Training:
패
z
=
-‐1
38. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
프로기사 흉내내는 모델
(w/
CNN)
어느 판 승/패
Training:
승
z
=
+1
39. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
업데이트 모델
ver 1.1
업데이트 모델
ver 1.3VS
Return:
대국 기보, 승/패자 정보
프로기사 흉내내는 모델과 똑같은 topology,
업데이트 된 parameters를 사용
40. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
업데이트 모델
ver 1.3
업데이트 모델
ver 1.7VS
Return:
대국 기보, 승/패자 정보
41. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
업데이트 모델
ver 1.5
업데이트 모델
ver 2.0VS
Return:
대국 기보, 승/패자 정보
42. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
업데이트 모델
ver 3204.1
업데이트 모델
ver 46235.2VS
Return:
대국 기보, 승/패자 정보
43. 1.
“action”
후보군 줄이기
(2) 스스로 발전하기 (reinforcement
learning)
트레이닝 결과
업데이트 모델
ver 1,000,000VS
최종 모델이 80% 승리
프로기사
흉내내는 모델
45. 2.
판세 평가하기
업데이트 모델
ver 1,000,000
어느 판
Training:
승/패
승
(0~1)
예측 모델
(Regression)
기존 모델에 regression
layer를 더함
0~1 사이의 값으로 예측
1에 가까우면 좋은 판세
0에 가까우면 좋지 않은 판세
46. 경우의 수 (Search
Space) 줄이기
1. “action”
후보군 줄이기 (Breadth
Reduction)
2. 판세 평가하기 (Depth
Reduction)
Policy
Network
Value
Network
알파고 논문에서 이런 용어를 만들어서 부름
47. +수 읽기 (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
51. 이세돌 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]
정말 대충 계산해서 …
52. 현재 알파고는 프로 5단 수준?
=
multiple
machines European
champion
53. CPU
/
GPU를 무한정 늘리면?
그러나 구글은 CPU/GPU
늘리지 않겠다고 약속
어떻게 수렴할지
의견이 분분
54. 매일 3만대국씩 학습한다던데?
결국은 어떤 점으로 수렴하겠지만
알파고 논문에서 “자가 대결 대국 수 (RL
sample
#)와 성능 개선”간의 그래프는 공개하지 않음
55. 이세돌 9단의 기보를 학습하면?
구글은 일단 이세돌 9단의 기보를 보고 학습하지 않겠다고 약속
학습한다해도 이세돌과의 적은 수 (5판)의 대국 데이터로
수백만 번의 대국 데이터로 training 된 모델을 tune하는 것은 힘듦
(prone
to
over-‐fitting,
etc.)