Top 8 Monte Carlo Tree Search 설명 The 53 New Answer

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me monte carlo tree search 설명 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.tfvp.org team, along with other related topics such as: monte carlo tree search 설명 MCTS 예제, 몬테카를로 트리 탐색 UCB, 몬테카를로 트리 탐색 오목, 몬테카를로 트리, MCTS python, mcts 강화학습, 몬테카를로 트리검색 순서, Monte Carlo Tree Search

컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 적용된다.


[서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement learning
[서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement learning

[su_youtube_advanced url=”https://www.youtube.com/watch?v=shX6TdLIYtE”]


몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전

  • Article author: ko.wikipedia.org
  • Reviews from users: 2867 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전 Updating …
  • Most searched keywords: Whether you are looking for 몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전 Updating
  • Table of Contents:

운용 원리[편집]

각주[편집]

몬테카를로 트리 탐색 - 위키백과, 우리 모두의 백과사전
몬테카를로 트리 탐색 – 위키백과, 우리 모두의 백과사전

Read More

몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리

  • Article author: gusals1620.tistory.com
  • Reviews from users: 46527 ⭐ Ratings
  • Top rated: 3.0 ⭐
  • 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)에 대한 정확한 정리
몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리

Read More

monte carlo tree search 설명

  • Article author: computing.or.kr
  • Reviews from users: 41210 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • 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:
monte carlo tree search 설명
monte carlo tree search 설명

Read More

Monte Carlo Tree Search 알고리즘(MCTS)

  • Article author: mongxmongx2.tistory.com
  • Reviews from users: 19376 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Monte Carlo Tree Search 알고리즘(MCTS) Monte Carlo Tree Search 알고리즘(MCTS) … MCTS는 주로 게임 AI에서 사용되는 알고리즘이다. 이 알고리즘은 최근에 알파고에 사용되었다. 현재 이 MCTS … …
  • Most searched keywords: Whether you are looking for Monte Carlo Tree Search 알고리즘(MCTS) Monte Carlo Tree Search 알고리즘(MCTS) … MCTS는 주로 게임 AI에서 사용되는 알고리즘이다. 이 알고리즘은 최근에 알파고에 사용되었다. 현재 이 MCTS … Monte Carlo Tree Search 알고리즘(MCTS) 1. 개요 MCTS는 주로 게임 AI에서 사용되는 알고리즘이다. 이 알고리즘은 최근에 알파고에 사용되었다. 현재 이 MCTS 알고리즘은 바둑, 체스, 오셀로 등의 모든 보드 게..
  • Table of Contents:

공지사항

최근 포스트

태그

검색

전체 방문자

Monte Carlo Tree Search 알고리즘(MCTS)
Monte Carlo Tree Search 알고리즘(MCTS)

Read More

Monte Carlo Tree Search

  • Article author: incredible.ai
  • Reviews from users: 48539 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Monte Carlo Tree Search 알파제로를 설명하기 위한 기초단계로서 Monte Carlo Tree Search를 소개합니다. 위의 게임은 Tic Tac Toe 게임으로서 인간 VS 컴퓨터와의 대결을 … …
  • Most searched keywords: Whether you are looking for Monte Carlo Tree Search 알파제로를 설명하기 위한 기초단계로서 Monte Carlo Tree Search를 소개합니다. 위의 게임은 Tic Tac Toe 게임으로서 인간 VS 컴퓨터와의 대결을 … Artificial Intelligence and BigData
  • Table of Contents:

Selection

Expansion

Simulation

Backpropagation

In Practice

Anderson Jo

Monte Carlo Tree Search
Monte Carlo Tree Search

Read More

DOTORI Shed(곳간) : 네이버 블로그

  • Article author: blog.naver.com
  • Reviews from users: 25469 ⭐ Ratings
  • Top rated: 4.3 ⭐
  • 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:
DOTORI Shed(곳간) : 네이버 블로그
DOTORI Shed(곳간) : 네이버 블로그

Read More

Monte Carlo Tree Search 설명 | [서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement Learning 빠른 답변

  • Article author: you.covadoc.vn
  • Reviews from users: 38207 ⭐ Ratings
  • Top rated: 4.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about Monte Carlo Tree Search 설명 | [서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement Learning 빠른 답변 컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 … …
  • Most searched keywords: Whether you are looking for Monte Carlo Tree Search 설명 | [서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement Learning 빠른 답변 컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 …
  • Table of Contents:

monte carlo tree search 설명 주제에 대한 동영상 보기

d여기에서 [서운산미디어센터] 강화학습 (29) Monte Carlo Tree Search 상세히 알아보기 Reinforcement learning – monte carlo tree search 설명 주제에 대한 세부정보를 참조하세요

monte carlo tree search 설명 주제에 대한 자세한 내용은 여기를 참조하세요

주제와 관련된 이미지 monte carlo tree search 설명

주제에 대한 기사 평가 monte carlo tree search 설명

몬테카를로 트리 탐색

몬테카를로 트리 서치 (Monte Carlo Tree Search)에 대한 정확한 정리

Monte Carlo Tree Search 알고리즘(MCTS)

탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search MCTS)

[CS234] Lecture 16 Monte Carlo Tree Search 정리

키워드에 대한 정보 monte carlo tree search 설명

사람들이 주제에 대해 자주 검색하는 키워드 [서운산미디어센터] 강화학습 (29) Monte Carlo Tree Search 상세히 알아보기 Reinforcement learning

Recent Posts

Monte Carlo Tree Search 설명 | [서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement Learning 빠른 답변
Monte Carlo Tree Search 설명 | [서운산미디어센터] 강화학습 (29), Monte Carlo Tree Search, 상세히 알아보기, Reinforcement Learning 빠른 답변

Read More

[CS234] Lecture 16: Monte Carlo Tree Search 정리

  • Article author: mech-literacy.tistory.com
  • Reviews from users: 27404 ⭐ Ratings
  • Top rated: 4.1 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [CS234] Lecture 16: Monte Carlo Tree Search 정리 CS234 대망의 마지막 강의를 장식하는 주제는 Monte Carlo Tree Search[MCTS]이다. 몬테카를로는 익히 배웠던 비효율적인 방식인데다가 Tree Search … …
  • Most searched keywords: Whether you are looking for [CS234] Lecture 16: Monte Carlo Tree Search 정리 CS234 대망의 마지막 강의를 장식하는 주제는 Monte Carlo Tree Search[MCTS]이다. 몬테카를로는 익히 배웠던 비효율적인 방식인데다가 Tree Search … CS234 대망의 마지막 강의를 장식하는 주제는 Monte Carlo Tree Search[MCTS]이다. 몬테카를로는 익히 배웠던 비효율적인 방식인데다가 Tree Search라고 하면 가지치기로 결정을 내리는 이미지가 있어서 그런지..
  • Table of Contents:

태그

‘트렌드 한눈에 보기학계 트렌드’ Related Articles

티스토리툴바

[CS234] Lecture 16: Monte Carlo Tree Search 정리
[CS234] Lecture 16: Monte Carlo Tree Search 정리

Read More

탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)

  • Article author: bubilife.tistory.com
  • Reviews from users: 21774 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • 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, MCTS)
탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)

Read More

monte carlo tree search를 알아봅시다. : frhyme.code

  • Article author: frhyme.github.io
  • Reviews from users: 37357 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about monte carlo tree search를 알아봅시다. : frhyme.code 그래서 좀 찾아보다보니 우선 monte-carlo tree search를 체크해보는 것이 … 직관적이므로 따로 설명은 하지 않겠지만, root node의 값인 12/21 의 … …
  • Most searched keywords: Whether you are looking for monte carlo tree search를 알아봅시다. : frhyme.code 그래서 좀 찾아보다보니 우선 monte-carlo tree search를 체크해보는 것이 … 직관적이므로 따로 설명은 하지 않겠지만, root node의 값인 12/21 의 … intro
  • Table of Contents:

Skip links

intro

monte-carlo simulation

monte-carlo tree search

wrap-up

reference

monte carlo tree search를 알아봅시다. : frhyme.code
monte carlo tree search를 알아봅시다. : frhyme.code

Read More


See more articles in the same category here: 17+ tips for you.

몬테카를로 트리 탐색

컴퓨터 과학에서 몬테카를로 트리 탐색(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)에 대한 정확한 정리

※해당 포스팅은 제 네이버 블로그 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에 대해서는 다음 포스팅에서 자세히 다루겠습니다.

긴 글 읽어 주셔서 감사합니다. 많은 분들에게 도움이 되었으면 좋겠습니다.

Monte Carlo Tree Search 알고리즘(MCTS)

Monte Carlo Tree Search 알고리즘(MCTS)

1. 개요

MCTS는 주로 게임 AI에서 사용되는 알고리즘이다. 이 알고리즘은 최근에 알파고에 사용되었다.

현재 이 MCTS 알고리즘은 바둑, 체스, 오셀로 등의 모든 보드 게임 알고리즘에서 사용되고 있다.

MCTS는 시뮬레이션을 통해 가장 승률이 좋은 행동을 하도록 하는 알고리즘이다.

MCTS는 각 상태에서 움직일 수 있는 곳이 정해져 있어야 한다. MCTS는 이름이 말해주듯이

“game tree” 안에서 작동한다. 알고리즘의 시작은 이 트리의 루트노드로 부터 시작되며

자식노드는 새로운 게임 상태에 대한 정보를 나타낸다.

2. MCTS의 조건

MCTS는 다음 3가지 조건을 만족할 때 사용가능하다.

1) 최대, 최소 값이 존재

2) 게임 규칙의 존재

