시즌 1 · 알파고편 / PART 5 · PART 5 · AlphaGo (2016) / Ch 4 · MCTS + 신경망 = PUCT

PUCT 공식 — 자세히

PUCT 공식의 각 부분을 자세히:

📖 PUCT 분해
PUCT(s, a) = Q(s,a) + U(s,a)

두 부분:

  • Q(s,a) (활용) = 이 가지의 평균 보상 = w/n
  • U(s,a) (탐험) = c · P(s,a) · √(N) / (1 + n)
🎯 U(s,a) 분석
  • c (탐험 상수): 알파고 ≈ 5.0 (UCB1보다 큼, 더 많이 탐험)
  • P(s,a) (policy prior): SL Policy 또는 RL Policy 출력. 그 자리의 확률 (0~1)
  • √(N) / (1+n): 부모 방문 수 ÷ 자식 방문 수. 자식을 적게 가봤을수록 큼

이 곱이 크면 → 더 탐험. 작으면 → 덜 탐험.

💡 P(s,a)의 효과 — 구체적 예

두 자식 A, B. 둘 다 visits=0 (아직 안 가봄):

  • UCB1: 둘 다 점수 ∞ → 한 번씩 가봄 (그 후 다시 비교)
  • PUCT:
    • P(A) = 0.30 (좋은 자리) → U = 5 × 0.30 × √(0)/1 = ? (사실 root visits N이 있어야)

실제 시작: A는 P가 크니까 자주 선택. B는 P가 작으니 거의 안 선택. 시뮬레이션 자원이 좋은 자리에 집중.

📊 알파고에서 P(s,a)의 출처
  • P_SL(s,a): SL Policy Network 출력
  • 일부 변형: P_RL(s,a) 사용
  • 알파고 논문은 SL Policy 사용 (다양성 좋음)
  • AlphaGo Zero (2017): combined network의 policy head

이유: RL Policy는 너무 첨예해서 (한 자리에 90% 같은 수) MCTS 탐험이 좁아짐. SL이 다양성 좋아서 MCTS 탐색에 더 적합.