몬테카를로 트리 탐색 | 삼목을 정복하자. 최근 답변 272개

당신은 주제를 찾고 있습니까 “몬테카를로 트리 탐색 – 삼목을 정복하자.“? 다음 카테고리의 웹사이트 you.charoenmotorcycles.com 에서 귀하의 모든 질문에 답변해 드립니다: https://you.charoenmotorcycles.com/blog. 바로 아래에서 답을 찾을 수 있습니다. 작성자 달리나음 이(가) 작성한 기사에는 조회수 1,274회 및 좋아요 21개 개의 좋아요가 있습니다.

Table of Contents

몬테카를로 트리 탐색 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 삼목을 정복하자. – 몬테카를로 트리 탐색 주제에 대한 세부정보를 참조하세요

틱택토, 삼목, 몬테카를로 트리 검색

몬테카를로 트리 탐색 주제에 대한 자세한 내용은 여기를 참조하세요.

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

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

+ 여기를 클릭

Source: ko.wikipedia.org

Date Published: 3/15/2022

View: 5789

Monte Carlo Tree Search(몬테카를로 트리 탐색)

Monte Carlo Tree Search(몬테카를로 트리 탐색) … 몬테카를로 분석은 난수(특정한 순서나 규칙을 가지지 않는 수, 무작위 숫자)를 이용하여 확률 현상을 …

+ 여기에 더 보기

Source: computing.or.kr

Date Published: 3/3/2022

View: 9651

몬테카를로 트리탐색 (Monte Carlo Tree Search) MCTS – 블로그

몬테카를로 트리탐색 (Monte Carlo Tree Search) MCTS. 몬테카를로 기법(Monte Carlo simulation)은 나에게 많이 어렵다.

+ 여기에 자세히 보기

Source: blog.naver.com

Date Published: 6/12/2022

View: 8911

몬테카를로 트리 서치 (Monte Carlo Tree Search) – 지식덤프

– 모든 트리 노드를 대상으로 하는 대신 게임 시뮬레이션을 통해 가장 가능성이 높아 보이는 방향으로 행동을 결정하는 탐색 방법. Ⅰ. AlphaGo의 게임 탐색 알고리즘 …

+ 여기에 더 보기

Source: www.jidum.com

Date Published: 7/3/2021

View: 8727

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

탐색 – 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) · 탐색이란? – 컴퓨터가 문제를 해결하기 위하여 스스로 해답에 이르는 · 경로를 찾아가는 …

+ 더 읽기

Source: bubilife.tistory.com

Date Published: 7/6/2022

View: 7196

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

확률 계산 알고리즘인 Monte Carlo는 많이들 아시다시피 정확한 확률 분포를 구하기 어려울 때 무작위 표본 추출을 통해 확률 분포를 도출하는 것으로써 …

+ 여기에 자세히 보기

Source: gusals1620.tistory.com

Date Published: 6/30/2022

View: 7990

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

몬테카를로 트리 탐색(Monte Carlo tree search, MCTS). Inferer 2016. 10. 8. 09:18. 출처 : https://ko.wikipedia.org/wiki/몬테카를로_트리_탐색.

+ 여기를 클릭

Source: www.inferer.com

Date Published: 3/23/2021

View: 5074

삼목 게임을 위해 개선된 몬테카를로 트리탐색 알고리즘

