MCTS + Value Network
Value Network를 MCTS에서 어떻게 사용?
📖 MCTS 4단계 변경 (Simulate 단계)
# 이전 (PART 3): 무작위 rollout
g = node.game
while g.winner() is None:
g = g.play(random.choice(g.possible_moves()))
winner = g.winner()
v = 1 if winner == node.parent.game.turn else -1 if winner == 'draw' else -1
# 이후 (Value Network)
v = value_net(node.game.board) # ← 끝까지 안 가도 즉시 평가!
rollout 1번이 250 무작위 수 (19x19 기준) → value net forward pass 1번. 250배 절약.
🎯 알파고의 실전 — 두 가지 평가 혼합
알파고는 둘 다 사용 + 평균:
V_final = λ · V_net + (1−λ) · V_rollout
알파고 논문 λ = 0.5 (반반). 왜 혼합?
- Value net: 정확하지만 학습한 패턴에 갇힐 수 있음
- Rollout: 부정확하지만 게임 끝까지 가니까 함정 발견 가능
- 두 가지가 보완 → 합치면 더 정확
💡 AlphaGo Zero의 변화
2017년 AlphaGo Zero는 rollout 완전 제거. Value Network만 사용:
- 이유 1: Value Network가 충분히 정확해짐 (학습 기술 발전)
- 이유 2: 더 단순한 알고리즘 = 더 깨끗한 학습 신호
- 이유 3: 속도 — rollout 빼면 1수당 수십 배 빠름
알파고에서 알파고 제로로의 진화는 "부품 빼기"가 핵심. 단순함이 강함.
📊 알파고 ELO 기여 다시
- Pure MCTS: 2700
- + Policy Network: 3000 (+300)
- + Value Network: 3500 (+500) ← 가장 큰 기여
Value Network가 알파고의 가장 큰 단일 기여. 사람 프로 수준에 도달한 결정적 부품.