首頁>資訊>

不知你有沒有看過最近的兩部影視劇:《後翼棄兵》與《棋魂》,或者是出版更久遠些的《棋魂》原作動漫呢?方正的盤格上,一招一式中暗藏玄機,沉穩縝密的執棋者共同營造著奧妙無窮的哲學空間,而棋局背後,最讓人觸動的或許更是棋手們那股在勝敗之間全力堅守的勁頭。

那麼,你想了解一下AI的棋局嗎?拋開新聞裡充斥的“戰勝人類”威脅論,試試以一種只把AI看作一個棋手的方式。你或許會發現,它其實也一樣,在長久的光陰裡,一步步成長,與對手戰鬥,也挑戰自己。還有點不同的是,它的成長不止屬於自己,而是更像一個象徵,凝結著近百年間人類科學家探索人工智慧技術的智慧與成績,講述著人類挑戰智慧技術更高峰的熱血堅持。

第一階段 初露頭角

挑戰任務:西洋跳棋

西洋跳棋是一種在8x8格的兩色相間的棋盤上進行的技巧遊戲,以吃掉或堵住對方所有棋子去路為勝利,棋子每次只能向斜對角方向移動,但如果斜對角有敵方棋子並且可以跳過去,那麼就把敵方這個棋子吃掉。

大戰回顧:

成功秘訣:自我對弈

在和羅伯特·雷尼的比賽之後,尼雷表示,計算機走得極其出色,甚至沒有一步失誤。這是他自1954年以來8年中遇到的第一個擊敗他的“對手”。那麼,這次跳棋盤上的勝利,秘訣在哪裡呢?

透過自我對弈學習評價函式是西洋跳棋AI程式的核心技術,自我對弈學習評價函式的基本原理是利用兩個副本進行對弈,學習線性評價函式每個特徵的權重,其中一個副本使用固定的評價函式來學習特徵的權重,另一個副本則是透過與使用極小極大(minimax search)演算法作對比來學習特徵的權重。事實上,後來的AlphaGo圍棋AI程式以及深度學習領域的生成式對抗網路(GAN)都採用了類似的思想。

第二階段:一場持續半世紀的挑戰

挑戰任務:國際象棋

國際象棋起源於亞洲,後由阿拉伯人傳入歐洲,成為國際通行棋種,也是一項受到廣泛喜愛的智力競技運動。

國際象棋棋盤由橫、縱各8格、顏色一深一淺交錯排列的64個小方格組成,棋子共32個,分為黑、白兩方,每方各16個。和8x8的西洋跳棋相比,國際象棋的狀態複雜度(指從初始局面出發,產生的所有合法局面的總和)從1021上升到1046,博弈樹複雜度(指從初始局面開始,其最小搜尋樹的所有葉子節點的總和)也從1031上升到10123。人工智慧研究者對國際象棋的挑戰持續了半個世紀。

大戰回顧:

成功秘訣:

● 成功秘訣之一:國際象棋加速晶片

“深藍”計算機在硬體上將透過計算機處理器與象棋加速晶片相結合,採用混合決策的方法,即在自動處理器上執行運算分解任務,交給國際象棋加速晶片並行處理複雜的棋步自動推理,然後將推理得到的可能行棋方案結果返回通用處理器,最後由通用處理器決策出最終的行棋方案。97型“深藍”與96型相比,運算速度差不多提高了兩倍,國際象棋加速晶片的升級功不可沒。升級後的國際象棋加速晶片能夠從棋局中抽取更多的特徵,並在有限的時間內計算出當前盤面往後12步甚至20步的行棋方案,從而讓“深藍”更準確地評估盤面整體趨勢。

● 成功秘訣之二:知識規則引擎

“深藍”在軟體設計上採用了超大規模知識庫結合最佳化搜尋的方法。一方面,“深藍”儲存了國際象棋100多年來70萬份國際特級大師的棋譜,能利用知識庫在開局和殘局階段節省處理實踐並得出更合理的行棋方案;另一方面,“深藍”採用Alpha-Beta剪枝搜尋演算法和基於規則的方法對棋局進行評價,透過縮小搜尋空間的上界和下界提高搜尋效率,同時可根據旗子的重要程度、旗子的位置、棋子對的關係等特徵對棋局進行更有效的評價。

規則引擎是一種遷入在應用程式中的元件,能夠實現將業務決策從應用程式程式碼中分離出來,其核心是獲取knowledge(知識)。此外,規則引擎使用產生式規則“IF<conditions>THEN<actions>RULE”表達邏輯將知識應用到特定的資料上。

第三階段 觸控“棋魂”?

挑戰任務:圍棋

8x8格國際象棋的狀態複雜度為1046,博弈樹複雜度為10123。到了19x19格的圍棋,其狀態複雜度已上升到10172,博弈樹複雜度則達到驚人的10360,因此被視為人類在棋類人機對抗中最後的堡壘。

破局出現在2016年,Deep Mind公司開發出的AlphaGo在沒有任何讓子的情況下,以5:0完勝歐洲圍棋冠軍、職業二段選手樊麾。並在接下來的一系列博弈中勢如破竹。而後,AlphaGo Zero作了更進一步的升級和改進,將策略網路和價值網路整合在一起,使用純粹的深度強化學習方法進行端到端的自我對弈學習。

大戰回顧:

成功秘訣:

● 成功秘訣之一:蒙特卡羅樹搜尋

