德州撲克:AI打牌也能完勝人類了

2020-12-15 人人都是產品經理

筆者從完美信息博弈類遊戲的理論出發, 分析了AI打德州撲克為何能打贏人類?

前段時間,受周圍朋友的影響,喜歡上了德州撲克,享受和牌友心理博弈的過程,也享受「賭博」帶來的快感。一直覺得德州最大的魅力就在於它不完全是理性的判斷,更多的是感性、勇氣和理智之間的較量,不確定性太多,所以它區別於其他的棋牌類遊戲,沒有辦法通過學習一些套路和技巧就能完勝對手。

最近回了學校,又開啟了每天和AI「博弈」的磕鹽生活。今天驚奇的發現,AI打德州撲克居然也完勝人類了!此次比賽共持續 20 天,由 4 名人類職業玩家 Jason Les、Dong Kim、Daniel McAulay 和 Jimmy Chou 對戰人工智慧程序 Libratus,在為期 20 天的賽程裡面對玩 12 萬手,爭奪 20 萬美元的獎金。最終的結果是「比賽過程中,人類選手整體上從未領先過」

隨著天數的增加,AI和人類選手的差距愈發明顯

近幾年,隨著科技的不斷發展,計算機打敗人類的案例屢見不鮮。作為一隻「程序媛」,我也算是半個「局內人」,本科參與過一些計算機博弈和機器人相關的比賽,碩士期間對AI也有一些淺顯的了解。今天就從理性的角度講講,AI是如何打敗人類的。

幾年前也是輝煌過的~~~

德州撲克怎麼玩?(會玩請忽略)德州撲克是目前世界上最流行的撲克遊戲,遊戲規則請看視頻:

qqlive://sso/videoid=a03577cuh39&stag=detail.selectpanel.new&playstatisic=scene%3Drightdetail%26pagename%3D%E6%92%AD%E6%94%BE

視頻來自網絡,侵刪

總結來說,如果想要贏牌,第一種可能就是你的牌比其他人的牌都大第二種可能就是通過押注的技巧把牌沒有你大的對手都嚇跑。可能性就是德州撲克最有趣的地方。

圖片來自網絡,侵刪

完美信息博弈和不完美信息博弈

為什麼AI不容易在德州撲克上打敗人類呢?德州撲克和圍棋對AI來講到底有什麼區別?首先,要理解完美信息博弈(棋牌類遊戲)和不完美信息博弈(撲克類遊戲)的區別。

完美信息博弈是指後行動的參與者可以觀測到先行動的參與者的行動信息。像棋牌類遊戲,雙方的信息都是共享的,比如圍棋,雙方都能夠看到場上已經下過的旗子以及雙方的優勢和劣勢。

而撲克、談判、商業決策等問題,雙方的信息都是不公開給對方的,也即是說但參與者做選擇的時候不知道其他參與者的選擇,這就被稱謂不完美信息博弈

簡單來說,如果把其他參與者的行動理解為一個參與者做決策時所面對的環境,信息不完美就是決策者不知道自己所處的決策環境。

對德州撲克,即使對手all in了所有的籌碼,那麼我們也不清楚他手裡到底有什麼底牌,信息的不對稱,就迫使大家必須有「賭一把」的精神。

這也是為什麼金融人士和投資大佬們都喜歡玩德州撲克。

我們用理工的思維講講AI是怎麼贏了人類的——完美信息博弈類遊戲

對於圍棋遊戲來說,是一場零和完美信息博弈,這是指在任何時刻,雙方玩家都知道前面遊戲的全部狀態(完美信息),並且在有限步數之後遊戲的結果非勝即負(零和)。知道了遊戲的有限狀態,計算機就可以通過暴力枚舉的方法來計算後面所有可能的下法,形成一顆巨大的搜索樹,這顆搜索樹可以列舉出在當前狀態下所有可能的下法,每個子搜索樹都能獨立求解,計算機就可以根據計算的結果安排對應的策略,從而達到最終的勝利。

舉個慄子,比如,小明是一個普通中國家庭長大的小孩,在他的一生中,面臨著很多個選擇,如何才能在未來走向人生巔峰呢?如果可以列舉出他未來所有的可能性,把每一步的選擇拆解成「子未來」,那麼就可以計算出成功勝算最大的選擇了。(例子可能不夠恰當,理解意思就好,嘻嘻)

小明同學的人生探險

所以,假設我們有無限大的計算資源,就可以將一局遊戲的博弈拆解成一個一個的子博弈(列舉出所有的可能性),從而計算出勝算最大的打法,就可以打贏比賽了。

但是,以棋類遊戲中比較簡單的西洋棋來說,它的分支因子大概是40左右,這表示預測之後20步的動作需要計算40的20次方(這是多大,就算是1GHz的處理器,也要計算3486528500050735年),請注意,這還是比較簡單的西洋棋。

