본문으로 건너뛰기

KataGo 논문 해독

KataGo는 David Wu가 개발한 오픈소스 바둑 AI로, 논문 《Accelerating Self-Play Learning in Go》가 2019년 발표되었습니다. KataGo는 더 적은 계산 자원으로 ELF OpenGo를 초월하는 기력을 달성했으며, 현재 가장 강력한 오픈소스 바둑 AI입니다.

KataGo의 혁신점

KataGo는 신경망 아키텍처에서 혁명적인 변화를 만든 것이 아니라 훈련 방법과 보조 작업에서 체계적 최적화를 통해 상당한 효율 향상을 실현했습니다.

핵심 혁신 개요

혁신점효과
보조 훈련 목표학습 가속, 더 많은 감독 신호 제공
전역 풀링 구조전역 정보 포착 향상
다중 규칙 지원단일 모델이 다양한 경기 규칙 적응
Playout Cap 무작위화훈련 효율 향상
개선된 데이터 증강훈련 데이터 다양성 증가

더 효율적인 훈련 방법

보조 훈련 목표(Auxiliary Training Targets)

전통적인 AlphaGo Zero는 두 가지 훈련 목표만 있습니다:

  1. Policy: MCTS 착점 확률 분포 예측
  2. Value: 게임 승패 예측

KataGo는 여러 보조 훈련 목표를 추가하여 더 풍부한 학습 신호를 제공합니다:

각 출력 헤드 설명

출력 헤드차원예측 목표
Policy19×19+1각 위치의 착점 확률(Pass 포함)
Value3승/패/무승부 확률
Score연속값최종 집수 차이 예측
Ownership19×19각 점의 최종 귀속(흑/백 영역)
Short-term Value1단기 예상 승률
Lead1현재 몇 집 앞서는지

보조 목표가 효과적인 이유

  1. 더 밀집된 감독 신호: Value는 하나의 수치만 제공, Ownership은 361개 감독 포인트 제공
  2. 과적합 감소: 다중 작업 학습이 정규화 효과
  3. 수렴 가속: 보조 작업이 네트워크가 유용한 특징 표현을 더 빨리 학습하도록 도움
  4. 더 나은 그래디언트 제공: 그래디언트 소실 문제 회피

Playout Cap 무작위화

AlphaGo Zero는 매 수마다 고정 800회 MCTS 시뮬레이션. KataGo는 무작위화 도입:

# 전통 방식
num_playouts = 800 # 고정

# KataGo 방식
playout_cap = random.choice([
100, 200, 300, 400, 500, 600, 700, 800
])

이점:

  • 훈련 데이터 더 다양화
  • 모델이 다른 탐색 깊이에서도 합리적 판단 학습
  • 실제 대국 시 탐색량이 적어도 좋은 성능

데이터 증강 개선

전통 방법은 바둑의 8중 대칭(4회 회전 × 2회 대칭)을 활용하여 데이터 증강. KataGo는 더 개선:

  • 무작위 대칭 변환: 매 샘플링 시 무작위로 대칭 변환 선택
  • 히스토리 상태 무작위화: 히스토리 국면 표현 방식 무작위 선택
  • 색상 무작위화: 흑백 시점 무작위 교환

다중 바둑 규칙 지원

이것은 KataGo의 중요한 특색 중 하나입니다. 다른 바둑 규칙은 전략적 결정에 영향을 미칩니다:

주요 규칙 차이

규칙 체계계산 방식패 규칙자충
중국 규칙돌계산법7.5집단순패금지
일본 규칙집계산법6.5집슈퍼패금지
한국 규칙집계산법6.5집슈퍼패금지
응씨 규칙돌계산법8점특수패규금지
Tromp-Taylor돌계산법조절가능슈퍼패허용
AGA 규칙돌/집계산7.5집슈퍼패금지
뉴질랜드 규칙돌계산법7집단순패허용

기술 구현

KataGo는 규칙 정보를 입력 특징으로 인코딩합니다:

# 규칙 관련 입력 특징 예시
rule_features = {
'komi': 7.5, # 덤 값
'scoring_rule': 'area', # 돌/집계산
'ko_rule': 'simple', # 패 규칙
'suicide_allowed': False,
'tax_rule': 'none', # '눈' 세금 여부
# ...
}

네트워크가 다른 규칙에 따라 전략을 조정하는 법을 학습합니다. 예를 들어:

  • 집계산법에서 실리 컨트롤 더 중시
  • 자충 허용 시 특수 전술에 사용 가능
  • 다른 덤은 포석 선택에 영향

승률과 집수 동시 예측

이것은 KataGo의 가장 실용적인 기능 중 하나로, 바둑 교육과 분석에 매우 가치 있습니다.

Value vs Score

