SlideShare a Scribd company logo
알파고의 알고리즘
기계학습은 만능일까 - 기계학습과 알파고
조선비즈, 미디어잇
2016. 03. 04
소프트웨어정책연구소
김석원 책임연구원
skimaza@spri.kr
2
360 가지 선택
바둑 문제의 게임트리 표현
361 가지 선택
360 가지 선택
게임상태
착수(액션)
게임상태
착수(액션)
게임상태
360 가지 선택
탐색공간 규모: 250150 ≒ 10360
Brute-force 방식은 부적절
3
몬테카를로 트리탐색 – Coulom, 2006, Crazy Stone
끝
트리탐색
터미널노드부터는
빠른 시뮬레이션
결과확인 및 전파
액션선택
빠른 시뮬레이션
이 상태의
가치평가
승/패 결정
가치 변경
액션의 가능성
변경
T
Backup
4
MCTS를 하려면 무엇이 필요할까?
끝
트리탐색
터미널노드부터는
빠른 시뮬레이션
결과확인 및 전파
링크값 계산
빠른 시뮬레이션 방법
새로 펼쳐진 노
드의 가치 평가
Backup
가치 변경
무엇을 선택?
T
언제 노드를 확장할까?
링크값 변경
5
MCTS를 하려면 무엇이 필요할까? – 알파고의 방법
끝
트리탐색
터미널노드부터는
빠른 시뮬레이션
결과확인 및 전파
링크값 계산
빠른 시뮬레이션 방법
새로 펼쳐진 노
드의 가치 평가
Backup
무엇을 선택?
T
언제 노드를 확장할까?
링크값 변경
초기값: 지도학습정책망
40번 이상 방문
절반은 가치망에서
고속 실행정책
절반은 시뮬레이션
결과에서
시뮬레이션 결과 반영
가장 많이 방문한 링크
6
액션선택 – 링크의 초기값
링크의 초기값을 지도학습 정책망으로 지정
다음 수의 위치별
확률분포
Q + u
Q: 축적된 시뮬레이션 결과
u: 상태값. 시뮬레이션이 진
행되며 점점 작아짐
7
액션선택 – 엣지의 초기값
바둑판 상태
모든 빈 자리에 대한
확률분포…
5x5
또는 3x3
192@19x19
…
192@19x19
…
컨볼루션 신경망
13 계층
링크의 초기값을 지도학습 정책망으로 지정
Q + u
Q: 축적된 시뮬레이션 결과
u: 상태값. 시뮬레이션이 진
행되며 점점 작아짐
어떤 상태에서 다음 수를 어디에 두는지에 대한 확률 분포를 학습
입력데이터
KGS 6-9단의
16만 게임
3천만가지 착수
8
노드의 가치 계산 1 – 상태를 입력으로 가치망에서 계산
트리탐색
최대값을 따라 내려감
노드의 가치 =
가치망 (지도학습+강화학습) 계산값
+
축적된 시뮬레이션 결과
이길
가능성
터미널 노드에서
확장조건(40번 이상 방문)을
만족하면 한 단계 확장
T
9
노드의 가치계산 2 – 빠른 시뮬레이션 결과 반영
끝
터미널노드부터는
빠른 시뮬레이션
결과확인 및 전파 승/패 확인(z=+1/-1)
고속 실행정책
T V(T) = 0.5*가치망 + 0.5*결과(z)
Backup
가치 변경
액션의 가능성
변경
10
결과 Backup
끝
트리탐색
터미널노드부터는
빠른 시뮬레이션
결과확인 및 전파
액션선택
승/패 결정
Backup
가치 변경
액션의 가능성
변경
T V(T) = 0.5*가치망 + 0.5*결과(z)
Q = (링크를 거쳐간 V값의 합) / (거쳐간 횟수)
이 링크를 거쳐갈 때 계산된 V(T)의 산술평균
u ∝ (초기값) / (1 + 거쳐간 횟수)
이 링크를 지나갈수록 점점 작아짐
Q + u
Q: 축적된 시뮬레이션 결과
u: 상태값. 시뮬레이션이 진
행되며 점점 작아짐
11
최종 선택
끝
트리탐색
터미널노드부터는
시뮬레이션
결과확인 및 전파
액션선택
승/패 결정
Backup
가치 변경
액션의 가능성
변경
T V(T) = 0.5*가치망 + 0.5*결과(z)
Q = (링크를 거쳐간 V값의 합) / (거쳐간 횟수)
이 링크를 거쳐갈 때 계산된 V(T)의 산술평균
u ∝ (초기값) / (1 + 거쳐간 횟수)
이 링크를 지나갈수록 점점 작아짐
최종 선택은 가장 많이 방문한 링크
max(Q+u)가 아님
시뮬레이션 과정에서 이미 반영되었음
less sensitive to outliers
12
알파고의 몬테카를로 트리 탐색 요약
끝
트리탐색
최대값을 따라 내려감
터미널노드부터는
빠른 시뮬레이션
결과확인 및 전파
링크의 초기값을 지도학습 정책망으로 지정
많은 시뮬레이션으로 보정
다음 수의 위치별
확률분포
노드의 가치 =
가치망 계산값 + 시뮬레이션 결과
이길
가능성
고속 실행정책
T
Q + u
Q: 축적된 시뮬레이션 결과
u: 상태값. 시뮬레이션이 진
행되며 점점 작아짐
13
성능 확장성 실험
14
 지도학습의 결과를 자체 경기를 통해 강화
 1 minibatch
