Stage 2: 신경망 학습
500만 데이터로 신경망 학습. 한 사이클당 1,000 학습 단계.
📖 학습 한 단계
- 학습 데이터에서 배치 2,048개 무작위 sampling
- Forward pass: 보드 2048개 → (p, v) × 2048
- 손실 계산:
- Policy: −π^T log(p) 평균
- Value: (v − z)² 평균
- L2: c·‖θ‖²
- 총 손실 = 위 셋 합
- 역전파 → 그래디언트
- SGD with momentum 가중치 갱신
🎯 학습률 스케줄
- 학습 초반 (0~30 사이클): lr = 0.02
- 중반 (30~120 사이클): lr = 0.002
- 후반 (120 사이클~): lr = 0.0002
학습률을 점차 줄여 fine-tuning. 마지막엔 매우 작은 변화로 정확도 미세 조정.
💡 학습 데이터의 비밀 — 최근 50만 게임만
500만 데이터 = 25,000 게임 × 200수. 하지만 학습은 더 큰 풀에서:
- "replay buffer": 최근 50만 게임의 데이터 (1억 사례)
- 매 학습 단계마다 이 풀에서 무작위 sampling
- 옛 데이터도 어느 정도 사용 → 학습 안정성
- 너무 옛것은 폐기 (50만 게임 사이즈 유지)
📖 Data Augmentation — 8가지 대칭
바둑은 대칭이 많아 학습에 활용:
- 회전 4가지 (0°, 90°, 180°, 270°)
- 좌우 반전 추가 → 총 8가지
- 한 보드 → 8 학습 사례
- 실질 데이터 8배 증가
이게 알파고 Zero 학습 효율의 또 한 요소. 같은 학습 시간에 더 많은 데이터.