실제 응용 가치

  1. 더 정밀한 국면 판단:

    • 승률 80%지만 1집만 앞섬 → 아직 변수 있음
    • 승률 80%이고 20집 앞섬 → 대세 결정
  2. 교육 보조:

    • 학생이 한 수가 '몇 집 손해'인지 이해하게 함
    • 다른 수법의 집수 차이 비교
  3. 접바둑 분석:

    • 접바둑 조건이 적절한지 정확히 평가
    • 공격 또는 수비 판단

Score Distribution

KataGo는 단일 집수만 예측하지 않고 완전한 집수 분포를 예측합니다:

집수 분포 예시:
├─ 흑 10집 이상 승: 15%
├─ 흑 5-10집 승: 25%
├─ 흑 0-5집 승: 20%
├─ 백 0-5집 승: 18%
├─ 백 5-10집 승: 15%
└─ 백 10집 이상 승: 7%

기대값: 흑 +3.2집
표준편차: ±8.5집

이러한 분포 정보가 국면의 복잡도와 불확실성을 더 잘 반영합니다.

Ownership Map(영역 맵)

Ownership은 각 점이 종국 시 흑/백 어느 쪽에 귀속되는지 예측합니다:

                  Ownership Map
A B C D E F G H J K L M N O P Q R S T
19 ○ ○ ○ ○ ○ ○ · · · · · · · ● ● ● ● ● ●
18 ○ ○ ○ ○ ○ ○ · · · · · · · ● ● ● ● ● ●
17 ○ ○ ○ ○ ○ · · · · · · · · · ● ● ● ● ●
16 ○ ○ ○ ╋ · · · · · ╋ · · · · · ╋ ● ● ●
...

범례: ○ = 백 영역 ● = 흑 영역 · = 미정

응용 시나리오

  • 국면 분석: 양측 세력권 한눈에 파악
  • 사활 판단: 특정 돌덩어리가 살 수 있는지 판단
  • 끝내기 계산: 각 끝내기의 가치 평가
  • 교육 시연: 영역 개념 시각화

AlphaGo와의 차이 비교

측면AlphaGo ZeroKataGo
훈련 목표Policy + Value다중 보조 목표
출력 정보승률승률 + 집수 + 영역
규칙 지원단일 규칙다중 규칙
네트워크 구조순수 합성곱 ResNet전역 풀링 추가
탐색량고정무작위화
훈련 효율기준약 50배 효율 향상
오픈소스 수준논문 설명완전 오픈소스

훈련 효율 비교

ELF OpenGo 수준 도달에 필요한 자원:

ELF OpenGo:
- 2000 GPU
- 2주 훈련

KataGo:
- 1 GPU(또는 수십 GPU 가속)
- 며칠~수주

효율 향상: 약 50-100배

네트워크 아키텍처 세부사항

전역 풀링(Global Pooling)

전통 CNN은 로컬 정보만 볼 수 있지만, KataGo는 전역 풀링 레이어를 추가하여 전역 특징 포착:

class GlobalPoolingBlock(nn.Module):
def forward(self, x):
# x: [batch, channels, 19, 19]

# 전역 평균 풀링
global_avg = x.mean(dim=[2, 3]) # [batch, channels]

# 전역 최대 풀링
global_max = x.max(dim=2)[0].max(dim=1)[0] # [batch, channels]

# 전역 특징 결합
global_features = torch.cat([global_avg, global_max], dim=1)

# 전역 특징 처리
global_features = dense_layer(global_features) # [batch, C]

# 공간 차원으로 브로드캐스트하여 일반 경로와 결합
global_broadcast = broadcast_to_spatial(global_features)
x = regular_out + global_broadcast

이점:

  • 전역 형세 인식 가능(누가 앞서는지 등)
  • 전역 판단이 필요한 국면을 더 잘 처리
  • 집수 예측에 특히 도움

네트워크 규모

KataGo는 다양한 크기의 모델을 제공합니다:

모델잔차 블록 수채널 수파라미터 수적용 시나리오
b10c12810128~5MCPU 실행
b15c19215192~15M일반 GPU
b20c25620256~35M중급 GPU
b40c25640256~70M고급 GPU
b60c32060320~150M최상급 GPU

실제 성능

기력 평가

KataGo의 각종 테스트 성능:

  • 모든 Leela Zero 네트워크 초월
  • 프로 9단과의 대국에서 높은 승률 유지
  • CGOS(Computer Go Server)에서 1위

분석 기능

KataGo의 분석 모드가 제공하는 것:

{
"moveInfos": [
{
"move": "Q16",
"visits": 3420,
"winrate": 0.573,
"scoreLead": 2.8,
"pv": ["Q16", "D4", "Q4", "D16"],
"ownership": [...]
}
],
"rootInfo": {
"winrate": 0.48,
"scoreLead": -0.5,
"visits": 10000
}
}

추가 읽기

KataGo의 기술 특징을 이해했다면, 기타 바둑 AI의 발전을 살펴보며 전체 산업을 더 전면적으로 이해해 봅시다.