3) 게임 길이 제한

3. MCTS 알고리즘

MCTS의 알고리즘은 다음 아래 그림과 같은 4 Step을 거친다.

1) Selection

현재 노드에서 어떠한 자식노드로 가야할지 결정하기위해서 각 노드에서 selection function을 사용한다.

selection function은 UTC라고 불리는데 다음과 같은 수식이다.

– Wi : i번 움직인 후의 승리 횟수

– ni : i번 움직인 후의 시뮬레이션 횟수

– c : exploration parameter이다. sqrt(2)가 처음 추측 값으로 적당한 역할을 한다고 한다.

그러나 이 값은 실험을 통해서 조정되어야 한다.

– t : 시뮬에이션의 전체 횟수이다. 즉 모든 ni의 합이 라고 할 수 있다. 이 값은 결국 부모 노드의 ni값이다.

다음 그림을 보면 더 이해하기 쉽다.

결국, 가장 높은 selection value를 가진 자식노드를 선택하여 이동하면된다.

2) Expansion

selection 할 때, 다음에 이동해서 멈출 노드의 확률을 생성한다.

한 노드의 방문 횟 수가 threshold에 도달하면

대부분의 수행은 한 노드의 모든 자식노드의 확장을 하도록한다.

3) Simulation

expansion 과정에서 만들어진 노드로 부터 게임을 실행한다. 기본적으로 게임이 끝날 때까지 실행하며

random하게 선택하여 움직인다. 최종적으로, 어던 플레이어가 이겻는지 track을 유지하여

backpropagation 과정으로 움직인다.

4) Backpropagation

트리의 root로 다시 올라가는 과정이다.

각 확률 노드에 대해, “visit” count를 증가시킨다.

또한 현재 player가 승리한 부모노드에 대해 “win” count를 증가시킨다.

이 4개의 과정을 결정한 만큼이나 시간이 되는 데까지 반복한다.

최종적으로 자식노드 중 win/visit count 비율이 가장 높은 쪽으로 움직이면 된다.

5. 참고자료

Monte Carlo Tree Search for Game AI

So you have finished reading the monte carlo tree search 설명 topic article, if you find this article useful, please share it. Thank you very much. See more: MCTS 예제, 몬테카를로 트리 탐색 UCB, 몬테카를로 트리 탐색 오목, 몬테카를로 트리, MCTS python, mcts 강화학습, 몬테카를로 트리검색 순서, Monte Carlo Tree Search

Leave a Comment