1
本文作者: 亞萌 | 2017-01-10 22:06 |
在國外的學(xué)術(shù)圈里,有一份論文火了。論文里進行的研究表明,人類歷史上第一次,AI在德州撲克游戲上贏得了人類職業(yè)玩家。而這份論文的突破性意義在于:AI在非完整信息的博弈游戲中,贏得人類職業(yè)對手。
這篇論文的名字是《DeepStack:無限下注撲克里的專家級人工智能》(DeepStack: Expert-Level Artificial Intelligence in No-Limit Poker),1月6號提交到了ArXiv上。
論文作者是來自加拿大Alberta大學(xué)、捷克Charles大學(xué)、布拉格捷克理工大學(xué)的研究人員。而論文題目里的DeepStack,是一種新型的算法名稱,論文里說明到“DeepStack 是一種通用算法,可用于一大類非完整信息的序列博弈”。在一項涉及到數(shù)十位參與者和4.4萬手撲克的研究中,DeepStack 成為了世界上第一個在“一對一無限注德州撲克”上擊敗了職業(yè)撲克玩家的計算機程序。
德州撲克的英文名稱是“Texas Hold'em”,而“一對一無限注德州撲克”(Heads-up no-limit,簡稱 HUNL)的意思,就是有2個玩家且不限下注籌碼。這篇論文里的自然就是計算機和職業(yè)玩家挨個對局。
雖然是撲克,但跟斗地主還是很不一樣的,它是“賭場”十分受歡迎的項目。這里祭出視頻,幫大家理解一下德州撲克的規(guī)則和玩法。
從上面的視頻中,我們大致能了解一場德州撲克會有兩類信息:玩家每人手里分到2張底牌的“私有信息”和桌子上公共牌的“公開信息”。玩家用自己的2張底牌和5張公共牌結(jié)合在一起,選出5張牌,不論手中的牌使用幾張(甚至可以不用手中的底牌),湊成最大的成牌,跟其他玩家比大小。按照“Hand Rank”決定最后的勝者。
在中國玩德州撲克的名人,一個是汪峰老師,另一個就是李開復(fù)老師。在知乎上“撲克有哪些技巧、經(jīng)驗或者原則?”的提問下,排名第一的,就是李開復(fù)老師的答案,他尤其提到玩好詐唬(Bluffing,高手慣用技巧)的關(guān)鍵在于學(xué)好統(tǒng)計。
德州撲克已經(jīng)成為十分流行的人工智能研究測試地,每一個撲克玩家手里握著的底牌“私有信息”,是其它玩家看不到的,所以被稱為是“非完整信息”(Imperfect information)的博弈。這跟圍棋有很大不同,圍棋是完整信息公開的博弈,玩家們可以看到棋盤上的每個旗子,考慮所有落子的可能性。所以德州撲克對于人工智能來說,更加具有挑戰(zhàn)性。
《DeepStack》這篇論文的通信作者 Michael Bowling曾經(jīng)在2015年初接受《New Scientist》采訪時說道:“德州撲克最有趣的地方,就是你無法獲得完整的信息”。
而卡耐基梅隆大學(xué)(CMU)Tuomas Sandholm教授也說道:“撲克已經(jīng)成為在非完整信息情況下,衡量(計算機)智能水平的標(biāo)準(zhǔn)......而它可以看做是一種超越圖靈測試的存在。”
不知對手“底牌”的博弈,即非完整信息博弈要求更復(fù)雜的推理。
計算機正確決定,依賴于對方“底牌信息”情況下的概率分布,這種“底牌信息”可以通過對手過去的行為顯露出來。比如有時玩家采取“詐?!保˙luffing),對手有時手里并沒有強牌,但還是作出全額下注志在必得的行為,計算機這時要根據(jù)對方過去的博弈表現(xiàn),來判斷對手有強牌的概率。
相應(yīng)的,對手也會推斷我方的底牌信息,所以這里就是一個“遞歸推理”(recursive reasoning),一個玩家無法輕易推理博弈狀況。
有趣的是,這兩位教授都在領(lǐng)導(dǎo)自己的團隊攻克這個新型圖靈測試,一位在加拿大Alberta大學(xué),一位在美國CMU大學(xué)。
幾天前,CMU已經(jīng)發(fā)出預(yù)告:由Tuomas Sandholm教授領(lǐng)導(dǎo)研發(fā)出的Libratus人工智能系統(tǒng),將于當(dāng)?shù)貢r間1月11日,在賓夕法尼亞州匹茲堡的 Rivers 賭場,與四個頂級職業(yè)玩家玩12萬手的HUNL,并角逐20萬美元的獎金。早在2015年,Libratus的前身Claudico與人類玩家首次對戰(zhàn),在8萬手的對決中完敗,這次算是CMU的卷土重來。
但是我們已經(jīng)知道了結(jié)果,Alberta趕在CMU之前,把就論文發(fā)出來了。學(xué)術(shù)圈人士紛紛表達贊美,稱DeepStack具有里程碑意義(當(dāng)然這份論文還未通過同行審議階段),然而跟CMU Libratus提前好幾天的預(yù)熱盛況相比,DeepStack并沒有得到等量的媒體待遇,也引發(fā)一些人的不滿。
CMU走的是當(dāng)年AlphaGo的路線,在華麗的賭場搞一場秀,與人類頂尖玩家對戰(zhàn),還有20萬美金的噱頭。所以這份DeepStack論文雖然比CMU更早取得突破,但陣仗不如后者大,媒體對其忽視了,也在情理。
總之一句話,Alberta搶了先,CMU搶了熱鬧(學(xué)術(shù)界的競爭也是異常激烈的)。
DeepStack總共與33位人類選手進行了4.4萬手的較量,分別在2016年11月7日和12月12日之間于線上舉行對局。最終獲勝的前三位選手,分別有5000、2500和1250加元的獎勵。以下是對局結(jié)果。結(jié)果顯示,DeepStack的平均贏率為492 mbb/g(一般人類玩家到50 mbb/g就被認為擁有較大優(yōu)勢,750mbb/g 就是對手每局都棄牌的贏率)。
前面我們提到,一場撲克的信息可以分為“私有”和“公開”,放在桌子中間的5張公開牌形成一種動態(tài)的“公開狀態(tài)”。游戲中的公開狀態(tài)的可能序列構(gòu)成一個公開樹(Public tree),其中每一個公開狀態(tài)都有一個相關(guān)的公開子樹(Public subtree)。
上圖是HUNL 中公開樹的一部分。紅色和藍色線條表示玩家動作,綠色線條表示公開的公共牌。圓形節(jié)點表示游戲結(jié)束。
這張圖是DeepStack整體架構(gòu),分為(a)(b)(c)三個部分。在(a)中,DeepStack在每一個公開狀態(tài)里, 都要重新計算它需要的動作,其中子樹值(Subtree value)會通過一個訓(xùn)練好的深度神經(jīng)網(wǎng)絡(luò) Neural net(b)來計算,而訓(xùn)練Neural net的樣本就是(c)。
總的來說,DeepStack結(jié)合了遞歸推理(Recursive reasoning)來處理信息不對稱性,還結(jié)合了分解(Decomposition)集中計算到相關(guān)決策上,并形成了一種關(guān)于任意牌的直覺(Intuition),這種直覺可以使用深度學(xué)習(xí)進行自我玩牌而自動學(xué)習(xí)到。
而對于DeepStack和1月11日的CMU的Libratus賭場大戰(zhàn),雷鋒網(wǎng)將跟蹤深入報道。
PS:關(guān)注雷鋒網(wǎng)公眾號(雷鋒網(wǎng))
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。