AlphaGo的開發(fā)和運行涉及海量數(shù)據(jù)的多次調(diào)參,由于數(shù)據(jù)規(guī)模和復雜度的要求,采用手動調(diào)參估計需要8.3天。研究人員使用貝葉斯優(yōu)化作為自動調(diào)參解決方案,效果明顯,自對弈測試中的勝率從50%提高至66.5%,這下人類更沒法下了。
在AlphaGo的開發(fā)過程中,它的許多超參數(shù)都經(jīng)過多次貝葉斯優(yōu)化調(diào)整。這種自動調(diào)參過程使其棋力顯著提高。在與李世乭的比賽之前,我們調(diào)整了最新的AlphaGo的參數(shù),并在自弈對局測試中將勝率從50%提高到66.5%。
這個經(jīng)過調(diào)整的版本在最后一局比賽中應用。當然,由于我們在開發(fā)周期中多次調(diào)整AlphaGo的參數(shù),因此實際上的棋力提升效果更為明顯。我們希望這個案例研究將引起圍棋愛好者的興趣,同時也為貝葉斯優(yōu)化相關從業(yè)者提供一些見解和靈感。
為什么AlphaGo調(diào)參用貝葉斯優(yōu)化?手動調(diào)參需要8.3天
在AlphaGo的設計和開發(fā)過程中,貝葉斯優(yōu)化作為一項常規(guī)方式,經(jīng)常對AlphaGo超參數(shù)進行調(diào)整,提升棋力。特別是,貝葉斯優(yōu)化成為AlphaGo與李世乭引人注目比賽中的重要因素。
AlphaGo的運行可以用兩個階段來概括:神經(jīng)網(wǎng)絡訓練和蒙特卡羅樹搜索(MCTS)。其中每一個階段都存在許多超參數(shù)。我們主要注意調(diào)整與游戲相關的超參數(shù)。
我們之所以這樣做,是因為掌握了性能強大的神經(jīng)網(wǎng)絡的調(diào)節(jié)策略,但是在游戲過程中如何調(diào)整AlphaGo的人類知識較少。我們對AlphaGo的許多組件進行了元優(yōu)化。
值得注意的是,我們調(diào)整了MCTS超參數(shù),包括管理UCT勘探公式,節(jié)點擴展閾值,與MCTS分布式實施相關的幾個超參數(shù),以及快速推出和快速推出之間選擇公式的超參數(shù)。每次移動的價值網(wǎng)絡評估。我們還調(diào)整了與策略和價值網(wǎng)絡評估相關的超參數(shù)。
最后,我們對一個公式進行了元優(yōu)化,以確定游戲過程中每次行棋的搜索時間。根據(jù)調(diào)整任務屬性不同,要調(diào)整的超參數(shù)的數(shù)量從3到10不等。
圖1:在前6次迭代中使用高斯過程(GP)和預期改進獲取(EI)函數(shù)的貝葉斯優(yōu)化的一維化表示。上圖所示為GP的均值(藍色)和真正的未知函數(shù)(紅色)。在查詢點附近,不確定性降低。下圖為EI采集函數(shù)及其建議的下一個查詢點。
在應用貝葉斯優(yōu)化之前,我們嘗試使用網(wǎng)格搜索來調(diào)整AlphaGo的超參數(shù)。具體來說,對于每個超參數(shù),我們構(gòu)建了一個有效值網(wǎng)格,并在當前版本v和固定基線v0之間運行自對弈。對于每個值,我們運行了1000局對局。
這些對局中每次行棋的時間固定為5秒。進行一場對局大約需要20分鐘。通過使用400個GPU將游戲與幾個工作者并行化,大約需要6.7小時來估算單個超參數(shù)值的勝率p(θ)。
如果要進行6個超參數(shù)的優(yōu)化,每個參數(shù)取5個可能的值,總共需要8.3天。如此高的調(diào)參成本是我們采用貝葉斯優(yōu)化的重要原因。
圖2:最左邊三個圖:估計三個單獨超參數(shù)的勝率的后驗均值和方差,同時修復剩余的超參數(shù)。垂直條所示為固定的參考參數(shù)值。最右邊的圖:兩個超參數(shù)的后驗均值,表示這些參數(shù)之間的相關性
我們使用改進版的Spearmint進行輸入變形,進行貝葉斯優(yōu)化。超參數(shù)調(diào)整過程可由算法1表示(下圖)。
圖3:作為優(yōu)化步驟函數(shù)的觀察值和最大預期勝率的典型值
實驗方法和測試任務
任務1:調(diào)整MCTS超參數(shù)
我們優(yōu)化了MCTS超參數(shù),用于管理UCT勘探公式、網(wǎng)絡輸出回火以及快速輸出值和網(wǎng)絡輸出值之間的混合比。要調(diào)整的超參數(shù)的數(shù)量從3到10不等。
AlphaGo的開發(fā)涉及許多設計迭代過程。在完成AlphaGo版本開發(fā)之后,我們通過貝葉斯優(yōu)化和自我對弈對其進行了改進。在每次設計迭代開始時,勝率為50%。然而,通過調(diào)整MCTS超參數(shù),在與李世乭比賽之前的兩次設計迭代中,勝率增加到63.2%和64.4%(即Elo分數(shù)提高了94、103分)。
重要的是,每次我們調(diào)整版本時,所獲得的知識(包括超參數(shù)值)都會傳遞給下一版本AlphaGo的開發(fā)團隊。在與李世乭的比賽結(jié)束后,我們繼續(xù)優(yōu)化MCTS超參數(shù),繼續(xù)增強AlphaGo的棋力。
任務2:調(diào)整面向快棋的AlphaGo用于數(shù)據(jù)生成
我們運行了行棋時間很短的自弈對局,來生成策略和價值網(wǎng)絡的訓練數(shù)據(jù)集,與常規(guī)行棋時間對局不同,快速對局每步棋限時0.25秒。 AlphaGo在各種版本上的改進取決于這些數(shù)據(jù)集的質(zhì)量。因此,快速的數(shù)據(jù)生成必須盡可能具備強大性能。在這個特殊的時間設置下,最佳的超參數(shù)值會發(fā)生很大變化,如果沒有適當?shù)南闰炛R,手動調(diào)參就會受到限制。在調(diào)整不同的快棋版本后,四個關鍵版本的Elo收益分別為300、285、145和129。
任務3:調(diào)整TPU
張量處理單元(TPU)可以提供比GPU更快的網(wǎng)絡評估速度。
遷移到新硬件后,AlphaGo的性能大幅提升。然而,現(xiàn)有超參數(shù)的最佳值發(fā)生了改變,并且在分布式TPU實現(xiàn)中還出現(xiàn)了新的超參數(shù)。貝葉斯優(yōu)化在早期的TPU實現(xiàn)中產(chǎn)生了更大幅度的Elo分數(shù)提升
任務4:開發(fā)并調(diào)整動態(tài)混合比例公式
早期版本的AlphaGo使用快速輸出值和網(wǎng)絡輸出值評估之間的恒定混合比,無論對局的階段和搜索時間如何變化,這個比例都是不變的。這顯然是不是最優(yōu)選擇,但我們一直缺乏適當?shù)募夹g來尋找最優(yōu)的混合函數(shù)。通過引入貝葉斯優(yōu)化,我們可以定義更靈活的公式,并尋找和調(diào)整最佳公式的參數(shù)。
圖4b所示為對應于圖b中的四個點的四個混合比對移動數(shù)曲線。這表明在150手附近找到混合比的良好值是很重要的。這一發(fā)現(xiàn)與AlphaGo自對弈中的關鍵手通常發(fā)生在150手至200手之間的觀察結(jié)果相一致。
任務5:調(diào)整時間控制公式
MCTS是一種隨時可用的算法,其樹搜索可以在任何時候中斷,返回當前的最佳選擇。為了準備與李世乭的正式比賽,我們希望能夠優(yōu)化所有動作的搜索時間分配,比賽主時間為2小時,每個玩家有3個60秒的讀秒時段。我們將時間分配也視為優(yōu)化問題,以便最大化地提升勝率。
調(diào)整所有超參數(shù)后的最佳效果如圖所示
AlphaGo在默認時間設置下獲得66.5%的勝率,每步棋的行棋時間固定為30秒。
貝葉斯優(yōu)化為AlphaGo的超參數(shù)調(diào)節(jié)提供了一種自動化的解決方案。因為傳統(tǒng)的手動調(diào)參耗時過長,不具備實現(xiàn)的可能。貝葉斯優(yōu)化對AlphaGo的勝率提升做出了重大貢獻,并幫助我們獲得了重要的見解,這些見解繼續(xù)有助于開發(fā)具有MCTS的新版本的AI對弈智能體。
-
AlphaGo
+關注
關注
3文章
79瀏覽量
27780 -
DeepMind
+關注
關注
0文章
130瀏覽量
10863
原文標題:人類沒法下了!DeepMind貝葉斯優(yōu)化調(diào)參AlphaGo,自弈勝率大漲16.5%
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論