Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

AlphaGo 알고리즘 요약

69.219 visualizaciones

Publicado el

Google DeepMind의 AlphaGo가 작동하는 알고리즘을 간략하게 요약했습니다.
주로 기존의 자료 중 설명이 빈약했던 Reinforcement Learning에 대한 설명을 추가했습니다.

Publicado en: Datos y análisis

AlphaGo 알고리즘 요약

  1. 1. AlphaGo 알고리즘 요약 이주열
  2. 2. 바둑(or 체스) 인공지능 프로그램 기본 • 게임 경우의 수 탐색 à 트리(tree) 탐색 알고리즘 (e.g. 깊이 우선 탐색, 넓이 우선 탐색 알고리즘) 체스의 게임 트리 예시 트리 탐색 예시
  3. 3. 바둑이 쉽게 정복되지 않은 이유 • 10360 가지 경우 수 존재 • 바둑 규칙을 고려한 평균 경우 수가 250개, 바둑 평균 약 150수 정도. 따라서, 250150 ≈ 10360 • 우주의 원자 개수(1080)보다 많은 경우 수! • 현재의 컴퓨팅 파워로 정복하기 어렵다는 평가였음 • 1997년 체스 세계 챔피언 카스파로프를 이긴 IBM Deeper Blue는 Brute force 방식으로 게임 트리 Full search • 따라서, 바둑 정복을 위해서 게임 트리의 탐색 범위를 줄이는 방법 필요
  4. 4. AlphaGo 알고리즘 아웃라인 • 게임 트리 탐색 방법: 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) • 현재 많은 인공지능 바둑 프로그램(e.g. Crazy Stone, Zen 등)이 채택한 게임 트리 탐색 알고리즘 • 현재 상태(selection)에서 한 단계 예측(Expansion) 후 시뮬레이션(Simulation)한 최종 결과에 따른 트리 상태 정보 업데이트(Backpropagation). 이 과정을 X 번 반복 à 모든 경로 탐색 불가능시 효율적 • 게임 트리 탐색 범위 줄이는 방법: AlphaGo 핵심 알고리즘 • 넓이 탐색 범위 줄이기 : 현재 상태에서 다음 착수 위치 찾기 à MCTS의 Expansion • 깊이 탐색 범위 줄이기 : 해당 착점의 승률 계산 à MCTS의 Simulation
  5. 5. AlphaGo 핵심 알고리즘 (1/2) • 게임 트리의 넓이 탐색 범위 줄이기: 착수 위치 찾기 1) 바둑 기보 패턴 학습 à SL policy network으로 명명 • Convolutional Neural Networks(ConvNet)로 약 3천만 KGS 기보 학습 • Deep Learning 알고리즘 중 하나인 ConvNet은 이미지 패턴 인식에 탁월하며 지도 학습(Supervised Learning, SL)에 해당 • P(a|s)를 최대화하는 방향으로 ConvNet 학습, [P(a|s)는 상태(status, s)에 따른 다음 수 행위(action, a) 확률] 2) 학습한 기보에만 최적화되는 것을 방지하기 위해 자가 대국(self play)으로 강화 학습 à RL policy network으로 명명 • 기보 패턴을 학습한 ConvNet들간 대국으로 승패에 따른 강화 학습1)(Reinforcement Learning, RL) 실행 • Policy Gradient 강화 학습 알고리즘 적용. 이는 강화학습의 Q-function과 같은 reward score 함수 구하기가 아닌 P(a|s)를 직접 구 하는 방법 [policy(s) = arg maxa Q(s, a)] • P(a|s)를 최대화하는 방향으로 ConvNet 학습 3) 단순 패턴 인식 à Rollout policy으로 명명 • 바둑 규칙에 따른 단순 P(a|s) 확률 계산 • SL policy network, RL policy network, Rollout policy를 조합하여 사용 주1) 강화 학습은 결과에 따른 reward score를 부여함: E.g. 승리하면 +1, 패배하면 -1
  6. 6. AlphaGo 핵심 알고리즘 (2/2) • 게임 트리의 깊이 탐색 범위 줄이기: 해당 착점의 승률 • 앞서 만든 RL policy network으로 승률 계산하는 ConvNet 학습 à Value network으로 명명 • RL policy network에서 확률 함수 대신에 reward score 함수(e.g. Q-function) 정의 • Reward score 예측이 잘 맞는 방향으로 KGS 기보 학습 • Deep Q Network 강화 학습과 유사한 형태로 앞서 RL policy network의 Policy Gradient 알고리즘과 다름 • 학습한 KGS 기보에 최적화되는 것을 방지하기 위해 신규로 자가 대국(self play)한 기보로 학습 • RL policy network들간 자가 대국 후 생성된 기보로 Value network 학습
  7. 7. AlphaGo의 deep neural network 학습 파이프라인 Human expert positions Classification SL Policy network Self Play RL Policy network Self Play Self-play data Value network Regression - Slide from ‘David Sliver’
  8. 8. AlphaGo의 게임 트리 탐색(MCTS) 과정 Q: MCTS action value, u(P): Policy network이 제공하는 확률(P)에 비례, 방문 회수에 반비례하는 함수 a. 특정 단계(L-1)까지 착수 선택: Q + u(P) 최대값 선택, b. 탐색 경로 L단계까지 확장 : 확률(P 𝜎)에 따른 노드 확장 c. 확장한 L단계 노드의 승률 평가: Value network의 value(v 𝜃)와 Rollout policy로 게임 종료까지 시뮬레이션(P 𝜋)하여 평가한 값(r)을 결합하여 승률 평가 d. 바둑 게임 트리의 상태 갱신: 선택 노드에 있는 Q 값 갱신 L 단계 è
  9. 9. 참고문헌 1. [Nature] Mastering the game of Go with deep neural networks and tree search 2.[SPRi] AlphaGo의 인공지능 알고리즘 분석 3. [NIPS] Policy Gradient Methods for Reinforcement Learning with Function Approximation 4.[WIKIPEDIA] Reinforcement learning
  10. 10. 감사합니다.

×