학습 데이터 형식
한 게임에서 학습 데이터를 어떻게 만들까?
📖 게임 → 학습 데이터 변환
한 사람 게임이 다음과 같다고 하자:
1수 (흑): (15, 3) 화점 2수 (백): (3, 15) 화점 3수 (흑): (3, 3) 화점 4수 (백): (15, 15) 화점 5수 (흑): (10, 10) 천원 ... 245수 (백): (12, 14) 끝수
이 게임에서 학습 데이터:
- (빈 보드, 흑 차례 → 정답 (15,3))
- ((15,3)만 있는 보드, 백 차례 → 정답 (3,15))
- (2수 보드, 흑 차례 → 정답 (3,3))
- ...
- (244수 보드, 백 차례 → 정답 (12,14))
한 게임 = 245개 학습 데이터. 16만 게임 → 약 3,000만 데이터.
💡 흑/백 차례 둘 다 학습
흑 입장만 학습하면 백을 못 둠. "현재 차례 입장에서 다음 수"로 통일:
- 흑 차례면 → 흑 시각으로 보드 표현, 흑이 둘 수가 정답
- 백 차례면 → 백 시각으로 보드 표현(자기 돌이 채널 0), 백이 둘 수가 정답
이렇게 하면 한 신경망이 두 색 모두 처리. 학습 데이터도 2배.
📖 데이터 증강 (Augmentation)
바둑판의 대칭성 활용:
- 회전 4가지 (0°, 90°, 180°, 270°)
- 좌우 반전 2가지
- 총 4 × 2 = 8가지 변환으로 같은 게임에서 8배 데이터
알파고 16만 게임 × 245수 평균 × 8 변환 = 약 2.4억 학습 사례. 강한 GPU로도 며칠 학습.