使用蒙特卡羅樹搜尋學習搜尋空間分割槽的黑盒優化

2021-10-17 12:38:45 字數 3022 閱讀 4683

本文研究的問題是高維決策空間找最優解,且從決策變數到函式值的函式沒有顯示給出,即黑盒優化。通常情況下,我們使用貝葉斯優化,這可以參考我的另一篇文章:高維設計空間中多目標優化的智慧型取樣框架,但這樣做容易出現乙個問題,當維度比較高時,隨著取樣點的增多,搜尋速度會越來越慢,且表現不好。但如果不這麼做的話,如果我們採取貪心策略只在乙個地方搜尋我們可能會陷入區域性最優。

本文借鑑la-nas(神經網路結構優化的nas方面**),使用了乙個la-mcts方法,它可以使用較少的樣本及其函式值學習搜尋空間的分割槽。

lanas使用線性劃分並在每個區域執行均勻取樣,而la-mcts採用非線性決策邊界,並學習區域性模型來選擇好的候選物件。 如果非線性分割槽函式和區域性模型與地面真相黑盒函式很好地吻合,那麼用更少的樣本就可以達到良好的分割槽和候選。 la-mcts作為一種啟發式演算法,使用現有的黑盒優化器(例如bo、tu rbo)作為其區域性模型,在一般的黑盒優化和強化學習基準中實現了很強的效能,特別是對於高維問題。

黑盒優化在許多場景中得到了廣泛的應用,包括神經結構搜尋(nas)、機械人規劃、大型資料庫中的超引數調優、分布式系統、積體電路設計等。

假設我們使用暴力演算法,找到最優解的時間複雜度為指數級(指數為變數x的維度),所以我們通常的做法是使用學習的方法–使用較少的樣本針對多個類別學習多個**模型,再使用該**模型在每個類別進行劃分。例如前面那篇文章就採用了貝葉斯優化建立高斯模型的方法。但是當函式是非線性,維度較高比較複雜的時候,就需要很多的樣本才能完成這個任務。

為了解決這一問題,最近的工作開始探索適合有希望區域的區域性模型的空間劃分和區域性建模,並在高維問題中取得了很強的實驗結果。

在本文中,我們提出了la-mcts,一種啟發式演算法,它以分層的方式遞迴地學習空間劃分。 給定乙個區域內的幾個樣本,它首先根據它們的函式值執行無監督的k均值演算法,使用k均值標籤學習分類器,並將該區域劃分為好的和壞的子區域(具有高/低函式值)。

相比lanas,la-mcts具有如下三點優勢:

la-nas學習的是超平面,而la-mcts學習乙個更靈活的非線性決策邊界

la-nas只是在每個區域執行簡單均勻取樣作為下乙個樣本來評估,而我們對表現良好的區域進行了關鍵觀察,並利用像bo這樣的現有函式逼近器來尋找乙個有希望更好的資料點。這使得la-mcts是一種啟發式演算法,可以用來增強現有的演算法,這些演算法通過構建本地模型進行優化。

la-nas的優勢主要集中在神經結構搜尋(<20個離散引數),但我們的方法在一般黑盒優化方面表現出很強的效能

4.1建立蒙特卡洛樹劃分區域

這部分是這篇文獻的核心,講述了la-mcts如何逐步學習和找到空間中有希望得到好解的區域,以便求解器,如貝葉斯優化(bayesian optimizations,bo)可以在ω中重點關注關鍵區域,以提高其效能。ω符號含義見上表。

建立蒙特卡洛樹的最終目的是將整個空間迭代地劃分成好的和不好的區域,這意味著好的區域當中也會被劃分成好的與不好的區域。

具體如下:

看下圖中的圖(a)部分,每個節點代表的是乙個區域,例如a節點就代表ω

aω_a

ωa​區域,該節點還包含另外兩個資訊,n

an_a

na​代表該區域的樣本數,v

av_a

va​代表這些樣本的函式值f的均值。

我們模擬一遍建樹的過程就懂了,首先,把ω作為root節點即a節點,我們使用k均值聚類方法把空間的取樣點劃分成兩類,這時空間中的每個點都有自己的標籤,要麼1要麼2。

再使用svm演算法在類別1和類別2的取樣點之間找到乙個超平面,於是有了ω

bω_b

ωb​和ω

cω_c

ωc​,如下圖(d)

重複上述操作,直到達到預設的結束標準(比如葉節點數<20個停止)。

4.2搜尋過程

上圖顯示了搜尋過程的三個步驟:

使用原有的取樣點動態地加深樹

選擇乙個劃分的區域進行取樣

使用bo進行取樣,並且使用svm對路徑上的邊界進行新的劃分

4.2.1通過**動態構建樹

首先我們計算ω

iω_i

ωi​區域的表現,即其均值v

av_a

va​。然後我們新加乙個點x

ix_i

xi​,隨著不斷增加取樣點,|v

av_a

va​-va′

v'_a

va′​

|會不斷減少,va′

v'_a

va′​

為新加後的均值。當這個值比較小後,我們可以認為該區域已經差不多可以**了,於是我們可以像上圖a那樣進行**。如此迴圈。當然不一定用這種方式判斷是否要**,比如我們也可以考慮ω

iω_i

ωi​區域的取樣點的數量的閾值來控制**。

4.2.2使用ucb選擇路徑

為了防止區域性最優,我們定義了ucb為:

如圖b,我們會選擇ucb得分更高的節點進行搜尋。c

pc_p

cp​表示搜尋時探索的程度,當cp=

0c_p=0

cp​=

0時,為貪心策略,容易進入區域性最優。n

pn_p

np​為父節點取樣點數,n

jn_j

nj​為當前節點取樣點數,v

jv_j

vj​為當前節點均值。

4.2.3使用bo進行取樣

如上圖c所示,我們通過乙個支援向量機集得到乙個取樣區域f。

參考這篇部落格有詳細討論關於這篇文獻的內容,蒙特卡洛樹搜尋_布朗大學和fair開源la-mcts,及其在神經網路結構搜尋的應用

本文實現的**在[github]

(上,讀者可自行去使用學習

蒙地卡羅樹搜尋

這個也不是我原創的,我只是個學習者。第一次聽蒙地卡羅樹搜尋是關於阿爾法狗大戰李世石。回合制遊戲中,每個選手都沒有什麼資訊可以對對方隱藏的,而且也沒有概率的因素在裡面,比如擲骰子或者從牌隊裡面抽一張牌出來。很多遊戲都是這種型別,比如西洋棋,圍棋等。什麼東西在這類遊戲中都是確定的,從理論上來說,可以構建...

蒙特卡洛樹搜尋 8 11 蒙特卡洛樹搜尋

我想蒙特卡洛樹搜尋 monte carlo tree search,mcts 突然為人所知還是得益於deepmind的alphago。一瞬間,關於解析alphago背後技術的文章大量湧現,其中的乙個核心技術就是本節mcts的乙個擴充套件。本節我們基於前面的知識,來看看mcts究竟是什麼?首先,我們給...

MCTS 蒙特卡洛樹搜尋

最近想去做乙個小型的五子棋對弈,中間會用到蒙特卡洛樹,在此標記一下。mcts,即蒙特卡羅樹搜尋,是一類搜尋演算法樹的統稱,可以較為有效地解決一些搜尋空間巨大的問題。如乙個8 8的棋盤,第一步棋有64種著法,那麼第二步則有63種,依次類推,假如我們把第一步棋作為根節點,那麼其子節點就有63個,再往下的...