바둑은 평가 함수도 어렵다
분기 인자만 문제가 아니야. 평가 함수(heuristic)도 바둑에서는 매우 어려워.
📖 평가 함수가 왜 중요한가
깊이 제한 minimax는 leaf에서 게임 결과 대신 추정 점수를 매김. 이 점수가 정확하지 않으면 알고리즘 전체가 잘못된 결정을 내림.
"1 cm 줌인이 잘못된 카메라로 100 m 멀리 찍는 격." 깊이가 깊을수록 평가 함수 오차가 곱해져 폭발.
체스 평가 함수 (대표 예):
점수 = (퀸 9점 + 룩 5점 + 비숍 3점 + 나이트 3점 + 폰 1점)
- 상대 기물 가치 합
+ 보너스 (중앙 점유, 킹 안전성, 폰 구조...)
이게 직관적이지? 기물 가치가 명확하고, 추가 보너스만 잘 짜면 됨. 1980년대부터 체스 엔진이 강했던 이유야.
바둑은? 한번 시도해보자:
점수 = (내 돌 수 - 상대 돌 수)?
+ (내 활로 합 - 상대 활로 합)?
+ (내 영역 추정 - 상대 영역 추정)?
+ ... ???
⚠️ 왜 바둑 평가 함수가 어려운가
- 돌 수가 무의미. 돌이 많아도 위치가 나쁘면 다 잡힘.
- 영역(집)이 게임 끝나야 확정. 중반에는 누구 영역인지 모호.
- "두텁다", "엷다", "맛이 있다" 같은 바둑 고유 개념은 수치화하기 어려움.
- 1수 차이로 보드 가치가 극적 변화. 살아있던 돌 그룹이 다음 수에 죽기도 함.
2006년 이전 컴퓨터 바둑이 사용한 평가 함수는 매우 복잡했지만 여전히 부정확했음. 사람 9급도 못 따라잡았어.
그래서 컴퓨터 바둑은 두 가지 문제에 동시에 부딪힘:
- 탐색 공간이 너무 큼 (b=250)
- 평가 함수가 부정확
둘 다 해결해야 한다는 결론. 2006년 MCTS (다음 PART) 가 첫 번째 돌파였고, 2014년 신경망 (PART 4) 이 두 번째 돌파.