29
어떻게 동작할까요? @Tech, 2016. 3. 31 Machine Intelligence Lab., 박준영

Google AlphaGo, 어떻게 동작할까요?

Embed Size (px)

Citation preview

Page 1: Google AlphaGo, 어떻게 동작할까요?

어떻게 동작할까요?

@Tech, 2016. 3. 31 Machine Intelligence Lab., 박준영

Page 2: Google AlphaGo, 어떻게 동작할까요?
Page 3: Google AlphaGo, 어떻게 동작할까요?

세계 바둑계의 흐름

이창호 이세돌

커제

박정환

http://www.goratings.org/history/

구리

스웨

AlphaGo

ELO rating (일종의 ranking point)

Page 4: Google AlphaGo, 어떻게 동작할까요?

내맘대로 해석해본 대국별 하이라이트

Page 5: Google AlphaGo, 어떻게 동작할까요?

1국 - 만만치 않은 알파고

• 이세돌 - 불리하면, 승부수를 날릴 줄도 아네

• 알파고 - 이긴 듯

흑 이세돌 백 알파고

Page 6: Google AlphaGo, 어떻게 동작할까요?

2, 3국 - 절대고수 알파고

이세돌 - 이런 수를? 잘 보니 좋은 수네

알파고 - 여기가 승리 확률이 제일 높군

흑 알파고 백 이세돌 흑 이세돌 백 알파고

Page 7: Google AlphaGo, 어떻게 동작할까요?

4국 - 이세돌 신의 한수?

• 이세돌 - 이 수 밖에 없네

• 알파고 - 여기 둘 확률 만분의 일에, 설령 둬도 별거없는 것 같아서, 생각 안해봤는데 희한하네.. (8수 후…) 망했다!!

흑 알파고 백 이세돌

Page 8: Google AlphaGo, 어떻게 동작할까요?

5국 - 알파고의 넘사벽 계산력

• 이세돌 - 불리한 것 같으니 변화를 일으켜보자

• 알파고 - 아무리 발버둥쳐봤자 어차피 이길 듯.

흑 이세돌 백 알파고

Page 9: Google AlphaGo, 어떻게 동작할까요?

AlphaGo는 어떻게 동작할까요?

Page 10: Google AlphaGo, 어떻게 동작할까요?
Page 11: Google AlphaGo, 어떻게 동작할까요?

다 해보면 됩니다

Page 12: Google AlphaGo, 어떻게 동작할까요?

Mini-max algorithm

http://snipd.net/minimax-algorithm-with-alpha-beta-pruning-in-c

Page 13: Google AlphaGo, 어떻게 동작할까요?
Page 14: Google AlphaGo, 어떻게 동작할까요?

Monte Carlo Tree Search

• 바둑 AI 에서 최근 10년간 주류인 접근법

• Monte Carlo?

• 많이 해본 후,

• 의미있는 수치를 얻어냄

• Tree Search?

• 아까 그 Tree

http://www.mathmisery.com/

Page 15: Google AlphaGo, 어떻게 동작할까요?

AlphaGo 역시 MCTS 기반

Page 16: Google AlphaGo, 어떻게 동작할까요?

MCTS의 기본 동작

https://en.wikipedia.org/wiki/Monte_Carlo_tree_search

Repeat

현재 판의 상태

1수 진행된 상태

2수 진행된 상태

3수 진행된 상태

Page 17: Google AlphaGo, 어떻게 동작할까요?

MCTS in AlphaGo

https://en.wikipedia.org/wiki/Monte_Carlo_tree_search

Repeat

현재 판의 상태

1수 진행된 상태

2수 진행된 상태

3수 진행된 상태

• 아무 길이나 가보기엔 너무 경우의 수가 많다

• 누가 이길지 예측하기가 힘들다

• 어느 길로 가 볼지 알려주는 Policy net.을 만들자

• 누가 이길지 한방에 예측하는 Value net.을 만들자

• 빠르고 그럴듯하게 끝까지 둬볼수있는 Rollout policy 도 만들자

Page 18: Google AlphaGo, 어떻게 동작할까요?

어떻게 만들었나

Page 19: Google AlphaGo, 어떻게 동작할까요?

Training 과정

From AlphaGo Nature paper

(SL : Supervised Learning)

끝까지 둬봄 어느 길로 가볼지

결정 누가 이길지 판단

Value net.의 학습데이터 생성