電腦:「我壓力太大了,哇的一聲炸開花」

所以,科學家們利用一些剪枝、搜索等算法以縮減計算範圍,從而在有限的時間內找出最佳策略。

不完美信息博弈類遊戲

終於講到了今天的主角,德州撲克

德州撲克就是很典型的不完美信息博弈類遊戲,它的策略設置中存在隱藏的信息。這類模型也有大量的應用場景,比如談判、拍賣等等。不完美信息博弈不能如完美信息博弈那樣通過分解而進行求解,因為一個子博弈的最佳策略可能依賴於其它尚未得到的子博弈的策略和輸出。

換句話說,我們無法通過預測到對方下注的多少從而猜測到對方手裡的牌是什麼,因為也許對方的牌並不好,但他通過下注欺騙你,讓你選擇棄牌。所以,這件事對於沒心機的計算機是相當困難的,對手第一手就all in了,但是他的牌到底好不好呢?

因此,當我看到AI在德州上也打敗了人類,還些許有些小激動,maybe未來,機器人也可以具有女人的第六感了

那AI到底是如何打敗人類的呢?

論文中提及和很多很難理解(其實自己也看不太懂,逃)的算法,為了方便理解,我們以一個簡單的博弈模型來舉例,試圖理解聰明的AI。

我們來設計一個簡單的遊戲。

遊戲玩家有A和B兩人。A可以拋一次硬幣,正反面都只有自己才可以看到,拋完後他有兩個選擇:①sell,賣掉硬幣;②play,和B玩遊戲。

A選擇了sell:

if:硬幣落在正面,A賣掉後得到五毛錢;else:硬幣落在反面,A賣掉後輸掉五毛錢。②A選擇了play:遊戲繼續,接下來由B來猜硬幣是落在正面還是反面:

if : B猜對了,A賠一元,B賺一元;else:B猜錯了,A賺一元,B賠一元。

此時,對B而言,就是一個不完美博弈,他無法從A選擇play從而判斷A手中的硬幣是正面還是反面

這時有兩個極限情況,如果B總是猜正面,那麼聰明的A就會變化策略,當他拋到正面時就賣掉硬幣,如果拋到反面才玩遊戲,這樣B必然會輸。此時,A的期望分數為:

0.5(拋到正面的概率)*0.5(選擇sell的得分)+0.5(拋到反面的概率)*1(選擇play的得分)=0.75

如果B總是猜反面,那麼A拋到正面時就會選擇play,得一元;拋到反面就會選擇sell賣掉硬幣,這樣只賠五毛錢。所以A的期望是:

0.5(拋到正面的概率)*1(選擇play的得分)+0.5(拋到反面的概率)*(-0.5)(選擇sell的得分)=0.25

此時,出現一個知識點,叫納什均衡,也就是B為了有效的降低損失,他最有效的策略就是以0.25的概率猜正面,以0.75的概率猜反面,這樣可以確保他的勝算最大。

而博弈永遠是一個動態的過程,如果B持續按照固有的策略做決策,那麼A也會根據B的決策結果調整自己的策略。所以,對B最安全的方法,就是不斷更新A賣掉硬幣會得到的回報,持續尋找最優解

我們聰明的計算機就是通過這樣的方法動態的計算牌友們押注所帶來的回報期望,進而「持續更新對手的套路」,最終獲得了「比賽過程中,人類選手整體上從未領先過」的效果。

看來,想要和AI鬥智,人類的小腦筋maybe還需要轉的更快才行嘞,也許沒有套路才是最大的套路哦。

都說金融大佬都愛玩德州,看完這篇文章,金融大佬們是否有些啟發呢?

本文由 @汪仔7199 原創發布於人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基於CC0協議

