Iteration 수와 결과 품질
Iteration이 늘어남에 따라 결과:
| iter | 시간 | 최선 수 | 1위 visits | 승률 |
|---|---|---|---|---|
| 100 | 0.04s | (5,5) | 3 | 50% |
| 500 | 0.24s | (5,5) | 11 | 50% |
| 2000 | 0.89s | (5,5) | 41 | 50% |
| 5000 | 2.34s | (5,5) | 103 | 50% |
⚠️ 승률이 항상 50% — 평가 함수의 한계
우리 코드 평가 = "돌 수가 많은 쪽 승, 동률은 draw". 7x7 무작위 게임에서 흑/백 돌 수는 거의 항상 동률에 가까워 → 대부분 draw → 모든 첫 수의 승률이 50% 균등.
이건 우리 코드의 한계지, MCTS 알고리즘의 한계가 아님. 실제 영역 평가를 쓰면 신호가 명확히 잡힘 (50% 균등이 아닌 65~75% 등).
📊 만약 진짜 영역 평가를 쓰면
알파고나 GnuGo 같은 진짜 엔진은 게임 끝의 영역을 정확히 계산. 그러면:
- 중앙 화점 (3,3): 승률 75% (영역 형성 좋음)
- 코너 (0,0): 승률 30% (구석에 갇혀 영역 못 키움)
- 변 가운데 (3,0): 승률 55% (보통)
이런 차이로 UCB1이 좋은 자리에 자동 집중. 같은 알고리즘, 다른 평가 함수, 완전히 다른 결과.
💡 핵심 교훈
"평가 함수가 약하면 어떤 알고리즘도 한계." minimax든 MCTS든 입력이 정확해야.
이게 PART 4 신경망의 출발점 — 학습된 정확한 평가 함수. 우리가 만든 단순 평가를 신경망으로 대체하면 같은 MCTS가 진짜 강해짐.
다음 페이지에서 minimax와 MCTS를 직접 대결시켜본다.
PYTHON