這篇文章的主角是AlphaGo,谷歌DeepMind團隊開發(fā)出的圍棋AI。其憑借著2016年擊敗全球頂尖棋手李世石的壯舉而廣受矚目。下面就隨網(wǎng)絡(luò)通信小編一起來了解一下相關(guān)內(nèi)容吧。
圍棋是一種古老的棋類游戲,每一步都存在諸多選擇,因此接下來的落子位置很參議會預(yù)測——要求對弈棋手擁有強大的直覺與抽象思維能力。正因為如此,人們長久以來一直認(rèn)為只有人類擅長下圍棋。大多數(shù)研究人員甚至認(rèn)定,還需要數(shù)十年才會出現(xiàn)真正具備這種思考能力的AI。但如今距離AlphaGo對李世石的比賽已經(jīng)過去了兩年(3月8日至3月15日),而本篇文章正是為了紀(jì)念這個偉大的日子!
不過更可怕的是,AlphaGo并沒有停止自己的前進腳步。8個月之后,它在某圍棋網(wǎng)站上以“Master”為名與全球各地的冠軍棋手進行了60盤職業(yè)對弈,且拿下全勝成績。
這當(dāng)然是人工智能領(lǐng)域的一項巨大成就,并在全球引起了一股新的討論熱潮——我們到底該對人工智能的發(fā)展速度感到興奮,還是擔(dān)心?
今天,我們將以DeepMind在《自然》雜志上發(fā)表的原始研究論文作為基礎(chǔ),逐段對其內(nèi)容進行簡單清晰的解讀,詳細(xì)介紹AlphaGo是什么以及它的工作原理。我也希望大家能夠在閱讀本文之后,不再被媒體頭條拋出的聳人聽聞的標(biāo)題所恐嚇,而真正對關(guān)于人工智能的發(fā)展感到振奮。
當(dāng)然,你不需要掌握圍棋技巧,也同樣可以理解本文的觀點。事實上,我本人只讀過網(wǎng)絡(luò)百科上的一丁點圍棋說明。相反,我其實會使用基礎(chǔ)的國際象棋示例來解釋相關(guān)算法。大家只需要了解雙人棋類游戲的基本規(guī)則即可——每位選手輪流行動,最后將產(chǎn)生一位贏家。除此之外,你不需要了解任何物理學(xué)或高數(shù)知識。
這樣盡可能降低入門門檻,是為了能讓剛剛接觸機器學(xué)習(xí)或者神經(jīng)網(wǎng)絡(luò)的朋友更容易接受。本文也刻意降低了表述復(fù)雜度,也是希望大家能把注意力盡量集中在內(nèi)容本身。
眾所周知,AlphaGo項目的目標(biāo)在于建立一款A(yù)I程序,并保證其能夠與世界頂級人類選手在圍棋領(lǐng)域一較高下。
為了理解圍棋帶來的挑戰(zhàn),我們首先聊聊與之類似的另一種棋類運動——國際象棋。早在上世紀(jì)九十年代初,IBM公司出打造出深藍(lán)計算機,其在國際象棋比賽中擊敗了偉大的世界冠軍加里·卡斯帕羅夫。那么,深藍(lán)是如何做到這一點的?
事實上,深藍(lán)使用了一種非?!氨┝Α钡淖鞣āT谟螒虻拿恳徊?,深藍(lán)都會對所有可能作出的合理棋步作出考量,并沿著每種棋步探索以分析未來的局勢變化。在這樣的前瞻性分析之下,計算結(jié)果很快形成一種千變?nèi)f化的巨大決策樹。在此之后,深藍(lán)會沿著樹狀結(jié)構(gòu)返回原點,觀察哪些棋步最可能帶來積極的結(jié)果。然而,何謂“積極的結(jié)果”?事實上,眾多優(yōu)秀的國際象棋棋手為深藍(lán)精心設(shè)計出了國際象棋策略,旨在幫助其作出更好的決策——舉例來說,是決定保護國王,還是在盤面的其它位置獲得優(yōu)勢?他們針對此類目的構(gòu)建起特定的“評估算法”,從而比較不同盤面位置的優(yōu)勢或劣勢權(quán)重(IBM公司將專家們的象棋策略以硬編碼形式引入該評估函數(shù))。最終,深藍(lán)會據(jù)此選擇出經(jīng)過精心計算的棋步。在接下來的回合中,整個過程再次重復(fù)。
這意味著,深藍(lán)在每一步之前都會考量數(shù)百萬個理論位置。因此,深藍(lán)最令人印象深刻的表現(xiàn)并不在于人工智能軟件層面,而體現(xiàn)在其硬件之上——IBM公司宣稱,深藍(lán)是當(dāng)時市場上最為強大的計算機之一。其每秒能夠計算2億個盤面位置。
現(xiàn)在讓我們回到圍棋方面。圍棋顯然更為開放,因此如果在這里重復(fù)深藍(lán)的戰(zhàn)略,將根本無法獲得理想效果。由于每個棋步都擁有過多可選擇的位置,因此計算機根本無法涵蓋這么多潛在的可能性。舉例來說,在國際象棋的開局當(dāng)中,只有20種可能的下法; 但在圍棋方面,先手選手將擁有361個可能的落子點——而且這種選擇范圍在整個對弈過程中一直非常廣泛。
這就是所謂“巨大搜索空間”。而且在圍棋當(dāng)中,判斷某個特定盤面位置的有利或不利權(quán)重并沒那么容易——在官子階段,雙方甚至還需要再排布一陣才能最終確定誰才是勝利者。但有沒有一種神奇的方法能夠讓計算機在圍棋領(lǐng)域有所建樹?答案是肯定的,深度學(xué)習(xí)能夠完成這項艱巨的任務(wù)!
因此在本次研究當(dāng)中,DeepMind方面利用神經(jīng)網(wǎng)絡(luò)來完成以下兩項任務(wù)。他們訓(xùn)練了一套“策略神經(jīng)網(wǎng)絡(luò)(policy neural network)”以決定哪些才是特定盤面位置當(dāng)中最為明智的選項(這類似于遵循某種直觀策略選擇移動位置)。此外,他們還訓(xùn)練了一套“估值神經(jīng)網(wǎng)絡(luò)(value neural network)”以估算特定盤面布局對選手的有利程度(或者說,下在這個位置對贏得游戲這一目標(biāo)的實際影響)。他們首先使用人類棋譜對這些神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練(也就是最傳統(tǒng)但也非常有效的監(jiān)督式學(xué)習(xí)方法)。經(jīng)歷了這樣的訓(xùn)練,我們的人工智能已經(jīng)可以在一定程度上模仿人類的下棋方式——這時的它,就像一位菜鳥級人類選手。而后,為了進一步訓(xùn)練神經(jīng)網(wǎng)絡(luò),DeepMind方面讓AI與自己進行數(shù)百萬次對弈(也就是“強化學(xué)習(xí)”的部分)。如此一來,憑借著更為充分的練習(xí),AI的棋力得到了極大提升。
憑借這兩套網(wǎng)絡(luò),DeepMind的人工智能方案就足以擁有等同于此前最先進的圍棋程序的棋藝水平。二者的區(qū)別在于,原有程序使用了此前更為流行的預(yù)置游戲算法,即“蒙特卡洛樹搜索(Monte Carlo Tree Search,簡稱MCTS)”,我們將在稍后具體進行介紹。
不過很明顯,到這里我們還沒有談到真正的核心。DeepMind的人工智能方案絕不僅僅依賴于策略與估值網(wǎng)絡(luò)——其并非利用這兩套網(wǎng)絡(luò)來替代蒙特卡洛樹搜索; 相反,其使用神經(jīng)網(wǎng)絡(luò)以進一步提升MCTS算法的成效。實際結(jié)果也確實令人滿意——MCTS的表現(xiàn)達到了超人的高度。這種經(jīng)過改進的MCTS變種正是“AlphaGo”,其成功擊敗了李世石,并成為人工智能發(fā)展歷史上最大的突破之一。
下面讓我們回想一下本文的第一段內(nèi)容。上述提到,深藍(lán)計算機是如何在國際象棋的每一步當(dāng)中構(gòu)建起包含數(shù)以百萬計盤面位置與棋步的決策樹——計算機需要進行模擬、觀察并比較每一種可能的落點——這是一種簡單且非常直接的方法,如果一般的軟件工程師必須要設(shè)計出一種棋類程序,那么他們很可能會選擇類似的解決方案。
但讓我們想想,人類是怎樣下棋的?假設(shè)目前您身處比賽中的特定階段。根據(jù)游戲規(guī)則,你可以作出十幾種不同的選擇——在此處移動棋子或者在那里移動皇后等等。然而,你真的會在腦袋里列出所有能走的棋步,并從這份長長的清單中作出選擇嗎?不不,你會“直觀地”將可行范圍縮小至少數(shù)幾種關(guān)鍵性棋步(這里假定您提出了3種明智的棋步),而后思考如果選擇其中某一種,那么棋盤上的局勢將發(fā)生怎樣的轉(zhuǎn)變。對于其中每一種棋步,你可能需要15到20秒的時間進行考量——但請注意,在這15秒內(nèi),我們并不是在非常精確地推衍接下來的交鋒與變化。事實上,人類往往會在未經(jīng)太多思考的情況下“拋出”一些由直覺引導(dǎo)的選擇結(jié)果(當(dāng)然,優(yōu)秀的選手會比普通選手想得更遠(yuǎn)更深)。之所以這樣做,是因為你的時間有限,而且無法準(zhǔn)確預(yù)測你的對手會勾勒出怎樣的后續(xù)應(yīng)對策略。因此,你只能讓直覺引導(dǎo)自己。我將這一部分思考過程稱為“鋪展”,請大家在后文中注意這一點。
在完成了對幾種明智棋步的“鋪展”之后,你最終決定放棄這種令人頭痛的思考,直接下出你認(rèn)為最科學(xué)的一步。
在此之后,對手也會作出對應(yīng)的回應(yīng)。這一步可能早在你的預(yù)料當(dāng)中,這意味著你對于下一步要做的事情更具信心——換言之,不必耗費太多時間進行后續(xù)“鋪展”?;蛘?,也可能你的對手下出了一手妙招,導(dǎo)致你被迫回防并不得不更謹(jǐn)慎地思考下一步選擇。
游戲就這樣持續(xù)進行,而隨著局勢的推進,你將能夠更輕松地預(yù)測每步棋的結(jié)果,鋪展耗時也將相應(yīng)縮短。
之所以說了這么多,是希望以較為淺顯的方式為大家講述MCTS算法的作用——它通過反復(fù)構(gòu)建棋步與位置“搜索樹”以模擬上述思考過程。但其創(chuàng)新之處在于,MCTS算法不會在每個位置(與深藍(lán)有所不同)都進行潛在棋步推衍; 相反,其會更智能地選擇一小組合理棋步并加以探索。在探索過程中,它會“鋪展”這些棋步引發(fā)的局勢變化,并根據(jù)計算出的結(jié)果對其加以比較。
(好了,只要理解了以上內(nèi)容,本文的閱讀就算基本達標(biāo)。)
現(xiàn)在,讓我們回到論文本身。圍棋是一種“完美信息游戲”。也就是說,從理論層面講,無論您身處這類游戲的哪個階段(即使剛剛走出一、兩步),大家都有可能準(zhǔn)確猜出最終誰輸誰贏(假定兩位選手都會以‘完美’的方式下完整盤)。我不知道是誰提出了這項基本理論,但作為本次研究項目的前提性假設(shè),其確實非常重要。
換句話來說,在游戲狀態(tài)下,我們將可通過一條函數(shù)v*(s)來預(yù)測最終結(jié)果——例如你贏得這盤對弈的概率,區(qū)間為0到1。DeepMind的研究人員
[1] [2] [3]
-
AI
+關(guān)注
關(guān)注
87文章
29862瀏覽量
268154 -
人工智能
+關(guān)注
關(guān)注
1791文章
46698瀏覽量
237195
發(fā)布評論請先 登錄
相關(guān)推薦
評論