시즌 1 · 알파고편 / PART 5 · PART 5 · AlphaGo (2016) / Ch 2 · RL Policy Network

Policy Gradient — 이기는 수의 확률을 높이기

강화학습의 핵심 알고리즘 — Policy Gradient.

📖 Policy Gradient 직관

한 게임에서:

  • 흑이 둔 수들: a₁, a₂, ..., a_n
  • 각 수에서 신경망이 출력한 확률: π(a₁|s₁), π(a₂|s₂), ...
  • 게임 결과: R = +1 (이김) 또는 -1 (짐)

학습 신호:

  • R = +1 (이김): 모든 수 a₁, ..., a_n의 확률을 ↑ (다음에도 그렇게 둬라)
  • R = -1 (짐): 모든 수의 확률을 ↓ (다음에는 다르게 둬라)
📖 Policy Gradient 공식 (REINFORCE)
∇θ J(θ) = R · Σ ∇θ log π(aᵢ|sᵢ; θ)

"보상 R × 둔 수의 로그 확률 그래디언트의 합". 가중치 θ를 이 방향으로 갱신.

구현은 cross entropy loss의 변형:

  • 이긴 게임: 둔 수를 정답으로 cross entropy minimize
  • 진 게임: 둔 수를 정답으로 cross entropy maximize (음수 부호)
💡 직관적 비유 — 동물 훈련

강아지에게 트릭 가르치기:

  • 잘 했으면 → 간식 (+) → 다음에 그 행동 더 자주
  • 못 했으면 → 무시 (-) → 다음에 그 행동 덜 자주

Policy Gradient는 똑같은 메커니즘. 보상이 "간식"이고 그래디언트가 "다음에 더 자주" 신호.

차이: 동물은 한 번에 한 행동, 알파고는 한 게임에서 250 행동을 동시에 강화.

⚠️ Credit Assignment 문제

한 게임 250수에서 어떤 수가 진짜 승리 기여했는지 모름. 그냥 "다 같이 +1 또는 -1" 라벨.

이게 RL의 근본 문제 — "좋은 행동이 분명히 좋은데도 가끔 진 게임에서는 -로 학습됨". 통계적으로 평균만 맞으면 OK지만 노이즈가 큼.

해결: baseline 빼기. R 대신 (R - 평균 보상)을 사용 → 노이즈 ↓. AlphaGo Zero에서 value network를 baseline으로.