시즌 1 · 알파고편 / PART 4 · PART 4 · 신경망 등장: 직관을 학습한다 / Ch 6 · 기보로 policy net 지도학습

코드: 합성 데이터로 학습 시범

드디어 진짜 학습 시범! 100개 가짜 데이터로 10 epoch 학습:

  • 학습 전: 가운데(24) 확률 2.04% (49 자리 균등)
  • 학습 후: 가운데 확률 90.5% — 가운데 우선 학습 완료
  • 평균 손실: 4.00 → 0.22 (Epoch 1에 2.59로 큰 폭 감소)
  • 가운데 확률은 평균의 44배
🎯 학습이 진짜 일어남

이 코드의 본질은 5줄:

# 한 학습 단계
probs, logits = net.forward(x)        # forward pass
loss = net.loss(probs, target)         # 손실 계산
dW, db = net.gradient(x, probs, target)  # 역전파 (미분)
net.update(dW, db, lr=0.05)             # 경사 하강

알파고도 본질 동일. 단지 우리는 100개 데이터 10 epoch, 알파고는 3,000만 데이터 며칠 학습.

💡 손실 곡선의 의미

7.22 → 1.31 → 학습이 잘 진행됨. 일반적 모양:

  • 초기: 빠르게 감소 (큰 그래디언트, 모델이 빨리 배움)
  • 중기: 느리게 감소 (미세 조정)
  • 후기: 거의 평탄 (수렴)

알파고 학습 시 같은 곡선 — 처음 며칠은 빠른 향상, 그 후 느린 미세 조정.

⚠️ 이 코드의 한계

여기서 사용한 "가짜 사람" 함수는 단순 — 가운데만 선호. 진짜 사람은 훨씬 복잡:

  • 국면에 따라 다른 자리 선호 (오프닝 / 미들 / 엔드)
  • 상대방 모양에 따라 응수
  • 그룹 살리기, 영역 만들기 등 게임 지식

진짜 알파고 학습 데이터는 이 모든 게 자연스럽게 포함. 그래서 16만 게임의 가치.

PYTHON