학습 — 최종 결과로부터 거꾸로
Value Network는 어떻게 학습할까? "최종 게임 결과"로부터.
📖 학습 데이터 만드는 법
- 한 게임을 두 명이 둔다 (사람 또는 자가 대국)
- 게임 끝났을 때 결과: 흑 승 (+1) 또는 백 승 (-1)
- 게임 안의 모든 보드 상태에 그 결과를 라벨로 붙임
- 각 (보드, 결과) 쌍이 학습 데이터 1개
한 게임에서 100~250개 학습 데이터 — 매우 효율적.
🎯 학습 예시
흑이 50수 만에 백을 이긴 게임이라고 하자:
| 보드 | 라벨 (V 정답) | 의미 |
|---|---|---|
| 초기 빈 보드 | +1 | 결국 흑 승 |
| 10수째 | +1 | 결국 흑 승 |
| 30수째 | +1 | 결국 흑 승 |
| 50수째 (끝) | +1 | 결국 흑 승 |
한 게임의 모든 상태가 같은 결과 라벨을 받음. "이 상태는 결국 흑이 이긴 게임 안에 있었다"는 정보.
💡 학습이 가능한 이유
"초기 빈 보드"는 양쪽 똑같이 시작이라 라벨이 +1 또는 -1 둘 다 나옴 (게임마다 다름). 평균을 내면 ≈ 0 (덤 7.5집 고려하면 약간 백 유리).
"30수째" 상태가 흑이 명백히 좋아 보이면 → 그 모양들이 자주 +1과 함께 등장 → 신경망이 그런 모양을 +로 학습.
"흑이 명백히 망친 모양"은 자주 -1과 함께 → 신경망이 -로 학습.
충분한 게임 데이터(수십만 ~ 수백만)로 학습하면 신경망이 "보드 → 승률" 함수를 근사.
📖 손실 함수 — Mean Squared Error
예측 V_pred vs 정답 V_true 의 차이를 줄임:
Loss = (V_pred − V_true)²
예: V_pred = 0.3, V_true = +1 → Loss = 0.49. 큼. 신경망이 더 +1에 가깝게 조정.
역전파로 가중치 갱신 → 다음 forward pass에서 V_pred가 +1 쪽으로 이동.