시즌 1 · 알파고편 / PART 6 · PART 6 · AlphaGo Zero (2017) / Ch 4 · 7x7 학습 파이프라인

코드: 학습 한 단계 — 신경망 갱신

학습의 본질 — "손실을 줄이는 가중치 찾기". 위 시뮬레이션:

  • 학습 전: 총 손실 4.23 (Policy 3.28 + Value 0.95)
  • 학습 후 (시뮬): 총 손실 2.22 (Policy 2.13 + Value 0.09)
  • 47.5% 감소 — 한 학습 사이클의 효과
🎯 두 손실의 의미
  • Policy 손실 (cross entropy): 신경망의 prior가 MCTS visits 분포에 가까워지는 정도
  • Value 손실 (MSE): 신경망의 v가 실제 게임 결과 z에 가까워지는 정도
  • 두 손실을 동시에 줄이는 가중치 = 좋은 신경망
💡 진짜 학습은 numpy로 어렵다

위 시뮬은 "학습된 척" — 실제 numpy 역전파는 복잡하고 느림. 진짜 코드는 TensorFlow나 PyTorch 사용:

loss = (v - z)**2 + cross_entropy(pi, p) + L2(theta)
loss.backward()  # 자동 미분
optimizer.step()  # 가중치 갱신

한 학습 단계가 3줄. AlphaGo Zero도 본질 동일.

📊 실제 학습 곡선 (논문 Figure 3)
  • 0 ~ 3시간: 손실 빠르게 감소 (큰 무지에서 기본 학습)
  • 3시간 ~ 7일: 천천히 감소 (정석 학습)
  • 7일 ~ 40일: 매우 천천히 감소 (fine-tuning)
  • 그러나 ELO는 계속 증가

손실이 거의 평탄해 보여도 ELO 향상은 계속 — 정밀 fine-tuning이 의미 있음.

PYTHON