코드: 학습 한 단계 — 신경망 갱신
학습의 본질 — "손실을 줄이는 가중치 찾기". 위 시뮬레이션:
- 학습 전: 총 손실 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