另外,我們還希望能夠構建起一套略有不同的策略網絡版本;
其應該更小巧且速度更快。可以想象,如果Lusha的經驗非常豐富,那么其用于處理每個位置的時間也將相應延長。在這種情況下,雖然她能夠更好地縮小合理落子范圍,但由于整個過程會不斷重復,因此耗費時間可能會過長。所以,我們需要為這項工作訓練出一套速度更快的策略網絡(我們將其稱為……Lusha的弟弟,Jerry?姑且就這么稱呼吧)。接下來,一旦利用人類選手的數據訓練出滿足需求的策略網絡,我們就可以讓Lusha在圍棋棋盤上進行自我對抗以獲得更多練習機會。這正是強化學習的體現——構建起更強大的策略網絡版本。
此后,我們需要訓練Foma進行估值:確定獲勝的概率。人工智能將在模擬環境當中反復進行自我練習,每一次觀察其最終綶,并從錯誤當中學習到更好、更先進的經驗。
受到篇幅所限,這里我就不具體介紹網絡的訓練方式了。您可以在本文末尾提供的論文鏈接中(參閱‘方法’部分)了解更多細節信息。事實上,這篇論文的主要目的并非說明研究人員如何在這些神經網絡之上進行強化學習。DeepMind在之前發表的一篇文章中,已經談到過他們如何利用強化學習技術教會AI掌握雅達利游戲。因此在本文當中,我只在內容摘要部分稍微提到一點相關內容。這里再次強調,AlphaGo的最大創新在于DeepMind研究人員們利用強化學習加神經網絡來改進已經廣泛流行的游戲算法MCTS。強化學習確實是一種很酷的工具,研究人員們在常規監督式訓練之后利用強化學習實現策略與估值函數神經網絡的微調。但是,這篇研究論文的主要作用在于證明這款工具的功能多樣性與優秀性,而非教導大家如何實際使用。
好了,現在大家對AlphaGo應該已經建立起比較完整的印象。下面,我們會進一步深入探討之前提到的各個議題。當然,其中不可避免要涉及一些看似“危險”的數學公式及表達式,但相信我,它們都很簡單(我會作出詳盡解釋)。因此,請放松心態。
所以,第一步就是訓練我們的策略神經網絡(Lusha),其負責預測專業棋手可能作出的判斷。神經網絡的目標是讓人工智能發揮類似于人類專家的作用。這套卷積神經網絡(正如之前提到,這種特殊的神經網絡非常擅長圖像處理)采用電路板式布局以簡化圖像內容。我們可以向該網絡架構的各個層中添加“整流器非線性”,其將賦予整體網絡學習更復雜技能的能力。如果大家以前曾經訓練過神經網絡,可能對“ReLU”層不會感到陌生。這里我們同樣使用ReLU層。
這里的訓練數據以隨機盤面位置對的形式存在,而標簽則為人類所作出的落子選擇。這部分訓練采用常規的監督式學習。
在這里,DeepMind使用了“隨機梯度ASCENT”。這是一種反向傳播算法。通過這種方式,我們希望最大程度發揮獎勵函數的作用。獎勵函數代表的是人類專家作出不同行動預測的概率; 我們的目標則是盡可能提升這一概率。但是,在實際網絡訓練當中,我們一般只需要讓丟失函數盡可能降低即可——這在實質上是縮小預測結果與實際標簽之間的誤差/差異,也就是所謂梯度下降。在研究論文的實際實現部分,他們確實使用了常規的梯度下降方法。大家可以輕松找到與獎勵函數相對的丟失函數,并通過盡可能降低后者最大程度提升前者。
這套策略網絡擁有13層,我們將其稱為“SL策略(SL policy)”網絡(SL代表監督式學習)。其使用的數據來自某個高人氣網站,有數百萬用戶在這里進行圍棋對弈。那么,SL策略網絡的實際表現如何?
首先,其圍棋水平要高于其他研究人員的早期開發成果。至于“鋪展策略”方面,大家可能還記得之前我們曾提到,研究人員們訓練出一套速度更快的Lusha版本——我們稱其為Jerry。在這里,Jerry負責發揮作用。如大家所看到,Jerry的準確度只有Lusha的一半,但速度卻快了數千倍!當我們應用MCTS算法時,Jerry將幫助我們更快地完成對后續局勢變化的模擬。
要理解下一節的內容,大家可以不了解強化學習,但需要認同一項前提——即我所作出的闡述真實有效。如果您希望探究更多細節并加以嘗試,可能需要首先閱讀一些關于強化學習的背景信息。
一旦擁有了這套SL網絡,接下來要做的就是利用人類選手的判斷數據以監督式方式對其進行訓練。在此之后,就是由其自我對弈以不斷磨練判斷能力。具體實現方法也很簡單——選擇SL策略網絡,將其保存在一個文件中,而后再復制一份副本。
然后,你可以利用強化學習對其進行微調。如此一來,這套網絡就能夠自我對抗并從結果中學習經驗。