【論文】A Survey of Monte Carlo Tree Search Methods閱讀筆記

本文主要是將有關蒙特卡洛樹搜索的文獻(2011年之前)進行歸納,概述了核心算法的推導,給出了已經提出的許多變化和改進的一些結構,并總結了MCTS方法已經應用于的博弈和其他領域的結果。

蒙特卡洛樹搜索是一種通過在決策空間中隨機抽樣,并根據結果建立搜索樹,在給定域內尋找最優決策的方法,它平衡了探索(exploration)和利用(exploitation)。

一、背景

二、蒙特卡洛樹搜索

蒙特卡洛樹搜索基于兩個基本概念:一個動作的真實值可以使用隨機模擬來近似;這些值可以有效地調整策略為最佳優先策略。

基本算法包括迭代地構建一個搜索樹,直到達到一些預定義的計算預算——通常是時間、內存或迭代約束——此時搜索停止,并返回性能最好的根操作。搜索樹中的每個節點表示域的一個狀態,指向子節點的定向鏈接表示導致后續狀態的操作。

每次搜索迭代都將應用四個步驟:

  • 選擇(selection):從根節點開始,遞歸地應用子選擇策略通過樹向下移動,直到到達最緊急的可擴展節點。如果節點表示非終端狀態并且有未訪問(即未擴展)子節點,則節點是可擴展的。
  • 擴展(expansion):根據可用的操作,添加一個(或多個)子節點以展開樹。
  • 模擬(simulation):根據默認策略,從新節點開始運行模擬,以產生結果。
  • 反向傳播(backpropagated):模擬結果通過選定的節點進行“備份”(即反向傳播),以更新其統計信息。

這些步驟可以分為兩種不同的策略:

  • 樹策略(tree policy):從已包含在搜索樹中的節點中選擇或創建一個葉節點(選擇和擴展)
  • 默認策略(default policy):從給定的非終端狀態發揮域,已產生值估計(模擬)

Upper Confidence Bounds for Trees (UCT)?

UCB1是解決MCTS中的探索-利用困境的一個很有前途的候選對象:每當在現有的樹中選擇一個節點(動作)時,該選擇都可以被建模為一個獨立的多武裝強盜問題(multiarmed bandit problem),一個子節點?j 被選擇去最大化:

方程第一項是利用項,第二項是探索項,兩項間有一個基本的平衡。當每個節點被訪問時,探索項的分母增加,從而減少其貢獻。另一方面,如果訪問了父節點的另一個子節點,那么分子就會增加,因此未訪問的兄弟節點的探索值也會增加。探索項確保每個子節點都有一個非零的選擇概率,這是必要的隨機性質。這也賦予了算法一個固有的重啟屬性,因為即使是低獎勵的子節點最終也能保證被選擇(如果給定足夠的時間),從而探索了不同的游戲路線。

參數可以進行調整以降低或增加探索的概率。一般取,因為這個值能以范圍為[0,1]的獎勵滿足Hoeffding ineqality。其他范圍的獎勵則需要不同的

算法3展示了一種更有效的雙人零和博弈交替移動的備份方法。

?三、特點

1)啟發式:MCTS最重要的好處之一就是缺乏對特定領域的知識的需求,這使得它很容易適用于任何可以使用樹建模的領域?。

2)任何時間:MCTS立即反向傳播每個游戲的結果,確保在算法的每次迭代后所有值都是最新的,這允許算法在任何時候從根目錄返回一個操作。

3)不對稱:樹的選擇允許算法偏愛更有前途的節點(但不允許其他節點的選擇概率收斂到零),導致隨著時間的推移出現不對稱的樹,也就是說,部分樹的構建傾向于更有前途,即更重要的區域。

四、變化

傳統的游戲AI研究集中于有兩個玩家的零和游戲、交替回合、離散動作空間、確定性狀態轉換和完美信息。雖然MCTS已經廣泛應用于此類游戲,但它也被應用于其他領域類型,如單人游戲和規劃問題、多人游戲、實時游戲以及具有不確定性或同時移動的游戲。本節描述了MCTS適應這些領域的方法,以及那些采用來自MCTS的想法而不嚴格遵守其大綱的算法。