Enhanced strategic Monte-Carlo Tree Search algorithm to play the game of Tic-Tac-Toe – Go(바둑);Tic-Tac-Toe(삼목);MCTS(몬테카를로 트리탐색);S-MCTS(전략적 …

+ 더 읽기

Source: www.kci.go.kr

Date Published: 9/17/2022

View: 4438

Monte Carlo Tree Search 알고리즘(MCTS)

MCTS는 주로 게임 AI에서 사용되는 알고리즘이다. 이 알고리즘은 최근에 알파고에 사용되었다. 현재 이 MCTS 알고리즘은 바둑, 체스, 오셀로 등의 모든 …

+ 여기에 더 보기

Source: mongxmongx2.tistory.com

Date Published: 10/30/2021

View: 9515

분할 정복 몬테카를로 트리 탐색 (Divide-and-Conquer Monte …

몬테카를로 계획법(planning), 몬테카를로 트리 탐색, 동적 프로그래밍을 포함해서, 순차 의사 결정을 위한 일반적인(standard) 계획법들은 암시적인 …

+ 자세한 내용은 여기를 클릭하십시오

Source: medium.com

Date Published: 1/23/2022

View: 4349

주제와 관련된 이미지 몬테카를로 트리 탐색

주제와 관련된 더 많은 사진을 참조하십시오 삼목을 정복하자.. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

삼목을 정복하자.
삼목을 정복하자.

주제에 대한 기사 평가 몬테카를로 트리 탐색

  • Author: 달리나음
  • Views: 조회수 1,274회
  • Likes: 좋아요 21개
  • Date Published: 실시간 스트리밍 시작일: 2017. 7. 7.
  • Video Url link: https://www.youtube.com/watch?v=WgETnP9yqKk

몬테카를로 트리 탐색

컴퓨터 과학에서 몬테카를로 트리 탐색(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에 대해서는 다음 포스팅에서 자세히 다루겠습니다.

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

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

출처 : https://ko.wikipedia.org/wiki/몬테카를로_트리_탐색

몬테카를로 트리 탐색

컴퓨터 과학에서 몬테카를로 트리 탐색(Monte Carlo tree search, MCTS)은 모종의 의사 결정을 위한 체험적 탐색 알고리즘으로, 특히 게임을 할 때에 주로 적용된다. 선두적 예로 컴퓨터 바둑 프로그램이 있으나, 다른 보드 게임, 실시간 비디오 게임, 포커와 같은 비결정적 게임에도 사용되어 왔다.

운용 원리[편집]

몬테카를로 트리 탐색은 어떻게 움직이는 것이 가장 유망한 것인가를 분석하면서 검색 공간에서 무작위 추출에 기초한 탐색 트리를 확장하는 데 중점을 둔다. 몬테카를로 트리 탐색을 게임에 적용하는 것은 많은 ‘플레이아웃'(playout)에 기초한다. 각각의 플레이아웃에서 무작위 선택을 통해 게임을 끝까지 마치게 된다. 각 플레이아웃의 최종 게임 결과로 노드에 가중치를 두어 장래의 플레이아웃에서 선택할 가능성을 높인다.

플레이아웃을 사용하는 가장 기초적인 방법은 참가자가 규칙에 맞게 둔 각각의 후에 동일한 수(움직임)의 플레이아웃을 적용하고, 가장 많은 수의 승리를 이끈 움직임을 선택하는 것이다.[1] ‘순수 몬테카를로 게임 탐색'(Pure Monte Carlo Game Search)이라 불리는 이 방법은 종종 시간이 진행되면서 예전의 플레이아웃에서 참가자를 승리로 이끌었던 움직임에 더 많은 플레이아웃이 부과되면서 효율성이 높아진다.

몬테카를로 트리 탐색의 매 회는 다음과 같은 네 단계로 구성된다.[2]

선택 (Selection): 루트 R 에서 시작하여 연속적인 자식 노드를 선택해 내려가 마디 L 에 이른다. 몬테카를로 트리 탐색의 본질인, 게임 트리를 가장 승산 있는 수로 확장시킬 자식 노드를 선택하는 방법은 아래 난을 참고한다.

확장 (Expansion): 노드 L 에서 승패를 내지 못하고 게임이 종료되면, 하나 또는 그 이상의 자식 노드를 생성하거나 자식 노드중 노드 C 를 선택한다.

시뮬레이션 (Simulation): 노드 C 로부터 무작위의 플레이아웃을 실행한다.

역전달 (Backpropagation): 플레이아웃의 결과로 C 에서 R 까지의 경로에 있는 노드들의 정보를 갱신한다.

아래 그림은 한 차례에서의 단계의 예이다. 각 트리 노드는 플레이아웃의 ‘승수/실행 경기 수’를 저장한다.

몬테카를로 트리 순회의 각 단계의 예: 선택, 확장, 시뮬레이션, 역전달

삼목 게임을 위해 개선된 몬테카를로 트리탐색 알고리즘

몬테카를로 트리탐색은 최대우선탐색 알고리즘이며, 많은 게임 특히 바둑 게임에 성공적으로 적용되어 왔다. 삼목 게임에서 MCTS 간의 대국을 통해 성능을 평가하고자 했다. 첫 번째 대국자는 항상 두 번째 대국자에 비해 압도적인 우위를 보였으며, 최선의 게임 결과가 무승부가 됨에도 불구하고 첫 번째 대국자가 두 번째 대국자에 비해 우월한 이유를 찾고자 했다. MCTS는 반복적인 무작위 샘플링을 기반으로 하는 통계적 알고리즘이기 때문에, 특히 두 번째 대국자를 위해 전략을 요하는 시급한 문제를 적절히 대처하지 못한다. 이를 위해 전략적 MCTS(S-MCTS)를 제안하며, S-MCTS는 결코 삼목 게임에서 지지 않는다는 것을 보였다.

Monte-Carlo Tree Search(MCTS) is a best-first tree search algorithm and has been successfully applied to various games, especially to the game of Go. We evaluate the performance of MCTS playing against each other in the game of Tic-Tac-Toe. It reveals that the first player always has an overwhelming advantage to the second player; and we try to find out the reason why the first player is superior to the second player in spite of the fact that the best game result should be a draw. Since MCTS is a statistical algorithm based on the repeated random sampling, it cannot adequately tackle an urgent problem that needs a strategy, especially for the second player. For this, we propose a strategic MCTS(S-MCTS) and show that the S-MCTS player never loses a Tic-Tac-Toe game.

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

키워드에 대한 정보 몬테카를로 트리 탐색

다음은 Bing에서 몬테카를로 트리 탐색 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 삼목을 정복하자.

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기

삼목을 #정복하자.


YouTube에서 몬테카를로 트리 탐색 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 삼목을 정복하자. | 몬테카를로 트리 탐색, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  개인 공매도 방법 | 개인투자자 공매도 하는 방법 2가지(대차거래, 대주거래) 상위 205개 답변

Leave a Comment