• X: 훈련대상, Y:임의의 상대(정책망)를 pool에서 선택
• 128번 경기 후 결과의 평균을 X값에 반영-이기는 길을 강화, 지는 길을 약화
 500번의 minibatch후 X를 새로운 정책망으로 pool에 추가
 하루동안 50개의 GPU로 10,000번의 minibatch를 실행하여 강화학습
강화학습
minibatchminibatchminibatchminibatchminibatch
minibatchminibatchminibatchminibatchminibatch
정책망 pool
상대 선택
새 정책망
500번 500번
● ● ●
● ● ●
● ● ●
15
가치망 훈련
학습데이터 필요
[게임상태(S’), 결과(승/패)]의 쌍
+1, 승
-1, 패
16
가치망 훈련-강화학습정책망에 기반
1~450에서 임의 숫자(U) 선택
– 몇번째 수에 대한 데이터를 만들지 결정
1~U-1까지 지도학습정책망으로 실행
U번째 수는 현재 가능한 착점 위치중 임의선택
U+1~끝까지는 강화학습정책망으로 실행
게임결과는 z값(승 +1, 패 -1)으로 기록
(SU+1, Z)가 하나의 학습데이터가 됨
위의 과정을 3천만번 반복하여 3천만 데이터 확보
학습은 32개 위치의 미니배치 5천만건을 1주일간 50개의
GPU로 실행
데이터셋의 다양성
을 높이기 위해
noise가 더 많은 정
책망 이용
U+1~끝까지는 강
화학습정책망의 가
치값 함수 추출
학습데이터 필요
[게임상태(S’), 결과(승/패)]의 쌍
기존 데이터셋과의
연관관계 제거
+1, 승
-1, 패
1, 2, …, U-1, U, U+1, …, N(종료)
지도학습정책망으로
실행
랜덤 강화학습정책망으로
실행
17
 몬테카를로 트리탐색에 컨벌루션 신경망을 적용하여 성능 향상
• 입력데이터는 KGS 바둑서버의 3천만가지 수 (6단이상의 약 16만개의 경기)
• 13단계의 깊은 신경망을 구성하여 막대한 양의 입력데이터 정보를 모델링
• (cf.) 페이스북의 DeepFace가 9단계였음
 정책망으로 액션(링크)의 초기 확률을 계산
• 지도학습 정책망을 사용하여 입력데이터에서 많이 선택된 수가 높은 초기값을
갖게 됨
 가치망으로 상태(노드)의 승리확률의 절반을 계산
• 지도학습+강화학습의 결과를 이용하여 바둑판 상태의 승리확률을 모델링
 시뮬레이션이 계속되며 초기값의 비중이 작아짐
• 링크값, 가치값이 점점 시뮬레이션 결과를 반영
알파고의 알고리즘
18
 제한시간은 주로 중반전에 많이 배정
 초읽기는 반드시 마지막까지 이용하고 착수
 상대가 생각할 때도 시뮬레이션은 계속됨
 30초에 약 10~20만번의 시뮬레이션을 수행할 것으로 추정
