編者按:本文原創首發於「百度大腦」微信公眾號(ID:baidubrain),關注百度大腦,讀懂人工智慧。
「深藍」19 步贏了卡斯帕羅夫,Watson 在智力問答中知識碾壓,AlphaGo 把李世石打狗帶了,後者一年不到重披「Master」之名把世界頂尖棋手們直接來了個六十連殺。棋類已經失守,群眾將最後希望投向國粹麻將,中國大媽能否堅守這最後一道防線?答案大概是特別不能。
現在日麻 AI「爆打」準備要暴打人類了(它在日本曾打到天鳳七段)。至於你說靠眼神秒殺的這位同學,喔你想多了,我們 AI 都是在網上比賽的呢。不過麻將 AI 與棋類 AI 在開發策略上有所不同。而且運氣也是麻將的浪漫,這種浪漫「爆打」能懂嗎?
「百度大腦洞」專欄將帶你見識 AI 領域那些不可思議的研究。嚴肅點,我們 AI 要開始玩麻將了。
作者:boshixiao
麻將、鬥地主、橋牌、德州撲克……未來都有希望看到這些項目對應的「最強 AI」,永遠能找到最優解的 AI 出現。
從人工智慧 AlphaGO 在與李世石的圍棋對決中,以五局四勝,標誌著在人工智慧的領域,AI 的能力距離超越人類,又往前邁進了一大步。
2017 年 1 月 6 日,又一個 AI 要挑戰人類選手了——科學家將百度大腦植入人工智慧機器人「小度」當中,前去《最強大腦》第四季現場應戰,與《最強大腦》名人堂的選手們在人臉識別、聲音識別等領域進行三局兩勝的比賽。
棋類 AI 已經開始全面碾壓人類,甚至圍棋這種「不可遍歷」的算法,也開始靠著深度學習展現出其優勢的時候,我們不由得要思考,那些不那麼注重策略本身的競技項目,AI 是不是也會展現出別具一格的優勢?帶著 AI 去打麻將,能百戰百勝嗎?
麻將被國人視為中國的國粹(電視劇《解放》劇照)
只要手氣足夠好,不需要技術也能贏。是麻將遊戲中非常常見的情況。大部分人也常常將自己的勝利或失敗,歸於「手氣」,也就是運氣不夠好。
但運氣真的是麻將遊戲中的一切嗎?誠然,麻將是一種運氣成分佔比非常高的競技棋牌項目,技藝再強的高手,也有輸給菜鳥的可能性。但同時不可否認的是,麻將中「技藝高低」也是明顯存在的。
麻將技藝的高低,不僅僅存在於高手和菜鳥之間。即使是頂尖高手,日本競技麻將的高手段位中,在經過大量場數的競技之後,頂尖選手之間的分數差距,同樣可以穩定地被拉開,競技水平被顯著地區分開來。所以在麻將領域,研究出一個具有極高競技水準的 AI,是完全有可能的。
相比於棋類這樣在大多理論上可遍歷(通過計算機模擬出每一種可能的情況)的「完全信息動態博弈」,棋牌類項目, 因為很多情況下,你都不能知道對方手上的手牌,也不知道接下來會摸到什麼牌,所以更多的情況是屬於無法遍歷的「非完全信息動態博弈」。
也就是說,相比於棋類 AI,力求「將對手逼入必輸的岔路口」這個博弈目標不同,麻將 AI 的策略則更多地增加自己得點的期望值,儘量讓自己有更大的可能性和大牌,同時儘量避免對手的大牌點炮。而麻將的打牌策略,顯然是有最優解的。每圈棄牌的 14 個選擇裡,我們總可以找到我們當前認為最好的選擇,而高等的選手,和高級的 AI 要做的,就是儘量能多思考幾回合。
當代的計算機棋手大多採用的是「蒙特卡洛樹」搜索算法,策略是選擇或迫使對手選擇一個分支,這個分支下的所有的結局都是自己勝。AlphaGo 就是蒙特卡洛算法和深度學習的結合。
讓自己有更大的可能性和大牌,就需要通過手牌和棄牌池裡的牌,計算自己進張(摸到有效牌)和鳴牌(吃、碰、槓),使自己手牌有進展的概率,進而計算自己和牌得分的期望值。這對於 AI 設計來說實際上是很簡單的。
讓 AI 避免對手的大牌點炮相對要更難,一方面麻將 AI 需要通過大量的牌譜資料庫,來獲得通過對方打出的棄牌來分析其牌型的能力。這樣可以讓 AI 擁有在幾圈之前,就開始棄掉別家需要的關鍵牌的能力。
因為競技麻將這項運動的小眾性,麻將 AI 目前處於一個相當缺乏發展的階段。目前還沒有可以完全戰勝所有人類的麻將 AI,但這其中主要的原因是缺乏相關的研究。大多麻將 AI 都還停留在遊戲廠商的 AI 上,計算強度非常有限,無法與棋類 AI 動輒就在超級計算機上進行運行相比。
但麻將運動中,可執行的打法數量,實際上是遠小於圍棋的。因為畢竟手上只有 14 張手牌,一共也只有 136 張的總牌數。所以實際上麻將的複雜度,AI 運行所需要的計算量,實際上也是比 AlphaGO 這樣的圍棋 AI 要少很多的。
並且麻將有著相對明確的目標,有著相對少的和牌牌面,所以麻將 AI 實際上完全可以儲存大量的牌譜,然後在運算的時候,只要尋找對自己有用的牌即可,這樣可以減少很多的計算量。
目前最強的麻將 AI,是東京大學開發的日麻 AI —— 「爆打」。「爆打」在日本最大的線上麻將平臺,天鳳上進行了 1.3 萬多場比賽,最高達到過七段的成績,這意味著「爆打」比 96% 以上的麻將玩家都取得了更好的成績。
日麻 AI 「爆打」對戰兩位天鳳六段選手和一位八段選手,自摸。
實際上,除了麻將之外,很多中國民間喜聞樂見的棋牌項目,對於開發 AI 來尋找最優解的能力,相比棋類 AI 程序來說,都要簡單得多。其面對的問題,同樣是因為這些項目中都包含了運氣成分,這使驗證 AI 的有效性變成了一個相當難的問題。相反,麻將還是這些項目中相對規範化程度非常高的一個,至少在日本,有著非常完善的 ranking 機制與平臺。而因為驗證 AI 有效性很麻煩,所以也導致了這類 AI 開發的相對滯後。
而這樣的 AI 的作用是什麼,除了他們可以用來研究算法本身之外,棋牌 AI 所伴隨的棋牌類競技規範化,也是一個很重要的事情。但同時,我們還可能會看到的是,伴隨著棋牌類競技項目的賭博,可能也會開始依賴於 AI 催生出一個全新的產業。
鬥地主、橋牌、德州撲克…… 在未來我們都有希望看到這些項目對應的「最強 AI」,永遠能找到最優解的 AI 出現。
很多人都想不通,為什麼人類要研究一個僅僅是用來下圍棋的 AI,更不必說「打麻將」這件今天在中國完全不被當一個「正經」的事情對待的競技項目了。但他們很難意識到的是,AI 實際上代表了人類對這個世界,孜孜不倦的探求,和挑戰自我的精神。用來「打麻將」的 AI,我們創造它的動機,當然不是讓我們可以利用其功能,在麻將場上百戰百勝。而是我們通過麻將 AI 這件小事,使人類的智慧之光,得以在廣袤的世界中延伸,直到灑滿每一角落。
這是我們要探究這個世界上一切未知事物的源動力,包括卻不限於,創造一個永遠可以找到最優解的,麻將 AI。
參考資料:
http://matsuko1.com/archives/11 在目前世界上最強的日麻 AI 「爆打」與包括日麻頂尖高手 ASAPIN 在內的一幹日麻選手的對戰中,「爆打」雖然沒有在平均成績上取勝,但展現了相當不俗的實力。
http://ieeexplore.ieee.org/document/7317929 目前主流的麻將 AI 研究,基本都圍繞著如何在前期儘量減少自己的聽向,以及如何避免打出其他玩家的有效牌,炮子展開。
http://www.allevybridge.com/allevy/computerbridge/index.htm 除了麻將 AI 外,橋牌 AI 也是目前在國際上相對受關注度比較高的棋牌類 AI 之一。