Policy Network — 사람의 직관 학습
👋 이 챕터에서 다룰 것
알파고의 두 신경망 중 첫 번째 — Policy Network (정책망). 보드를 보고 "다음 수 어디 둘까"의 확률 분포를 출력.
왜 "다음 수"가 핵심인가? PART 3 MCTS의 두 약점이 답:
📖 MCTS의 ② Expand 단계 다시 생각
지난 PART 3 Ch 3 §4 코드:
# Expand
m = random.choice(node.untried_moves) # ← 무작위!
현재 위치에서 가능한 모든 수 중 무작위로 하나 골라서 새 자식 만듦. 그런데 이게 좋을까?
- 49칸 보드에서 49개 자리 — 모두 같은 확률로 시도
- 명백히 약한 수 (가장자리 비효율 자리)도 균등하게 시도
- 명백히 좋은 수 (중앙 화점)도 균등하게 시도
- 좋은 자리에 시간을 더 쓰는 게 효율적
🎯 Policy Network의 역할
"이 보드에서 어디가 둘 만한가" 확률 분포 출력. MCTS에서:
- Expand할 때: 확률 높은 자식을 우선 시도
- Simulate할 때 (rollout): 무작위 대신 policy network 따라 둠 — "그럴듯한" rollout
이 두 가지가 MCTS를 훨씬 강하게 만듦. 알파고의 핵심 통찰.
이 챕터:
- Policy Network의 입력과 출력 — 명확히 정의
- Softmax — 확률 분포 만드는 함수
- 코드: 작은 policy network forward pass
- 어떻게 학습하나 — 사람 게임 데이터 (다음 챕터들)