(我只選擇部分可能與課題相關的算法進行學習)

1.Learning in MCTS

MCTS可以被看作是一種強化學習算法,因此考慮它與時間差異學習(典型的RL算法)之間的關系。

時間差異學習(TDL):時間差異學習(TDL)和MCTS都是學習基于狀態或狀態 - 行動對的值來采取行動的。在某些情況下,算法甚至可能是等價的,但TDL算法通常不構建樹,只有當所有狀態值都可以直接存儲在表中時,這種等價才成立。MCTS估計臨時狀態值,以決定下一步行動,而TDL學習每個狀態的長期值,然后指導未來的行為。

時間差異與蒙特卡洛(TDMC):“一種新的方法使用獲勝概率代替非終端位置的獎勵”

Bandit-Based Active Learner (BAAL):用來解決在數據稀疏的應用程序中的小訓練集的問題。

2.多人 MCTS

極大極小搜索的中心假設是搜索玩家尋求最大化他們的獎勵,而對手則尋求最小化獎勵。在雙人零和游戲中,這相當于說每個玩家都尋求最大化自己的獎勵;然而,在兩個以上玩家的游戲中,這種等價性并不一定成立。

將MCTS應用于多人游戲的最簡單的方法是采用這樣的想法:每個節點存儲一個獎勵向量,并且選擇過程尋求最大化使用獎勵向量的適當成分計算出的UCB值。

?3.多代理MCTS

考慮擁有多個代理(即多個模擬策略)的影響,在這種情況下,不同的代理是通過給程序中使用的啟發式分配不同的優先級來獲得的。然而尋找具有正確屬性的代理集(即那些增加游戲強度的代理)是需要計算的。

集成UCT:在該方法中,多個UCT實例獨立運行,并將他們的根統計量組合起來得到最終結果。

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/717610.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/717610.shtml
英文地址,請注明出處:http://en.pswp.cn/news/717610.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Redis在中國火爆,為何MongoDB更受歡迎國外?

一、概念 Redis Redis(Remote Dictionary Server)是一個使用ANSI C編寫的開源、支持網絡、基于內存、分布式、可選持久性的鍵值對存儲數據庫。Redis是由Salvatore Sanfilippo于2009年啟動開發的,首個版本于同年5月發布。 MongoDB MongoDB…

C++練手題

第 1 題 【 問答題 】 ? 紅與黑 有一間長方形的房子, 地上鋪了紅色、 黑色兩種顏色的正方形瓷磚。你站在其中一塊黑色的瓷磚上, 只能向相鄰的黑色瓷磚移動。 請寫一個程序, 計算你總共能夠到達多少塊黑色的瓷磚。 時間限制: 1000…

基于R語言地理加權回歸、主成份分析、判別分析等空間異質性數據分析

在自然和社會科學領域有大量與地理或空間有關的數據,這一類數據一般具有嚴重的空間異質性,而通常的統計學方法并不能處理空間異質性,因而對此類型的數據無能為力。以地理加權回歸為基礎的一系列方法:經典地理加權回歸,…

Linux相關小技巧《三》

需求: 前一段時間有收到這樣的一個關于linux用戶的權限相關的需求,在centos上給用戶創建一個用SSH的密鑰訪問服務器,另給該用戶添加到root權限組。記錄下了步驟,分享給大家。 步驟: 添加root用戶組: gr…

跳躍游戲問題(算法村第十七關黃金挑戰)

跳躍游戲 55. 跳躍游戲 - 力扣(LeetCode) 給你一個非負整數數組 nums ,你最初位于數組的 第一個下標 。數組中的每個元素代表你在該位置可以跳躍的最大長度。 判斷你是否能夠到達最后一個下標,如果可以,返回 true &…

人工智能-零基礎

機緣 擴充下知識棧,準備零基礎開始 人工智能零基礎 日常 日常水一下博客… 憧憬 努力成為一個會人工智能的程序員

軟考筆記--構件與軟件復用

構件也稱為組件(component),是一個功能相對獨立的具有可復用價值的軟件單元。在面向對象的方法中,一個構件有一組對象組成,包含可一些協作的類的集成,它們協同工作來提供一種系統功能。可復用性是指系統和其…

