換句話來說,在游戲狀態(tài)下,我們將可通過一條函數(shù)v*(s)來預測最終結果——例如你贏得這盤對弈的概率,區(qū)間為0到1。DeepMind的研究人員將其稱為“最優(yōu)估值函數(shù)”。由于某些盤面位置比其它盤面位置更有可能帶來獲勝結果,因此前者可能比其它位置擁有“更高估值”。讓我再強調一次,估值=贏得比賽的0到1間概率值。
但先別急——假設一位名叫Foma的女孩坐在您的身邊,在每下一步棋時,她都會告訴您這次決定會導致您勝利還是失敗?!澳阙A了……你辦理了……不,還是辦理了……”我認為這樣的提示對您的棋步選擇并沒有多大幫助,而且非常煩人。相反,真正能夠幫得上忙的其實應該是勾勒出所有可能的棋步樹,以及這些棋步將會引發(fā)的狀態(tài)——而后,F(xiàn)oma會告訴你在整個樹狀結構中,哪些狀態(tài)會將你推向勝利,而哪些會招致失敗。突然之間,F(xiàn)oma就成了您的完美伙伴——而非討厭的插嘴者。在這里,F(xiàn)oma將作為您的最優(yōu)估值函數(shù)v*(s)。此前,人們一直認為像圍棋這樣的游戲,不可能擁有Foma這樣的準確估值函數(shù)——因為其中存在著太多不確定性。
然而,即使您真的擁有了Foma,她對所有可能盤面位置的估算在現(xiàn)實對弈當中恐怕也無法奏效。因為在國際象棋或圍棋這樣的游戲當中,正如之前所提到,即使是想要預測七到八步之后的整體局勢,過多的可能性選擇也會令Foma需要耗費大量時間才能得出分析結果。
也就是說,單憑Foma還遠遠不夠。大家還需要進一步縮小明智棋步的具體范圍,并據(jù)此推衍接下來的局勢走向。那么我們的程序該如何做到這一點?Lusha在這里閃亮登場。Lusha是一位擁有相當技巧的國際象棋選手加熱心人,她曾花費數(shù)十年時間觀看國際象棋大師賽。她可以觀看你的盤面位置,快速思考您所能做出的全部合理選擇,并告訴你專業(yè)選手作出各種判斷的可能性。因此,如果您在某一特定時間點上擁有50種可能的棋步選項,Lusha會告訴你職業(yè)棋手選擇每種選項的具體概率。當然,其中一些明智的棋步會擁有更高的概率,而其它無意義的棋步則概率極低。她就是你的策略函數(shù),p(as)。對于給定狀態(tài)s,她能夠為您提供專業(yè)選手可能作出的全部選擇的對應概率。
接下來,你可以在Lusha的幫助下尋找更為合理的棋步選項,而Foma則會告訴我們這些棋步對對弈結果的實際影響。在這種情況下,大家可以選擇由Foma與Lusha協(xié)商給出落子建議,或者也可以先由Lusha提供建議,再由Foma對結果作出評估。接下來,挑選其中一些選項進行后續(xù)影響分析,再由Foma與Lusha繼續(xù)進行預測指導——通過這種方式,我們將能夠更為高效地掌握盤面局勢走向。而這,正是所謂“減少搜索空間”的實際意義所在。利用估值函數(shù)(Foma)預測結果,利用策略函數(shù)(Lusha)提供棋藝層面的概率取舍以縮小值得進一步探索的落子范圍。這套體系就是所謂“蒙特卡洛鋪展(Monte Carlo rollouts)”。接下來,當重新回到當前棋步時,你將能夠得到各種選項所對應的平均估值結論,并據(jù)此找到最適合的落子位置。不過到這里,其在圍棋水平方面仍然表現(xiàn)不佳——因為這兩種函數(shù)的實際指導能力還比較孱弱。
不過沒關系。
首先進行具體解釋。在MCTS當中,起步階段的Foma與Lusha的功能還不夠精熟。但對弈數(shù)量越多,二者在預測可靠結果與落子位置方面就越強大。論文指出,“縮小高可能性棋步的具體范圍”其實是種較為復雜的表達,“Lusha實際上是通過提供專業(yè)棋手的落子概率幫助縮小需要考量的選項。以往的工作主要利用這種技術在策略函數(shù)較為簡單的情況下,提供強大且成熟的AI選手解決方案。
是的,卷積神經網絡非常適合圖像處理類任務。而且由于神經網絡需要特定輸入內容并給出對應的輸出結果,所以其在本質上其實也相當于一條函數(shù)。這意味著大家可以利用神經網絡來充當一種高度復雜的函數(shù)。從這個思路出發(fā),大家可以將其傳遞一份盤面位置圖像,并由神經網絡自行判斷當前局勢。如此一來,創(chuàng)建出的神經網絡將擁有非常準確的策略與估值能力。
下面,我們將討論Foma與Luha的具體訓練方式。為了訓練策略網絡(負責預測專業(yè)棋手的落子位置判斷),我們只需要將人類對弈棋譜作為素材,并利用其進行傳統(tǒng)的監(jiān)督式學習即可。
另外,我們還希望能夠構建起一套略有不同的策略網絡版本; 其應該更小巧且速度更快。可以想象,如果Lusha的經驗非常豐富,那么其用于處理每個位置的時間也將相應延長。在這種情況下,雖然她能夠更好地縮小合理落子范圍,但由于整個過程會不斷重復,因此耗費時間可能會過長。所以,我們需要為這項工作訓練出一套速度更快的策略網絡(我們將其稱為……Lusha的弟弟,Jerry?姑且就這么稱呼吧)。接下來,一旦利用人類選手的數(shù)據(jù)訓練出滿足需求的策略網絡,我們就可以讓Lusha在圍棋棋盤上進行自我對抗以獲得更多練習機會。這正是強化學習的體現(xiàn)——構建起更強大的策略網絡版本。
此后,我們需要訓練Foma進行估值:確定獲勝的概率。人工智能將在模擬環(huán)境當中反復進行自我練習,每一次觀察其最終綶,并從錯誤當中學習到更好、更先進的經驗。
受到篇幅所限,這里我就不具體介紹網絡的訓練方式了。您可以在本文末尾提供的論文鏈接中(參閱‘方法’部分)了解更多細節(jié)信息。事實上,這篇論文的主要目的并非說明研究人員如何在這些神經網絡之上進行強化學習。DeepMind在之前發(fā)表的一篇文章中,已經談到過他們如何利用強化學習技術教會AI掌握雅達利游戲。因此在本文當中,我只在內容摘要部分稍微提到一點相關內容。這里再次強調,AlphaGo的最大創(chuàng)新在于DeepMind研究人員們利用強化學習加神經網絡來改進已經廣泛流行的游戲算法MCTS。強化學習確實是一種很酷的工具,研究人員們在常規(guī)監(jiān)督式訓練之后利用強化學習實現(xiàn)策略與估值函數(shù)神經網絡的微調。但是,這篇研究論文的主要作用在于證明這款工具的功能多樣性與優(yōu)秀性,而非教導大家如何實際使用。
好了,現(xiàn)在大家對AlphaGo應該已經建立起比較完整的印象。下面,我們會進一步深入探討之前提到的各個議題。當然,其中不可避免要涉及一些看似“危險”的數(shù)學公式及表達式,但相信我,它們都很簡單(我會作出詳盡解釋)。因此,請放松心態(tài)。
所以,第一步就是訓練我們的策略神經網絡(Lusha),其負責預測專業(yè)棋手可能作出的判斷。神經網絡的目標是讓人工智能發(fā)揮類似于人類專家的作用。這套卷積神經網絡(正如之前提到,這種特殊的神經網絡非常擅長圖像處理)采用電路板式布局以簡化圖像內容。我們可以向該網絡架構的各個層中添加“整流器非線性”,其將賦予整體網絡學習更復雜技能的能力。如果大家以前曾經訓練過神經網絡,可能對“ReLU”層不會感到陌生。這里我們同樣使用ReLU層。
這里的訓練數(shù)據(jù)以隨機盤面位置對的形式存在,而標簽則為人類所作出的落子選擇。這部分訓練采用常規(guī)的監(jiān)督式學習。
在這里,DeepMind使用了“隨機梯度ASCENT”。這是一種反向傳播算法。通過這種方式,我們希望最大程度發(fā)揮獎勵函數(shù)的作用。獎勵函數(shù)代表的是人類專家作出不同行動預測的概率; 我們的目標則是盡可能提升這一概率。但是,在實際網絡訓練當中,我們一般只需要讓丟失函數(shù)盡可能降低即可——這在實質上是縮小預測結果與實際標簽之間的誤差/差異,也就是所謂梯度下降。在研究論文的實際實現(xiàn)部分,他們確實使用了常規(guī)的梯度下降方法。大家可以輕松找到與獎勵函數(shù)相對的丟失函數(shù),并通過盡可能降低后者最大程度提升前者。
這套策略網絡擁有13層,我們將其稱為“SL策略(SL policy)”網絡(SL代表監(jiān)督式學習)。其使用的數(shù)據(jù)來自某個高人氣網站,有數(shù)百萬用戶在這里進行圍棋對弈。那么,SL策略網絡的實際表現(xiàn)如何?
首先,其圍棋水平要高于其他研究人員的早期開發(fā)成果。至于“鋪展策略”方面,大家可能還記得之前我們曾提到,研究人員們訓練出一套速度更快的Lusha版本——我們稱其為Jerry。在這里,Jerry負責發(fā)揮作用。如大家所看到,Jerry的準確度只有Lusha的一半,但速度卻快了數(shù)千倍!當我們應用MCTS算法時,Jerry將幫助我們更快地完成對后續(xù)局勢變化的模擬。
要理解下一節(jié)的內容,大家可以不了解強化學習,但需要認同一項前提——即我所作出的闡述真實有效。如果您希望探究更多細節(jié)并加以嘗試,可能需要首先閱讀一些關于強化學習的背景信息。
一旦擁有了這套SL網絡,接下來要做的就是利用人類選手的判斷數(shù)據(jù)以監(jiān)督式方式對其進行訓練。在此之后,就是由其自我對弈以不斷磨練判斷能力。具體實現(xiàn)方法也很簡單——選擇SL策略網絡,將其保存在一個文件中,而后再復制一份副本。
然后,你可以利用強化學習對其進行微調。如此一來,這套網絡就能夠自我對抗并從結果中學習經驗。
不過這樣的訓練方式其實存在一個問題。
如果其只在練習中對抗同一個對手,且該對手也一直貫穿訓練始終,那么可能無法獲得新的學習經驗。換言之,該網絡所學到的只是如何擊敗對方,而非真正掌握圍棋的奧秘。沒錯,這就是過度擬合問題:你在對抗某一特定對手時表現(xiàn)出色,但卻未必擁有對付各類選手的能力。那么,我們該如何解決這個問題?
答案很簡單,當我們對一套神經網絡進行微調時,其就會變成另一個風格上略有不同的選手。如此一來,我們可以將各個版本的神經網絡保存在一份“選手”列表當中,并確保每位選手的表現(xiàn)都有所區(qū)別。很好,在接下來的神經網絡訓練過程中,我們可以從列表中隨機選擇不同的版本作為對抗對象。它們雖然源自同一套神經網絡,但表現(xiàn)卻略有區(qū)別。而且訓練得越多,選手的版本也就越多。問題就此解決!
在這樣的訓練過程中,惟一指導訓練過程的只有最終目標 ——即贏得比賽。到這里,我們已經不再需要對網絡進行針對性訓練,例如捕捉盤面上的更多位置等。我們只需要為其提供所有可能的合理選項,并下面目標“你必須獲勝”。也正因為如此,強化學習才如此強大——其能夠被用于訓練任何游戲策略或估值網絡,而絕不僅限于圍棋。
到這里,DeepMind的研究人員們測試了這套RL策略網絡的準確性——不使用任何MCTS算法。之前我們曾經提到,這套網絡能夠直接獲取盤面位置并思考專業(yè)棋手的判斷概率。到這里,它已經能夠獨立進行對弈了。結果是,強化學習微調后的網絡戰(zhàn)勝了僅利用人類棋譜進行訓練的監(jiān)督學習網絡。不僅如此,它還能夠戰(zhàn)勝其它強大的圍棋程序。
必須強調的是,即使是在訓練這套強化學習策略網絡之前,監(jiān)督學習策略網絡也已經擁有了超越現(xiàn)有技術的對弈水平——而如今我們又更進一步!更重要的是,我們甚至不需要使用估值網絡這類其它輔助方案。
到這里,我們終于完成了對Lusha的訓練。接下來重新回到Foma這邊,它代表的是最優(yōu)估值函數(shù)v*(s)——即只有兩位選手皆完美執(zhí)行其預期內的落子判斷時,她才能提供在目前盤面局勢下獲得優(yōu)勝的可能性。很明顯,為了訓練神經網絡充當我們的估值函數(shù),這里需要一位完美的對手……遺憾的是,目前我們還沒有這樣一位對手。因此,我們派出了最強大的選手——RL策略網絡。
其會提取當前盤面狀態(tài)state_s,而后輸出您贏得本場對弈的概率。每一項游戲狀態(tài)都將充當數(shù)據(jù)樣本,并以標簽的形式用于注釋游戲結果。因此,在經過 50次落子之后,我們就獲得了50份估值預測樣本。
但這種作法實際上非常幼稚——畢竟我們不可能也不應該將對弈中的全部50次落子全部添加到數(shù)據(jù)集當中。
換言之,我們必須認真選擇訓練數(shù)據(jù)集以避免過度擬合的發(fā)生。由于每次落子都會與一個新位置對應,因此圍棋中的每一次落子都非常相似。如果將所有落子選擇的狀態(tài)都添加到具有相同標簽的訓練數(shù)據(jù)當中,那么其內容將存在大量“重復”,并必然導致過度擬合。為了防止這種情況的發(fā)生,我們只能選擇那些更具代表性的游戲狀態(tài)。舉例來說,我們可以只選擇對弈過程中的五個狀態(tài)——而非全部50個狀態(tài)——添加到訓練數(shù)據(jù)集內。DeepMind從3000萬盤不同對弈過程中提取了3000萬種狀態(tài),從而減少重復數(shù)據(jù)的出現(xiàn)可能性。事實證明,這種作法效果極佳!
現(xiàn)在,我們談談概念: 我們可以通過兩種方法評估盤面位置的價值。第一是選擇最佳估值函數(shù)(即之前訓練完成的函數(shù))。另一種則是使用現(xiàn)有策略(Lusha)直接推導盤面局勢,并預測本次落子帶來的最終結果。很明顯,真正的對弈很少會完全按照我們的計劃推進。但DeepMind仍然比較了這兩種方法的實際效果。此外,大家也可以將這兩種選項混合使用。稍后,我們將了解這一“混合參數(shù)”,請各位記住這個重要概念。
在這里,我們的一套神經網絡會嘗試給出最近似的最優(yōu)估值函數(shù),其效果甚至優(yōu)于經過數(shù)千次模擬而得出的鋪展策略!Foma在這里的表現(xiàn)真的超贊。在另一方面,DeepMind方面也嘗試使用了準確度翻倍但速度極慢的Lusha RL策略,其需要進行成千上萬次模擬以得出結論——最終效果略好于Foma。但也只是略好,而速度卻慢了太多。因此,F(xiàn)oma在這場比拼中勝出,她證明自己擁有著不可替代的價值。
現(xiàn)在,我們已經完成了策略與估值函數(shù)的訓練,接下來可以將其與MCTS結合起來,從而帶來我們的前任世界冠軍、大師中的大量、一個世代的突破、體重268磅的……Alphaaaa GO!
評論
查看更多