경기관련 참고 사항
19
 제한시간과 초읽기를 2배로 한 것은 누구에게 유리할까?
• 시뮬레이션의 비중
 중국식 룰을 쓸 수 밖에 없는 이유
• 개발팀에서도 얘기했듯이 7.5집 덤이라는 규칙이 정책망, 가치망에 녹아 들어 있다
• 규칙을 바꾸면 다시 훈련시켜야 하고 지금 수준이 되려면 아마 수개월이 걸릴 것이다
 보수적, 침착, 벽에다 두고 두는 느낌(판후이)
 이 알고리즘은 바둑용이 아니라 복잡한 요소를 고려하여 의사결정하는 문제를
푸는 방법
• 의료진단, 금융 등
• 승부가 중요하지 않음. 이번에 이기더라도 인간보다 바둑을 잘 둔다는 의미도 아님
 이세돌9단의 기보를 훈련하는 것보다 쓰레드 오류, 네트워크 오류 등 오류 상황
대응기능을 보완하여 시뮬레이션 횟수를 늘리는 것이 중요
• GPU나 쓰레드에 오류가 있어서 전체 컴퓨팅 성능을 활용하지 못하게 되면 알파고의 수
준이 훨씬 떨어짐
마무리
감사합니다

More Related Content

What's hot

リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法
リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法
リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法
Shinnosuke Takamichi
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)ryotat
 
알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리
Shane (Seungwhan) Moon
 
統計的手法に基づく異常音検知の理論と応用
統計的手法に基づく異常音検知の理論と応用統計的手法に基づく異常音検知の理論と応用
統計的手法に基づく異常音検知の理論と応用
Yuma Koizumi
 
強化学習入門
強化学習入門強化学習入門
強化学習入門Shunta Saito
 
音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)
Daichi Kitamura
 
音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用
Yuma Koizumi
 
Neural text-to-speech and voice conversion
Neural text-to-speech and voice conversionNeural text-to-speech and voice conversion
Neural text-to-speech and voice conversion
Yuki Saito
 
Onoma-to-wave: オノマトペを利用した環境音合成手法の提案
Onoma-to-wave: オノマトペを利用した環境音合成手法の提案Onoma-to-wave: オノマトペを利用した環境音合成手法の提案
Onoma-to-wave: オノマトペを利用した環境音合成手法の提案
Keisuke Imoto
 
Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?
Lee Ji Eun
 
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
Daichi Kitamura
 
多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調
多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調
多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調
Shinnosuke Takamichi
 
DNAマイクロアレイの解析と多重検定補正
DNAマイクロアレイの解析と多重検定補正DNAマイクロアレイの解析と多重検定補正
DNAマイクロアレイの解析と多重検定補正弘毅 露崎
 
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトCREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
NU_I_TODALAB
 
音声の声質を変換する技術とその応用
音声の声質を変換する技術とその応用音声の声質を変換する技術とその応用
音声の声質を変換する技術とその応用
NU_I_TODALAB
 
WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響
NU_I_TODALAB
 
[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio
Deep Learning JP
 
ハミルトニアンモンテカルロ法についての説明
ハミルトニアンモンテカルロ法についての説明ハミルトニアンモンテカルロ法についての説明
ハミルトニアンモンテカルロ法についての説明
KCS Keio Computer Society
 
異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –Yohei Sato
 
深層学習 第6章
深層学習 第6章深層学習 第6章
深層学習 第6章
KCS Keio Computer Society
 

What's hot (20)

リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法
リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法
リアルタイムDNN音声変換フィードバックによるキャラクタ性の獲得手法
 
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
行列およびテンソルデータに対する機械学習(数理助教の会 2011/11/28)
 
알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리알파고 (바둑 인공지능)의 작동 원리
알파고 (바둑 인공지능)의 작동 원리
 
統計的手法に基づく異常音検知の理論と応用
統計的手法に基づく異常音検知の理論と応用統計的手法に基づく異常音検知の理論と応用
統計的手法に基づく異常音検知の理論と応用
 
強化学習入門
強化学習入門強化学習入門
強化学習入門
 
音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)音源分離における音響モデリング(Acoustic modeling in audio source separation)
音源分離における音響モデリング(Acoustic modeling in audio source separation)
 
