알파고 (바둑 인공지능)의 작동 원리

58
발표자: 문승환 PhD student Language Technologies Institute, School of Computer Science Carnegie Mellon University 3/2/2016 작동원리

Upload: shane-seungwhan-moon

Post on 16-Apr-2017

100.093 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 알파고 (바둑 인공지능)의 작동 원리

발표자:문승환

PhD  studentLanguage  Technologies  Institute,  School  of  Computer  Science

Carnegie  Mellon  University

3/2/2016

작동원리

Page 2: 알파고 (바둑 인공지능)의 작동 원리

알파고 vs  유럽챔피언 (판후이 2단)

2015년 10월 5일 – 9일

<공식경기>-­‐ 제한시간 1시간, 30초초읽기 3회-­‐ 5:0  알파고승리 (불계승 4번)

Page 3: 알파고 (바둑 인공지능)의 작동 원리

알파고 vs  세계챔피언 (이세돌 9단)

2016년 3월 9일 – 15일

<공식경기>-­‐ 제한시간 2시간, 1분초읽기 3회

서울광화문포시즌스호텔

이미지출처:조선일보 1월 28일자

인간과컴퓨터의자존심을건 '세기의대결'

Page 4: 알파고 (바둑 인공지능)의 작동 원리

이세돌

사진출처:매일경제 2013/04

Page 5: 알파고 (바둑 인공지능)의 작동 원리

“자신이없어요.질자신이요”

사진출처:바둑 TV

Page 6: 알파고 (바둑 인공지능)의 작동 원리

"아,  싸울만해서싸워요.  수가보이는데어쩌란말이에요."

사진출처

Page 7: 알파고 (바둑 인공지능)의 작동 원리

"불리하다보니이기자는생각없이대충뒀는데이겼네요.”

-­‐구리九단에게대역전승을거둔직후의인터뷰

사진출처

Page 8: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?

Page 9: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?정의하자면:

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들도포함

Page 10: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?정의하자면:

s (state)

d  =  1 d  =  2

a (action)

Given  s,  pick  the  best  a

바둑인공지능s a s'

Page 11: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?  이렇게만들어보면?d  =  1 d  =  2

모든경우의수를시뮬레이션

Page 12: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?  이렇게만들어보면?d  =  1 d  =  2

d  =  3

Page 13: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?  이렇게만들어보면?d  =  1 d  =  2

d  =  3

… d  =  maxD

끝까지시뮬레이션해서Win?Lose?  결과리포트

Page 14: 알파고 (바둑 인공지능)의 작동 원리

바둑인공지능?  이렇게만들어보면?d  =  1 d  =  2

d  =  3

… d  =  maxD

Win?Lose?  결과리포트

여기에두면 13번이기더라

37,839번

431,320번

끝까지시뮬레이션해봤을때제일많이이긴 “다음수”를고름

Page 15: 알파고 (바둑 인공지능)의 작동 원리

Maximum  depth  search:  이방법은경우의수가우주의원자수보다많아불가능

Page 16: 알파고 (바둑 인공지능)의 작동 원리

핵심:경우의수 (Search  Space)줄이기

Page 17: 알파고 (바둑 인공지능)의 작동 원리

경우의수 (Search  Space)줄이기

1.  “action”  후보군줄이기 (Breadth  Reduction)

d  =  1 d  =  2

d  =  3

… d  =  maxD

Win?Lose?

“이런수는사람이두지않는다”고판단하는모델이있다면 …

Page 18: 알파고 (바둑 인공지능)의 작동 원리

경우의수 (Search  Space)줄이기

1.  “action”  후보군줄이기 (Breadth  Reduction)

d  =  1 d  =  2

d  =  3

… d  =  maxD

Win?Lose?

Search  후보군에서미리제외 (breadth  reduction)

Page 19: 알파고 (바둑 인공지능)의 작동 원리

경우의수 (Search  Space)줄이기

2.  결과더빨리예측하기 (Depth  Reduction)

d  =  1 d  =  2

d  =  3

… d  =  maxD

Win?Lose?

Maximum  depth까지시뮬레이션하지않고 ..

Page 20: 알파고 (바둑 인공지능)의 작동 원리

경우의수 (Search  Space)줄이기

2.  결과더빨리예측하기 (Depth  Reduction)

d  =  1 d  =  2

d  =  3

V  =  1

V  =  2

V  =  10

V(s):   “state  s의판세”로요약

Page 21: 알파고 (바둑 인공지능)의 작동 원리

경우의수 (Search  Space)줄이기

1. “action”  후보군줄이기 (Breadth  Reduction)

2. 결과더빨리예측하기 /판세평가하기 (Depth  Reduction)

Page 22: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

Learning:  P  (  next  action  |  current  state  )

=  P  (  a  |  s  )

Page 23: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(1)프로바둑기사따라하기 (supervised  learning)

현재판

예측모델

다음판

s1 s2

s2 s3

s3 s4

Data:  온라인바둑고수 (5~9단)기보 16만개,착점 3000만개

Page 24: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(1)프로바둑기사따라하기 (supervised  learning)

예측모델

현재판 다음판

Page 25: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(1)프로바둑기사따라하기 (supervised  learning)

예측모델

현재판 다음액션

Page 26: 알파고 (바둑 인공지능)의 작동 원리

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들도포함

Page 27: 알파고 (바둑 인공지능)의 작동 원리

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