138.樂理基礎-等音、等音程的意義

上一個內容:137.樂理基礎-協和音程、不協和音程 上一個內容里練習的答案: 等音、等音程的意義,首先在 19.音階 里寫了,一個調使用的音階應當是從主音快開始,以階梯狀的形式進行到主音結束,這樣才能明顯從樂…

在docker中運行 pip 報錯 Can‘t start new thread

原因源頭 stackoverflowhis is because the default seccomp profile of Docker 20.10.9 is not adjusted to support the clone() syscall wrapper of glibc 2.34 adopted in Ubuntu 21.10 and Fedora 35.由于docker 版本與最新版 python 容器沖突導致 解決方案 以下三種方…

b站小土堆pytorch學習記錄—— P16 神經網絡的基本骨架 nn.Module的使用

文章目錄 一、前置知識1.nn是什么2.nn如何使用 二、代碼 一、前置知識 1.nn是什么 在深度學習中,“nn” 通常是指神經網絡(Neural Network)的縮寫。神經網絡是一種由大量神經元(neurons)相互連接而成的模型&#xff…

【Python】成功解決TypeError: list indices must be integers or slices, not float

【Python】成功解決TypeError: list indices must be integers or slices, not float 🌈 個人主頁:高斯小哥 🔥 高質量專欄:Matplotlib之旅:零基礎精通數據可視化、Python基礎【高質量合集】、PyTorch零基礎入門教程&…

vue 打包配置

vue打包配置記錄一下 publicPath: 打包的路徑 默認值:/(根目錄); 任意路徑:""或者"./" (相對路徑) 參照:Vue CLI4.0 webpack配置屬性——publicPath_publicpath怎么寫相對路徑-CSDN…

springboot讀取自定義配置

springboot讀取自定義配置 application.yml自定義配置 my-app:ip1:#dmz1 ftp服務器ipAddress: 172.12.23.456port: 21username: adminpassword: adminip2:ipAddress: 172.12.23.457port: 21username: adminpassword: admin方式1,Value注解 Component public clas…

兩天學會微服務網關Gateway-Gateway工作原理

鋒哥原創的微服務網關Gateway視頻教程: Gateway微服務網關視頻教程(無廢話版)_嗶哩嗶哩_bilibiliGateway微服務網關視頻教程(無廢話版)共計17條視頻,包括:1_Gateway簡介、2_Gateway工作原理、3…

【網站項目】144校園二手物品交易平臺

🙊作者簡介:擁有多年開發工作經驗,分享技術代碼幫助學生學習,獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。🌹贈送計算機畢業設計600個選題excel文件,幫助大學選題。贈送開題報告模板&#xff…

FRM模型十四:FRA估值

什么是FRA FRA(Forward rate agrreement)遠期利率協議,是一種場外衍生品。FRA在0時刻確定,在未來時刻進行交易的協議。例如FRA3,6表示雙方約定在3個月后以Rk的利率水平借款3個月。 應用場景:某公司未來3個月有融資需…

XWPFTemplate:基于Apache POI的Word文檔模板引擎

1. 前言 在Java領域中,處理Office文檔是一項常見的需求,尤其是對于生成報告、合同或其他結構化文檔。Apache POI是一個廣泛使用的庫,用于讀寫Microsoft Office格式文件(包括Word、Excel等)。然而,直接操作…

Kotlin 中編寫靜態方法的方式詳解

在 Kotlin 中,與 Java 不同,沒有 static 關鍵字來定義靜態方法。但是 Kotlin 提供了一種類似的機制來實現靜態方法。本文將介紹 Kotlin 中編寫靜態方法的兩種方式,并給出 Kotlin 和 Java 中的調用示例代碼。 方式一:使用頂層函數…

Vue 3 中的 $emit 函數是如何工作的

在 Vue.js 框架中,組件間的通信是一個核心概念。Vue 提供了多種方式來實現父子組件間的通信,其中 $emit 是子組件向父組件發送消息的一種常用手段。在 Vue 3 中,隨著 Composition API 的引入,$emit 的使用方式也發生了一些變化&am…

[HackMyVM] 靶場 Wave

kali:192.168.56.104 主機發現 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…