시즌 2 · 알파폴드편 / PART 8 · PART 8 · MuZero (2019) / Ch 4 · 잠재 공간에서의 MCTS

Evaluate 단계 — f가 새 리프에서 평가

Expand에서 새로 만든 리프 L의 가치를 평가해야 Backup에서 거꾸로 거슬러 올라갈 수 있다. 이게 Evaluate 단계.

📖 가치 추정 방법의 진화

역사적으로 MCTS의 가치 추정 방법은 세 단계로 진화했다.

  • 오리지널 MCTS (2006): 무작위 rollout으로 게임 끝까지 가본 결과 (시즌 1 PART 3 Ch 1)
  • AlphaGo (2016): rollout + 가치 신경망의 평균 (시즌 1 PART 5 Ch 4)
  • AlphaZero / MuZero (2017~): 가치 신경망 단독 — rollout 제거

MCTS가 학습된 가치 신경망에 점점 더 의지하는 방향으로 발전한 것.

🎯 MuZero의 Evaluate — 한 줄

이미 Expand에서 f(s_L)를 호출해서 (p_L, v_L)을 얻었다.

v_L이 바로 리프의 가치다 — 추가 계산 없음.

💡 그래서 Expand와 Evaluate는 사실상 한 호출이다

구현 관점에서는 Expand와 Evaluate가 한 번에 일어난다.

# 한 번의 신경망 호출로 둘 다 처리
s_L, r_L = g(parent.state, a)      # Expand의 dynamics
p_L, v_L = f(s_L)                  # Evaluate + 자식 prior 준비

# 트리 갱신
L.state  = s_L
L.reward = r_L
for action in legal_actions:
    L.children[action] = Node(prior=p_L[action])

아주 정확하게 두 함수 호출 — g 한 번, f 한 번. 이게 MCTS 시뮬레이션 한 번의 "비용"이다.

📖 v_L의 정확한 해석

v_L은 "잠재 상태 s_L에서 시작했을 때 앞으로 받게 될 누적 보상의 기대값"이다.

학습 과정에서 실제 게임의 결과(승/패 또는 누적 점수)와 가까워지도록 훈련된다 — 그래서 잘 학습된 모델에서는 매우 유용한 신호.

단, 이건 어디까지나 신경망의 추측이다. 그래서 더 많은 시뮬레이션으로 평균을 내서 정확도를 올린다 — 그게 다음 단계.