1
本文作者: 夏睿 | 2017-02-15 21:21 |
在上個(gè)月舉行的單挑無(wú)限注德州撲克( heads-up no-limit hold’em)人機(jī)對(duì)戰(zhàn)中,由卡耐基梅隆大學(xué)研發(fā)的AI程序Libratus以每100手14倍大盲(譯者注:縮寫為14bb/100,意為玩100手牌,平均能贏對(duì)手14倍大盲注)完勝世界級(jí)人類玩家團(tuán)隊(duì),震驚所有在場(chǎng)人員。
比賽共打12萬(wàn)手,最后Libratus贏得了1,776,250個(gè)籌碼,近90個(gè)買入。雖然人類玩家輸慘了,但幸運(yùn)的是他們并不需要真的自掏腰包把輸?shù)舻腻X給贏家Libratus(雖然他們來參加這場(chǎng)對(duì)戰(zhàn)也需繳納費(fèi)用)。
Libratus是“AI撲克界的圣杯(the holy grail )”,CMU博士Noam Brown這樣評(píng)價(jià)道。Libratus由 Noam Brown和 CMU教授Tuomas Sandholm共同研發(fā),并且是CMU這一系列撲克機(jī)器人里面最新的一款。此前,還沒有任何機(jī)器人能在單挑無(wú)限注德州撲克中打敗世界級(jí)人類選手。
在Brown看來,Libratus尚有很大發(fā)展空間:“從理論上來講,升級(jí)版Libratus能達(dá)到50bb/100”(譯者注:即升級(jí)后的Libratus每100手能贏人類對(duì)手50倍大盲,也就是還有3.5倍的潛力可挖)。近日,世界著名撲克牌雜志Card Player 對(duì)Brown進(jìn)行了專訪,了解了AI撲克研究的歷史發(fā)展和未來走向等問題。以下為雷鋒網(wǎng)編譯:
Brown
Card Player :您對(duì)這次對(duì)戰(zhàn)結(jié)果感到驚訝嗎?
Brown:其實(shí)我還還挺驚訝的,我沒想到AI能做得這么好。我們之前為了測(cè)試AI效果有讓它和 Claudico(雷鋒網(wǎng)譯者注:CMU較早版本AI)對(duì)戰(zhàn)過,結(jié)果是Libratus以10~12bb/100打敗Claudico,這個(gè)成績(jī)好于2015年Claudico與人類對(duì)戰(zhàn)的結(jié)果(譯者注:那次大戰(zhàn)中AI輸給了人類選手),不過差不太多。所以我們感覺,這次人機(jī)對(duì)戰(zhàn)Libratus的勝算要大一些,但是不確定到底會(huì)贏多少。所以當(dāng)這次結(jié)果出來的時(shí)候,我們對(duì)AI能表現(xiàn)這么好感到相當(dāng)詫異。
Card Player :所以其實(shí)當(dāng)時(shí)你們認(rèn)為AI還沒辦法以14bb/100打敗人類,是嗎?
Brown:是這樣,我們不知道人類到底比Claudico 厲害多少,有多少是AI需要提升的。(譯者注:在2015年那場(chǎng)對(duì)戰(zhàn))中,人類選手發(fā)現(xiàn)并充分利用了Claudico 的漏洞,比如他們讓Claudico 多次采用“溜進(jìn)”(譯者注:limp,翻牌前專用名詞,指玩家不做任何加注,只跟進(jìn)1倍大盲注)戰(zhàn)術(shù)。這一招非常有效果,是人類玩家打敗Claudico 的關(guān)鍵。但是Libratus不是通過利用對(duì)方弱點(diǎn)贏的。Libratus和Claudico對(duì)戰(zhàn)時(shí),Libratus能夠在不利用后者弱點(diǎn)的情況下以10~12bb/100打敗Claudico ,這說明如果Libratus 沒有任何弱點(diǎn)的話,能比人類更強(qiáng)。而Libratus這次之所以能打敗人類,其原因就在于它沒有任何人類可以利用的弱點(diǎn)。
Card Player :在人類玩家緊追比分,對(duì)戰(zhàn)進(jìn)入白熱化的時(shí)候,你是不是在想對(duì)手可能已經(jīng)找到了Libratus的弱點(diǎn),還是說仍舊很有信心?
Brown:第一周比賽快要結(jié)束時(shí),雙方幾乎打成平局。人類選手也在第一周對(duì)Libratus會(huì)如何調(diào)整打法、它的強(qiáng)項(xiàng)在哪里等做出了一系列推測(cè)。他們沒有和我詳談他們認(rèn)為戰(zhàn)局將會(huì)如何發(fā)展,但從我聽到的來看,他們應(yīng)該是想從數(shù)據(jù)中尋找Libratus的套路,分析它的弱點(diǎn)和優(yōu)勢(shì)。所以,大體上我不怎么擔(dān)心。他們認(rèn)為AI在一些方面有缺陷,但實(shí)際上并沒有。比如,在有一天的比賽中,他們80%都是再加注( three-betting ),因?yàn)閺臄?shù)據(jù)來看,他們認(rèn)為AI 對(duì)特定的三倍打法( three-bet size)不太擅長(zhǎng)。但我不認(rèn)為那是缺陷,只是他們的數(shù)據(jù)中存在噪音。他們?cè)诒荣愡M(jìn)程中獲得的數(shù)據(jù)導(dǎo)致他們得出了這樣的結(jié)論。但他們確實(shí)看到了里面存在的一些問題。比如Libratus對(duì)特定的開局下注的大小對(duì)應(yīng)不好。比賽前我們認(rèn)為這不是什么大問題,但事實(shí)證明,這個(gè)弱點(diǎn)很要命。好在AI還留有一手——趁當(dāng)天晚上對(duì)手睡覺的時(shí)候,AI就開始連續(xù)不斷地進(jìn)行訓(xùn)練,彌補(bǔ)自己的不足以防止對(duì)手以后再次利用這一缺陷。所以你看到,從第二周局勢(shì)就開始轉(zhuǎn)變了。
Card Player :這次微調(diào)整對(duì)之后的比賽是否重要?因?yàn)槿祟愡x手也會(huì)協(xié)同作戰(zhàn)討論戰(zhàn)略,所以這次調(diào)整是否加大了對(duì)戰(zhàn)難度?
Brown:這里面有挺多誤解的。AI微調(diào)不是說我們讓它再再加注(four-bet)的次數(shù)增多,或提高加注倍數(shù),而是因?yàn)閷?duì)手在翻牌前和翻牌時(shí)總是下不同大小的注。AI程序知道如何回應(yīng)2倍,2.5倍或3倍的開局下注。但如果對(duì)方以2.75倍開局,那么AI就會(huì)把2.75約等于3,所以它的回應(yīng)還是比較準(zhǔn)確的。這樣的做法雖然算不上不合理,但如果它能不四舍五入的話,效果會(huì)更好。于是它那晚就整夜訓(xùn)練自己如何去回應(yīng)2.75倍的下注。它下注的大小是由算法決定的,根據(jù)對(duì)手下注次數(shù)最多倍數(shù),這個(gè)數(shù)字離我們事先設(shè)定好的一些數(shù)目離得有多遠(yuǎn),算法可以為對(duì)手下的注分出優(yōu)先等級(jí)。所以這就是微調(diào)所做的改變。這也是算法中的關(guān)鍵部分,讓AI一步步根據(jù)人類打法改變自己的路子,而不像他們之前猜測(cè)的去利用人類弱點(diǎn)。
Card Player :那么我們能不能說Libratus在轉(zhuǎn)牌圈(the turn)和河牌圈(the river)時(shí)的回應(yīng)沒在翻牌前和翻牌時(shí)的回應(yīng)那么重要?
Brown:在轉(zhuǎn)牌圈和河牌圈時(shí),你會(huì)發(fā)現(xiàn)AI需要花時(shí)間思考接下來的動(dòng)作。這個(gè)時(shí)間非常迅速以至于有的人可能都沒有注意到。其實(shí),每次人類對(duì)手在轉(zhuǎn)牌圈和河牌圈下注時(shí),它都要重新計(jì)算策略。這樣,無(wú)論對(duì)手怎么出招它都能給予完美回應(yīng)。所以AI必須預(yù)先計(jì)算一系列的不同下注大小并放入到游戲樹(game tree)中,但預(yù)先計(jì)算的不能應(yīng)對(duì)轉(zhuǎn)牌圈和河牌圈,因?yàn)檫@兩個(gè)需要實(shí)時(shí)計(jì)算的策略。(譯者注:游戲樹是指組合博弈理論中用來表達(dá)一個(gè)賽局中各種后續(xù)可能性的樹)
Card Player :這個(gè)實(shí)時(shí)計(jì)算能力是否正是Claudico 所缺乏的?或者是做的不夠完美的地方?
Brown:Claudico 能夠在河牌圈進(jìn)行實(shí)時(shí)計(jì)算,只不過在下面幾個(gè)方面比較弱。首先,它沒有考慮到阻斷牌(雷鋒網(wǎng)譯者注:blocker,即自己要的牌在別人手上)。為了運(yùn)作更快,它需要把幾手牌組合起來,然后再區(qū)分對(duì)待。基于此它可能會(huì)認(rèn)為,黑桃A帶三張黑桃和梅花A帶三張黑桃是一樣的,即便這兩種牌應(yīng)該區(qū)分對(duì)待。Claudico 的最終游戲解算機(jī)(end-game solver)會(huì)對(duì)大量的實(shí)時(shí)下注進(jìn)行計(jì)算,但不會(huì)在每次人類下注時(shí)進(jìn)行再計(jì)算。我認(rèn)為,對(duì)人類每次下注進(jìn)行再計(jì)算這一步,對(duì)Libratus本次的獲勝至關(guān)重要。同樣的,這次我們能在轉(zhuǎn)牌圈開始的時(shí)候就對(duì)這種計(jì)算進(jìn)行擴(kuò)展。這種做法的計(jì)算量更大,因?yàn)楝F(xiàn)在AI需要處理約50種可能出現(xiàn)的不同河牌圈,并且在游戲結(jié)束(每手牌)前可能出現(xiàn)的行動(dòng)數(shù)量也在呈指數(shù)級(jí)地增長(zhǎng)。所以,要像有效地?cái)U(kuò)展這種新算法,新程序的計(jì)算成本也比 Claudico 要貴上1000倍。
Card Player :Libratus什么時(shí)候才能打出一個(gè)完美的GTO( game theory optimal,距離博弈理論中的最優(yōu)化策略)?像Libratus這樣的機(jī)器你們還會(huì)推出多少個(gè)版本?
Brown:沒人知道AI離打出一個(gè)博弈理論中的最優(yōu)化策略還有多遠(yuǎn)。我們有很多方法來計(jì)算這一數(shù)值,但代價(jià)極其昂貴,所以到現(xiàn)在都還沒實(shí)現(xiàn)。也許我們明年會(huì)開始嘗試。如果非要我推測(cè)的話,我猜一個(gè)博弈理論中的最優(yōu)化策略可以以15bb/100 戰(zhàn)勝Libratus。這是我的粗略估計(jì),范圍應(yīng)該在5~50bb/100。
Card Player :哇,所以這類AI還是有很大提升空間嘍?
Brown:這不好說。以前AI的致命弱點(diǎn)是在轉(zhuǎn)牌圈和河牌圈沒有把阻隔牌考慮在內(nèi),這在高水平對(duì)戰(zhàn)中確實(shí)非常關(guān)鍵。但Libratus不存在這個(gè)問題。它會(huì)在每個(gè)轉(zhuǎn)牌圈和河牌圈中,專門考慮每手牌的情況,和之前的AI相比,該做法讓Libratus的表現(xiàn)有了飛躍式的進(jìn)步。
在區(qū)分阻隔牌這一點(diǎn)上,Libratus沒多少提升空間了。但是在如何選擇下注數(shù)額上,還是可以有進(jìn)步的。我很難說它能進(jìn)步多少,但我猜測(cè)可能會(huì)達(dá)到15。
Card Player :有人認(rèn)為L(zhǎng)ibratus在轉(zhuǎn)牌圈和河牌圈的超額下注(over-betting)非常具有進(jìn)攻性。你是否認(rèn)為AI在這方面已經(jīng)達(dá)到了完美水平,或說在如何平衡下注上仍有改善空間?
Brown:它能在比賽時(shí)超額下注,我們也很意外。Libratus 并非根據(jù)人類的數(shù)據(jù)訓(xùn)練而成,它之前從來沒跟人類玩家過過手。所以此次對(duì)戰(zhàn),它采取的是它認(rèn)為最優(yōu)的策略。它的策略非常獨(dú)特,并且和人類所認(rèn)為的最優(yōu)打法非常不同。超額下注是它策略的重要部分,另外還有donk bets。能看到AI做到人類未能做到的事,這真的難以忘懷,我也很滿足。這種進(jìn)攻性早在Claudico身上就有所體現(xiàn),那時(shí)候人們覺得它在底池還很小時(shí)就玩all-in很不明智。我覺得它這是錯(cuò)誤的打法,是沒有做好平衡的表現(xiàn)。但是我認(rèn)為從Libratus身上我們已經(jīng)看到了比較合理的進(jìn)攻性,而這也是它成功的關(guān)鍵。
Card Player :很多人都想知道這對(duì)未來的線上撲克玩家意味著什么。您能否說一下,至少是在當(dāng)前情況下,為何您研發(fā)的AI不會(huì)威脅到游戲的公正性?
Brown:至少我能向大家保證,我們不會(huì)在線上運(yùn)行Libratus ,也沒有這個(gè)打算。但很顯然,其他人會(huì)把我們公開的技術(shù)應(yīng)用在機(jī)器人中,并讓它們參與線上游戲。關(guān)于機(jī)器人會(huì)如何影響線上撲克玩家,我不去做太多推測(cè),因?yàn)槲乙泊_實(shí)不清楚。但我知道現(xiàn)在已經(jīng)有機(jī)器人被應(yīng)用在線上了,有些撲克牌游戲網(wǎng)站費(fèi)很大力氣想要在線上安置這樣的機(jī)器人。我不知道在這場(chǎng)博弈中哪方會(huì)贏。
Card Player :在比賽中減少或增少籌碼的數(shù)量對(duì)比賽結(jié)果會(huì)有什么影響?如果雙方各有500到1000
倍大盲注的籌碼,機(jī)器能應(yīng)付的了嗎?
Brown:我們選擇200倍盲注是因?yàn)槟甓扔?jì)算機(jī)撲克競(jìng)賽采用的是這個(gè)規(guī)制。每年,做撲克的 AI 研究者都會(huì)聚集起來互相對(duì)戰(zhàn)。一直以來,AI都很難把200倍盲注玩好。因?yàn)榕圃蕉?,AI 就要做出更多的選擇。就我的理解,200 倍盲注是人類玩德?lián)涞纳舷?。保持公平?duì)等是很有必要的,但同時(shí)也應(yīng)該讓 AI 玩起來有難度。如果盲注數(shù)量變少,比如只有 100倍盲注,我認(rèn)為 AI 和人類對(duì)戰(zhàn)的結(jié)果和現(xiàn)在一樣(如果不是更好的話)。要是盲注數(shù)量增多,比如 增加到500或1000倍……坦白說,我認(rèn)為 結(jié)果還是跟現(xiàn)在一樣(如果不是更好的話)。這不是因?yàn)閷?duì) AI 來說情況變簡(jiǎn)單了,而是因?yàn)槊ぷ⒃龆?,?duì)人類來說變復(fù)雜了。我不認(rèn)為人類能習(xí)慣 500 或 1000 倍的盲注。到了那個(gè)數(shù)量級(jí),Libratus 真正擅長(zhǎng)的大規(guī)模超大投注(over-bets)的重要性就會(huì)凸顯出來。我人類在超大投注方面不會(huì)比 Libratus 更強(qiáng)。
Card Player :讓機(jī)器人跟再多一位玩家對(duì)戰(zhàn)的其他玩法,AI研究員有在研究嗎?
Brown:在三人對(duì)戰(zhàn)撲克上已經(jīng)有了一些研究。總的來講, Libratus靠現(xiàn)有技術(shù),就算再多加兩個(gè)對(duì)手也沒問題?,F(xiàn)在的問題不是技術(shù),而是你怎么評(píng)價(jià)AI的表現(xiàn)。因?yàn)楫?dāng)你有兩個(gè)以上對(duì)手的時(shí)候,盡管AI使用的是最好的GTO策略,但它仍會(huì)輸錢,因?yàn)槠渌婕叶蓟蛎骰虬档卮ê昧?。所以在游戲中讓一個(gè)AI對(duì)戰(zhàn)五個(gè)人類玩家,你很難去評(píng)價(jià)AI是否比人做的更好。這種評(píng)價(jià)方式不可行。這也是為什么這次比賽我們是一對(duì)一制的,也是為什么本次比賽結(jié)果在一對(duì)一游戲制度下有相當(dāng)大的意義。我認(rèn)為目前無(wú)限德州撲克 6 人桌(Six-Max)略微超出了Libratus 和類似AI機(jī)器的能力。
話雖如此,年度計(jì)算機(jī)撲克競(jìng)賽已經(jīng)在計(jì)劃加入6人桌比賽了,所以這方面的研究馬上也會(huì)開始,而且我認(rèn)為該領(lǐng)域會(huì)發(fā)展非常迅速。我覺得,隨著Libratus一點(diǎn)一點(diǎn)的進(jìn)步,兩年內(nèi)你就能看到它在6人桌比賽中戰(zhàn)勝人類了。當(dāng)你玩6人桌的時(shí)候,是否要打GTO策略這真的無(wú)法確定,因?yàn)檫M(jìn)攻較弱的對(duì)手的打法效果可能會(huì)更好。AI撲克研究圈目前也在討論這一點(diǎn),不過還沒有結(jié)論。但在針對(duì)弱者并攻擊對(duì)方弱點(diǎn)方面,還是人類更有優(yōu)勢(shì)。
via:cardplayer
【兼職召集令!】
如果你對(duì)未來充滿憧憬,喜歡探索改變世界的科技進(jìn)展,look no further!
我們需要這樣的你:
精通英語(yǔ),對(duì)技術(shù)與產(chǎn)品感興趣,關(guān)注人工智能學(xué)術(shù)動(dòng)態(tài)的蘿莉&萌妹子&技術(shù)宅;
文字不求妙筆生花,但希望通俗易懂;
在這里,你會(huì)收獲:
一群來自天南地北、志同道合的小伙伴;
前沿學(xué)術(shù)科技動(dòng)態(tài),每天為自己充充電;
更高的生活品質(zhì),翻翻文章就能掙到零花錢;
有意向的小伙伴們把個(gè)人介紹/簡(jiǎn)歷發(fā)至 guoyixin@leiphone.com,如有作品,歡迎一并附上。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。