音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用音響信号に対する異常音検知技術と応用
音響信号に対する異常音検知技術と応用
 
Neural text-to-speech and voice conversion
Neural text-to-speech and voice conversionNeural text-to-speech and voice conversion
Neural text-to-speech and voice conversion
 
Onoma-to-wave: オノマトペを利用した環境音合成手法の提案
Onoma-to-wave: オノマトペを利用した環境音合成手法の提案Onoma-to-wave: オノマトペを利用した環境音合成手法の提案
Onoma-to-wave: オノマトペを利用した環境音合成手法の提案
 
Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?Google AlphaGo, 어떻게 동작할까요?
Google AlphaGo, 어떻게 동작할까요?
 
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...非負値行列分解の確率的生成モデルと多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
非負値行列分解の確率的生成モデルと 多チャネル音源分離への応用 (Generative model in nonnegative matrix facto...
 
多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調
多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調
多様なカートシスを持つ雑音に対応した低ミュージカルノイズ DNN 音声強調
 
DNAマイクロアレイの解析と多重検定補正
DNAマイクロアレイの解析と多重検定補正DNAマイクロアレイの解析と多重検定補正
DNAマイクロアレイの解析と多重検定補正
 
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクトCREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
CREST「共生インタラクション」共創型音メディア機能拡張プロジェクト
 
音声の声質を変換する技術とその応用
音声の声質を変換する技術とその応用音声の声質を変換する技術とその応用
音声の声質を変換する技術とその応用
 
WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響WaveNetが音声合成研究に与える影響
WaveNetが音声合成研究に与える影響
 
[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio[DL輪読会]Wavenet a generative model for raw audio
[DL輪読会]Wavenet a generative model for raw audio
 
ハミルトニアンモンテカルロ法についての説明
ハミルトニアンモンテカルロ法についての説明ハミルトニアンモンテカルロ法についての説明
ハミルトニアンモンテカルロ法についての説明
 
異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –
 
深層学習 第6章
深層学習 第6章深層学習 第6章
深層学習 第6章
 

Viewers also liked

왓슨컴퓨터의 인공지능
왓슨컴퓨터의 인공지능왓슨컴퓨터의 인공지능
왓슨컴퓨터의 인공지능
SeokWon Kim
 
Ibm왓슨과 apple 시리
Ibm왓슨과 apple 시리Ibm왓슨과 apple 시리
Ibm왓슨과 apple 시리
Saltlux zinyus
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가
Yongha Kim
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
Jinwon Lee
 
How AlphaGo Works
How AlphaGo WorksHow AlphaGo Works
How AlphaGo Works
Shane (Seungwhan) Moon
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리
SeokWon Kim
 
Junkbots and computational thinking
Junkbots and computational thinkingJunkbots and computational thinking
Junkbots and computational thinking
Scott Turner
 
인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)
SK(주) C&C - 강병호
 
Deep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNetDeep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNet
Hyojun Kim
 
Computational Thinking
Computational ThinkingComputational Thinking
Computational Thinkingshowslidedump
 
AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...
AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...
AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...
Michael Jongho Moon
 
통찰의연결 학습자료 04
통찰의연결 학습자료 04통찰의연결 학습자료 04
통찰의연결 학습자료 04
connect_foundation
 
From computational thinking to coding and back
From computational thinking to coding and backFrom computational thinking to coding and back
From computational thinking to coding and back
Technological Ecosystems for Enhancing Multiculturality
 
IBM Watson - Introduction to IBM Watson
IBM Watson - Introduction to IBM WatsonIBM Watson - Introduction to IBM Watson
IBM Watson - Introduction to IBM Watson
Carlos Martin Hernandez
 
Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream)
Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream) Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream)
Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream)
IT Arena
 
바둑인을 위한 알파고
바둑인을 위한 알파고바둑인을 위한 알파고
바둑인을 위한 알파고
Donghun Lee
 
