핵심 논문 가이드
이 문서는 바둑 AI 발전사에서 가장 중요한 논문들을 정리하여 빠른 이해를 위한 요약과 기술적 핵심을 제공합니다.
바둑 AI 발전사의 이정표 논문으로는 Coulom의 MCTS(2006), AlphaGo(2016), AlphaGo Zero(2017), 일반화된 AlphaZero(2017), 그리고 David Wu가 여러 효율 개선을 제안한 KataGo(2019)가 있습니다. 기초를 이해하려면 먼저 AlphaGo를 읽고, 구현 참고용으로는 KataGo 논문을 중심으로 보는 것이 좋습니다.
논문 개요
타임라인
2006 Coulom - MCTS 바둑에 최초 적용
2016 Silver et al. - AlphaGo (Nature)
2017 Silver et al. - AlphaGo Zero (Nature)
2017 Silver et al. - AlphaZero
2019 Wu - KataGo
2020+ 다양한 개선 및 응용
읽기 권장
| 목표 | 권장 논문 |
|---|---|
| 기초 이해 | AlphaGo (2016) |
| 자가 대국 이해 | AlphaGo Zero (2017) |
| 범용 방법 이해 | AlphaZero (2017) |
| 구현 참조 | KataGo (2019) |
1. MCTS의 탄생 (2006)
논문 정보
제목: Efficient Selectivity and Backup Operators in Monte-Carlo Tree Search
저자: Rémi Coulom
발표: Computers and Games 2006
핵심 기여
몬테카를로 방법을 바둑에 체계적으로 최초 적용:
이전: 순수 무작위 시뮬레이션, 트리 구조 없음
이후: 탐색 트리 구축 + UCB 선택 + 통계 역전파
핵심 개념
UCB1 공식
선택 점수 = 평균 승률 + C × √(ln(N) / n)
여기서:
- N: 부모 노드 방문 횟수
- n: 자식 노드 방문 횟수
- C: 탐색 상수
MCTS 4단계
1. Selection: UCB로 노드 선택
2. Expansion: 새 노드 확장
3. Simulation: 종국까지 무작위 시뮬레이션
4. Backpropagation: 승패 역전파
영향
- 바둑 AI가 아마추어 단급 수준에 도달
- 이후 모든 바둑 AI의 기초가 됨
- UCB 개념이 PUCT 발전에 영향
2. AlphaGo (2016)
논문 정보
제목: Mastering the game of Go with deep neural networks and tree search
저자: Silver, D., Huang, A., Maddison, C.J., et al.
발표: Nature, 2016
DOI: 10.1038/nature16961
핵심 기여
딥러닝과 MCTS를 최초로 결합, 인간 세계 챔피언 격파.
시스템 아키텍처
기술 요점
1. 지도학습 Policy Network
# 입력 특성 (48개 평면)
- 내 돌 위치
- 상대 돌 위치
- 활로 개수
- 잡은 후 상태
- 합법 착수 위치
- 최근 몇 수 위치
...
2. 강화학습 개선
SL Policy → 자가 대국 → RL Policy
RL Policy가 SL Policy보다 약 80% 승률로 강함
3. Value Network 학습
과적합 방지의 핵심:
- 각 대국에서 하나의 국면만 추출
- 유사 국면 중복 방지
4. MCTS 통합
리프 노드 평가 = 0.5 × Value Network + 0.5 × Rollout
Rollout은 빠른 Policy Network 사용 (정확도 낮지만 속도 빠름)
주요 데이터
| 항목 | 수치 |
|---|---|
| SL Policy 정확도 | 57% |
| RL Policy 대 SL Policy 승률 | 80% |
| 학습 GPU | 176 |
| 대국 GPU | 48 TPU |
3. AlphaGo Zero (2017)
논문 정보
제목: Mastering the game of Go without human knowledge
저자: Silver, D., Schrittwieser, J., Simonyan, K., et al.
발표: Nature, 2017
DOI: 10.1038/nature24270
핵심 기여
인간 기보 전혀 필요 없이 처음부터 자가 학습.
AlphaGo와의 차이점
| 측면 | AlphaGo | AlphaGo Zero |
|---|---|---|
| 인간 기보 | 필요 | 불필요 |
| 네트워크 수 | 4개 | 1개 듀얼 헤드 |
| 입력 특성 | 48 평면 | 17 평면 |
| Rollout | 사용 | 사용 안 함 |
| 잔차 네트워크 | 없음 | 있음 |
| 학습 시간 | 수 개월 | 3일 |
핵심 혁신
1. 단일 듀얼 헤드 네트워크
2. 단순화된 입력 특성
# 17개 특성 평면만 필요
features = [
current_player_stones, # 내 돌
opponent_stones, # 상대 돌
history_1_player, # 히스토리 상태 1
history_1_opponent,
... # 히스토리 상태 2-7
color_to_play # 누구 차례
]
3. 순수 Value Network 평가
더 이상 Rollout 사용 안 함
리프 노드 평가 = Value Network 출력
더 간결하고 더 빠름
4. 학습 흐름
학습 곡선
학습 시간 Elo
─────────────────
3시간 초보자
24시간 AlphaGo Lee 초과
72시간 AlphaGo Master 초과
4. AlphaZero (2017)
논문 정보
제목: Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm
저자: Silver, D., Hubert, T., Schrittwieser, J., et al.
발표: arXiv:1712.01815 (이후 Science, 2018 발표)
핵심 기여
범용화: 동일 알고리즘을 바둑, 체스, 장기에 적용.
범용 아키텍처
입력 인코딩 (게임별) → 잔차 네트워크 (범용) → 듀얼 헤드 출력 (범용)
게임간 적응
| 게임 | 입력 평면 | 행동 공간 | 학습 시간 |
|---|---|---|---|
| 바둑 | 17 | 362 | 40일 |
| 체스 | 119 | 4672 | 9시간 |
| 장기 | 362 | 11259 | 12시간 |
MCTS 개선
PUCT 공식
선택 점수 = Q(s,a) + c(s) × P(s,a) × √N(s) / (1 + N(s,a))
c(s) = log((1 + N(s) + c_base) / c_base) + c_init
탐색 노이즈
# 루트 노드에 Dirichlet 노이즈 추가
P(s,a) = (1 - ε) × p_a + ε × η_a
η ~ Dir(α)
α = 0.03 (바둑), 0.3 (체스), 0.15 (장기)
5. KataGo (2019)
논문 정보
제목: Accelerating Self-Play Learning in Go
저자: David J. Wu
발표: arXiv:1902.10565
핵심 기여
50배 효율 향상, 개인 개발자도 강력한 바둑 AI를 학습할 수 있게 함.
핵심 혁신
1. 보조 학습 목표
총 손실 = Policy Loss + Value Loss +
Score Loss + Ownership Loss + ...
보조 목표가 네트워크의 빠른 수렴을 도움
2. 글로벌 특성
# 글로벌 풀링층
global_features = global_avg_pool(conv_features)
# 로컬 특성과 결합
combined = concat(conv_features, broadcast(global_features))
3. Playout Cap 무작위화
전통: 매번 고정 N회 탐색
KataGo: N을 특정 분포에서 무작위 샘플링
네트워크가 다양한 탐색 깊이에서 잘 수행하도록 학습
4. 점진적 바둑판 크기
if training_step < 1000000:
board_size = random.choice([9, 13, 19])
else:
board_size = 19
효율 비교
| 지표 | AlphaZero | KataGo |
|---|---|---|
| 초인 수준 도달 GPU일 | 5000 | 100 |
| 효율 향상 | 기준 | 50배 |
6. 확장 논문
MuZero (2020)
제목: Mastering Atari, Go, Chess and Shogi by Planning with a Learned Model
기여: 환경 동적 모델 학습, 게임 규칙 불필요
EfficientZero (2021)
제목: Mastering Atari Games with Limited Data
기여: 샘플 효율 대폭 향상
Gumbel AlphaZero (2022)
제목: Policy Improvement by Planning with Gumbel
기여: 개선된 정책 개선 방법
논문 읽기 제안
입문 순서
1. AlphaGo (2016) - 기본 아키텍처 이해
2. AlphaGo Zero (2017) - 자가 대국 이해
3. KataGo (2019) - 구현 세부사항 이해
고급 순서
4. AlphaZero (2017) - 범용화
5. MuZero (2020) - 세계 모델 학습
6. MCTS 원본 논문 - 기초 이해
읽기 팁
- 먼저 초록과 결론 보기: 핵심 기여 빠르게 파악
- 그림과 표 보기: 전체 아키텍처 이해
- 방법 섹션 보기: 기술적 세부사항 이해
- 부록 보기: 구현 세부사항과 하이퍼파라미터 찾기
리소스 링크
논문 PDF
| 논문 | 링크 |
|---|---|
| AlphaGo | Nature |
| AlphaGo Zero | Nature |
| AlphaZero | Science |
| KataGo | arXiv |
오픈소스 구현
| 프로젝트 | 링크 |
|---|---|
| KataGo | GitHub |
| Leela Zero | GitHub |
| MiniGo | GitHub |
추가 읽기
- 신경망 아키텍처 상세 분석 — 네트워크 설계 심층 이해
- MCTS 구현 세부사항 — 탐색 알고리즘 구현
- KataGo 학습 메커니즘 분석 — 학습 프로세스 상세