Page 28: 알파고 (바둑 인공지능)의 작동 원리

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

Page 29: 알파고 (바둑 인공지능)의 작동 원리

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

Page 30: 알파고 (바둑 인공지능)의 작동 원리

Convolutional  Neural  Network  (CNN)

CNN은레이어별로 input  image를추상화시켜 Image  Recognition을굉장히잘함이미치  출처

Page 31: 알파고 (바둑 인공지능)의 작동 원리

Convolutional  Neural  Network  (CNN)

이걸바둑의판세를읽는데에사용

Page 32: 알파고 (바둑 인공지능)의 작동 원리

바둑:추상화하는능력이중요

CNN:  추상화하는능력이뛰어난모델

바둑두는 Task와 CNN의장점이맞물린경우

Page 33: 알파고 (바둑 인공지능)의 작동 원리

Deep  Learning

~=  Representation  Learning

à단을쌓아올라갈수록추상화된feature를익힘

Page 34: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(1)프로바둑기사따라하기 (supervised  learning)

프로기사흉내내는모델(w/  CNN)

현재판 다음액션

Training:

Page 35: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

프로기사흉내내는모델

(w/  CNN)

프로기사흉내내는모델

(w/  CNN)VS

Page 36: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

프로기사흉내내는모델

(w/  CNN)

프로기사흉내내는모델

(w/  CNN)VS

Return:  대국기보,승/패자정보

Page 37: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

프로기사흉내내는모델(w/  CNN)

어느판 승/패

Training:

패z  =  -­‐1

Page 38: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

프로기사흉내내는모델(w/  CNN)

어느판 승/패

Training:

승z  =  +1

Page 39: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

업데이트모델ver 1.1

업데이트모델ver 1.3VS

Return:  대국기보,승/패자정보

프로기사흉내내는모델과똑같은 topology,  업데이트된 parameters를사용

Page 40: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

업데이트모델ver 1.3

업데이트모델ver 1.7VS

Return:  대국기보,승/패자정보

Page 41: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

업데이트모델ver 1.5

업데이트모델ver 2.0VS

Return:  대국기보,승/패자정보

Page 42: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)

업데이트모델ver 3204.1

업데이트모델ver 46235.2VS

Return:  대국기보,승/패자정보

Page 43: 알파고 (바둑 인공지능)의 작동 원리

1.  “action”  후보군줄이기

(2)스스로발전하기 (reinforcement  learning)  트레이닝결과

업데이트모델ver 1,000,000VS

최종모델이 80%승리

프로기사흉내내는모델

Page 44: 알파고 (바둑 인공지능)의 작동 원리

2.  판세평가하기

Page 45: 알파고 (바둑 인공지능)의 작동 원리

2.  판세평가하기

업데이트모델ver 1,000,000

어느판

Training:

승/패

승(0~1)

예측모델(Regression)

기존모델에 regression  layer를더함0~1사이의값으로예측1에가까우면좋은판세0에가까우면좋지않은판세

Page 46: 알파고 (바둑 인공지능)의 작동 원리

경우의수 (Search  Space)줄이기

1. “action”  후보군줄이기 (Breadth  Reduction)

2. 판세평가하기 (Depth  Reduction)

Policy  Network

Value  Network

알파고논문에서이런용어를만들어서부름

Page 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

Page 48: 알파고 (바둑 인공지능)의 작동 원리

결과Elo rating  system

알파고 components  들의  조합에  따른  성능  비교

Page 49: 알파고 (바둑 인공지능)의 작동 원리

Takeaways임의의 task를위해 training한 network를다양하게활용

Page 50: 알파고 (바둑 인공지능)의 작동 원리

이세돌 9단 vs  알파고

Page 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]

정말대충계산해서 …

Page 52: 알파고 (바둑 인공지능)의 작동 원리

현재알파고는프로 5단수준?

=  multiple  machines European  champion

Page 53: 알파고 (바둑 인공지능)의 작동 원리

CPU  /  GPU를무한정늘리면?

그러나구글은 CPU/GPU  늘리지않겠다고약속

어떻게수렴할지의견이분분

Page 54: 알파고 (바둑 인공지능)의 작동 원리

매일 3만대국씩학습한다던데?

결국은어떤점으로수렴하겠지만알파고논문에서 “자가대결대국수 (RL  sample  #)와성능개선”간의그래프는공개하지않음

Page 55: 알파고 (바둑 인공지능)의 작동 원리

이세돌 9단의기보를학습하면?

구글은일단이세돌 9단의기보를보고학습하지않겠다고약속

학습한다해도이세돌과의적은수 (5판)의대국데이터로수백만번의대국데이터로 training된모델을 tune하는것은힘듦

(prone  to  over-­‐fitting,  etc.)

Page 56: 알파고 (바둑 인공지능)의 작동 원리

알파고의약점은?

Page 57: 알파고 (바둑 인공지능)의 작동 원리

AlphaGo작동원리발표자:문승환

PhD  studentLanguage  Technologies  Institute,  School  of  Computer  Science

Carnegie  Mellon  [email protected]

3/2/2016

Page 58: 알파고 (바둑 인공지능)의 작동 원리

Reference

• Silver,  David,  et  al.  "Mastering  the  game  of  Go  with  deep  neural  networks  and  tree  search." Nature 529.7587  (2016):  484-­‐489.