在機器博弈中,每步行棋方案的運算時間、堆疊空間都是有限的,只能給出區域性最優解,因此,2006年提出的蒙特卡羅樹搜尋就成為隨機搜尋演算法的首選。蒙特卡羅樹搜尋是一種用於某些決策過程的啟發式搜尋演算法,它被廣泛用於科學和工程研究的演算法模擬中,是現行圍棋程式的核心元件。有專家曾通俗地解釋什麼是蒙特卡羅樹搜尋:假如籃子裡有1000個蘋果,讓你每次閉著眼睛找一個最大的,不限制挑選次數。於是,你可以閉著眼隨機拿一個,然後下一次再隨機拿一個與第一個比,留下大的,迴圈往復,拿的次數越多,挑出最大蘋果的可能性也就越大,但除非你把1000個蘋果都挑一遍,否則你無法讓肯定最終挑出來的就是最大的一個。這就是蒙特卡羅樹搜尋。它給予了智慧體推理的能力,智慧體不僅可以根據過去的經驗採取更好的策略,也可以根據對未來的推測幫助自己選擇合適的方案。

● 成功秘訣之二:策略網路與價值網路

策略網路是一個模型,它使用深度學習、監督學習、增強學習等方法來預測下一步棋“大概”該走哪裡。策略網路的輸入是當前的棋局,輸出的是棋子最可能的步法,棋盤上的每一個空位都對應一個機率。AlphaGo面對一個局面時下一步大概怎麼走已經瞭然於胸,這是因為它已經從KGS圍棋伺服器上向職業選手學習了3000萬個局面的下一步,而且學習成果非常驚人;不僅記住了某個局面的下一步怎麼走,還記住了相似局面的下一步步法,所以當AlphaGo學習的局面足夠多時,就掌握了所有不同局面的下法。這種學習叫做“監督學習(supervised learning)”對於AlphaGo而言,它所學習的職業棋手的棋譜就是它的老師。

價值網路也是一個監督的強化學習的模型,多次線下自我對弈學習的結果為價值網路提供監督資訊。它的模型結構與策略網路類似,但學習目標不同,策略網路的目標是當前局面的下一步棋如何走,而價值網路學習的目標是走這一步後贏的機率,主要用於線上下下棋時得到平均的形勢判斷。

● 成功秘訣之三:強化學習

強化學習是機器學習的一個重要分支。有監督學習的目標是從一個已經標記的訓練集中進行學習,無監督學習的目標是從一堆未標記樣本中發現隱藏的結構,而強化學習的目標則是在當前行動和未來狀態中獲得最大回報。在邊獲得樣例邊學習的過程中,不斷迭代“在當前模型的情況下,如何選擇下一步的行動才對完善當前的模型最有利”的過程直到模型收斂。

總體來說,AlphaGo在以下四個方面取得重要突破:

01自學習能力

AlphaGo的對弈知識是透過深度學習方法自己掌握的,而不是像“深藍”那樣編在程式裡,它是透過大量棋譜和自我對弈完成的。這種深度學習能力,使得AlphaGo能不斷學習進化,產生了很強的適應性,而適應性造就了複雜性,複雜自適應性又是智慧演化最普遍的途徑。

02捕捉經驗能力

找到了一種捕捉圍棋高手的經驗,即“棋感直覺”的方法。所謂棋感,就是透過訓練得到的直覺,“只可意會,不可言傳”。AlphaGo透過深度學習產生的策略網路(走棋網路),在對抗過程中可以實現區域性步法的最佳化;透過增強學習方法生成的估值網路,實現對全域性不間斷的評估,用於判定每一步棋對全域性棋勝負的影響。此外,還可以透過快速走子演算法和蒙特卡羅樹搜尋機制,加快走棋速度,實現對弈質量和速度保證的合理折中。這些技術使得計算機初步具備了既可以考慮區域性得失,又可以考慮全域性整體勝負的能力。而這種全域性性的“直覺”平衡能力,正是過去人們認為人類獨有、計算機難以做到的。

03發現創新能力

發現了人類沒有的圍棋步法,初步展示了機器發現“新事物”的“創造性”。從觀戰的超一流棋手討論和反應可以看出,AlphaGo的下發有些超出了他們的預料,但事後評估又認為是好棋。這意味著AlphaGo的增強學習演算法,甚至可以從大資料中發現人類千百年來還未發現的規律和知識,為人類擴充套件自己的知識體系開闢了新的認知通道。也難怪會有人感嘆AlphaGo難道是《棋魂》中的SAI轉世?

04方法具有通用性

這與很多其他博弈程式非常不同,通用性意味著對解決其他問題極具參考價值,AlphaGo運用的方法,實際上是一種解決複雜決策問題的通用框架,而不僅是圍棋領域的獨門秘籍。自學習的能力,使得計算機有了進化的可能,通用性則使其不再侷限於圍棋領域。

從國際跳棋到堪稱是世界上最複雜棋盤遊戲的圍棋,AI棋手不斷突破著技術的上限。棋盤競賽的喧囂背後,是機器博弈技術的進步和發展歷程。

最後,和你分享我們在2001年的《棋魂》動畫版中,發現的這樣一段對話:

——“神之一手會從這裡面(電腦)誕生”

——“據說電腦下圍棋要超過人類還要花一百年吶”

✦本文摘編自《人工智慧與人機博弈》

13
最新評論
  • 3本作者大大最好的一本小說,劇情讓人拍手叫好,連看三遍也不膩
  • 借錢還錢,天經地義。還錢也是在還自己的良心