相關焦點

  • CMU 德州撲克幕後英雄 AI 將在一對多比賽完勝人類
    Brown 指出,Libratus 獲勝的原因是它沒有任何能被人類利用的弱點,訓練時 Libratus 從未使用過人類數據。Brown 還表示,稍作增強的 Libratus 有望在兩年內贏得無限手德州撲克 6 人桌(Six-Max)的比賽。   上個月月末,卡耐基梅隆大學的 AI 程序在「一對一不限注」的撲克比賽中,擊敗了一組世界級的德州撲克職業選手。
  • AI 首次在德州撲克戰勝人類職業玩家,新算法讓機器擁有「直覺」
    von Neumann 最痴迷的一個遊戲是撲克,在這個遊戲中,玩家在得到自己的牌後,會輪流下注,讓對手跟注,他們或跟注或棄牌。撲克是一種非完美信息遊戲,玩家只能根據自己手上的牌提供的非對稱的信息來對遊戲狀態進行評估。  在一對一對戰(也就是只有兩位玩家)的有限下注德州撲克中,AI 曾經取得了一些成功。
  • 德州撲克職業牌手通過打牌能夠賺到多少錢?
    職業牌手通過打牌能賺到多少錢?這很大程度上取決於你有多少收入來源。在撲克大繁榮剛開始的時候,許多撲克新人把主要精力投入在錦標賽上,然後許多人很快發現,因為錦標賽的波動太大,無法成為有效的收入來源。  當然,像Daniel Negreanu、Chris Moorman這樣的牌手是個例外,但他們也是「你的成績可能會變化」的經典範例。
  • AI在德州撲克上打敗人類為什麼是個大事件?9個問答告訴你
    原文以How rival bots battled their way to poker supremacy為標題發布在2017年3月2日的《自然》新聞上原文作者:Elizabeth Gibney人工智慧利用博弈論策略和深度學習方法,在雙人德州撲克中擊敗人類職業選手
  • 探秘:人工智慧是如何擊敗人類稱霸德州撲克的?
    【環球網智能12月20日報導 記者心月】掌握你的面部表情,選擇什麼時候虛張聲勢,什麼時候舉牌——撲克遊戲不僅僅是靠運氣,更是一種技巧和戰術的遊戲。然而在人工智慧面前,再高明的玩家也會感到自己戰術的不足。
  • 就算是輸給AI,也不能說人類丟掉了德州撲克的陣地|德撲人機大戰Day1
    德州撲克一張臺面至少2人,最多22人,一般有2-10個玩家參與。目前冷撲大師還無法參與多人的牌局,這多少讓人感覺不那麼刺激和熱鬧。2、發牌每個人類玩家同時打兩手牌,比賽採用複式發牌,也就是說A隊人類拿到的手牌,是B隊電腦的手牌,A隊電腦的手牌是B隊人類的手牌。而且是隨機分配到某個牌手,並非一一對應。
  • 德州撲克「中國式發展」:職業牌手月入10萬
    羅小傑說,「這個詞指的是大概率能獲勝的情況下卻遭遇小概率事件導致失敗。我花了5個小時將手中的籌碼翻了10倍,卻因為Bad Beat在3分鐘內輸光了全部成果,但我的打法沒有問題,因為在概率上最後一局應該是我贏,長期來看我還是能盈利的。」上大學時,羅小傑通過一位在美國長大的室友接觸到了德州撲克,並迅速掌握了這項紙牌遊戲的技巧。「當時主要在Pokerstar等國外線上平臺打,就打幾塊錢的。
  • 亞洲首度德州撲克人機對戰即將開賭!| 附李開復演講全文
    今年的1月30日,在賓夕法尼亞州匹茲堡的Rivers賭場,Libratus以每100手14倍大盲(雷鋒網(公眾號:雷鋒網)按:縮寫為14bb/100,意為玩100手牌,平均能贏對手14倍大盲注)完勝四位世界頂級德州撲克選手Jason Les、Dong Kim、Daniel McAulay 和Jimmy Chou,成為首個戰勝人類世界級玩家的德撲AI。
  • 學好這四點不做德州撲克新人
    儘管撲克中運氣是輸贏的一個因素,但是最終的決定因素還是技術。所謂技術,無非是將德州撲克僅有的四個動作(fold, bet, check, raise)能根據具體情況做出合理選擇,以做到每一手牌儘可能地贏利最大化和損失最小化。
  • 國內首個聚樂版德州撲克登錄QQ遊戲大廳
    全新改版的《聚樂版德州撲克》,以簡潔的設計風格、強大的好友約戰功能,定能在玩家聚會時,帶來更出色的社交亂鬥體驗,增添無窮樂趣。此外,Android版QQ遊戲更享有專屬的「免流量遊戲分享」功能,一秒實現玩家「聯機」打牌,免流量直接安裝《聚樂版德州撲克》。據測試,傳輸速度高達2MB/s,讓玩家在聚會時隨時隨地眾樂一把。
  • AI在六人桌德州撲克賽中戰勝人類選手
    據美國《新聞周刊》網站近日報導,美國科學家開發出一種新的人工智慧(AI)程序「合眾為一」(Pluribus),其在6人無限制德州撲克比賽中擊敗了6名全球頂尖選手。研究人員認為,這是人工智慧發展史上的一座裡程碑,未來有望應用於生物醫學、安全等領域。研究發表於12日出版的《科學》雜誌。
  • 為什麼幹金融的都愛玩德州撲克?
    最近幾年,有一項撲克運動在國內變得很風靡和火熱,它就是德州撲克。尤其是在金融行業裡面十分受歡迎。  簡單介紹一下德州撲克的規則,最少2名玩家就能開始遊戲,一般一桌最多10名玩家。每個人起手會獲得兩張手牌,根據手牌質量依次選擇加注、跟注或者棄牌。當在場所有人下注額平等後,開始發放公共牌。到此為止,就結束了【翻牌前階段】的下注輪。  接下來,進入【翻牌圈】,臺面會發出3張公共牌,留在底池內的玩家根據次序可以進行第二輪下注、跟注、棄牌或者讓牌。
  • 德州撲克遊戲技巧解讀--快樂之都遊戲下載
    德州撲克必備的心態  1. 德州撲克更重要的是它的娛樂性, 並不只是為了贏。  2.  8.德州撲克講究的就是概率;不要光依靠翻牌的時候的,更多時候要從概率上判斷形勢,在牌局裡把握每一個機會,扎住對手每個即便是細微的失誤。德州撲克遊戲的技巧  德州撲克規則很簡單,但是人心複雜,要成為一個高手不僅僅需要出色的個人能力還需要運氣。
  • 我不是賭神:德州撲克那些事
    原標題:我不是賭神:德州撲克那些事 1、我眼中的德州 13年初剛接觸德州撲克時,正處於從學校走向工作崗位的轉換期,那時風靡的依然是RTS(即時戰略)遊戲,例如DOTA、CS以及後來的LOL等。德州撲克與其相比節奏要慢一些,並且看上對於微操作的要求也大幅降低(花樣玩籌碼除外),其實比較適合喜愛深度思考但又受限於apm的玩家。 德州撲克另一個非常有趣的地方,是在即時勝負結果出現的同時,也伴隨著籌碼的轉移,有時是記分牌,大部分時候是現金,這對於以賺錢為己任的金牛座而言簡直是完美的存在。
  • 淺談AI|我覺得這麼下去德撲要涼!
    前幾日,國外媒體發布了一則AI人工智慧在德州撲克六人桌已經可以戰勝人類玩家的新聞!瞬間一石激起千層浪,全球的撲克玩家都炸鍋了,紛紛議論此事,人心惶惶!為什麼AI人工智慧在德州撲克六人桌戰勝人類玩家會造成這麼大的影響?
  • 德州撲克攻略 德州撲克定時賽的玩法和心得
    德州撲克遊戲中,很少人會注重定時賽,但遊戲大師告訴你,德州定時賽是拿分和經驗值的好地方。下面,小編就將積累的經驗拿出來和大傢伙分享: 一、玩家必須應該具備的一些心理、素質、以及技巧 如果你想在定時賽牌桌長期贏(起碼做到不輸錢),你應該具備下列一些個性與心理條件: 1、非常有耐心 德州定時賽是一種需要極大耐心的遊戲,實際上,如果你想贏,這種遊戲有時候非常無聊乏味,長時間棄牌會讓許多很有耐心的玩家失去耐心
  • 手機上打德州撲克 三個月他輸了10多萬
    報警希望老友回頭「不知道他用手機玩的什麼遊戲,幾個月輸了很多錢了……」去年9月,沙坪垻警方接到一個報警電話,報警人稱自己的一位好友在網上打德州撲克,沉迷於網上賭局,已經輸掉了十幾萬,希望警方介入後,讓他的好朋友迷途知返。報警人王先生家住沙坪垻覃家崗,參與網上賭博的是他的好朋友老黃,與他住在同一個小區。
  • 德州撲克:混金融圈的標配
    很顯然,他們都是德州撲克的玩家——raise指的是加注,miniraise是指比前者所下注碼剛好翻一倍。 只要是對金融圈有一定了解,對於德州撲克這個在美國猶如中國麻將的娛樂,應該都有所了解,德州撲克20世紀初起源於美國德州布斯鎮,每年WSOP主賽事無限注德州撲克在體育頻道ESPN
  • 德州撲克流行的背後,是美式文化的全面勝利(上)
    作為如今全美國最流行的競技撲克遊戲,德州撲克具體源於何時已經無處可考,只知道早於1900年的時候,德克薩斯州的羅比斯鎮就出現這種日後大行於世的撲克遊戲。德州撲克在美國具體有多流行呢?但凡你與美國人提出想打一把撲克,對方十有八九會理解為你要玩德州撲克。
  • 天天德州撲克算法 天天德州撲克算牌須知
    原標題:天天德州撲克算法 天天德州撲克算牌須知   本文將告訴你,高手是這樣煉成的,首先要學會《天天德州》撲克計算法   撲克計算法主要是學習撲克的概率,簡單說,就是等來某種獲勝牌型的可能性(成牌概率),與底池提供籌碼(底池概率)之間的比較,如果底池籌碼足夠多,高於成牌可能,就玩下去,反之就棄牌。