Stage 1: 자가 대국으로 데이터 생성
한 자가 대국 게임의 흐름:
📖 한 게임의 진행
- 빈 보드로 시작
- 각 수마다:
- MCTS 800 시뮬레이션 (PUCT 사용, 신경망이 prior)
- visits 분포 π_t 추출
- π_t에서 다음 수 sampling (탐험을 위해)
- (s_t, π_t) 저장
- 게임 끝까지 진행
- 최종 결과 z (-1 또는 +1)
- 저장된 (s_t, π_t) 모두에 z 추가 → (s_t, π_t, z) 데이터
🎯 두 가지 모드 — 학습 vs 평가
- 학습 데이터 생성 (Stage 1):
- visits 분포에서 sampling → 탐험적
- 처음 30수: 온도 τ=1 (랜덤성 있음)
- 이후: τ → 0 (가장 많이 방문된 자리만)
- 평가 (Stage 3):
- 항상 visits 최대 자리 → 결정적
- 다양성 없음, 최강 플레이
💡 온도(temperature)란 무엇인가
visits 분포에서 다음 수를 선택할 때:
P(a) ∝ N(a)^(1/τ)
- τ = 1: visits에 비례한 확률 (학습 초기 다양성)
- τ → 0: 최대 visits만 선택 (deterministic)
- τ → ∞: 균등 (완전 무작위 — 사용 안 함)
알파고 Zero는 게임 첫 30수에 τ=1 (다양한 오프닝), 그 후 τ→0 (강한 종반).
📖 Dirichlet 노이즈 추가 — 루트의 탐험
또 다른 탐험 메커니즘. MCTS 루트의 prior에 노이즈 추가:
P(a) = (1−ε)P_net(a) + ε·η_a
η는 Dirichlet 분포. ε = 0.25.
효과: 신경망이 추천하지 않은 자리도 일정 확률로 탐험. "이세돌 78수 같은 수도 발견 가능"해짐.
📊 한 사이클의 게임 데이터
- 25,000 게임 × 평균 200수 = 500만 학습 사례
- 각 사례 = (s, π_target, z_target)
- 이 데이터로 다음 stage(학습)에서 가중치 갱신