AlphaGo對局李世石兩周年紀:AI算法的秘密

【AlphaGo對局李世石兩周年紀:AI算法的秘密】這篇文章的主角是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的人工智能方案就足以擁有等同于此前最先進的圍棋程序的棋藝水平 。 二者的區別在于, 原有程序使用了此前更為流行的預置游戲算法, 即“蒙特卡洛樹搜索(Mo