[IBM Korea 김상훈] Watson Explorer
[IBM Korea 김상훈] Watson Explorer[IBM Korea 김상훈] Watson Explorer
[IBM Korea 김상훈] Watson Explorer
(Joe), Sanghun Kim
 
인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0
인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0
인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0
INMO SHIN
 
인공 신경망 구현에 관한 간단한 설명
인공 신경망 구현에 관한 간단한 설명인공 신경망 구현에 관한 간단한 설명
인공 신경망 구현에 관한 간단한 설명
Woonghee Lee
 
B6 문맥인식기술활용
B6 문맥인식기술활용B6 문맥인식기술활용
B6 문맥인식기술활용NAVER D2
 

Viewers also liked (20)

왓슨컴퓨터의 인공지능
왓슨컴퓨터의 인공지능왓슨컴퓨터의 인공지능
왓슨컴퓨터의 인공지능
 
Ibm왓슨과 apple 시리
Ibm왓슨과 apple 시리Ibm왓슨과 apple 시리
Ibm왓슨과 apple 시리
 
기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가기계학습 / 딥러닝이란 무엇인가
기계학습 / 딥러닝이란 무엇인가
 
인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝인공지능, 기계학습 그리고 딥러닝
인공지능, 기계학습 그리고 딥러닝
 
How AlphaGo Works
How AlphaGo WorksHow AlphaGo Works
How AlphaGo Works
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리
 
Junkbots and computational thinking
Junkbots and computational thinkingJunkbots and computational thinking
Junkbots and computational thinking
 
인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)인공지능개론 (머신러닝 중심)
인공지능개론 (머신러닝 중심)
 
Deep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNetDeep Learning Into Advance - 1. Image, ConvNet
Deep Learning Into Advance - 1. Image, ConvNet
 
Computational Thinking
Computational ThinkingComputational Thinking
Computational Thinking
 
AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...
AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...
AlphaGo: An AI Go player based on deep neural networks and monte carlo tree s...
 
통찰의연결 학습자료 04
통찰의연결 학습자료 04통찰의연결 학습자료 04
통찰의연결 학습자료 04
 
From computational thinking to coding and back
From computational thinking to coding and backFrom computational thinking to coding and back
From computational thinking to coding and back
 
IBM Watson - Introduction to IBM Watson
IBM Watson - Introduction to IBM WatsonIBM Watson - Introduction to IBM Watson
IBM Watson - Introduction to IBM Watson
 
Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream)
Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream) Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream)
Face Recognition Based on Deep Learning (Yurii Pashchenko Technology Stream)
 
바둑인을 위한 알파고
바둑인을 위한 알파고바둑인을 위한 알파고
바둑인을 위한 알파고
 
[IBM Korea 김상훈] Watson Explorer
[IBM Korea 김상훈] Watson Explorer[IBM Korea 김상훈] Watson Explorer
[IBM Korea 김상훈] Watson Explorer
 
인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0
인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0
인공지능 특허전략 :: 2. 인공지능 특허 확보전략 v1.0
 
인공 신경망 구현에 관한 간단한 설명
인공 신경망 구현에 관한 간단한 설명인공 신경망 구현에 관한 간단한 설명
인공 신경망 구현에 관한 간단한 설명
 
B6 문맥인식기술활용
B6 문맥인식기술활용B6 문맥인식기술활용
B6 문맥인식기술활용
 

Similar to 알파고의 알고리즘

알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review
상은 박
 
파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강
Woong won Lee
 
Rl
RlRl
주가_변화시점탐지(Change point Detection)
주가_변화시점탐지(Change point Detection)주가_변화시점탐지(Change point Detection)
주가_변화시점탐지(Change point Detection)
Seung-Woo Kang
 
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
Donghwan Lee
 
AlphagoZero
AlphagoZeroAlphagoZero
AlphagoZero
KyeongUkJang
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
홍배 김
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3
Haesun Park
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
Haesun Park
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
Haesun Park
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
Sang Jun Lee
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델
Seong-Bok Lee
 
강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2
Dongmin Lee
 
시계열분석의 이해
시계열분석의 이해시계열분석의 이해
시계열분석의 이해
TIMEGATE
 
시계열 분석의 이해와 활용
시계열 분석의 이해와 활용시계열 분석의 이해와 활용
시계열 분석의 이해와 활용
Seung-Woo Kang
 
