袁斯來
在牌桌上,德州撲克老手許朝軍很少遇到像“冷撲大師”這樣的對(duì)手:保守地打了很多手牌后,沒有任何預(yù)兆地,“他”忽然“原地起跳”,開始超額下注,或者干脆all-in(押上全部賭注)—沒有情緒、沒有動(dòng)作、沒有語言,出牌沒有任何規(guī)律可循。
“冷撲大師”英文名為L(zhǎng)ibratus,在拉丁語中,這是“平衡及有力”的意思。這個(gè)德州撲克的人工智能(AI)程序由卡內(nèi)基-梅隆大學(xué)的托馬斯·桑德霍姆教授和博士生諾姆·布朗開發(fā)。
而曾經(jīng)創(chuàng)立了輕博客網(wǎng)站點(diǎn)點(diǎn)網(wǎng)的許朝軍,在中國(guó)的德州撲克圈里被稱為“校長(zhǎng)”,這一稱呼可看作對(duì)其牌技的一種肯定。在4月10日結(jié)束的“冷撲大師vs.中國(guó)龍之隊(duì)”德州撲克人機(jī)大戰(zhàn)表演賽中,他也是6名“龍之隊(duì)”成員之一,比賽第一天就和“冷撲大師”交過手了。
然而最終,在為期5天的比賽中,人類一共輸了79.2327萬分。9個(gè)單場(chǎng)比賽,人類牌手皆未取勝。
德州撲克的規(guī)則并不復(fù)雜,每個(gè)人2張底牌,5張公共牌,最后玩家用手中底牌加上3張公共牌比大小,最大的是皇家同花順,即花色相同的10、J、Q、K、A,最小的是沒有對(duì)子、同花和順子的“高牌”。緊挨著發(fā)牌者順時(shí)針的第一二個(gè)玩家會(huì)被強(qiáng)制下注,分別為小盲注和大盲注,大盲注金額是小盲注的兩倍,后者也是牌桌上的最小賭注。這次“冷撲大師”對(duì)戰(zhàn)“龍之隊(duì)”的大盲注為100分,小盲注為50分,每個(gè)選手初始分為2萬分。
“冷撲大師”和“龍之隊(duì)”參與的是“一對(duì)一無限注德州撲克”,即兩人對(duì)戰(zhàn)且不限下注籌碼。這種玩法由于人數(shù)少,每個(gè)人即使底牌并不理想也能采取激進(jìn)的措施,因?yàn)閷?duì)方手中有好牌的機(jī)會(huì)同樣很小。相比多人對(duì)戰(zhàn),一對(duì)一的復(fù)雜度雖然有所降低,但對(duì)牌手的心理素質(zhì)要求更高,同時(shí)打法會(huì)更加難以捉摸。
“一對(duì)一無限注德州撲克”的規(guī)則似乎能同時(shí)檢驗(yàn)人和機(jī)器優(yōu)劣勢(shì)。德州撲克之所以精彩,原因就在于除了算牌的技巧,牌手的心理素質(zhì)和性格也對(duì)比賽影響巨大。一個(gè)性格毛躁的人即使手中底牌并不理想,也可能選擇“all-in”,把籌碼全押進(jìn)去“詐唬”,對(duì)手如果是個(gè)保守的人可能會(huì)選擇棄牌認(rèn)輸。但一旦被識(shí)破,“詐唬”的人也可能會(huì)直接被“爆倉(cāng)”出局。
因此德州撲克高手往往是“面癱殺手”,ta的表情或動(dòng)作很難讓人猜到底牌狀況。一個(gè)未經(jīng)證實(shí)的說法是,有些牌手甚至?xí)魃洗罂谡稚蠄?chǎng)。從這點(diǎn)上看,“冷撲大師”就像人類面對(duì)著的一個(gè)完全的“黑箱”。
許朝軍說,自己雖然打了多年的德州撲克,但仍然會(huì)受情緒影響。尤其是當(dāng)“冷撲大師”的“教練”桑德霍姆在選手身后觀戰(zhàn)時(shí),許朝軍的打法就會(huì)變得激進(jìn),他會(huì)跟著“冷撲大師”一輪輪加注,最終往往輸?shù)襞凭?。“人類在打牌時(shí)會(huì)有馬腳,而且隨著時(shí)間推移,體力和腦力都會(huì)跟不上,但‘冷撲大師完全不會(huì)。它的確是一個(gè)非常強(qiáng)悍的對(duì)手?!痹S朝軍對(duì)《第一財(cái)經(jīng)周刊》說。
德州撲克對(duì)AI也提出了新的挑戰(zhàn)。相比圍棋,德州撲克更加難以掌握,原因就在于“非完整信息博弈”。
在圍棋中,雙方都能夠看到彼此的走法,棋手只需要分析擺在明面上的信息,再想出策略就可以應(yīng)對(duì)。但在不了解對(duì)方底牌的“非完整信息博弈”中,德州撲克的選手唯一知道的是自己的底牌,而對(duì)方的底牌、每一次公共牌開牌情況、對(duì)手的反應(yīng)都是未知的,不同要素組合會(huì)引發(fā)天量的計(jì)算結(jié)果。雖然每一局德州撲克的決策點(diǎn)是10的160次方,少于圍棋的10的170次方,但由于信息不透明,人工智能系統(tǒng)必須應(yīng)對(duì)隱藏的信息,實(shí)際上增加了計(jì)算的數(shù)量和難度。
應(yīng)對(duì)這種比賽,目前比較成功的德州撲克AI系統(tǒng)有兩個(gè),除了“冷撲大師”,另一個(gè)是阿爾伯塔大學(xué)、捷克理工大學(xué)和布拉格查理大學(xué)研究者開發(fā)的Deep Stack,主要采用深度學(xué)習(xí)技術(shù)。Google的圍棋AI AlphaGo也是基于深度算法。Deep Stack曾在去年12月和33個(gè)人類選手4.4萬手牌的比賽中獲勝。
“冷撲大師”自我學(xué)習(xí)的核心理論卻是基于古老的博弈論,它的英文是Game Theory,本來就來源于撲克牌等游戲?!吧疃人惴ㄔ谶@樣的比賽中最大的問題是,它缺少確定性?!鄙5禄裟穼?duì)《第一財(cái)經(jīng)周刊》說。
所謂博弈行為,是指人每次決策都需要評(píng)估對(duì)方下一步的策略,從而思考自己的應(yīng)對(duì),并力圖選取對(duì)自己最為有利或最為合理的方案。
而“冷撲大師”采用的算法更多是一種增強(qiáng)學(xué)習(xí)—它同樣是機(jī)器學(xué)習(xí)技術(shù)的一種。這種算法的靈感來自于人類學(xué)習(xí)過程:在學(xué)習(xí)新事物時(shí),人類會(huì)經(jīng)歷一個(gè)不斷試錯(cuò)的過程,即人類在學(xué)習(xí)過程中會(huì)根據(jù)環(huán)境給予的獎(jiǎng)勵(lì)或懲罰,逐步形成對(duì)刺激的預(yù)期,最終形成最大利益的習(xí)慣性行為—就像孩子通過被灼痛來認(rèn)識(shí)火苗,從而懂得回避,但一只飛蛾卻會(huì)永遠(yuǎn)“不長(zhǎng)記性”地?fù)湎蚧鹈纭?/p>
類似于人類面對(duì)未知環(huán)境不斷“試錯(cuò)”的過程,桑德霍姆和布朗訓(xùn)練“冷撲大師”了解游戲的規(guī)則,但并沒有指導(dǎo)它如何玩游戲?!袄鋼浯髱煛睍?huì)自己與自己“左右互搏”,在多次循環(huán)練習(xí)中,它最終形成了自己的策略。整個(gè)過程完全沒有人為參與,所以,它的玩法跟人的玩法會(huì)非常不同。
撲克牌最終需要達(dá)到的是“納什均衡”狀態(tài),又稱為“非合作博弈均衡”。在德州撲克中,牌手能夠知道的只有底牌和已經(jīng)放在桌上的公共牌,但要猜測(cè)對(duì)手可能做出的決策,再選擇自己的最優(yōu)策略,使自己利益最大化。在某種情況下,無論是牌手還是對(duì)手都不能通過單方面改變決定而增加自己的收益,就達(dá)到了納什均衡的狀態(tài)。
根據(jù)博弈論,一對(duì)一的德州撲克比賽一定存在納什均衡點(diǎn),每一局比賽,“冷撲大師”要做的,就是盡可能接近這個(gè)均衡點(diǎn),即“對(duì)手即使知道‘冷撲大師下一步打法,也無法讓自己的利益最大化”。
為此桑德霍姆的團(tuán)隊(duì)首先開發(fā)了一種名為“虛擬遺憾最小化”(簡(jiǎn)稱CFR)的算法,這是“冷撲大師”算法中的第一個(gè)模塊。
遺憾值即事后最優(yōu)選擇的收益減去當(dāng)時(shí)選擇的收益,遺憾值最小化即采用隨機(jī)策略,每局賽后分析出哪一步悔恨值最高,以后就少走這一步。再經(jīng)過多次迭代計(jì)算后,“冷撲大師”就能掌握博弈樹中每個(gè)信息集的遺憾值,保證下一刻能走出最不會(huì)后悔的一步。
在比賽前,“冷撲大師”已多次接受如何接近納什均衡點(diǎn)的訓(xùn)練。在實(shí)際操作中,它還會(huì)根據(jù)比賽的具體情況,并通過學(xué)習(xí)對(duì)手的錯(cuò)誤,不斷修正自己的策略。這項(xiàng)技能則源于“冷撲大師”算法中的第二個(gè)模塊—“安全嵌套式殘局解算器”。殘局解算器會(huì)在殘局時(shí)實(shí)時(shí)評(píng)估場(chǎng)上的情況,以判斷CRM算法運(yùn)行時(shí),納什均衡是否符合情況。
這個(gè)殘局解算器能輔助第一個(gè)模塊的算法。由于只用實(shí)時(shí)分析殘局情況,不需要分析所有的可能性,所以能提高計(jì)算效率。它能讓“冷撲大師”在殘局中利用對(duì)方的錯(cuò)誤來完善自己的戰(zhàn)略,最終找到平衡點(diǎn)。
實(shí)際上,Deep Stack的深度學(xué)習(xí)也包含了這種算法。不過與Deep Stack不同,“冷撲大師”沒有選擇以評(píng)估函數(shù)作為中介分析殘局,而是直接從對(duì)手處獲取信息,通過對(duì)方的失敗來完善自己的戰(zhàn)略,這是一個(gè)實(shí)時(shí)動(dòng)態(tài)的過程。
和中國(guó)龍之隊(duì)比賽之前,“冷撲大師”曾與美國(guó)隊(duì)對(duì)戰(zhàn),當(dāng)時(shí)參賽的一位選手Dong Kim就表示,冷撲大師好像知道他的底牌。在今年1月于美國(guó)匹茲堡舉行的這場(chǎng)比賽中,“冷撲大師”與4個(gè)職業(yè)玩家打了12萬手牌,最后贏走了接近總數(shù)的籌碼。
“它會(huì)根據(jù)對(duì)手或強(qiáng)悍或保守的牌風(fēng)調(diào)整策略,如果對(duì)手強(qiáng)勢(shì),‘冷撲大師沒有好牌的時(shí)候往往會(huì)fold(棄牌),但一旦對(duì)手弱勢(shì),‘冷撲大師往往會(huì)在河牌階段(最后一張公共牌被稱為“河牌”;河牌圈即是攤牌前最后一次下注圈加注),甚至all-in?!痹S朝軍說。
“冷撲大師”甚至還學(xué)會(huì)了似乎人類才比較擅長(zhǎng)的“詐?!保╞luff)技巧。德州撲克比賽中,這是最常用的一種戰(zhàn)術(shù),即使沒有好牌,也能虛張聲勢(shì),通過加大押注甚至all-in的方法讓對(duì)手棄牌。
人類牌手在詐唬時(shí),除了分析對(duì)手的牌力,還會(huì)察言觀色,如果對(duì)手是個(gè)保守的人,或流露出緊張的情緒,詐唬一般能收到成效。但“冷撲大師”的詐唬純粹基于計(jì)算—只要達(dá)到納什均衡的狀態(tài),冷撲大師就會(huì)加注?!斑@是算法自然而然的結(jié)果,并非事前程序的設(shè)定。”桑德海姆說。
這也是“冷撲大師”風(fēng)格有時(shí)顯得不合常理的原因?!啊鋼浯髱熡?0%的時(shí)候表現(xiàn)非常激進(jìn),它常常會(huì)在河牌圈無緣無故超池下注,通過詐唬引起對(duì)手情緒的波動(dòng)。在這個(gè)時(shí)候,人類絕對(duì)不能比它更激進(jìn),不然通常會(huì)輸?!痹S朝軍說。
桑德海姆對(duì)《第一財(cái)經(jīng)周刊》透露,“冷撲大師”其實(shí)還留有“后手”。這次與“龍之隊(duì)”的比賽,由于默認(rèn)程序“已經(jīng)表現(xiàn)夠好了”,“冷撲大師”并沒有使用第三個(gè)“自我強(qiáng)化”模塊。這個(gè)模塊讓“冷撲大師”進(jìn)一步升級(jí),剔除掉比賽中被人類識(shí)破的套路,重新采用新的策略。在美國(guó)匹茲堡的比賽中,桑德海姆的助手布朗每天晚上會(huì)利用這個(gè)模塊彌補(bǔ)“冷撲大師”的漏洞,讓它更加難以對(duì)付。
如此看來,“冷撲大師”打敗人類并不出乎意料—賽前的普遍預(yù)測(cè)也是“冷撲大師”會(huì)大概率獲勝。但這場(chǎng)“并無懸念”的比賽的更大意義并不僅僅在于再次證明了人工智能的強(qiáng)大,或是普及德州撲克這種頗受商業(yè)人士喜愛的游戲。
在桑德海姆看來,諸如“冷撲大師”這類AI系統(tǒng)的開發(fā),為人類借助機(jī)器處理非完美信息提供了一種新的方法及可能—除了德州撲克,在金融、安防、商業(yè)談判這類充斥著不完整信息的領(lǐng)域,人工智能也能幫助人類做出更好的決策。