人工智慧上牌桌

分享至

人工智慧上牌桌

撰文/Paul Parsons|譯者/高英哲|插圖/Joe Waldron
轉載自《BBC知識》2018年2月第78期

西洋棋愛好者看著卡斯帕洛夫雙手抱頭,跟 IBM 的「深藍」進行第六場、也是最後一場對弈。(圖片來源:Getty)

不過,加拿大亞伯達大學電腦科學家的努力成果,可能讓玩撲克的雄風一去不復返。科學家打造一套人工智慧(AI)程式「深疊」(Deep Stack),不需要懂得任何心理學、讀心術或使詐技巧,單靠硬梆梆的冰冷數學,就可以玩撲克玩得出神入化。「深疊」在2016年底最複雜的撲克牌比賽中,把一組人類好手打得潰不成軍。這種情形被喻為撲克界的「深藍vs卡斯帕洛夫」(編按:1997年,IBM的深藍打敗西洋棋冠軍卡斯帕洛夫)。科學家究竟怎麼打造出這套程式?

起初,他們研究「一對一德州撲克」。它的玩法是,兩位玩家會先下小筆賭注到彩池(盲注),然後各拿到兩張底牌。接下來一共會發出五張公共牌。遊戲的目標是,要用公共牌跟底牌組成最強的五張牌。發牌過程會穿插四輪喊注,每一輪第一位玩家都可以選擇「加注」或「過牌」。倘若他選擇過牌,就輪到第二位選擇加注或過牌;第一位若選擇加注,第二位就必須加注相同金額(跟注),不然就得蓋牌,或是提高賭注。如果是提高賭注,而第一位也想繼續玩,就得跟注。玩家在任何時候蓋牌,對手就贏得彩池裡的彩金。假如四輪都沒人蓋牌,接下來就亮牌,看誰的牌比較強。

2015年,亞伯達大學的團隊利用他們研發的AI程式「仙王座」(Cepheus),解出了賭注金額固定的一對一「有限注」德州撲克。這個牌局一共有1014個可能決策點,每個決策點的發牌跟下注組合都獨一無二,程式會據此計算該採取什麼樣的最佳行動。

科學家後來研發出「深疊」,得以鑽研更複雜的「無限注」牌局:在不限制賭注的情況下,一共有10160個決策點。這比可觀測宇宙的原子總數還多,光想就令人頭皮發麻。數字聽起來真嚇人。「對我們來說,這是極為艱鉅的研究計畫。」團隊成員,也是布拉格查理大學的博士生Martin Schmid說,「共有十人為此全職工作將近一整年。」

研究計畫當然是以「仙王座」為基礎,而其運算能力源自於「奈許均衡」概念。這個概念很簡單:只要單純地防守就好,等對手自己搞砸。不過,如此複雜的遊戲的真正棘手處在於,如何計算出實際上的終極策略,因為面對任何卡牌跟賭注的組合該如何行動,會受到非常多數字影響。

研究團隊讓兩個「仙王座」程式對戰,藉此發現了一對一有限注德州撲克的奈許均衡。他們計算AI對抗AI所做的每個決定的「後悔值」,也就是倘若採取不同行動,報酬會比原先行動高出多少,再盡可能把後悔值降到最低,即為最佳策略。計算工作耗時三個月、動用了200台伺服器、CPU累計運算時間長達900年,產生的最終策略資料集需要11 TB的容量才能儲存。

「深疊」的工作量比「有限注德州撲克」多出146個數量級,不太可能事前計算出每一種可能的牌局解法並儲存起來,它是針對當下的牌局,即時算出最佳策略。然而若要在牌局進行中迅速完成運算,就需要加以簡化。首先,研究人員把每次喊注時的行動,分成蓋牌、跟注、加注、再加注以及全押(把剩下籌碼全部押了)。接著,降低牌局決策樹的複雜度。每一輪發了什麼牌、玩家採取什麼行動,都會產生分支點,左右著局勢;不一樣的行動會導致不同結果,牌局越接近終場,分支越多,計算工作也更困難。研究人員把決策樹的深度,限制為四個分支點。「我們會在決策樹的末端使用一些函數,藉此預估更久以後的值。這用的是深度神經網路(DNN)。」Schmid說。

神經網路是模擬大腦細胞以及其連接情況的程式。研究團隊利用數千個虛擬大腦細胞,建構出神經網路,訓練它們應付隨機產生的撲克牌局,並產生相對應的後悔值。這個概念是讓神經網路思索任何眼前的牌局,然後運用所學,迅速算出準確的後悔值估計值,如此一來,就能選出最佳策略。把這些權宜之計全都用上,就可以將「一對一無限注德州撲克」的複雜程度,從10160個決策點簡化到僅僅107個。這簡單到一般桌上型電腦只要有張NVIDIA GeForce GTX 1080顯示卡,不到五秒鐘就可以算出答案。如此一來,「深疊」就可以上工囉!

為了讓這套程式展現看家本領,研究團隊找來了33位職業級玩家,在2016年11月7日到12月12日之間,分別跟「深疊」對戰3,000局的一對一無限注德州撲克。三名表現最佳的玩家,還能夠贏得獎金。

玩家表現以每場牌局的千分之一大盲注比率(mbb/g)為準。「大盲注」是玩家在發牌之前,必須先下的兩注裡金額較大者。人類撲克好手平均達到50mbb/g,就算很厲害了。玩家的最終損益數字,會根據牌的好壞做調整。11名跟「深疊」尬完3,000局的玩家經過運氣調整後,都是輸錢的;未調整前,只有8名玩家輸錢。「深疊」跟11位玩家的戰事經過運氣調整,平均勝率為394mbb/g;未經調整則是429mbb/g。

愛爾蘭籍職業撲克玩家、曾是電子工程師的Dara O’Kearney,是挑戰「深疊」的玩家之一。「我跟它比賽時,我假設它的打牌手法接近賽局理論最優解(GTO),也就是把手裡的牌組成最佳類型之後,以適當的頻率唬人。」他說,「它真的這樣玩牌,倘若我不知道它是機器人,根本不會察覺。」

在AI戰勝人類的遊戲中,西洋棋和圍棋的對弈雙方都能夠掌握所有局勢資訊;然而,撲克牌玩家的資訊是不完整的。這表示「深疊」背後的演算法,在國防、談判、經濟學,甚至醫療診斷等等部分資訊未明的現實領域裡,可能有非常深遠的用途。「美國海岸巡防隊跟洛杉磯空警隊已經在運用賽局理論。」研究成員Matej Moravík說,「即使規模很大,『深疊』的演算法也能夠有條不紊地推理。」

亞伯達大學的電腦撲克研發團隊:Moravík、Schmid以及Michael-Bowling。(圖片來源:John Ulan/University of Alberta)

話題回到牌桌上,O’Kearney認為「深疊」的成就,超越了「深藍vs卡斯帕洛夫」的歷史性勝利。「以決策樹的規模來看,撲克比西洋棋更複雜。」他說,「一般認為在撲克遊戲裡,心理學、勇氣或膽識等等特質非常關鍵,但這是誤解。撲克其實完全是數學跟賽局理論,如同『深疊』所示,AI在這方面得心應手。」

(本文由教育部補助「AI報報─AI科普推廣計畫」取得網路轉載授權)

(Visited 111 times, 1 visits today)

分享至
views