에듀테크 프로젝트 대시보드
몬테카를로 트리 탐색 (MCTS)
바둑처럼 경우의 수가 너무 많아 끝까지 다 계산할 수 없는 게임에서, 컴퓨터는 어떻게 좋은 수를 찾을까? MCTS는 유망해 보이는 수를 위주로 수천 번 무작위로 끝까지 둬 보고(랜덤 플레이아웃), 이긴 비율이 높은 가지를 더 깊이 파고든다. 알파고의 핵심 뼈대가 바로 이 알고리즘이다.
막대 = 방문 횟수(그 수를 얼마나 깊이 탐색했나) · 숫자 = 승률 Q/N. MCTS는 이 중 가장 많이 방문한 수를 최종 선택합니다.
UCB1 점수가 가장 높은 쪽으로
이미 만들어진 트리를 따라 내려간다. 아직 확장 안 된 노드가 나올 때까지.N += 1, Q += 결과 로 누적한다.이 4단계를 수천 번 반복하면, 좋은 수 아래에 통계가 두껍게 쌓인다.
앞 항(활용): 지금까지 승률이 높은 수를 밀어준다.
뒤 항(탐험): 덜 가 본 수(Nᵢ 작음)일수록 커진다 —
운 나쁘게 초반에 저평가된 수에 기회를 다시 준다.
한 번도 안 가 본 자식은 Nᵢ = 0 → 점수 ∞ 로 취급해 먼저 방문.
이 공식은 "멀티 암드 밴딧" 문제의 후회(regret) 를 이론적으로 최소화한다.
MCTS에 이를 쓴 것이 UCT 알고리즘(2006).
미니맥스는 트리를 일정 깊이까지 전부 펼치고, 잎 노드를 평가 함수로 채점한다. 바둑은 한 수에 갈래가 ~250개라 몇 수만 내려가도 폭발하고, "이 판이 얼마나 유리한가"를 점수로 매기는 좋은 평가 함수를 만들기가 극도로 어렵다.
무작위 롤아웃 대신 정책망(policy network) 으로 그럴듯한 수만 시도하고, 롤아웃 승패 대신 가치망(value network) 으로 판을 평가해 MCTS를 안내했다. 뼈대는 그대로 이 4단계다.