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