但讓我們想想,人類是怎樣下棋的?假設目前您身處比賽中的特定階段。根據游戲規則,你可以作出十幾種不同的選擇——在此處移動棋子或者在那里移動皇后等等。然而,你真的會在腦袋里列出所有能走的棋步,并從這份長長的清單中作出選擇嗎?不不,你會“直觀地”將可行范圍縮小至少數幾種關鍵性棋步(這里假定您提出了3種明智的棋步),而后思考如果選擇其中某一種,那么棋盤上的局勢將發生怎樣的轉變。對于其中每一種棋步,你可能需要15到20秒的時間進行考量——但請注意,在這15秒內,我們并不是在非常精確地推衍接下來的交鋒與變化。事實上,人類往往會在未經太多思考的情況下“拋出”一些由直覺引導的選擇結果(當然,優秀的選手會比普通選手想得更遠更深)。之所以這樣做,是因為你的時間有限,而且無法準確預測你的對手會勾勒出怎樣的后續應對策略。因此,你只能讓直覺引導自己。我將這一部分思考過程稱為“鋪展”,請大家在后文中注意這一點。
在完成了對幾種明智棋步的“鋪展”之后,你最終決定放棄這種令人頭痛的思考,直接下出你認為最科學的一步。
在此之后,對手也會作出對應的回應。這一步可能早在你的預料當中,這意味著你對于下一步要做的事情更具信心——換言之,不必耗費太多時間進行后續“鋪展”。或者,也可能你的對手下出了一手妙招,導致你被迫回防并不得不更謹慎地思考下一步選擇。
游戲就這樣持續進行,而隨著局勢的推進,你將能夠更輕松地預測每步棋的結果,鋪展耗時也將相應縮短。
之所以說了這么多,是希望以較為淺顯的方式為大家講述MCTS算法的作用——它通過反復構建棋步與位置“搜索樹”以模擬上述思考過程。但其創新之處在于,MCTS算法不會在每個位置(與深藍有所不同)都進行潛在棋步推衍; 相反,其會更智能地選擇一小組合理棋步并加以探索。在探索過程中,它會“鋪展”這些棋步引發的局勢變化,并根據計算出的結果對其加以比較。
(好了,只要理解了以上內容,本文的閱讀就算基本達標。)
現在,讓我們回到論文本身。圍棋是一種“完美信息游戲”。也就是說,從理論層面講,無論您身處這類游戲的哪個階段(即使剛剛走出一、兩步),大家都有可能準確猜出最終誰輸誰贏(假定兩位選手都會以‘完美’的方式下完整盤)。我不知道是誰提出了這項基本理論,但作為本次研究項目的前提性假設,其確實非常重要。
換句話來說,在游戲狀態下,我們將可通過一條函數v*(s)來預測最終結果——例如你贏得這盤對弈的概率,區間為0到1。DeepMind的研究人員將其稱為“最優估值函數”。由于某些盤面位置比其它盤面位置更有可能帶來獲勝結果,因此前者可能比其它位置擁有“更高估值”。讓我再強調一次,估值=贏得比賽的0到1間概率值。
但先別急——假設一位名叫Foma的女孩坐在您的身邊,在每下一步棋時,她都會告訴您這次決定會導致您勝利還是失敗。“你贏了……你辦理了……不,還是辦理了……”我認為這樣的提示對您的棋步選擇并沒有多大幫助,而且非常煩人。相反,真正能夠幫得上忙的其實應該是勾勒出所有可能的棋步樹,以及這些棋步將會引發的狀態——而后,Foma會告訴你在整個樹狀結構中,哪些狀態會將你推向勝利,而哪些會招致失敗。突然之間,Foma就成了您的完美伙伴——而非討厭的插嘴者。在這里,Foma將作為您的最優估值函數v*(s)。此前,人們一直認為像圍棋這樣的游戲,不可能擁有Foma這樣的準確估值函數——因為其中存在著太多不確定性。
然而,即使您真的擁有了Foma,她對所有可能盤面位置的估算在現實對弈當中恐怕也無法奏效。因為在國際象棋或圍棋這樣的游戲當中,正如之前所提到,即使是想要預測七到八步之后的整體局勢,過多的可能性選擇也會令Foma需要耗費大量時間才能得出分析結果。
也就是說,單憑Foma還遠遠不夠。大家還需要進一步縮小明智棋步的具體范圍,并據此推衍接下來的局勢走向。那么我們的程序該如何做到這一點?Lusha在這里閃亮登場。Lusha是一位擁有相當技巧的國際象棋選手加熱心人,她曾花費數十年時間觀看國際象棋大師賽。她可以觀看你的盤面位置,快速思考您所能做出的全部合理選擇,并告訴你專業選手作出各種判斷的可能性。因此,如果您在某一特定時間點上擁有50種可能的棋步選項,Lusha會告訴你職業棋手選擇每種選項的具體概率。當然,其中一些明智的棋步會擁有更高的概率,而其它無意義的棋步則概率極低。她就是你的策略函數,p(as)。對于給定狀態s,她能夠為您提供專業選手可能作出的全部選擇的對應概率。
接下來,你可以在Lusha的幫助下尋找更為合理的棋步選項,而Foma則會告訴我們這些棋步對對弈結果的實際影響。在這種情況下,大家可以選擇由Foma與Lusha協商給出落子建議,或者也可以先由Lusha提供建議,再由Foma對結果作出評估。接下來,挑選其中一些選項進行后續影響分析,再由Foma與Lusha繼續進行預測指導——通過這種方式,我們將能夠更為高效地掌握盤面局勢走向。而這,正是所謂“減少搜索空間”的實際意義所在。利用估值函數(Foma)預測結果,利用策略函數(Lusha)提供棋藝層面的概率取舍以縮小值得進一步探索的落子范圍。這套體系就是所謂“蒙特卡洛鋪展(Monte Carlo rollouts)”。接下來,當重新回到當前棋步時,你將能夠得到各種選項所對應的平均估值結論,并據此找到最適合的落子位置。不過到這里,其在圍棋水平方面仍然表現不佳——因為這兩種函數的實際指導能力還比較孱弱。
不過沒關系。
首先進行具體解釋。在MCTS當中,起步階段的Foma與Lusha的功能還不夠精熟。但對弈數量越多,二者在預測可靠結果與落子位置方面就越強大。論文指出,“縮小高可能性棋步的具體范圍”其實是種較為復雜的表達,“Lusha實際上是通過提供專業棋手的落子概率幫助縮小需要考量的選項。以往的工作主要利用這種技術在策略函數較為簡單的情況下,提供強大且成熟的AI選手解決方案。
是的,卷積神經網絡非常適合圖像處理類任務。而且由于神經網絡需要特定輸入內容并給出對應的輸出結果,所以其在本質上其實也相當于一條函數。這意味著大家可以利用神經網絡來充當一種高度復雜的函數。從這個思路出發,大家可以將其傳遞一份盤面位置圖像,并由神經網絡自行判斷當前局勢。如此一來,創建出的神經網絡將擁有非常準確的策略與估值能力。
下面,我們將討論Foma與Luha的具體訓練方式。為了訓練策略網絡(負責預測專業棋手的落子位置判斷),我們只需要將人類對弈棋譜作為素材,并利用其進行傳統的監督式學習即可。