몬테카를로 트리 탐색(Monte Carlo Tree Search, MCTS)은 “가능한 모든 수를 다 읽지 않고, 무작위 시뮬레이션을 여러 번 돌려 승률이 좋아 보이는 수만 깊게 파고드는 게임 트리 탐색 알고리즘입니다.wikipedia+1
기본 아이디어
- 체스·바둑처럼 경우의 수가 폭발적으로 많은 게임에서, 전수 탐색 대신 일부 수만 샘플링해 그중 유망한 수를 선택하는 방법입니다.gusals1620.tistory+1
- 각 수(노드)에 대해 “이 수를 뒀을 때의 승률”을 반복 시뮬레이션으로 추정하고, 승률이 높아 보이는 가지를 점점 더 자주 탐색합니다.hi-guten-tag.tistory+1
네 단계 절차
MCTS는 보통 다음 네 단계를 한 번의 반복으로 보고, 이 반복을 수천·수만 번 실행합니다.jidum+2
- 선택(Selection)
- 확장(Expansion)
- 선택을 계속하다가 아직 탐색되지 않았거나 덜 펼쳐진 노드에 도달하면, 거기서 새로운 자식 노드(새 수)를 하나 이상 추가해 트리를 확장합니다.wikipedia+1
- 시뮬레이션(Simulation, Playout)
- 방금 확장한 노드에서부터 게임이 끝날 때까지, 보통 비교적 단순한 정책(무작위 혹은 간단한 휴리스틱)으로 착수를 반복해 승패를 결정합니다.naver+1
- 이 과정을 여러 번 반복할수록 그 노드에서의 “기대 승률” 추정이 점점 정확해집니다.news.hada+1
- 역전파(Backpropagation)
- 시뮬레이션 결과(승·패·무)를 해당 노드에서 루트까지 거슬러 올라가며 방문 횟수와 승리 횟수를 갱신해, 각 노드의 통계적 가치 추정을 업데이트합니다.velog+2
특징과 장점
- 탐색 자원을 “유망한 수”에 집중하기 때문에, 같은 연산량으로도 단순 미니맥스+알파베타 탐색보다 실전 성능이 좋은 경우가 많습니다.naver+1
- 규칙만 있으면 평가 함수를 명시적으로 설계하지 않고도 적용할 수 있어, 바둑처럼 정량적 형세 판단이 어려운 게임에서 특히 효과적입니다.gusals1620.tistory+1
알파고에서의 활용 (간단히)
- 알파고는 MCTS에 정책 신경망(어떤 수가 좋을지 사전 확률 제시)과 가치 신경망(현재 국면의 승률 평가)을 결합해, “확장·시뮬레이션 단계”의 품질을 크게 높인 구조였습니다.jidum+2