SL 학습 — 디테일
실제 SL Policy Network의 학습은 어떻게 진행됐을까?
📖 학습 데이터 준비
- 원시 데이터: KGS 바둑 서버에서 6단 이상 사람 게임 다운 (SGF 파일)
- 필터링: 끝까지 둔 정상 게임만 (포기/연결 끊김 제외)
- 최종 데이터셋: 16만 게임 × 평균 200수 = 3,000만 (보드, 다음 수) 쌍
- 데이터 증강: 8가지 대칭(회전 4 + 반전 2) → 2.4억 사례
- 분할: 학습 90%, 검증 5%, 테스트 5%
🎯 학습 진행 (SGD)
각 미니배치(16개 사례)마다:
- Forward pass — 16 보드 → 16 × 361 확률 분포
- Cross entropy loss 계산 — "사람이 둔 자리" 정답과 비교
- 역전파 → 가중치 그래디언트
- SGD 가중치 갱신 (learning rate 0.003 시작, 점차 감소)
전체 데이터를 한 번 도는 게 1 epoch. 알파고는 약 10 epoch까지 학습 → 57% 도달 후 수렴.
💡 학습 곡선 (논문 Figure 2)
| 학습 진행 | 정확도 | 의미 |
|---|---|---|
| 시작 | 0.28% | 무작위 |
| 1 epoch (1일) | ~38% | 아마추어 1급 |
| 3 epoch (1주) | ~50% | 아마추어 2단 |
| 10 epoch (3주) | 57.0% | 아마추어 3단 — 수렴 |
57%에서 수렴 — 더 학습해도 안 오름. 사람의 다음 수를 "완벽 예측은 불가능". 같은 보드에서도 사람마다 다른 수를 둠.
📖 학습된 모델의 행동
학습 후 SL Policy의 빈 보드 top 5:
- (3,15) 화점 - 13%
- (15,3) 화점 - 13%
- (15,15) 화점 - 11%
- (3,3) 화점 - 11%
- (10,10) 천원 - 5%
4 화점 합 48% — 사람 프로의 분포와 거의 동일. "사람 같은 직관" 학습 완료.