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