You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 몬테카를로 트리 탐색 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.pilgrimjournalist.com team, along with other related topics such as: 몬테카를로 트리 탐색 몬테카를로 트리 탐색 UCB, 몬테카를로 트리 탐색 알파고, MCTS 예제, 몬테카를로 트리 탐색 파이썬, MCTS 알고리즘, 몬테카를로 시뮬레이션, Monte Carlo Tree Search 설명, 몬테카를로 트리 탐색 오목
Table of Contents
몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전
- Article author: ko.wikipedia.org
- Reviews from users: 7185 Ratings
- Top rated: 3.1
- Lowest rated: 1
- Summary of article content: Articles about 몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전 컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 적용된다. …
- Most searched keywords: Whether you are looking for 몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전 컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 적용된다.
- Table of Contents:
운용 원리[편집]
각주[편집]
몬테카를로 트리 탐색
- Article author: computing.or.kr
- Reviews from users: 34101 Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about 몬테카를로 트리 탐색 Monte Carlo Tree Search(몬테카를로 트리 탐색) … 몬테카를로 분석은 난수(특정한 순서나 규칙을 가지지 않는 수, 무작위 숫자)를 이용하여 확률 현상을 … …
- Most searched keywords: Whether you are looking for 몬테카를로 트리 탐색 Monte Carlo Tree Search(몬테카를로 트리 탐색) … 몬테카를로 분석은 난수(특정한 순서나 규칙을 가지지 않는 수, 무작위 숫자)를 이용하여 확률 현상을 …
- Table of Contents:
DOTORI Shed(곳간) : 네이버 블로그
- Article author: blog.naver.com
- Reviews from users: 20303 Ratings
- Top rated: 4.6
- Lowest rated: 1
- Summary of article content: Articles about DOTORI Shed(곳간) : 네이버 블로그 몬테카를로 트리탐색 (Monte Carlo Tree Search) MCTS. 몬테카를로 기법(Monte Carlo simulation)은 나에게 많이 어렵다. …
- Most searched keywords: Whether you are looking for DOTORI Shed(곳간) : 네이버 블로그 몬테카를로 트리탐색 (Monte Carlo Tree Search) MCTS. 몬테카를로 기법(Monte Carlo simulation)은 나에게 많이 어렵다.
- Table of Contents:
지식덤프
- Article author: www.jidum.com
- Reviews from users: 10121 Ratings
- Top rated: 4.3
- Lowest rated: 1
- Summary of article content: Articles about 지식덤프 – 모든 트리 노드를 대상으로 하는 대신 게임 시뮬레이션을 통해 가장 가능성이 높아 보이는 방향으로 행동을 결정하는 탐색 방법. Ⅰ. AlphaGo의 게임 탐색 알고리즘 … …
- Most searched keywords: Whether you are looking for 지식덤프 – 모든 트리 노드를 대상으로 하는 대신 게임 시뮬레이션을 통해 가장 가능성이 높아 보이는 방향으로 행동을 결정하는 탐색 방법. Ⅰ. AlphaGo의 게임 탐색 알고리즘 …
- Table of Contents:
탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)
- Article author: bubilife.tistory.com
- Reviews from users: 41425 Ratings
- Top rated: 4.7
- Lowest rated: 1
- Summary of article content: Articles about 탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) 탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) · 탐색이란? – 컴퓨터가 문제를 해결하기 위하여 스스로 해답에 이르는 · 경로를 찾아가는 … …
- Most searched keywords: Whether you are looking for 탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) 탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) · 탐색이란? – 컴퓨터가 문제를 해결하기 위하여 스스로 해답에 이르는 · 경로를 찾아가는 … 오늘부터 인공지능에 대해 공부를 해보겠습니다. 들어보셨을 수도 있고 한 탐색 기법인, 몬테카를로 트리 탐색 기법에 대해 알아보겠습니다. 우선 탐색기법부터 정의를 살펴보겠습니다. 탐색이란? – 컴퓨터가 문제..
- Table of Contents:
태그
관련글
댓글0
전체 방문자
공지사항
최근글
인기글
최근댓글
태그
티스토리툴바
몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리
- Article author: gusals1620.tistory.com
- Reviews from users: 1792 Ratings
- Top rated: 3.8
- Lowest rated: 1
- Summary of article content: Articles about 몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리 확률 계산 알고리즘인 Monte Carlo는 많이들 아시다시피 정확한 확률 분포를 구하기 어려울 때 무작위 표본 추출을 통해 확률 분포를 도출하는 것으로써 … …
- Most searched keywords: Whether you are looking for 몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리 확률 계산 알고리즘인 Monte Carlo는 많이들 아시다시피 정확한 확률 분포를 구하기 어려울 때 무작위 표본 추출을 통해 확률 분포를 도출하는 것으로써 … ※해당 포스팅은 제 네이버 블로그 https://blog.naver.com/gusals1620/222497438773에서도 확인하실 수 있습니다. 알파고를 통해 AI가 크게 화제가 되면서, 알파고에 사용된 몬테카를로 트리 서치 알고리즘도 화..
- Table of Contents:
고정 헤더 영역
메뉴 레이어
검색 레이어
상세 컨텐츠
태그
추가 정보
페이징
몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)
- Article author: www.inferer.com
- Reviews from users: 5172 Ratings
- Top rated: 3.4
- Lowest rated: 1
- Summary of article content: Articles about 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS). Inferer 2016. 10. 8. 09:18. 출처 : https://ko.wikipedia.org/wiki/몬테카를로_트리_탐색. …
- Most searched keywords: Whether you are looking for 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS). Inferer 2016. 10. 8. 09:18. 출처 : https://ko.wikipedia.org/wiki/몬테카를로_트리_탐색. 출처 : https://ko.wikipedia.org/wiki/몬테카를로_트리_탐색 몬테카를로 트리 탐색 컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로..
- Table of Contents:
삼목 게임을 위해 개선된 몬테카를로 트리탐색 알고리즘
- Article author: www.kci.go.kr
- Reviews from users: 23618 Ratings
- Top rated: 3.8
- Lowest rated: 1
- Summary of article content: Articles about 삼목 게임을 위해 개선된 몬테카를로 트리탐색 알고리즘 Enhanced strategic Monte-Carlo Tree Search algorithm to play the game of Tic-Tac-Toe – Go(바둑);Tic-Tac-Toe(삼목);MCTS(몬테카를로 트리탐색);S-MCTS(전략적 … …
- Most searched keywords: Whether you are looking for 삼목 게임을 위해 개선된 몬테카를로 트리탐색 알고리즘 Enhanced strategic Monte-Carlo Tree Search algorithm to play the game of Tic-Tac-Toe – Go(바둑);Tic-Tac-Toe(삼목);MCTS(몬테카를로 트리탐색);S-MCTS(전략적 … Enhanced strategic Monte-Carlo Tree Search algorithm to play the game of Tic-Tac-Toe – Go(바둑);Tic-Tac-Toe(삼목);MCTS(몬테카를로 트리탐색);S-MCTS(전략적 몬테카를로 트리탐색);Monte-Carlo Tree Search(몬테카를로 트리탐색)
- Table of Contents:
초록
열기닫기 버튼
키워드열기닫기 버튼
인용현황
KCI에서 이 논문을 인용한 논문의 수는 4건입니다
열기닫기 버튼
참고문헌(18)
열기닫기 버튼
2020년 이후 발행 논문의 참고문헌은 현재 구축 중입니다
[논문]삼목 게임에 적용된 몬테카를로 트리탐색
- Article author: scienceon.kisti.re.kr
- Reviews from users: 40412 Ratings
- Top rated: 4.5
- Lowest rated: 1
- Summary of article content: Articles about [논문]삼목 게임에 적용된 몬테카를로 트리탐색 몬테카를로 트리탐색은 몬테카를로 시뮬레이션에 의해 계산된 승률을 근간으로 한다. 몬테카를로 트리탐색을 컴퓨터바둑에 구현하기에 앞서 삼목에서 최상의 첫 수로 중앙, … …
- Most searched keywords: Whether you are looking for [논문]삼목 게임에 적용된 몬테카를로 트리탐색 몬테카를로 트리탐색은 몬테카를로 시뮬레이션에 의해 계산된 승률을 근간으로 한다. 몬테카를로 트리탐색을 컴퓨터바둑에 구현하기에 앞서 삼목에서 최상의 첫 수로 중앙, … 컴퓨터바둑, 몬테카를로 트리탐색, 삼목, 몬테카를로 트리탐색바둑 게임은 가장 오래된 게임 중의 하나이며 적어도 2,500년 전에 기원되었다. 게임프로그래밍에서 대부분의 성공적인 접근법은 평가함수를 활용한 게임트리 탐색을 사용하는 것이다. 그러나 컴퓨터바둑에서 그럴싸한 평가함수를 구축한다는 것은 매우 어렵다. 몬테카를로 트리탐색(MCTS)은 9줄 바둑에서 프로기사를 제압한 MoGo와 CrazyStone과 같은 강력한 컴퓨터바둑프로그램을 만들어 내었다. 몬테카를로 트리탐색은 몬테카를로 시뮬레이션에 의해 계산된 승률을 근간으로 한다. 몬테카를로 트리탐색을 컴퓨터바둑에 구현하기에 앞서 삼목에서 최상의 첫 수로 중앙, 귀, 변의 세 수에 대한 각각의 승률을 측정하려고 했다. 실험 결과로 최상의 첫 수는 중앙이 우선하고, 다음은 귀, 마지막으로는 변이라는 사실이 밝혀졌다.
- Table of Contents:
삼목 게임에 적용된 몬테카를로 트리탐색
원문보기
인용
Monte-Carlo Tree Search Applied to the Game of Tic-Tac-Toe
상세정보조회
원문조회
[논문]삼목 게임에 적용된 몬테카를로 트리탐색
- Article author: medium.com
- Reviews from users: 13089 Ratings
- Top rated: 3.9
- Lowest rated: 1
- Summary of article content: Articles about [논문]삼목 게임에 적용된 몬테카를로 트리탐색 몬테카를로 계획법(planning), 몬테카를로 트리 탐색, 동적 프로그래밍을 포함해서, 순차 의사 결정을 위한 일반적인(standard) 계획법들은 암시적인 … …
- Most searched keywords: Whether you are looking for [논문]삼목 게임에 적용된 몬테카를로 트리탐색 몬테카를로 계획법(planning), 몬테카를로 트리 탐색, 동적 프로그래밍을 포함해서, 순차 의사 결정을 위한 일반적인(standard) 계획법들은 암시적인 … 컴퓨터바둑, 몬테카를로 트리탐색, 삼목, 몬테카를로 트리탐색바둑 게임은 가장 오래된 게임 중의 하나이며 적어도 2,500년 전에 기원되었다. 게임프로그래밍에서 대부분의 성공적인 접근법은 평가함수를 활용한 게임트리 탐색을 사용하는 것이다. 그러나 컴퓨터바둑에서 그럴싸한 평가함수를 구축한다는 것은 매우 어렵다. 몬테카를로 트리탐색(MCTS)은 9줄 바둑에서 프로기사를 제압한 MoGo와 CrazyStone과 같은 강력한 컴퓨터바둑프로그램을 만들어 내었다. 몬테카를로 트리탐색은 몬테카를로 시뮬레이션에 의해 계산된 승률을 근간으로 한다. 몬테카를로 트리탐색을 컴퓨터바둑에 구현하기에 앞서 삼목에서 최상의 첫 수로 중앙, 귀, 변의 세 수에 대한 각각의 승률을 측정하려고 했다. 실험 결과로 최상의 첫 수는 중앙이 우선하고, 다음은 귀, 마지막으로는 변이라는 사실이 밝혀졌다.
- Table of Contents:
삼목 게임에 적용된 몬테카를로 트리탐색
원문보기
인용
Monte-Carlo Tree Search Applied to the Game of Tic-Tac-Toe
상세정보조회
원문조회
See more articles in the same category here: Toplist.pilgrimjournalist.com/blog.
몬테카를로 트리 탐색
컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 적용된다. 선두적 예로 컴퓨터 바둑 프로그램이 있으나, 다른 보드 게임, 실시간 비디오 게임, 포커와 같은 비결정적 게임에도 사용되어 왔다.
운용 원리 [ 편집 ]
몬테카를로 트리 탐색은 어떻게 움직이는 것이 가장 유망한 것인가를 분석하면서 검색 공간에서 무작위 추출에 기초한 탐색 트리를 확장하는 데 중점을 둔다. 몬테카를로 트리 탐색을 게임에 적용하는 것은 많은 ‘플레이아웃'(playout)에 기초한다. 각각의 플레이아웃에서 무작위 선택을 통해 게임을 끝까지 마치게 된다. 각 플레이아웃의 최종 게임 결과로 노드에 가중치를 두어 장래의 플레이아웃에서 선택할 가능성을 높인다.
플레이아웃을 사용하는 가장 기초적인 방법은 참가자가 규칙에 맞게 둔 각각의 후에 동일한 수(움직임)의 플레이아웃을 적용하고, 가장 많은 수의 승리를 이끈 움직임을 선택하는 것이다.[1] ‘순수 몬테카를로 게임 탐색'(Pure Monte Carlo Game Search)이라 불리는 이 방법은 종종 시간이 진행되면서 예전의 플레이아웃에서 참가자를 승리로 이끌었던 움직임에 더 많은 플레이아웃이 부과되면서 효율성이 높아진다.
몬테카를로 트리 탐색의 매 회는 다음과 같은 네 단계로 구성된다.[2]
선택 (Selection): 루트 R 에서 시작하여 연속적인 자식 노드를 선택해 내려가 마디 L 에 이른다. 몬테카를로 트리 탐색의 본질인, 게임 트리를 가장 승산 있는 수로 확장시킬 자식 노드를 선택하는 방법은 아래 난을 참고한다.
(Selection): 루트 에서 시작하여 연속적인 자식 노드를 선택해 내려가 마디 에 이른다. 몬테카를로 트리 탐색의 본질인, 게임 트리를 가장 승산 있는 수로 확장시킬 자식 노드를 선택하는 방법은 아래 난을 참고한다. 확장 (Expansion): 노드 L 에서 승패를 내지 못하고 게임이 종료되면, 하나 또는 그 이상의 자식 노드를 생성하고 그 중 하나의 노드 C 를 선택한다.
(Expansion): 노드 에서 승패를 내지 못하고 게임이 종료되면, 하나 또는 그 이상의 자식 노드를 생성하고 그 중 하나의 노드 를 선택한다. 시뮬레이션 (Simulation): 노드 C 로부터 무작위의 플레이아웃을 실행한다.
(Simulation): 노드 로부터 무작위의 플레이아웃을 실행한다. 역전달 (Backpropagation): 플레이아웃의 결과로 C 에서 R 까지의 경로에 있는 노드들의 정보를 갱신한다.
아래 그림은 한 차례에서의 단계의 예이다. 각 트리 노드는 플레이아웃의 ‘승수/실행 경기 수’를
몬테카를로 트리 순회의 각 단계의 예: 선택, 확장, 시뮬레이션, 역전달
탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)
728×90
오늘부터 인공지능에 대해 공부를 해보겠습니다.
들어보셨을 수도 있고 한 탐색 기법인,
몬테카를로 트리 탐색 기법에 대해 알아보겠습니다.
우선 탐색기법부터 정의를 살펴보겠습니다.
탐색이란? – 컴퓨터가 문제를 해결하기 위하여 스스로 해답에 이르는
경로를 찾아가는 과정이다.
라고 합니다.
알파고가 딥러닝만 가지고 바둑을 제패한건 아니고
이 인공지능 알고리즘 중, 탐색 알고리즘이 적용되었다고 합니다.
사실 상, 모든 경우의 수를 탐색하기에는 하드웨어 상, 굉장히 높은
복잡도를 요구하게 됩니다.
그래서 샘플링을 해서 가장 가능성 있는 몇개의 수만을 추려낸 후에
이들 수에 대해서만 탐색을 합니다. 즉, 샘플링을 하는거죠
다음 그림을 보고 얘기를 한번 드려보겠습니다.
몬테카를로 트리 서치(MCTS)기법이라고 합니다.
이 알고리즘은 총 4단계로 이루어집니다.
https://ko.wikipedia.org/wiki/%EB%AA%AC%ED%85%8C%EC%B9%B4%EB%A5%BC%EB%A1%9C_%ED%8A%B8%EB%A6%AC_%ED%83%90%EC%83%89
1단계 선택(Selection)
루트 R에서 시작하여 연속적인 지식 노드를 선택해 내려가
마디 L에 이른다. 몬테카를로 트리 탐색의 본질인, 게임 트리를
가장 승산 있는 수로 확장시킬 자식 노드를 선택하는 방법은
아래 난을 참고한다.
2단계 확장(Expansion)
노드 L에서 승패를 내지 못하고 게임이 종료되면, 하나 또는
그 이상의 자식 노드를 생성하고 그 중 하나의 노드 C를 선택한다.
3단계 시뮬레이션(Simulation)
노드 C로부터 무작위의 플레이아웃을 실행한다.
4단계 역전달(Backpropagation)
플레이아웃의 결과로 C에서 R까지의 경로에 있는 노드들의
정보를 갱신한다.
무슨 말인지 이해하셨나요??
저는 선택까지만 알겠는데 그 뒤는 도통 모르겠습니다.
그래서 다시 정리해봤습니다.
쉬운버전
여기서 자꾸 노드라는 얘기가 나오는데, 노드는 저 위 그림 보시면 원 그자체를 얘기합니다.
통신 또는 영상처리 쪽에서 많이 쓰이는 용어구요(다른 쪽도 아마 쓰일건데
잘모르겠네요)
노드에 대한 간단한 개념설명을 드려볼게요.
소스노드(또는 원천노드) -> 데스티네이션 노드(또는 목적노드)라고 표현을 많이합니다.
소스노드는 저희가 지금 들고 있는 휴대폰
데스티네이션노드는 제가 전화를 한 상대방의 휴대폰이라고 생각하시면 됩니다.
즉 노드는, 매개체? 인데 확률을 가진 매개체 라고 이해를 하시면 됩니다.
이거는 인공지능 공부하면서 계속 다뤄보겠습니다.
최대한 쉽게쉽게 저도 이해하면서 써보도록 하겠습니다.
지금 잘 이해가 안되셔도 좋습니다. 계속 하다보면 이해가 될거니깐요^^
다시 4단계 설명을 좀 더 쉽게 설명해보겠습니다.
1. 선택(Selection)에서는 뿌리 노드에서 시작하여 현재까지 펼쳐진 트리를 선택한다.
– 여기서 뿌리노드는 최상단에 있는 11/21이라는 숫자가 들어간 노드를 뜻합니다
2. 확장(expansion)에서는 만약 그렇게 선택한 트리에서 게임의 종료가 되지 않은 경우에는
하나 이상의 자식노드를 생성하여 하나를 선택한다.
– 뿌리노드가 밑에 3개의 노드를 만들었죠? 7/10, 3/8, 0/3 이 3개의 노드가
뿌리노드의 자식노드입니다. 밑에도 마찬가지겠죠. 한 노드를 기준으로 자기 위에 노드는
부모노드, 자기 밑에 있는 노드는 자식노드라고 합니다.
3. 시뮬레이션(Simulation)에서는 확장에서 선택된 자식노드에서 게임의 시뮬레이션을
돌려 게임 종료가 될 때까지 시행한다.
4. 역전파(Backpropagation)에서 선택된 자식노드에 시뮬레이션 결과를 반영한다.
시뮬레이션 결과에 기초하여 기록된 값은 방문한 횟수와 시뮬레이션 결과로 나온
점수를 포함해야 한다.
-> 오목을 예로 들게요. 시뮬레이션을 하면 이제 게임이 종료될 때 까지 상황들을
축적을 하는겁니다. 내가 어디에 어떤 수를 두면, 상대방이 또 수를 두고 이렇게 나가다가
게임이 끝나잖아요? 이게 시뮬레이션이고, 이 상황을 역전파해서 뿌리노드에게
값을 전달해줍니다. 그럼 뿌리노드는 하나의 상황을 더 알게된거죠?
이런 식으로 MCTS에서는 몇개의 상황을 추출해서 가지고 있는 정보로
상대편이 어떤 수를 두면, 나는 이런수를 두었을 때 가장 승률이 높다라고 판단을 해서
그 수를 두게 됩니다.
어렵죠? 쉽나요?
그림을 그려서 표현하면 조금 더 쉬울수도 있겠네요.
글로 쓰기가 상당히 쉽지는 않은데요.
나중에 영상으로 제가 설명을 드리는 시간을 꼭 가져보도록 하겠습니다.
긴 글 읽어주셔서 감사합니다.
공부 화이팅입니다~!
몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리
※해당 포스팅은 제 네이버 블로그 https://blog.naver.com/gusals1620/222497438773에서도 확인하실 수 있습니다.
알파고를 통해 AI가 크게 화제가 되면서, 알파고에 사용된 몬테카를로 트리 서치 알고리즘도 화제가 되었습니다.
대학원 세미나를 준비하면서 많은 정보를 보았는데, 한글로 된 정보 중에는 깊은 내용을 다루고 있는 것은 없어서 아쉬움이 있었습니다.
그래서 무료 강의, 논문, 책을 통해 직접 조사를 거쳐 정리해보았습니다.
우선 몬테카를로 트리 서치(Monte Carlo Tree Search, 이하 MCTS)는 MDP(Markov Decision Process)를 해결하는 방법의 한 종류입니다.
출처 : 본인
알파고 덕분에 강화학습이 유명해져서, “강화학습은 MDP를 푸는 방법이다”라는 말을 많이 접하는데요.
맞는 말입니다. 하지만 MDP를 푸는 방법으로는 강화학습 외에도 이렇게 많은 방법들이 있습니다.
Model을 알고 있는 상태(Model based)에서는 Planning
Model을 모르고 있는 상태(Model free)에서는 Learning을 통해 MDP를 해결하는데요.
여기서 Model을 모르는 상태에서 사용하는 방법인 Learning이 바로 Reinforcement Learning, 즉 강화학습입니다.
MCTS는 Tree search 방법들 중 하나에 해당합니다. MCTS 외에도 Minmax tree search 등이 있습니다.
Tree search 알고리즘은 주로 게임에 사용되었습니다. 틱택토 게임을 예로 들면, 현재 상황에서 가능한 모든 경우의 수들을 tree 형태로 뻗어나가며 좋은 수인지 판단한 후 가장 좋은 수를 선택합니다.
하지만 경우의 수가 매우 많은 체스, 바둑 등의 게임에는 모든 경우의 수를 탐색하는 것이 거의 불가능합니다. 이 한계를 극복하기 위한 tree search 알고리즘이 바로 Monte Carlo tree search가 되겠습니다.
출처 : 본인
확률 계산 알고리즘인 Monte Carlo는 많이들 아시다시피 정확한 확률 분포를 구하기 어려울 때 무작위 표본 추출을 통해 확률 분포를 도출하는 것으로써 통계열역학으로부터 만들어진 방법론입니다.
MCTS는 tree search에 Monte Carlo 알고리즘을 응용한 것으로, 어떤 상태에서 게임이 종료될 때까지 모든 경우의 수를 탐색하지 않고, Monte Carlo 기반 시뮬레이션을 통해 랜덤한 수를 두어가면서 게임을 한번 끝까지 진행해봅니다.
이 과정을 충분히 많이 반복하다 보면, 현재 상태가 게임 승리에 얼마나 도움이 되는 수인지 판단할 수 있을 것입니다. ‘충분히 많이’ 반복하더라도 모든 경우의 수를 다 탐색하는 것보다는 훨씬 계산량이 적을 것입니다.
이제 MCTS에서 많이 사용되는 용어를 바둑 게임을 진행하는 그림과 함께 보겠습니다.
출처 : 오츠키 토모시, 정인식 역, 알파고를 분석하며 배우는 인공지능, 제이펍, 2019 & http://www.kocw.net/home/search/kemView.do?kemId=1367683
우선 첫 번째 국면, 즉 트리가 시작되는 맨 위의 노드를 루트 노드라고 합니다.
그리고 트리에서 가장 밑에 있는 node를 leaf node라 하는데, 지금은 트리가 한 번만 확장되었으므로 3개의 child node가 모두 leaf node가 됩니다. Child node가 한 개도 없는 노드를 leaf node로 이해하셔도 좋을 것 같습니다.
알파고의 경우 각 child node가 서로 다른 바둑의 국면을 나타냅니다. (국면은 게임 판의 상태를 뜻합니다.)
즉 위의 그림은 루트 노드와 세 가지의 child node가 생성된 상황을 나타냅니다.
앞서 MCTS는 게임을 임의로 한번 끝까지 진행해본다 했는데, 이때 진행되는 게임을 플레이아웃이라 합니다. 반드시 기억하셔야 되는 용어입니다.
플레이아웃은 한 leaf node가 만들어질 때, 즉 새로운 국면이 만들어졌을 때 실행됩니다. 새로운 국면이 만들어졌다는 것은 한 수를 뒀다는 것인데, 이 수가 얼마나 좋은 수인지 확인하기 위해 임의로 게임을 해보는 것이죠.
승패가 가려져서 플레이아웃이 끝나는 마지막 상태가 그림의 맨 아래의 terminal state입니다.
플레이아웃은 빠르게 수행되어야 하므로 게임의 수를 둘 때 수행 시간이 오래 걸리지 않는 규칙(정책)이 사용되는데, 이 규칙(정책)을 MCTS의 rollout policy 또는 default policy라 합니다. Default policy도 꼭 기억하시길 바랍니다.
Leaf node와 terminal state를 헷갈리지 않게 주의하시길 바랍니다. Terminal state는 임의로 진행된 게임의 마지막 상태이지, 트리로 형성된 node가 아닙니다
Tree policy로는 UCT(Upper Confidence Boundary of Tree)가 사용되었다고 하는데, MCTS에서 가장 중요한 것이 되겠습니다 . Tree policy는 어디에 쓰이는 정책인지, 또 UCT는 무엇인지에 대한 내용은 자연스러운 흐름을 위해 조금 뒤에 설명하도록 하겠습니다.
이쯤에서 MCTS의 네 단계를 확인해보겠습니다. 아래 그림은 MCTS 관련 자료를 찾아보시면 흔히 볼 수 있는 그림입니다.
출처 : C. B. Browne et al., “A Survey of Monte Carlo Tree Search Methods,” in IEEE Transactions on Computational Intelligence and AI in Games, vol. 4, no. 1, pp. 1-43, March 2012
1. 선택(Selection) : 위에서 설명한대로 child node를 만들 node를 고르는 단계입니다. 반드시 leaf node일 필요는 없습니다. Leaf node인 경우도 있고, 아닌 경우도 있습니다. 그리고 선택된 노드가 완전 확장 노드이면 선택이 한 번 더 일어나는데, 아래 그림과 그림의 설명을 보시면 이해가 쉬우실 것입니다.
2. 확장(Expansion) : child node를 생성하여 트리를 확장합니다. 확장된 직후에는 이 child node가 leaf node가 되겠죠.
3. 시뮬레이션(Simulation) : Leaf node에서 게임이 종료될 때까지 플레이아웃을 시뮬레이션합니다.
4. 역전파(Backpropagation) : 선택된 leaf node에 시뮬레이션 결과를 반영합니다.
잘보면 앞서 말씀드린대로 확장 단계에서 한 leaf node가 만들어진 후 바로 플레이아웃이 실행됩니다. 그리고 플레이아웃을 통해 승패가 가려졌으므로 역전파 단계를 통해 확장된 leaf node와 그것의 상위 노드에 기록된 승률을 업데이트 해줍니다.
하나 더 여기서 주의할 점이, 위의 네 단계가 항상 순서대로 이루어지는 것이 아니라는 것입니다.
빠른 이해를 위해 트리가 확장되는 과정을 맨 처음부터 보여드리겠습니다.
출처 : 본인
우선 매 확장 단계마다 leaf node가 만들어지면 바로 시뮬레이션(플레이아웃이 실행되는 단계)-역전파 단계가 이어지는데 그림에서는 생략했습니다. 이 점 주의하시길 바랍니다.
처음에는 루트 노드밖에 없으므로 child node가 없습니다. 그래서 확장을 여러 번 해줍니다.
만약 확장할 수 있는 경우의 수가 총 3개인데 child node가 3개가 다 만들어졌다면, 루트 노드는 완전 확장 노드가 됩니다. 완전 확장 노드에서는 확장을 이어 나갈 child node 중 하나를 선택합니다.
선택후에는 선택된 노드에서 확장이 일어납니다. 선택 뒤에는 시뮬레이션-역전파 단계가 따르지 않습니다. 선택된 노드에서 확장이 일어난 후에 시뮬레이션-역전파 단계가 진행되는 것입니다.
그리고 또 주의할 점이 확장-시뮬레이션-역전파 단계가 끝나면 다시 맨 위의 루트 노드에서부터 시작합니다. 그래서 (6)번 과정의 확장-시뮬레이션-역전파 단계 후 다시 루트 노드로 돌아가고 다시 한 번 선택 단계를 거칩니다.
비슷한 과정을 반복하다 보면, (12)번 과정에서 루트 노드의 한 child node도 완전 확장 노드가 됩니다. 다시 한 번 이 완전 확장된 child node가 선택되는 (15)번 과정에서는 이것의 child node들 중에서 한 node를 또 선택해야 합니다. 즉 선택이 여러 번 연속 일어날 수도 있게 되는 것입니다.
그리고 제가 위에서 선택되는 node는 반드시 leaf node일 필요는 없다고 했는데, 그림에서 보시다시피 (5)번, (7)번, (16)번의 경우는 트리 맨 아래에 있는 leaf node 중 하나가 선택되었지만, (9)번, (11)번, (13)번, (15)번의 경우는 leaf node가 선택되지 않았습니다.
—————————————————————————————————
이번에는 다시 돌아와서 가장 중요한 tree policy에 대해 알아보겠습니다.
Tree policy는 선택 단계에서 확장을 이어 나가기 위해 선택할 child node를 정할 때 사용하는 정책입니다.
child node를 선택할 때 아무 node나 고르는 것이 아니고 적절한 tree policy에 따라 선택을 해야 합니다.
위의 그림을 보면, 루트 노드의 맨 오른쪽 세 번째 child node는 한 번도 선택이 되지 않습니다. 맨 왼쪽 node만 계속 선택받으면서 확장이 되는데, 당장은 플레이아웃 했을 때 이 왼쪽 node의 승률이 높기 때문에 계속 선택되는 것입니다.
그런데 게임이 그리 쉬운 것이 아니죠. 수를 많이 내다보면 안 좋은 수일 수도 있습니다. 그리고 선택 받지 못한 맨 오른쪽 child node가 오히려 뒤로 가면 좋은 수일 수도 있죠.
그래서 선택을 할 때는 당장 승률이 좋은 수를 나타내는 node만 계속 선택해서 이용(exploitation)하지 않고, 당장 승률이 좋지 않은 수도 위험을 무릅쓰고 그 수에 대해 탐사(exploration)해 볼 필요가 있습니다. 이를 이용-탐사 딜레마(exploitation-exploration dilemma)라고 합니다.
알파고의 경우 exploitation과 exploration의 균형을 맞추기 위해 tree policy로 UCT(Upper Confidence Boundary of Tree)가 사용되었습니다.
UCT는 UCB1(Upper Confidence Boundary)이 tree에 사용되었다고 해서 붙은 이름입니다. 확장을 이어 나갈 child node를 선택할 때는 UCT 값이 높은 node를 선택합니다.
글이 너무 길어져서 UCT와 UCB1에 대해서는 다음 포스팅에서 자세히 다루겠습니다.
긴 글 읽어 주셔서 감사합니다. 많은 분들에게 도움이 되었으면 좋겠습니다.
So you have finished reading the 몬테카를로 트리 탐색 topic article, if you find this article useful, please share it. Thank you very much. See more: 몬테카를로 트리 탐색 UCB, 몬테카를로 트리 탐색 알파고, MCTS 예제, 몬테카를로 트리 탐색 파이썬, MCTS 알고리즘, 몬테카를로 시뮬레이션, Monte Carlo Tree Search 설명, 몬테카를로 트리 탐색 오목