: 각 모델의 역할

(RL : Reinforcement Learning)

Self Play

Page 20: Google AlphaGo, 어떻게 동작할까요?

하나씩 좀더 자세히

Page 21: Google AlphaGo, 어떻게 동작할까요?

Rollout policy

• 끝까지 둬봐서 누가 이길지 판단에 사용됨

• 다음 수를 어디 둘지 확률로 표시됨

• 끝까지 둬보려면 속도가 빨라야함

• 최근 2수 근처 정보만 입력하는 모델 사용

• 학습 데이터 : 인간의 기보 5만판

• 1 CPU 에서 초당 1000판 시뮬레이션 가능

• 24% 정확도 (사람이 둔 수에 대해)

From AlphaGo Nature paper

Page 22: Google AlphaGo, 어떻게 동작할까요?

SL policy network

• 어떤 수를 생각해볼지 결정하는 데 사용됨

• 다음 수가 어디일지 확률로 출력됨

• 사용한 모델 : Convolutional Neural Network

• 영상 분야에 주로 사용되는 딥러닝 모델

• 인간의 기보 16만판 학습

• 입력 데이터의 형태

• 현재 판의 raw 상태 (각 위치에 흑백이 있는지)

• 수동으로 추가한 특성 (축 여부, 최근 수순 등)

• 57% 정확도 (사람이 둔 수에 대해)

From AlphaGo Nature paper

Page 23: Google AlphaGo, 어떻게 동작할까요?

RL policy network

• Value net.의 학습데이터 생성에 사용됨

• SL Policy net.과 동일 형태의 모델

• Self-Play를 통해 학습

• 승자의 수는 장려 / 패자의 수는 억제

• 128만 판 학습

Self Play

Page 24: Google AlphaGo, 어떻게 동작할까요?

SL vs RL

둘이 대결하면? RL 승률 > 80%

SL policy net. RL policy net.

입력 현재 판의 상태

출력 다음 수에 대한 확률

뭘 학습했나 사람이라면 어디 두었을까 어디 두어야 이길 확률이 높을까

어디다 쓰나 어떤 수를 생각해볼지 결정 Value net의 학습 데이터 생성

Self Play

Page 25: Google AlphaGo, 어떻게 동작할까요?

Value network

• 현재 판의 승리 확률을 예측하는 데 사용

• SL/RL Policy net.와 유사한 딥러닝 모델

• 승리 확률이 [-1, 1] 사이 값으로 출력됨

• 학습 데이터의 형태

• 입력 - N수 째의 상황, 출력 - 승/패

• 인간의 기보는 부적절

• Self-play로 학습 데이터 생성

• 승패 예측 오차율 : 0.23 in MSE

From AlphaGo Nature paper

Page 26: Google AlphaGo, 어떻게 동작할까요?

AlphaGo 알고리즘 요약

• MCTS Framework 에서

• 어느 길로 가볼지 : SL Policy network (사실은 다른 요소도 함께 고려하지만 생략)

• 그 길이 좋은 길인지 : Rollout policy + Value network

• 승리 확률을 최대화하는 수를 선택함 (사실은 가장 많이 방문한 노드를 선택하지만 생략)

• 몇 집을 이기느냐에는 관심이 없음

Page 27: Google AlphaGo, 어떻게 동작할까요?

AlphaGo의 약점은?

• 사람이 두는 수를 학습한 SL Policy Network의 약점

• 현재 판 상태로만 유불리를 판단하는 Value Network의 약점

• 최근 2수 근처만 입력으로 받는 Rollout Policy의 약점

• 잘 떠오르지 않는 묘수가 필요한 장면 (복잡한 싸움)

• 현재 상태만으로는 판단이 힘든 상황 (초반, 복잡한 싸움)

• 멀리 떨어진 곳을 연달아 둬야하는 상황 (초반, 패)

Page 28: Google AlphaGo, 어떻게 동작할까요?

불리할 때의 대처

• 사람이라면 어떤 수를 생각하나

• 최대한 따라붙어서 후일을 도모할 수 있는 수

• 서로 어려워지는 수

• AlphaGo는 어떤 수를 생각하나

• 서로 그럴듯하게 둘 때, 승리확률이 높은 수

Page 29: Google AlphaGo, 어떻게 동작할까요?

그래봤자 바둑. 그래도 바둑. - 조치훈 -

감사합니다