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

Select 단계 — MuZero에서 무엇이 달라지나

여기서 흥미로운 점. Select 단계의 알고리즘 자체는 AlphaZero와 MuZero에서 동일하다.

💡 핵심 — 트리 자체는 똑같다

Select가 다루는 것은 "이미 만들어진 트리"다. 트리 노드들이 무엇을 들고 있는가는 알고리즘과 상관없다.

AlphaZero든 MuZero든 노드는 똑같이:

  • 방문 횟수 N
  • 가치 합 W (또는 평균 Q)
  • 사전 확률 P
  • 자식들

를 들고 있다.

📖 그럼 무엇이 다른가?

차이는 "각 노드에 무엇이 저장돼 있는가"다.

  • AlphaZero 노드: 게임의 실제 상태(보드 위치)를 가짐
  • MuZero 노드: 잠재 상태 벡터 하나를 가짐

하지만 Select 단계에서는 이 차이가 보이지 않는다 — Select는 PUCT 계산에만 신경 쓰고, 노드가 들고 있는 게 무엇이든 상관 안 한다.

🎯 그래서 어디서 차이가 나타나는가?

Select 자체가 아니라 다음 단계 — Expand에서 차이가 폭발한다.

  • AlphaZero가 Expand할 때: next_state(s, a) 함수 호출 (외부 게임 규칙)
  • MuZero가 Expand할 때: g(s, a) 호출 (학습된 dynamics 신경망)

이게 결정적 차이. 다음 섹션에서 자세히 본다.

⚠ 미묘한 한 가지 — 트리는 한 게임 안에서만 쓰인다

알아둘 점 하나: MCTS의 트리는 한 수를 결정할 때만 쓰고 버려진다.

  • 현재 보드 → MCTS로 트리 만듦 → 가장 많이 방문된 행동 선택 → 두기
  • 다음 차례에 또 새 트리를 만든다 (이전 트리는 버림 또는 일부 재사용)

그래서 "트리에 저장된 잠재 상태"가 노이즈가 있어도 한 수만 잘 결정하면 충분 — 누적 오차의 큰 골치를 면한다.