計算機在德州撲克比賽中可以戰勝人類嗎?
像國際象棋那樣。
截止到15日,Libratus人工智慧系統已經和我們領域的四名頂尖玩家鏖戰了四天。
其實在兩年前,我們非常熟悉的朋友Dong Kim就參與了一場人機對戰並取得了勝利。
這一次的人機對戰是由卡內基梅隆大學研發的Libratus人工智慧系統和四名世界頂級玩家——Jason Les、Dong Kim、DanielMcAulay和Jimmy Chou進行的交火。在1月12日開始了第一輪。
第一天雙方一共打了2840手牌,四名人類高手總計虧損74,488美元。在2015年和卡內基梅隆大學設計的上一代系統進行過對戰過的Dong Kim和Jason Les為人類隊伍挖下巨大的坑,哥倆分別輸了60,305美元和21,411美元。Daniel Mcaulay(贏了4,938美元)和Jimmy Chou(贏了 2,290美元)雖然各勝一場,但此役Libratus明顯更具優勢。
當比賽進行至第二天,雙方將對陣手數推進至8840,四名職業玩家全線潰敗,他們將總虧損變成了$150,126。AI在這天表現出了絕對的統治力。
人機大戰進行至第三天,雙方共打了14,840手牌,AI繼續保持統治力將領先優勢擴大到$193,300。四名職業玩家則依然深陷泥潭。
Jimmy chou:「AI最讓我印象深刻的是翻牌後那些不可預知的行動,它看起來好像能夠理解一些頂尖玩家在遊戲中運用的高級策略。我們今天輸掉了這場戰鬥,但是我們很期待明天能夠反擊」。
人機大戰的Day4在15日凌晨結束。Jason Les表現出色,實現大逆轉。從14日總虧損9,560美元,到截止至15日總盈利49,072美元。華裔選手Jimmy Chou也發揮不俗,盈利約2萬美元。而Dong Kim以及Daniel Mcaulay兩位選手則延續虧損至98,951美元和91,240美元,表現疲弱。
在15日表現出色的Jason Les,很可能已經掌握到人工智慧存在的某些缺陷,才能夠達成單日最高利潤。Jimmy Chou在波動中站穩了陣腳,即使沒有在本日盈利,至少也維持了對Libratus的強烈抵抗。相信只要等待一個機會,Jimmy將會再次轉虧為盈。
這場人機撲克大賽將在賓夕法尼亞州匹茲堡的Rivers 賭場進行19天,究竟是我們領域的頂尖玩家們逆轉反超,或是Libratus一騎絕塵,我也還在觀望。
轉載自「一起poker」公眾號CMU研發Poker AI Libratus的博士Noam Brown是我的好朋友,所以1月13日我們請有幸一起去匹茲堡的Rivers Casino替Libratus吶喊助威。
(這就是Libratus的設計者Noam Brown,後面比賽的選手是Jason Les和Jimmy Chou。)
比賽的現場觀眾其實並不多,其實就是poker room里玩的人玩累了會偶爾過來看看,不過聽說twitch上有很多人在看現場直播。選手們並不是使用真實撲克,而是在兩個電腦屏幕上同時玩兩局,不設時限。計算機與人類大約每天對弈1500手。他們對弈的速度實在是太快了,我身為一個poker新手表示完全跟不上節奏。只是偶爾問問Jason和Jimmy他們下注的時候是怎麼想的,他們一定認為我問的問題都很幼稚。
(從左到右是Jason Les, Jimmy Chou 和Tuomas Sandholm教授。)有趣的是四位選手兩人一對,選手一玩的牌局裡AI的牌就是選手二的手牌,這樣比賽結束後選手可以互相對照知道AI手裡的牌,而且也方便分析由於牌型過於偏向一方而帶來的誤差。比如在第一天的比賽中Dong和Jimmy,Jason和Daniel組成一對,雖然Jimmy和Daniel各贏了$2000和$4000多。但是他們對應的Dong和Jason各輸了$60000多和$20000多。說明如果選手水平相仿的話,當天的牌型是有利於Jimmy和Daniel的,而AI即使在弱勢牌型上也能保證不失分太多。
我只看了第二天的第一個Session(前800手),AI還是穩勝。Jimmy貌似有幾輪比較幸運,所以最後小贏一點。
(AI應援團與AI設計者合影,右二是Noam Brown,右四是Tuomas Sandholm教授。)看起來Tuomas和Jimmy聊得非常開心,我猜他可能想把Jimmy招進來當PhD接手Poker AI項目(我瞎說的)。Tuomas也不斷在回答twitch上觀眾的提問,感覺在上AI的公共課一樣。
希望Libratus能將優勢保持到最後。
一些讀過關於Deepstack論文的人說感覺論文寫的有些潦草,感覺有為了趕時間搞個大新聞的嫌疑。最後我問了一下Noam他關於Deepstack的看法,他表示很有信心Libratus可以戰勝Deepstack,而且Deepstack也並沒有完全公開實驗數據,還是要等詳細數據公開才能下定論。剛好大致過了一遍最新的論文:https://arxiv.org/pdf/1701.01724v1.pdf ,AI在雙人無限注heads-up no-limit 德州撲克中戰勝了職業玩家。
簡單Po幾個論文里的觀點和細節吧:
1. 無限注的難度遠高於有限注的德撲,接近圍棋的難度。雙人有限注德撲有 個決策點,圍棋有個決策點,而雙人無限注有 。在計算的複雜程度上可見一斑。
2. 撲克是一種具有不完美信息特性的遊戲,因為對手的手牌是隱藏著的,只能通過對手的行為來推理對手可能掌握的手牌,在這篇文章里對手行為包括對手的下注、跟注、棄牌等動作,這裡涉及到一些欺騙的戰術例如在沒什麼勝算的情況下虛張聲勢的下很多籌碼。比完美信息遊戲(如圍棋等對抗雙方信息完全共享的遊戲)需要更複雜的推理過程。
3. 直覺,說好聽點就是像人的直覺一樣快速判斷場面,說白了其實就是一個快速估算場面的深度神經網路,通過輸入底池裡的籌碼數、公共牌和玩家可能拿牌情況的概率分布,輸出是在任意拿牌場景下的Value
4. 沒有用到專業的牌局進行神經網路的訓練,不同於AlphaGo用了大量的棋局做訓練,這個模型用的是隨機生成的牌局(隨機產生公共牌、底池籌碼、玩家拿牌概率)和嘗試性的動作帶來的結果(在隨機生成的輸入情況下模擬玩家跟牌後的結果)作為訓練數據。
5. 做了有針對性的優化後,思考時間很短,但是不排除有可能人類玩家同時在進行多局遊戲的情況。
總的來說,結果挺優秀,但是個人感覺方法上的閃光點不多,應該遠遠不是德撲AI的最終形態。
來自阿爾伯塔大學的一個團隊在 2008 年的時候就在有限制德州撲克( limit Texas Hold』em)上超過了最好的人類玩家,並且在 2015 年就幾乎達到了完美的水平。目前(2017年1月),來自卡耐基梅隆大學的研究者們正在挑戰無限制德州撲克,試圖擊敗最強人類玩家。
谷歌的 AlphaGo 升級版剛剛在網路平台上連續 60 次擊敗各路世界頂尖圍棋手。正如在 1997 年,IBM 的深藍超級計算機擊敗國際象棋世界冠軍卡斯帕羅夫那樣,它已成為人工智慧發展的里程碑事件。在下周,由卡耐基梅隆大學(CMU)開發的名為 Libratus 的人工智慧系統即將開始一場新的挑戰:試圖在一對一、無限制投注的規則下擊敗世界最強的人類德州撲克玩家。
也許 Libratus 會很快與「深藍」和 AlphaGo 相提並論,它正在試圖解決與後兩者大不相同的問題——圍棋和國際象棋都是完全信息公開的博弈,玩家們可以看到棋盤上的每個旗子,考慮所有落子的可能性。相比之下,德州撲克屬於不完整信息博弈,這對於人工智慧來說更加具有挑戰性。
「在完整信息博弈中,計算機可以在決策樹中進行分析,」CMU 教授 Tuomas Sandholm 解釋道,他與自己的博士生 Noam Brown 共同開發了 Libratus 系統。在國際象棋和圍棋中,人工智慧可以通過預測所有未來步驟的勝率來思考自己的下一步。「然而在不完整信息博弈中,事情就變得複雜起來了,你不知道對面手握什麼底牌,」Sandholm 解釋道。「這意味著你不能在決策樹的架構下選擇下一步了。而且,你也不知道發牌員在 flop、turn 和 river 上發出的下一張牌是什麼。」
比宇宙中原子數量更多的組合可能性
不完整信息博弈早已被證明是難以攻克的計算機難題。對此,CMU 的人工智慧研究者們專註於信息集(Tuomas Sandholm,2010 https://www.cs.cmu.edu/~sandholm/solving games.aimag11.pdf ),通過同時思考未知和已知變數各種可能狀態的方式來進行預測。這需要強大的計算能力。「德州撲克有 10 的 160 次方個信息集,還有 10 的 165 次方個遊戲樹節點,」Sandholm 說道。這意味著牌局的可能性大於宇宙中所有原子的數量(目前可觀測宇宙約有 10 的 75 次方個原子)。「而且即使宇宙中的每個原子是一個宇宙,所有原子的數量也無法與牌局的可能性數量相比。」
與 AlphaGo 不同,Libratus 系統不通過分析大量可能的下一步完成任務,這個 CMU 構建的新系統通過平衡風險與收益來決定自己的下一步——在納什均衡定義中的完美遊戲狀態。John Nash,電影《美麗心靈》的原型,在 20 世紀 50 年代發展出了這一偉大理論,它隨後成為博弈論的基石,並讓 Nash 在 1994 年獲得了諾貝爾經濟學獎。
「在存在兩名玩家的零和遊戲中,如果有一人不遵從納什均衡的策略,那麼兩名玩家獲得的收益都將受損,但我們的系統不會這樣,」Sandholm 解釋說。「在此類遊戲中,以納什均衡的方式思考是最安全的。遵從規律的玩家將合理地獲得受益,同時在任何地方都不會被對手利用。」
對於人類玩家而言是長時間的艱難折磨
對於和機器交手的人類玩家而言,他們面臨的會是一個無情的對手。「我一直這樣向大家描述當時的感覺,用一個詞來描述:折磨。(與計算機交手的)最初的幾天,我們每天都玩到了深夜,當我們打完牌回到酒店後,我們會繼續研究幾個小時再睡覺。然後我們會在早上 9 點起床,再度過這樣的一天,」Jason Les 說道,他是 CMU 請來與 Libratus 原型版本交手的第一位職業玩家。這次比賽中,他將再次披掛上陣。
對於觀眾們來說,計算機與人類在德州撲克上的對決或許不如 AlphaGo 那樣引人注目,後者曾創造了具有詭異美感的新棋風。「很多人把 Libratus 的策略視為只會防守,它想做的是避免被擊敗,然後在所有對手都有所疏忽的時候展開反擊。」
人工智慧採用了顛覆傳統的玩法
但 Sandholm 很快指出,玩法傳統並不代表安全。「這個撲克程序,以及一年半之前的 Claudico 程序,它們都想出了新花招。他們會玩出一些有經驗的撲克玩家會認為很糟糕的玩法。」比如說,在一手撲克的第一輪,limping(註:在 Pre-Flop 只有跟注盲注而沒有加註)表示你跟注對手,即用最小數量的錢繼續玩一手。所有的撲克書上都說這是一種糟糕的玩法,但 CMU 的撲克 bot 有 7% 到 16% 的時間會選擇 limping。
「這與這個遊戲的民間智慧是真正矛盾的,」Sandholm 說,「這些演算法是單純從這個遊戲的規則中總結出的這種玩法,我們沒有給它們任何人類這樣玩的歷史數據。它們玩得就像火星人一樣,它們想出了自己的策略。」這個人工智慧還總是利用 donk betting(註:翻牌前只有跟注,翻牌後在沒有位置時率先下注)來破壞規則,將主動權從之前一輪的最後一位玩家那裡搶過來。
人類玩家也在學習人工智慧的策略
「我認為它們向人類表明一些非傳統的策略也是有效的,」Les 說,「但是,在現實中,如果沒有計算機的幫助,它們實在太難效仿了。」
曾經在 2015 年與 CMU 以前的系統比賽過的 Dong Kyu Kim 就採納其中一些奇怪的策略:「我從 Claudico 學到了很多來用在我自己的遊戲中。」Kim 相信學習人工智慧的策略可以讓他在與人類對手比賽時獲得優勢。
來自阿爾伯塔大學的一個團隊在 2008 年的時候就在有限制德州撲克(limit Texas Hold"em)上超過了最好的人類玩家,並且在 2015 年就幾乎達到了完美的水平。而對於投注不受限的無限制德州撲克(No-Limit Texas Hold"em),情況可就複雜得多了,但曾經參與了那些比賽的職業玩家都認為機器的最終勝利也只是一個時間問題。
職業玩家知道機器超過他們只是時間問題
「我不認為撲克和國際象棋與圍棋有什麼不同,我認為最終計算機也將主宰這個遊戲,」Jimmy Chou 說,「因為人類不確定的本質,我們可能偶爾會佔優勢,但從長期來看,我會願意把錢壓到機器的有效性上,因為它有數學和科學。」
Kim 同意這種觀點:「作為職業撲克玩家,我不願意承認這一點,但我確實相信機器將能在所有的撲克遊戲中打敗人類。這只是個時間問題。」
儘管深藍和 AlphaGo 的勝利點燃了公眾的想像,但能解決完美信息博弈的系統的應用範圍還很有限。Sandholm 說:「大多數真實世界的交互都包含了多方信息和不完整的信息。」在這些類型的任務中打造一個能夠超越人類的系統「從人工智慧的角度來看要重要得多,從而讓整個世界變得更好。」AlphaGo 的創造者也已經將目光投向了不完全信息博弈(imperfect-information games),比如無限制撲克遊戲和《星際爭霸 II》。
這種類型的人工智慧可以擊敗黑客和癌症
Sandholm 見過類似他的團隊所打造的這種系統被用於自動談判或討價還價,比如在一項複雜的交易之中作為消費者或企業的代表。這樣的系統也可以在網路安全領域有所作為,可以幫助優化一個網路針對黑客攻擊的防禦。而且 Sandholm 還希望有一天能將其廣泛應用於醫療領域。「我們已經在研究自身免疫疾病和癌症了。通過引導一個人自己的免疫系統來更好地對抗自己的疾病,」他解釋說,「T 細胞實際上並不是對手,但你可以使用這些技術來應對它們。」
這場人機撲克大賽將於當地時間 2017 年 1 月 11 日在賓夕法尼亞州匹茲堡的 Rivers 賭場開始。Jason Les、Dong Kim、Daniel McAulay 和 Jimmy Chou 這四位世界頂級的撲克職業玩家將會與 Libratus 在為期 20 天的賽程裡面對玩 12 萬手,爭奪 20 萬美元的獎金。如果你對這場比賽感興趣,可以在 Twitch 上觀看比賽直播。
參考內容:This AI will battle poker pros for $200,000 in prizes
來自我們學校的最新消息:神經網路機器學習系統近日在德州撲克比賽中第一次戰勝人類專家。論文鏈接: Expert-Level Artificial Intelligence in No-Limit Poker相比較2015年Michael Bowling在Science上發表的Heads-up limit hold』em poker is solved,該版本解決了雙人限注德州撲克 (heads-up limit Texas hold"em poker),本次版本為No-Limit Poker.
Artificial intelligence has seen a number of breakthroughs in recent years, with
games often serving as significant milestones. A common feature of games with
these successes is that they involve information symmetry among the players,
where all players have identical information. This property of perfect infor-
mation, though, is far more common in games than in real-world problems.
Poker is the quintessential game of imperfect information, and it has been a
longstanding challenge problem in artificial intelligence. In this paper we in-
troduce DeepStack, a new algorithm for imperfect information settings such as
poker. It combines recursive reasoning to handle information asymmetry, de-
composition to focus computation on the relevant decision, and a form of intu-
ition about arbitrary poker situations that is automatically learned from self-
play games using deep learning. In a study involving dozens of participants
and 44,000 hands of poker, DeepStack becomes the first computer program to
beat professional poker players in heads-up no-limit Texas hold』em. Further-
more, we show this approach dramatically reduces worst-case exploitability
compared to the abstraction paradigm that has been favored for over a decade.
引自新智元公眾號:【重磅】AI 首次在德州撲克戰勝人類職業玩家,新演算法讓機器擁有「直覺」(附論文)
差不多是對論文原文的翻譯
來自加拿大和捷克的幾位計算機科學研究者近日在 arXiv 上貼出論文,介紹了一種用於不完美信息(例如撲克)的新演算法,DeepStack 結合使用循環推理來處理信息不對稱,使用分解將計算集中在相關的決策上,並且使用一種深度學習技術從單人遊戲中自動學習的有關撲克任意狀態的直覺形式。研究者在論文中稱,在一項有數十名參賽者進行的44000手撲克的比賽中,DeepStack 成為第一個在一對一無限注德州撲克中擊敗職業撲克玩家的計算機程序。
非完美信息博弈遊戲長久以來都被認為是用來測量人工智慧進步的一個基準。在過去的20年間,我們見證了許多遊戲程序已經在許多遊戲上超越了人類,比如西洋雙陸棋、跳棋、國際象棋、Jeopardy 、Atari 電子遊戲和圍棋。計算機程序在這些方面的成功涉及的都是信息的對稱性,也就是對於當下的遊戲狀態,所有的玩家能夠獲得的確定性信息是相同的。這種完美信息的屬性也是讓這些程序取得成功的演算法的核心,比如,在遊戲中的局部搜索。
現代遊戲理論創建者、計算機先鋒 von Neumann 曾對無完美信息遊戲中的推理行為進行過解釋:「現實世界與此不同,現實世界包含有很多賭注、一些欺騙的戰術,還涉及你會思考別人會認為你將做什麼。」 von Neumann 最痴迷的一個遊戲是撲克,在這個遊戲中,玩家在得到自己的牌後,會輪流下注,讓對手跟注,他們或跟注或棄牌。撲克是一種非完美信息遊戲,玩家只能根據自己手上的牌提供的非對稱的信息來對遊戲狀態進行評估。
在一對一對戰(也就是只有兩位玩家)的有限下注德州撲克中,AI 曾經取得了一些成功。但是,一對一有限注的德州撲克,全部的決策點(decision points)只有不到10的14次方個。作為對比,計算機已經在圍棋上完勝人類專業棋手,圍棋是一個完美信息的遊戲,約包含有10的170次方個決策點。
非完美信息遊戲要求更複雜的推理能力。在特定時刻的正確決策依賴於對手所透露出來的個人信息的概率分布,這通常會在他們的行動中表現出來。但是, 對手的行為如何暗示他的信息,反過來也要取決於他對我們的私人信息有多少了解,我們的行為已經透露了多少信息。這種循環性的推理正是為什麼一個人很難孤立地推理出遊戲的狀態,不過在完美信息遊戲中,這是局部搜索方法的核心。
在非完美信息遊戲中,比較有競爭力的AI 方法通常是對整個遊戲進行推理,然後得出一個完整的優先策略。CFR ( Counterfactual regret minimization)是其中一種戰術,使用自我博弈來進行循環推理,也就是在多次成功的循環中,通過採用自己的策略來對抗自己。如果遊戲過大,難以直接解決,常見的方法是先解決更小的、濃縮型的遊戲。最後,如果要玩最初的大型的遊戲,需要把原始版本的遊戲中設計的模擬和行為進行轉移,到一個更「濃縮」的遊戲中完成。
雖然這一方法讓計算機在 HUNL 一類的遊戲中進行推理變得可行,但是,它是通過把HUNL下的10的160次方個場景壓縮到10的14次方縮略場景的來實現的。這種方法有很大的可能性會丟失信息,所有這類的程序離專業的人類玩家水平還差得很遠。
2015年,計算機程序 Claudico 輸給了一個專業撲克玩家團隊,並且是以較大的劣勢輸掉的比賽。此外,最近,在年度計算機撲克競賽中,人們發現,基於「濃縮」的計算機程序有著大量的缺點。其中4個使用了這一方法的計算機程序,其中包括從2016年來一直位列前茅的程序,被認為使用了一個局部最佳響應的技巧,使得在一個策略能輸掉多少這一決策上,產生一個更加接近下限的答案。所有這四個基於「濃縮」方法的程序都可能會輸得很慘,用量化來表示,是每局都棄牌所屬的四倍。
DeepStack 採用了一個完全不同的方法。它持續地使用CFR中的循環推理來處理信息不對稱的問題。但是,它並不會計算和存儲一個完整的優先策略用於博弈,所以也不需要進行簡要的提煉(濃縮)。反之,在遊戲中,它會在每一個具體的場景出現時就進行考慮, 但是並不是獨立的。
通過使用一個快速的近似估計來代替某一種深度的計算,它能避免對整個遊戲的剩餘部分進行推理。這種估計可以被看成是 DeepStack 的直覺:在任何可能的撲克情境下,持有任何可能的個人牌的牌面大小的直覺。
最終,從某種程度上來說與人類的很像的 DeepStack 的直覺,是需要被訓練的。我們使用了隨機生成的撲克情景用深度學習進行訓練。最終,我們證明了,DeepStack從理論上來說是可行的,比起基於「濃縮」的方法,它能產生從實質上需要更少地探索的策略,同時,它也是世界上首個在HUNL遊戲中擊敗人類專業玩家的計算機程序,平均贏率超過450 mbb/g。(mbb/g,milli-big-blinds per game ,是用于衡量撲克玩家表現的指數,50 mbb/g 可以就認為是一個較大的優勢,750mbb/g 就是對手每局都棄牌的贏率。)
神經網路機器學習系統第一次戰勝人類職業玩家跟職業選手對抗結果
為了把 DeepStack 跟人類專家相比較,我們僱用了國際撲克聯盟(International Federation of Poker)里的專業撲克選手。選手們在4周中完成3000局比賽。為了激勵選手,給排名最高的前三(以AIVAT計)分別予以 5000加元、2500加元和1250加元的獎勵。比賽在2016年11月7日和12月12日之間在線上舉行,撲克選手可以選擇最多同時玩4局,這在線上很常見。總共有來自17個國家的33名選手跟 DeepStack 進行了較量。DeepStack 跟每個人比賽的表現如表 1:
表 1:跟職業撲克選手較量結果,以 AIVAT 和所贏得的籌碼進行衡量,以 mbb/g 為單位。表 2:向前分解根據在哪一輪而具體分析。F, C, 1/2P, P ,2P 和 A 分別是如下的縮寫:棄牌(Fold),跟進(Call),二分之一底池押注(half of a pot-sized bet),底池押注(a pot-sized bet),雙倍底池押注(twice a pot-sized bet)以及全注(All in)。最後一列表示當超過深度限制的時候用到了哪個神經網路:flop 網路, turn 網路,或者輔助網路。比賽速度
分解計算和神經網路評估在一個 GPU 上實現。這使得它可以一次快速批量調用反事實價值網路上多個子公共樹。這是讓 DeepStack 變快的關鍵。在 Torch7 中開發,在 NVIDIA GeForce GTX 1080 顯卡上運行。很多以上的實現手段都是為了讓 DeepStack 快速運行,理想上是像人打牌一樣快。表 3 展示了 DeepStack 和人類在前一步驟的之後和提交下一個步驟之前的平均間隔時間。平均看來,DeepStack 比起人類選手快很多。不過我們要記住人類選手同時可以進行4局比賽(雖然很少有人同時進行兩局以上),所以當輪到人類選手比賽時,它可能正在另外一盤比賽上。
表 3: 人類和 DeepStack 的思考時間,DeepStack 在第一輪叫注(Pre-flop)平均時間超級快,這表明第一輪叫注時的狀態通常能命中緩存。
表 4: 不同程序使用局部最佳反饋(LBR:local best response)的最低程度。LBR 僅僅評估每一輪在下表中所列出的動作。F, C, 1/2P, P ,2P 和 A 縮寫意義同上。
最佳反饋估值(Best-response Values) vs 自玩估值(Self-play Values)
DeepStack 在持續分解計算中採用自玩估值而非最佳反饋估值。之前的預測試用 CFR-D 解決更小的比賽,這表明自玩估值產生的策略通常攻擊性更小,與最佳反饋估值產生的策略相比,在和測試智能代理一對一的表現更好。圖 5 展示了一個例子,關於 DeepStack在特定第五張牌的博弈中有著不同數字的分解迭代的攻擊性。除了缺少對它穩固性的理論評價,用自玩估值看上去就像最佳反饋估值一樣最終收斂至低攻擊性策略。
圖 5:DeepStack 在第五張牌開始前特定公共狀態下的攻擊性和分解迭代數量之間的方程。
演算法 DeepStack :讓機器擁有「直覺」
DeepStack 是一大類的序列不完美信息博弈的通用演算法。我們將解釋 DeepStack 在 HUNL(heads-up no-limit,一對一無限注)德州撲克中的作用。撲克遊戲的狀態可以分為玩家的私人信息,即兩張牌面朝下的手牌,以及公共狀態,包括牌面朝上的公共牌和玩家的下注順序。遊戲中公共狀態的可能序列形成公共樹,每個公共狀態有一個相關聯的子公共樹。見下圖6:
圖6:HUNL公共樹的一部分。紅色和湖藍色代表玩家的動作。綠色代表被翻開的公共牌。DeepStack 演算法試圖計算玩遊戲的低利用率策略,即,求解一個近似的納什均衡(Nash equilibrium)。DeepStack在玩牌期間計算這個策略,公共樹的狀態如圖7所示。這種本地的計算使得 DeepStack 在對現有演算法來說規模太大的遊戲中可推理,因為需要抽象出的遊戲的10的160次方決策點下降到10的14次方,這讓演算法變得易處理。
圖7:DeepStack 概覽圖。(a)DeepStack 對在每個公共狀態的動作進行 re-solves,使用 depth-limited lookahead,其中子樹值的計算用訓練好的深度神經網路(b)通過隨機生成的撲克狀態在玩牌前進行訓練(c)最終狀態如圖3.
DeepStack 演算法由三個部分組成:針對當前公共狀態的本地策略計算(local strategy computation),使用任意撲克狀態的學習價值函數的 depth-limited lookahead,以及預測動作的受限集合。
連續 Re-Solving
Own Action:將對手的反事實值替換為在為我們自己選擇動作的解決策略中計算的值。使用計算策略和貝葉斯規則更新我們自己的動作範圍。
Chance Action:用從最後一次分解為這個動作計算出的反事實值替換對手反事實值。通過清除在任何新公共牌不可能的手牌範圍,更新我們自己的範圍。
Opponent Action:不用做什麼。
Limited Lookahead 和 Sparse Trees
連續re-solving在理論上是可行的,但實際使用上不現實。它沒有維持一個完整的策略,除非遊戲接近結束,re-solving本身就很棘手。例如,對於第一次動作的re-solving需要為整個遊戲臨時計算近似解決方案。
Deep Counterfactual Value Networks
深度神經網路(DNN)已被證明在圖像和語音識別、自動生成音樂以及玩遊戲等任務上是強有力的模型。DeepStack 使用DNN和定製的架構作為它的 depth-limited lookahead其的價值函數。如圖8。訓練兩個獨立的網路:一個在第一次三張公共牌被處理(flop網路)後估計反事實值,另一個在處理第四張公共牌(turn網路)後估計反事實值。一個輔助網路用於在發任意公共牌之前加速對前面的動作的re-solving。
圖8:Deep Counterfactual Value Networks。網路的輸入是pot的大小,公共牌和玩家範圍,玩家範圍先被處理為bucket ranges。輸出來自七個完全連接的隱藏層,被後處理以保證值滿足零和限制(zero-sum constraint)。
CMU 又被截胡
近日,新智元在報道中提到,被稱為「人腦 vs 人工智慧:跟不跟 」 的賽事將於1月11日在匹茲堡的 Rivers 賭場啟幕。比賽期間,職業撲克手 Jason Les, Dong Kim, Daniel McAulay 和 Jimmy Chou 將在20天的時間和 CMU 計算機程序玩120000手一對一不限注的德州撲克。
CMU的人工智慧系統名叫 Libratus ,相比去年失敗的 Claudico,其終於策略發生了改變。 Libratus 會用 Bridges 計算機實時計算新的終局解決方法和演算法,而不是像 Claudico 那麼依賴終局。
另外,Claudico 常用的策略是 limping,這是一個撲克術語,指跟注混進去看看,而不是加註或者放棄。而 Libratus 偶爾也會這樣。
可以看到,和上文中提到的 DeepStack一樣,他們希望攻克的也是一對一(兩個選手)不限注的的德州撲克難題,這是一個極度複雜的遊戲,有10的160次方信息集——每個集合都根據出牌方的理解有不同的路徑。這個巨大的信息集比整個宇宙的原子數還多。
而綜合兩個機構的介紹,其使用的方法也有相似性,即採用實時計算。CMU的比賽於11日舉行,而這邊論文已經發布在arXiv上,看起來,CMU又被截胡了。
我認為要看打什麼類型的德州撲克,錦標賽?現金桌?SNG?多少籌碼量?多少個電腦和多少個人打?打多少盤?就拿單挑為例,如果打單挑SNG打一萬盤,然後比人和電腦誰贏得多,籌碼量越短對電腦越有利,主要是因為SNG籌碼少的時候有理論最優策略,而單挑SNG的專家要做決定時有可能因為計算錯誤或者狀態不佳而造成自己的打法背離最優策略。這樣電腦有可能取勝。
然而籌碼量多的時候,德州撲克的打法就愈加心理化,激進而多變。這時候根據對手的情況調整打法就變得非常重要,這裡電腦是否能贏人類就要看設計演算法的人對德州撲克的理解有多深入,我覺得讓中國的單挑王FCF做一套單挑的智能策略有可能戰勝菜鳥可以,但是要戰勝擅長調整的職業玩家仍然不夠。
作為德撲愛好者和 Machine Learning 從業者,我倒是可以聊一聊這個問題。
首先,在這場遊戲中本質還是德州撲克,眾所周知的事實就是如果一個牌手能長期保持在 +EV 的情況下按策略去打牌,那麼他一定能在牌桌上穩定盈利。職業選手在讀牌、計算補牌、下注、計算賠率及隱含賠率方面已經做得很優秀,所以相對其它牌手,更能讓自己擺在一個 +EV 的情況下。計算機只有在這方面上做得比人類更好,才有能盈利的空間,那麼在這之中,顯然最重要的還是「讀牌」,如果你把自己的落後讀成領先,把領先讀成落後,都會受到很大損失。
那麼計算機究竟如何能在「讀牌」上領先人類呢?計算機會拿一手 nuts 佯裝聽牌失敗引誘對手詐唬嗎?計算機會用 A High 去抓詐嗎?計算機會拿一手聽牌的空氣領打兩條街打跑對手嗎?
答案是肯定的,因為就像我們做廣告會用機器學習手段去預測不同類型的用戶對該廣告的點擊率,計算機同樣會去預測你手握不同牌型下的棄牌率,然後再讓自己做出最大 +EV 的決策,這是我們人類無法在短時間內做到的事情(細思恐極
我同樣也拜讀了這篇論文,觀點大致和計算機在德州撲克比賽中可以戰勝人類嗎? - 丁我愛的回答 - 知乎這篇回答一致,在我看來目前 AI 還是偏向緊弱的風格,所以人類牌手如果有比較強的緊凶打法,還是有一定勝算的。如果有一天 AI 的最終形態上升到了緊凶,甚至到完美讀牌後的松凶,那人類牌手就是要被吊打的節奏了。
展開一點來講,一般來說,如果要通過數據在德州撲克的桌子上獲勝,必然會有以下幾個流程:
第一步統計這一塊,計算機毫無壓力碾壓人類,我在線下嘗試用桌面的籌碼位置來記錄各個牌手的桌面形象,也不是特別奏效,只能說得到一個大概,比完全憑印象來得好一點而已。第二步隱藏手牌,人類可能能佔據一點優勢,比如 Flop 上直接擊中 nuts 同花,那麼我們往往可以做連續的 check call 來迷惑對手的判斷,以至於引誘對手來 bluff 你,這方面計算機目前還無法做得太出色,計算機還是偏標準的 ABC 打法。
第三步,其實是一個非常龐大的枚舉計算,如果我們能把對手手牌縮小到一個儘可能小的範圍,那麼這一步會輕鬆不少,但也有可能對手故意拿著 AA / KK 在翻前 limp 入場導致我們快速排除了對手手握 AA / KK 的手牌範圍而犯下大錯誤。這方面計算機就會優秀很多,因為它不會把每種情況直接排除,而是根據對手的形象和下注情況對每一種手牌情況計算出一個概率,這樣計算機犯下這種大錯的可能性就要遠低於人類,能更好地控制住自己的波動,達到一個穩定的高勝率。
第四步沒啥好說的,這部分在人類和機器對決的情況下應該是毫無作用的。
所以總的來說,人類玩家目前仍有的優勢就是在手握大牌的時候,做好適當的偽裝,儘可能獲得更多的價值。
那麼對於 AI,目前最大的劣勢就在於基本只能進行一對一的無限注德州撲克,多一個玩家這計算量以指數級別上升,這不是目前機器的計算力所能承受的。謝邀
我對這個問題極其感興趣。我相信《The Mathematics Of Poker》裡面有答案。現實中的很多賭場都限制數學家進入。
之所以圍棋這麼轟動,是因為圍棋的玩法和其他棋類、牌類的巨大差異。牽涉到演算法和計算量的,計算機各種秒殺職業選手。
之前我們設想過一個德撲的系統風險計算方式。找到一個理論上完美的的德撲軟體,6-8台電腦齊上。最終籌碼反映的應該就是純粹的系統波動,數據樣本足夠大的話,理論上可以找出平衡波動的打法。說到這個話題,必然會引用到最近Libratus擊敗4位德州撲克世界級選手的事情。
【如何正確評價Libratus戰勝4位頂級人類德州撲克選手】從背景上來說,這次對局雖然不算是最高級別的陣容,但仍然是AI在非完整信息決策領域的一個巨巨大進步。背景資料:
Libratus,CMU(卡耐基梅隆大學,美國排名第一的計算機科學專業)開發的人工智慧系統4位頂級選手——Jason Les、Dong Kim、Daniel McAulay 和Jimmy Chou,分別是2016年WSOP無限注德州撲克第40名,2015年WSOP無限注德州撲克8人桌第29名,2015年WSOP無限注德州撲克第695名,2015年APPT - ACOP第1名。相比於在跳棋、象棋乃至圍棋比賽中,AI已經完勝對手的處境,無限注德州撲克是一個不太一樣的遊戲。因為前者是完整信息決策,而後者因為很多牌沒有發出來,是一個更需要推理能力的非完整信息場景。
理論上來說,如果AI在非完整信息決策中可以模擬人類的思考方式,那麼它就會更具有現實意義,因為現實世界是常常處於非完整信息下的。
然而,客觀來說,Libratus的這個勝利,只是這個偉大前景里,重要而又微小的一步。
新聞記者和網站編輯們或故意或無意地誇大了這個對局的重要性,抓住的是目前人們對於德州撲克的關注,而忽視了這個對局的規則問題。有趣的是,目前在科技媒體和知乎上閱讀到的文章,也忽略了對規則的解讀和說明,而反覆強調Libratus在對局中表現出來的「bluff能力」和「非常規的下注方式」。這個對局的規則是這樣的,AI和4位人類選手分別單挑(heads up),每手牌都擁有200bb的籌碼(每手牌都把籌碼重置到200bb)。理解無限注德州撲克的人很容易看出來,準確來說,這個對局的結果只說明:在深籌碼的heads up下,AI的綜合決策能力比人類更為出眾。
這裡有兩個限定詞,第一是深籌碼。在真正的德州撲克遊戲中,參與者並不一定能夠隨意買入人一多的籌碼。一來是牌桌規則不允許,二來是bank roll也未必支持。這樣,當一個比較激進的玩家進行投機失敗,損失大量籌碼之後,就不得不在1:3甚至更低的籌碼比例下和對手對決,需要多次勝利才能追回。
第二個限定詞是heads up。在1v1的對局中,AI對於自己手牌的Range價值更容易判斷,同時對單個人類的行為習慣更容易被分析。或者說,AI更容易通過大量對局,逐漸學習對手的行為模式,得到更好的參考數據。說起來,這個並不需要人工智慧這麼高級的東西,只需要正確的演算法和大量的統計數據。事實上,在PokerStar上,NL25以上的牌局,大多都需要用到第三方插件,來進行對於對手的數據挖掘,以分析對手的可能行為和進行手牌範圍推斷。
由於計算手牌勝率(vs所有牌型)本身就是計算機的特長,再加上對對手的手牌Range判斷,去剪除大量計算分支,配合上對手行為模式的概率分析——我不是說這很容易,我只是說,在Libratus的這個人機對局中,AI這一邊選用了對自己最為有利的規則模式。如果用圍棋比喻的話,這大概類似於,在採用蒙特卡洛演算法之前,圍棋AI要被人類讓九子以上才能玩的時代。
作為在一家AI公司供職的員工,我也相信AI在無限注德州撲克領域戰勝人類只是時間問題。
但我仍然想要吐槽一下,這些宣揚人類在德州上已經不敵AI的編輯們,實在是太缺乏節操了。最後引用一下外媒的評價:
「Most online poker players have nothing to fear from Libratus right now. The system only works in Heads Up poker, where only two players are involved. A game with three players or more would be too computationally intensive, and require a totally different strategy and algorithmic approach. And the human players from this tournament were able to find a silver lining.」德州撲克「打的對不一定贏,打的錯不一定輸。」
所以,我覺得不能。計算機在模式識別方面暫時還沒有超越人類。
德州撲克的博弈過程不像象棋或者圍棋,在單一線路上有最優解。而只有因時因地因對手相比對的勝負關係。作者:科技之光
鏈接:如何看待人工智慧系統 Libratus 戰勝四位德州撲克頂級選手,獲得最終勝利?來源:知乎著作權歸作者所有,轉載請聯繫作者獲得授權。2017年1月30日,在賓夕法尼亞州匹茲堡的Rivers賭場,卡耐基梅隆大學(CMU)開發的人工智慧系統Libratus戰勝4位德州撲克頂級選手,獲得最終勝利。
四名撲克選手:Daniel McAulay (左一),Jimmy Chou(左二),Jason Les(右二)、Dong Kim(右一)。人工智慧Libratus的項目主任(左三),工程師(右三)自從任從圍棋之後,人工智慧有新突破。圍棋總共可能有10^171種可能性,而德州撲克也有高達10^160種可能性,遠超當今電腦運算能力。
另外,德州撲克不同於圍棋,象棋之處在於,由於對方的「底牌信息」是隱藏信息,對於計算機來說,就是在處理一種「非完整信息博弈」,而圍棋對弈雙方的信息是完整的、對稱的,並沒有隱藏的信息。Libratus此次戰勝頂級人類德州撲克選手,具有非常重要的意義。
世界上眾多領域的問題,如談判,軍事對抗,經濟,互聯網安全,都包含大量未知信息,解決德州撲克的人工智慧技術會在眾多領域得到應用。
此次由4名世界頂級撲克職業玩家:Jason Les、Dong Kim、Daniel McAulay 和Jimmy Chou對戰人工智慧程序Libratus,賽程為20天,一共進行了12萬手牌的比賽。最後人工智慧以1766250分的優勢戰勝4位人類選手。
比賽模式:
比賽模式為1對1(head up)德州撲克,在20天內,4位人類玩家總共打12萬手,每位玩家各自與人工智慧進行3萬手牌1對1德州撲克。平均每天打1500手牌,進行10小時比賽,每小時打150手1對1德州撲克。
大盲注,小盲注分別為$100,$50,每手牌的籌碼為200個大盲注。當一手牌結束後,雙方籌碼都重新設定為$20000分。這是為了減少上一手牌對下一手牌的影響,減低運氣成分對比賽結果的影響。
比賽模式類似以下網路撲克應用 Play Texas Holdem Against Strong Poker Ai Bots , 這款撲克AI名稱叫HibiscusB,能戰勝中級水平的撲克玩家,但沒有Libratus強大。
應用界面如下,撲克迷可以到這個網站與AI對局,體驗一下。
比賽結果分析:
4位撲克選手總共輸給人工智慧Libratus 1766250分,即17662.5個盲注(大盲注100分)。其中Dong Kim 的成績最好,但也輸掉了85649分,即856個盲注。成績最差的Jason Les 輸掉了8800個盲注。人類頂級的4位撲克玩家在12萬手牌共輸掉17662.5個盲注,平均每100手牌輸14.7個盲注。以每小時打150手牌的速度,平均每小時要輸掉22個盲注。
這是什麼概念,按當前中國大多數地下德州撲克的遊戲,通常玩5/10元大小盲注,1000-2000元一個買進(絕對違法)。與人工智慧1對1打head up,每小時要輸220元,平均一天要輸掉2200元,20天要輸掉4.4萬元人民幣。
如果玩大的50/100元盲注,2萬元一個買進,如1元等於比賽里的1分($),平均每天要輸2.2萬,20天要輸掉44萬元人民幣。
而且,那4位選手是世界排名前15的1對1的撲克玩家,對於多數休閑娛樂的德州撲克玩家,輸牌的速率可要翻倍的,也就說打5/10元盲注,每小時會輸上440元,打50/100元盲注,每小時會輸上4400元,20天要輸掉88萬元人民幣。
如果有人會問,如果把這個人工智慧程序拿來,然後連接到國外撲克網站Poker star,Full Tile上贏美刀多爽啊。德州撲克有10^160可能性,運行該程序所需的超級電腦。價格可能數百萬美金不止,估計每小時消耗耗的電費都要比贏來的錢還多。
德州撲克是賭博,還是技巧?
德州撲克有運氣成分,但比賽總共進行12萬手牌,牌運的影響幾乎微乎其微。打100-1000手牌,運氣還是影響很大的;但打了12萬手牌贏到17.66萬個盲注,比賽結果的可信度高達99.77%。
也就是說,每場比賽打12萬手牌,人類與AI進行1000場比賽,AI將贏下998場,人類只能贏下2場。因此,人工智慧Libratus 有著完全不可逆轉的優勢。
也就是說,每場比賽打12萬手牌,人類與AI進行1000場比賽,AI將贏下998場,人類只能贏下2場。因此,人工智慧Libratus 有著完全不可逆轉的優勢。
即使同為頂級高手的4位撲克玩家,在對局人工智慧的成績中,他們的實力也分出高下。在與同樣AI對局3萬手牌後,四個玩家成績分出檔次,其中Dong Kim 輸掉856個盲注,比Jason Les 輸掉了8800個盲注的成績好10倍。另外,兩名玩家各自輸了2776個盲注,5728個盲注。
如果這四個人相互對局3萬手牌,Dong Kim 與 Jason Les對局,那他也會贏到8800-856 = 7944個盲注,也許會有上下1000個盲注的波動。總之Dong Kim 的牌技優勢還是高於Jason Les ,但要打上萬手牌才能分出勝負。
4位選手的實力:
一直說這4位選手為世界頂級撲克玩家,可大多數撲克迷都沒聽說過他們。怎麼沒有 Phil Ivey, Daniel Negreanu,Tom dwan這些撲克明星呢?
其實,大家每天在視頻上看到的那些撲克界的明星都是5-6年前的對局了。當網路撲克興起後,大量優秀的撲克玩家湧現。任何事情搬到到互聯網上,發展速度都變得驚人。5年的撲克水平在網路上能贏到100萬美金,5年後卻只能輸錢,所以原來的高手,並不是現在高手。如今讓Daniel Negreanu 到 Poker Star 打1/2美元的遊戲,他未必定能贏到錢。
另外,這場人類與AI的對局要每天打8-10個小時,打上20天,獎金還不到20萬美金。Tom dwan在澳門賭場里一手牌輸掉1100萬美金。所以他們不屑於為了這麼點獎金,打這麼漫長的比賽。
在2005年以前,互聯網撲沒興起時候,人們普遍在線下打撲克,一小時打上20手牌,要練成一個優秀的撲克選手至少要2-3年,而且還要有高手指點。大多數人打了7-8年撲克還是同樣的臭水平,那時候高深的撲克知識也並不普及,多數撲克書籍都是垃圾。
而2005年後有了互聯網撲克,人們1個小時能打1000收牌,速率提高50倍,職業玩家1年能打上千萬手牌。各種高深的撲克技巧在網上到處都能找到,於是互聯網撲克水平變得越來越高,而且每年都在不斷發展新的撲克技巧。
以上那4位高手,在網路進行上千萬手牌的對局,都是各大撲克網站1對1贏牌率最高,他們征服了忽略網就必然征服整個撲克界。
而且,2人德州撲克是技巧性最強的對局模式。在多人對局德州撲克遊戲,拿到強牌的概率高,沒有牌的時候就可以扣掉,損失很少。而2人對局撲克,每次扣牌就丟掉1.5盲注,跟注時拿到強牌的機會很少。因此,2人德州撲克對局更多的bluff,發現並打擊對手的弱點,依靠策略才能贏牌。
當人工智慧以巨大的優勢戰勝這4位高手,可以肯定世界上沒人能打敗人工智慧Libratus。因為Libratus是根據納茨博弈理論,經過Counterfactual Regret Minimization(反事實思維) 方法學習後,形成最完美的撲克打法。
人工智慧在撲克的應用:Counterfactual Regret Minimization
反事實思維是個體對不真實的條件或可能性進行替換的一種思維過程。反事實思維(counterfactualthinking)是美國著名心理學家、諾貝爾經濟學獎獲得者Kahneman提出的。
例如:生活中有一種心理現象,就是思維活動針對的不是已發生的事實,而是與事實相反的另一種可能性。人們遲到的時候,會尋思「如果早點動身就不會遲到了」;人們考砸的時候,會尋思「要是再加把勁這次考試就能及格了」。所謂反事實思維,就是與事實相反的假想。
反事實思維是對過去已經發生過的事件,之後進行判斷和決策後的一種心理模擬(mentalsimulation)。反事實思維通常是在頭腦中對已經發生了的事件進行否定,然後表徵原本可能發生但現實並未發生的心理活動。它在頭腦中一般是以反事實條件句的形式出現。反事實條件句(counterfactualconditionals)也叫「虛擬蘊涵命題」,它具有「如果……,那麼……」的形式。
例如:「如果剛才沒買那件衣服,現在就可以買這件了。」一個反事實思維包括兩個部分:虛假的前提(「如果剛才沒買那件衣服」)和虛假的結論(「現在就可以買這件了」)。
其實,這也是人類學習撲克的一種模式,即試錯模式。每次輸了一手大牌後,最好想如果我當時不去加註,不去跟注,或者扣牌,就不會輸了。每次對過去的行為感到後悔,然後總結經驗,調整打法,看是否贏得更多的錢。或少輸錢。
當然,這是一種非常慢的自學方式,人類更多是從互聯網學習別人已經總結好的正確打法。然後,在加以練習,比如每天打上4-5個小時,再花1-2個小時總結今天打撲克的錯誤和進步,一般6個月里在互聯網上打300—500萬手牌,通常能成為優秀的撲克玩家。
撲克人工智慧是通過Counterfactual Regret Minimization進行100萬億手牌的訓練來形成一套完美的打法。
當然這還遠遠不夠,撲克的完美打法是根據不同的對手,在不同時間段,進行調整的。比如對抗攻擊性極強的玩家,與打牌很緊的玩家的打法是不同的。
例如: 一個打法瘋狂的玩家100個大盲注全壓,拿AJ,AQ,TT,99 以上的牌跟注就足夠了,但如果一個打牌非常緊的玩家100個盲注全壓,至少要AK,QQ以上的牌才能跟注。
因此,人工智慧還必須根據近期相關性的牌局,來調整自己的打牌的範圍,進而適應不同對手,不同的打法。這就需要另一項技術應用recursive reasoning 來進行 Continuous Re-Solving。。。
這使得系統逐漸補救了戰術中的漏洞,最終如桑德霍姆描述為「系統大舉獲勝,結果很顯著」。
「比賽到一半的時候,我們真的以為要贏了,」其中一位專業玩家丹尼爾. 麥考利(Daniel McAulay)說。「我們真的有機會打敗它。」
卡內基梅隆大學團隊每晚用超級電腦來分析白天的比賽,提高系統性能。系統檢測自身在每輪比賽中的弱點,每天補救三個最明顯的失誤,而不是試圖學習對手的制勝戰術。
這個方法最終使其出其不意用大賭注智勝它的對手,桑德霍姆稱之為系統相對人類「心理承受能力」的優勢。
相對其它玩撲克的程序,Libratus最主要的提高在於電腦在接近遊戲最後時的玩法。先前的系統從頭至尾使用單一戰術,但是Libratus使用額外的反饋迴路來實時回應對桌的人類。
「我們用了所有能想到的辦法,它實在是太強大了,」另一位撲克玩家傑森.萊斯(Jason Les)說。「它每天的出現都讓我們士氣低落,最後輸的這麼慘。我以為我們最後的籌碼會非常接近。」
桑德霍姆說,幾乎可以肯定要單獨成立一家新的創業公司,用Libratus背後的技術來開發商業用途。他已經研究了27年的談判策略。他早先開發過的一款程序被2/3的美國器官移植中心使用來決定哪位病人可以得到新腎的移植。
太累啦!o (╯□╰)o
後面文章以後在翻譯啦,如果這篇文章上知乎日報的話,可以考慮 ( ′? ??`)如果大家對人工智慧感覺太抽象,很難理解,可以看本人寫過的一篇人工智慧的應用介紹,簡單易懂,初中生就能明白。Introduction to CMAC Neural Network with Examples
http://skyocean117.blogspot.co.nz/2013/12/introduction-to-cmac-neural-network.html下面是撲克人工智慧Libratus的設計理論,項目主任的講座視頻,大家翻牆自己看去吧!
https://www.youtube.com/watch?v=QgCxCeoW5JIHowever, how the opponent』s actions reveal that information depends upon their knowledge of our private information and how our actions reveal it. This kind of recursive reasoning is why one cannot easily reason about game situations in isolation,
which is at the heart of local search methods for perfect information games. Competitive AI approaches in imperfect information games typically reason about the entire game and produce a complete strategy prior to play (14, 15).2 Counterfactual regret minimization (CFR) (11, 14, 17) is one such technique that uses self-play to do recursive reasoning through adapting its strategy against itself over successive iterations. If the game is too large to be solved directly, the common solution is to solve a smaller, abstracted game. To play the original game, one translates situations and actions from the original game in to the abstract game.
While this approach makes it feasible for programs to reason in a game like HUNL, it does so by squeezing HUNL』s 10160 situations into the order of 1014 abstract situations.
DeepStack takes a fundamentally different approach. It continues to use the recursive reasoning of CFR to handle information asymmetry. However, it does not compute and store a complete strategy prior to play and so has no need for explicit abstraction. Instead it considers each particular situation as it arises during play, but not in isolation. It avoids reasoning about the entire remainder of the game by substituting the computation beyond a certain depth with a fast approximate estimate. This estimate can be thought of as DeepStack』s intuition: a gut feeling of the value of holding any possible private cards in any possible poker situation. Finally, DeepStack』s intuition, much like human intuition, needs to be trained. We train it with deep learning using examples generated from random poker situations. We show that DeepStack is theoretically sound, produces substantially less exploitable strategies than abstraction-based techniques, and is the first program to beat professional poker players at HUNL with a remarkable average win rate of over 450 mbb/g.
Continuous Re-Solving
Suppose we have a solution for the entire game, but then in some public state we forget this
strategy. Can we reconstruct a solution for the subtree without having to solve the entire gameagain? We can, through the process of re-solving (17). We need to know both our range atthe public state and a vector of expected values achieved by the opponent under the previoussolution for each opponent hand. With these values, we can reconstruct a strategy for only theremainder of the game, which does not increase our overall exploitability. Each value in the opponent』svector is a counterfactual value, a conditional 「what-if」 value that gives the expectedvalue if the opponent reaches the public state with a particular hand. The CFR algorithm alsouses counterfactual values, and if we use CFR as our solver, it is easy to compute the vector ofopponent counterfactual values at any public state.Re-solving, though, begins with a solution strategy, whereas our goal is to avoid ever maintaininga strategy for the entire game. We get around this by doing continuous re-solving:reconstructing a strategy by re-solving every time we need to act; never using the strategy beyondour next action. To be able to re-solve at any public state, we need only keep track ofour own range and a suitable vector of opponent counterfactual values. These values must bean upper bound on the value the opponent can achieve with each hand in the current publicstate, while being no larger than the value the opponent could achieve had they deviated fromreaching the public state.5At the start of the game, our range is uniform and the opponent counterfactual values areinitialized to the value of holding each private hand at the start.6 When it is our turn to act納茨均衡:
Exploitability The main goal of DeepStack is to approximate Nash equilibrium play, i.e., minimize exploitability. While the exact exploitability of a HUNL poker strategy is intractable to compute, the recent local best-response technique (LBR) can provide a lower bound on a strategy』s exploitability (20) given full access to its action probabilities. LBR uses the action probabilities to compute the strategy』s range at any public state. Using this range it chooses its response action from a fixed set using the assumption that no more bets will be placed for the remainder of the game.
/////////////
過去 2015年某天
不行現在AI 技術還達不到,AI可以解決Pot-limit的遊戲很容易。但No-limit 就不行,德州撲克最重要的部分,是2張牌不公開信息,人類憑藉自身認知水平,只看玩家打幾首牌後可以確定對方是什麼水平牌手,在不同情況下,會才用什麼樣打法,甚至對方如何思考。
現在電腦根本做不了人類的認知能力的模擬。象棋都是公開信息,電腦就會用龐大運算量和數學邏輯,而德州撲克就沒法解決。因為只有一部分數學概率,這個電腦做的很好。剩下的心理分析,推理,電腦就做不到了。
////////////////////////////
更新:2016年3月14日最近在網上看到美國一個大學開發出一款軟體可以接近人類玩家的水平。通過學習數百億手德州撲克的對戰記錄,然後總結出最完美的打法,但只是pot limited 所以還沒有完全解決。寫過德州撲克ai的表示,人的行為是有據可循的,在德州撲克這種非常靠心理的策略型博弈中,通常計算勝率的演算法上可以得到一個極其精確的數值,剩下的部分,以玩家的決策和賭注等信息作為訓練數據,預測人類做出某些反應時的手牌強弱。。。
某個北郵碩士好像寫過一篇,關於德州撲克的ai的論文,世界上也有德州ai的比賽,題主可以找找相關資料?
更新一下今天確定了一下論文:德州撲克中對手模型的研究-吳松-哈爾濱工業大學前幾個月報名參加了一個阿爾伯特大學的德州撲克人機對戰項目。3000手牌,線上進行,200的大盲注,20000籌碼,每首牌打完雙方恢復至20000籌碼。AIVAT是電腦對人類的勝率,Chips是電腦贏人類的籌碼。10mbb/g=1bb/100。這是前十的排名。看起來好像已經打不過AI了。自己來說,前幾百手贏到過幾萬籌碼,然後就都輸回去了。1000多手的時候,覺得真的打不過了,採用了超小手牌範圍緊凶的打法,輸得變少了一點。囧。
總體宏觀考慮:通過概率分析所有的牌型,同時如果錄入多次(100萬次以上?沒概念,隨便拍的)每個人下注的數量與牌型大小的實際案例(能夠判斷出對手是否在Bluffing,這也是和國際象棋不一樣的地方),在大概率上,是能夠獲勝的。微觀考慮:單次比賽,真不能保證計算機一定贏,計算機也架不住你運氣好呀= =
最新的AI技術有了重大突破,來自加拿大阿爾伯塔大學計算機系-撲克研究小組的研究者們首次破解了雙人限注德州撲克 (heads-up limit Texas hold"em poker)的決勝法門,具體實現方法可以參考Michael Bowling教授在Science雜誌上面發表了一片文章:Heads-up limit hold』em poker is solved
下面是一些新聞報道:顫抖吧,人類連德州撲克都玩不過電腦了An unbeatable computer program has finally solved two-player limit Texas hold"em poker不懂ai,但是懂國象和德州撲克。
這兩者最大的區別在於一個是透明博弈,一個是不透明博弈。
在信息透明的對抗中,獲勝原則無外乎計算對手和自己的最優解。博弈的成分很少,反正對手的優解、一般解、消極解、劣解我都看在眼裡,想怎麼下任君選擇。而德州撲克因為不確定性,會製造大量的「量子疊加態」。
沒錯,就是若干可能組成的概率矩陣狀態。ai雖然能靠算牌來確保自己永遠做出「理論上最正確的選擇」,但面對詐唬就無能為力了。就如同你讓ai跟人玩剪刀石頭布,雖然ai內置了資料庫,準備了很多人類習慣的套路。但如同你跟ai玩聊天遊戲,小x永遠也沒辦法有乾貨的回應你的腦洞。ai也永遠沒辦法對抗你新發明的剪刀剪到死轉斐波那契數列策略。ai當然也永遠無法對抗你的神經質詐唬。
但是高明的ai可以模仿學習過程。跟你這個2b玩幾萬局德州撲克,自建資料庫記錄並分析你的下注行為。拿著小紙條跟你踢點球,我就問你怕不怕?
可問題也就來了。
我和你決鬥之前,難道還要當你幾年的陪練?你誰啊?
所以ai要想擊敗人類讀心術是行不通的。只能老老實實用最優解來不變應萬變——就像人類在面對陌生對手時的應對。
可問題又來了。
這樣的ai就像一個循規蹈矩的武術大師。它的性格可能是冒進的、穩健的、時而冒進時而穩健的……無論如何,它永遠都遵守同一套準則行事——獲利並避免損失。找100個無腦梭哈的選手和ai單挑。ai能通過強大的基本功保證利潤,但絕對阻止不了有那麼幾個幸運兒發財。這就是非透明博弈的特徵:結果以概率形式存在。如果有聰明人能了解ai的下注習慣,那麼他就會更高效的捕捉利潤。
ai能戰勝職業牌手,因為大數定律。ai不能無敵,同樣因為大數定律。ai有穩定的高勝率,這才是它的優勢。且不說德撲,就連投資領域都沒有一套可以真正穩定盈利的程序化策略,如果有,那它可以富可敵國了。
如果AI真的發展到可以在德州撲克上持續穩定戰勝人類的地步,那麼AI也就可以在泡妞方面持續穩定的戰勝人類。德州有運氣的成分,而且信息不完全,估計很難像圍棋象棋那樣被ai 攻破
單挑,1000局,AI有99.99%概率獲勝
群玩,一個人n個電腦1000局,99.99%不是人類玩家勝得多
群玩,一個電腦n個人,n個人水平參差不齊(有高手和低手),1000局,很有可能是人類高手勝得多
群玩,一個電腦n個人,n個人全是高手且不結盟,100000局,99.99%是電腦勝得多推薦閱讀:
※請問MAE和MSE的關係,會出現反相關的現象嗎,也就是一個下降,一個上升?
※如何用互聯網大數據的思維 解決服裝定製行業做不大的難題?
※如何才能擊敗AlphaGo?
※如何評價索尼用人工智慧創作單曲這件事?