5.model evaluation and improvement
5.model evaluation and improvement5.model evaluation and improvement
5.model evaluation and improvement
Haesun Park
 
Rnn keras
Rnn kerasRnn keras
Rnn keras
Park Seong Hyeon
 
3.neural networks
3.neural networks3.neural networks
3.neural networks
Haesun Park
 

Similar to 알파고의 알고리즘 (20)

알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review알파고 풀어보기 / Alpha Technical Review
알파고 풀어보기 / Alpha Technical Review
 
파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강파이썬과 케라스로 배우는 강화학습 저자특강
파이썬과 케라스로 배우는 강화학습 저자특강
 
Rl
RlRl
Rl
 
주가_변화시점탐지(Change point Detection)
주가_변화시점탐지(Change point Detection)주가_변화시점탐지(Change point Detection)
주가_변화시점탐지(Change point Detection)
 
분석6기 4조
분석6기 4조분석6기 4조
분석6기 4조
 
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
★강의교재_데이터 분석을 위한 통계와 확률_v2.pptx
 
AlphagoZero
AlphagoZeroAlphagoZero
AlphagoZero
 
Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명Recurrent Neural Net의 이론과 설명
Recurrent Neural Net의 이론과 설명
 
2.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-32.supervised learning(epoch#2)-3
2.supervised learning(epoch#2)-3
 
2.linear regression and logistic regression
2.linear regression and logistic regression2.linear regression and logistic regression
2.linear regression and logistic regression
 
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
[홍대 머신러닝 스터디 - 핸즈온 머신러닝] 1장. 한눈에 보는 머신러닝
 
Lecture 4: Neural Networks I
Lecture 4: Neural Networks ILecture 4: Neural Networks I
Lecture 4: Neural Networks I
 
HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델HR Analytics - 퇴직가능성예측모델
HR Analytics - 퇴직가능성예측모델
 
강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2강화학습 알고리즘의 흐름도 Part 2
강화학습 알고리즘의 흐름도 Part 2
 
시계열분석의 이해
시계열분석의 이해시계열분석의 이해
시계열분석의 이해
 
시계열 분석의 이해와 활용
시계열 분석의 이해와 활용시계열 분석의 이해와 활용
시계열 분석의 이해와 활용
 
5.model evaluation and improvement
5.model evaluation and improvement5.model evaluation and improvement
5.model evaluation and improvement
 
Rnn keras
Rnn kerasRnn keras
Rnn keras
 
Rdatamining
Rdatamining Rdatamining
Rdatamining
 
3.neural networks
3.neural networks3.neural networks
3.neural networks
 

알파고의 알고리즘

  • 1. 알파고의 알고리즘 기계학습은 만능일까 - 기계학습과 알파고 조선비즈, 미디어잇 2016. 03. 04 소프트웨어정책연구소 김석원 책임연구원 skimaza@spri.kr
  • 2. 2 360 가지 선택 바둑 문제의 게임트리 표현 361 가지 선택 360 가지 선택 게임상태 착수(액션) 게임상태 착수(액션) 게임상태 360 가지 선택 탐색공간 규모: 250150 ≒ 10360 Brute-force 방식은 부적절
  • 3. 3 몬테카를로 트리탐색 – Coulom, 2006, Crazy Stone 끝 트리탐색 터미널노드부터는 빠른 시뮬레이션 결과확인 및 전파 액션선택 빠른 시뮬레이션 이 상태의 가치평가 승/패 결정 가치 변경 액션의 가능성 변경 T Backup
  • 4. 4 MCTS를 하려면 무엇이 필요할까? 끝 트리탐색 터미널노드부터는 빠른 시뮬레이션 결과확인 및 전파 링크값 계산 빠른 시뮬레이션 방법 새로 펼쳐진 노 드의 가치 평가 Backup 가치 변경 무엇을 선택? T 언제 노드를 확장할까? 링크값 변경
  • 5. 5 MCTS를 하려면 무엇이 필요할까? – 알파고의 방법 끝 트리탐색 터미널노드부터는 빠른 시뮬레이션 결과확인 및 전파 링크값 계산 빠른 시뮬레이션 방법 새로 펼쳐진 노 드의 가치 평가 Backup 무엇을 선택? T 언제 노드를 확장할까? 링크값 변경 초기값: 지도학습정책망 40번 이상 방문 절반은 가치망에서 고속 실행정책 절반은 시뮬레이션 결과에서 시뮬레이션 결과 반영 가장 많이 방문한 링크
  • 6. 6 액션선택 – 링크의 초기값 링크의 초기값을 지도학습 정책망으로 지정 다음 수의 위치별 확률분포 Q + u Q: 축적된 시뮬레이션 결과 u: 상태값. 시뮬레이션이 진 행되며 점점 작아짐
  • 7. 7 액션선택 – 엣지의 초기값 바둑판 상태 모든 빈 자리에 대한 확률분포… 5x5 또는 3x3 192@19x19 … 192@19x19 … 컨볼루션 신경망 13 계층 링크의 초기값을 지도학습 정책망으로 지정 Q + u Q: 축적된 시뮬레이션 결과 u: 상태값. 시뮬레이션이 진 행되며 점점 작아짐 어떤 상태에서 다음 수를 어디에 두는지에 대한 확률 분포를 학습 입력데이터 KGS 6-9단의 16만 게임 3천만가지 착수
  • 8. 8 노드의 가치 계산 1 – 상태를 입력으로 가치망에서 계산 트리탐색 최대값을 따라 내려감 노드의 가치 = 가치망 (지도학습+강화학습) 계산값 + 축적된 시뮬레이션 결과 이길 가능성 터미널 노드에서 확장조건(40번 이상 방문)을 만족하면 한 단계 확장 T
  • 9. 9 노드의 가치계산 2 – 빠른 시뮬레이션 결과 반영 끝 터미널노드부터는 빠른 시뮬레이션 결과확인 및 전파 승/패 확인(z=+1/-1) 고속 실행정책 T V(T) = 0.5*가치망 + 0.5*결과(z) Backup 가치 변경 액션의 가능성 변경
  • 10. 10 결과 Backup 끝 트리탐색 터미널노드부터는 빠른 시뮬레이션 결과확인 및 전파 액션선택 승/패 결정 Backup 가치 변경 액션의 가능성 변경 T V(T) = 0.5*가치망 + 0.5*결과(z) Q = (링크를 거쳐간 V값의 합) / (거쳐간 횟수) 이 링크를 거쳐갈 때 계산된 V(T)의 산술평균 u ∝ (초기값) / (1 + 거쳐간 횟수) 이 링크를 지나갈수록 점점 작아짐 Q + u Q: 축적된 시뮬레이션 결과 u: 상태값. 시뮬레이션이 진 행되며 점점 작아짐
  • 11. 11 최종 선택 끝 트리탐색 터미널노드부터는 시뮬레이션 결과확인 및 전파 액션선택 승/패 결정 Backup 가치 변경 액션의 가능성 변경 T V(T) = 0.5*가치망 + 0.5*결과(z) Q = (링크를 거쳐간 V값의 합) / (거쳐간 횟수) 이 링크를 거쳐갈 때 계산된 V(T)의 산술평균 u ∝ (초기값) / (1 + 거쳐간 횟수) 이 링크를 지나갈수록 점점 작아짐 최종 선택은 가장 많이 방문한 링크 max(Q+u)가 아님 시뮬레이션 과정에서 이미 반영되었음 less sensitive to outliers
  • 12. 12 알파고의 몬테카를로 트리 탐색 요약 끝 트리탐색 최대값을 따라 내려감 터미널노드부터는 빠른 시뮬레이션 결과확인 및 전파 링크의 초기값을 지도학습 정책망으로 지정 많은 시뮬레이션으로 보정 다음 수의 위치별 확률분포 노드의 가치 = 가치망 계산값 + 시뮬레이션 결과 이길 가능성 고속 실행정책 T Q + u Q: 축적된 시뮬레이션 결과 u: 상태값. 시뮬레이션이 진 행되며 점점 작아짐
  • 14. 14  지도학습의 결과를 자체 경기를 통해 강화  1 minibatch • X: 훈련대상, Y:임의의 상대(정책망)를 pool에서 선택 • 128번 경기 후 결과의 평균을 X값에 반영-이기는 길을 강화, 지는 길을 약화  500번의 minibatch후 X를 새로운 정책망으로 pool에 추가  하루동안 50개의 GPU로 10,000번의 minibatch를 실행하여 강화학습 강화학습 minibatchminibatchminibatchminibatchminibatch minibatchminibatchminibatchminibatchminibatch 정책망 pool 상대 선택 새 정책망 500번 500번 ● ● ● ● ● ● ● ● ●
  • 15. 15 가치망 훈련 학습데이터 필요 [게임상태(S’), 결과(승/패)]의 쌍 +1, 승 -1, 패
  • 16. 16 가치망 훈련-강화학습정책망에 기반 1~450에서 임의 숫자(U) 선택 – 몇번째 수에 대한 데이터를 만들지 결정 1~U-1까지 지도학습정책망으로 실행 U번째 수는 현재 가능한 착점 위치중 임의선택 U+1~끝까지는 강화학습정책망으로 실행 게임결과는 z값(승 +1, 패 -1)으로 기록 (SU+1, Z)가 하나의 학습데이터가 됨 위의 과정을 3천만번 반복하여 3천만 데이터 확보 학습은 32개 위치의 미니배치 5천만건을 1주일간 50개의 GPU로 실행 데이터셋의 다양성 을 높이기 위해 noise가 더 많은 정 책망 이용 U+1~끝까지는 강 화학습정책망의 가 치값 함수 추출 학습데이터 필요 [게임상태(S’), 결과(승/패)]의 쌍 기존 데이터셋과의 연관관계 제거 +1, 승 -1, 패 1, 2, …, U-1, U, U+1, …, N(종료) 지도학습정책망으로 실행 랜덤 강화학습정책망으로 실행
  • 17. 17  몬테카를로 트리탐색에 컨벌루션 신경망을 적용하여 성능 향상 • 입력데이터는 KGS 바둑서버의 3천만가지 수 (6단이상의 약 16만개의 경기) • 13단계의 깊은 신경망을 구성하여 막대한 양의 입력데이터 정보를 모델링 • (cf.) 페이스북의 DeepFace가 9단계였음  정책망으로 액션(링크)의 초기 확률을 계산 • 지도학습 정책망을 사용하여 입력데이터에서 많이 선택된 수가 높은 초기값을 갖게 됨  가치망으로 상태(노드)의 승리확률의 절반을 계산 • 지도학습+강화학습의 결과를 이용하여 바둑판 상태의 승리확률을 모델링  시뮬레이션이 계속되며 초기값의 비중이 작아짐 • 링크값, 가치값이 점점 시뮬레이션 결과를 반영 알파고의 알고리즘
  • 18. 18  제한시간은 주로 중반전에 많이 배정  초읽기는 반드시 마지막까지 이용하고 착수  상대가 생각할 때도 시뮬레이션은 계속됨  30초에 약 10~20만번의 시뮬레이션을 수행할 것으로 추정 경기관련 참고 사항
  • 19. 19  제한시간과 초읽기를 2배로 한 것은 누구에게 유리할까? • 시뮬레이션의 비중  중국식 룰을 쓸 수 밖에 없는 이유 • 개발팀에서도 얘기했듯이 7.5집 덤이라는 규칙이 정책망, 가치망에 녹아 들어 있다 • 규칙을 바꾸면 다시 훈련시켜야 하고 지금 수준이 되려면 아마 수개월이 걸릴 것이다  보수적, 침착, 벽에다 두고 두는 느낌(판후이)  이 알고리즘은 바둑용이 아니라 복잡한 요소를 고려하여 의사결정하는 문제를 푸는 방법 • 의료진단, 금융 등 • 승부가 중요하지 않음. 이번에 이기더라도 인간보다 바둑을 잘 둔다는 의미도 아님  이세돌9단의 기보를 훈련하는 것보다 쓰레드 오류, 네트워크 오류 등 오류 상황 대응기능을 보완하여 시뮬레이션 횟수를 늘리는 것이 중요 • GPU나 쓰레드에 오류가 있어서 전체 컴퓨팅 성능을 활용하지 못하게 되면 알파고의 수 준이 훨씬 떨어짐 마무리