為什麼科學家如此熱衷於研發棋牌類AI?

雷鋒網 於 24/05/2017 發表 收藏文章
雷鋒網按:本文作者為微軟亞洲研究院資深研究員楊懋、主管研究員秦濤;來自公眾號“微軟亞洲研究院AI頭條”,雷鋒網(公眾號:雷鋒網)獲授權轉載。


為什麼在人工智能領域,科學家總是熱衷於讓AI跟人類下棋,玩遊戲?從簡單的跳棋、五子棋,到更加複雜的中國象棋、國際象棋,以及最近非常熱門的圍棋和德州撲克。每次AI在某個智力遊戲上成功地擊敗人類選手,便會讓大家唏噓不已,慨歎AI會在不久的將來取代人類…

幸運的是,AI接手地球還並未發生。我們不僅不需要如此杞人憂天,而且還會欣喜地發現人工智能的技術進步給生活帶來了更多便利。一個會下棋的AI也並非科學家的終極目標,其更積極的意義在於,AI算法在研究棋藝的過程中不斷精進和提升,會帶來更多設計上的創新,從而在根本上提升人工智能算法的能力和適用範圍。

而科學家之所以樂於選擇棋類遊戲,一方面是因為它們自古以來就被認為是人類智力活動的象徵,模擬人類活動的AI自然要以此為目標。成功達到人類甚至高於人類水平,可以吸引更多人關注並投身於人工智能的研究和應用中來。

另一方面,棋類也很適合作為新的AI算法的標杆(Benchmark)。棋類遊戲的規則簡潔明瞭,輸贏都在盤面,適合計算機來求解。理論上只要在計算能力和算法上有新的突破,任何新的棋類遊戲都有可能得到攻克。

除了棋類遊戲,牌類遊戲(比如德州撲克、橋牌、麻將、鬥地主等)也逐漸成為人工智能研究的新方向。而在更加大型的電子遊戲方面,比如星際爭霸、我的世界(Minecraft),科學家也開始了新一輪的AI算法的創新。這些不同的遊戲在研究人員的眼裏究竟有什麼區別?這些研究成果對我們的生活又有什麼意義呢?下面我們就為大家扒一扒這兩個問題。

棋牌類AI家族

了解棋牌類AI,我們可以先從它的分類講起。這一家族按照牌面“坦誠”度的不同,可以分為兩支脈絡:一支擅長“打開天窗説亮話”,另一支則是“猜測推理”的智能高手。

國際象棋、圍棋等盤面信息都是公開的,對弈雙方接收到的信息完全相同,因此也被稱為“完全信息類”的AI博弈;而德州撲克、橋牌、麻將等遊戲,每個人無法看到對手手裏的牌,所以稱之為“非完全信息類”的AI博弈。


完全信息類——看得到我就算得出

顧名思義,即棋面信息大家都可看到,博弈雙方接收到的信息是完全對等的,如國際象棋和圍棋。此類博弈中,AI每次只需要根據當前盤面,搜索計算以後各種情況下自己的勝率。為了提高搜索效率,一般需要對搜索過程中產生的“博弈樹”進行廣度和深度剪枝。就是我們平常下棋時常説的算多遠和算多準。為了算得遠,我們一般需要讓AI少看對手和自己不太可能走的地方,稱之為策略函數。為了算的準,我們需要更加準確地評估多步後的盤面自己的勝率,稱之為價值函數。找到了合適的函數,再加上計算機的強大計算力,讓AI達到或超過人類成為可能。在博弈樹和策略價值函數的選擇上,“完全信息類”棋類AI算法經歷了從“AlphaBeta剪枝算法”、“蒙特卡洛樹搜索”到“深層神經網絡”的迭代更新,功能也不斷“進化”。

  • 跳棋、五子棋 | 難度指數 ★

跳棋和五子棋的空間複雜度較低。甚至在不需要對博弈樹剪枝的情況下,計算機憑藉強大的計算能力便可以計算所有盤面的可能。所以在這種相對簡單的棋類遊戲中,人類已經不存在戰勝AI的可能。

  • 中國象棋、國際象棋 | 難度指數 ★★★

象棋的空間複雜度較高,暴力求解的方法並不可行。但是相對而言容易找到適合的價值函數。以國際象棋為例,可以根據棋盤上殘留棋子的類型和位置給出一個大致的評分。比如,棋盤上如還有皇后加10分,有車加5分,有馬加3分,以此為基礎計算函數。為了提高效率,國際象棋還有巨大的開局和終局數據庫來保證殘局計算的準確度。依靠這些規則,1997年“深藍”第一次戰勝了人類國際象棋冠軍。其後,電腦象棋程序甚至可以在PC上運行並擊敗頂級人類選手。

  • 圍棋 | 難度指數 ★★★★

圍棋的空間複雜度高,據估計圍棋的決策點大概有10的170次方之多。找到合適的策略和價值函數一直是圍棋AI的核心問題。蒙特卡洛樹搜索算法用概率的方法幫助圍棋AI找到了一個較為準確的價值函數,並幫助程序達到了業餘高段的水平。而藉助深度神經網絡,研究員尋找到了更好的策略和價值函數的計算方法。通過增強學習,AI還可以無限模擬各種對弈情境,生成上億數據,用來訓練生成更準確的函數。集大成的 “AlphaGo”在2016年以4:1歷史性戰勝了世界頂級圍棋棋手李世石。而正在進行的AlphaGo新版本與柯潔之戰,不知道又給我們帶來何種新算法和啟示。

非完全信息類——三缺一也不怕了嗎

在博弈過程中,如果雙方得到的信息是不完全、不對等的,需要通過猜測對方底牌計算概率,就屬於非完全信息類,如德州撲克、橋牌、麻將等。

非完全信息博弈要求更為複雜的推理能力,不僅要看別人打了什麼牌,還要猜測別人手裏有什麼牌,並根據對手行動暗示出的信息,來計算自己的最優出牌出法。由於對手的行為不僅暗示他的信息,也取決於他對我們的私人信息有多少了解,我們的行為透露了多少信息。所以,這種“循環推理”,導致一個人很難孤立地推理出遊戲的狀態。

現代博弈理論創建者、計算機先鋒馮·諾依曼有句名言,用來形容非完全信息類對弈再合適不過:“現實世界有很多假象、騙術,需要你去思考別人對你的策略到底看穿了多少。這就是我提出的理論所涉及的博弈。”


  • 德州撲克 | 難度指數 ★★★★

德州撲克的搜索複雜度是10的160次方,和國際圍棋接近。博弈中主要採用“納什均衡”原理——在一個特定時刻,尋找相對於其他參與人的最優反應。與圍棋相比,撲克不僅要根據不完全信息進行復雜決策,還要應付對手的虛張聲勢、故意示弱等招數。去年年底,來自阿爾伯塔大學、查爾斯大學和布拉格捷克理工大學的計算機科學家開發的 DeepStack在二人無限注德州撲克中打敗了人類職業玩家;今年年初,卡內基∙梅隆大學所開發的 Libratus 又擊敗了四個更加優秀的職業選手,這是AI 在不完全信息博弈中堪稱里程碑式的突破。對於人工智能而言,下一個挑戰是征服多人撲克。

  • 麻將 | 難度指數 ★★★

目前麻將主要風靡於亞洲,所以國標麻將和日本麻將都有比較強的 AI,高於人類平均水平,但是和人類頂尖高手的水平還是有較大的距離。麻將的搜索複雜程度遠遠小於圍棋和德州撲克,但是由於(一般)是四人博弈,其對技術的要求和二人零和博弈(例如一對一德州撲克)很不相同。二人零和博弈的解法主要是尋找納什均衡策略或近似納什均衡策略,多人博弈中由於存在多個均衡的可能性以及多人的相互影響,納什均衡策略沒有任何性能的保證,從技術上來講這意味着大家幾乎要從頭再來,這在技術上帶來了新的挑戰(和多人撲克比較類似)。


  • 星際爭霸,我的世界 | 難度指數 ★★★★★

星際爭霸和我的世界這類遊戲的複雜程度不僅在信息的不對稱,更在於其更加開放的遊戲規則。此類遊戲更加類似人們在現實世界中遇到的情況。遊戲規則的開放性讓遊戲世界會出現很多計算機很難處理的新情況。比如特殊的從未出現過的地形特點,對手長時間的密謀和規劃等。排除計算機在運行速度上的優勢,計算機還未真正在這些遊戲上證明自己的能力。

小貼士:與完全信息類對弈相比,有時候德州撲克、麻將對弈輸了,不全是因為打得不好,有可能從一開始牌不好,所以贏面比較低。運氣的成分在這類棋藝比賽中非常重,這一點與國際象棋和圍棋大不同。在圍棋中,專業選手和非專業選手的對決,從來不會因為運氣的存在而馬失前蹄或極其偶然地鹹魚翻身。

棋牌類AI 的意義在哪裏?

從社會層面的反饋看,有人會顧慮,機器對弈人類獲得成功,會破壞棋類藝術本身的意味,它們會讓專業棋手的價值受到挑戰,甚至讓更多的人放棄學習棋類運動;有人卻覺得這樣的賽事可以普及各種棋類,讓更多人對這些棋類、遊戲等產生興趣;還有人會誇大AI帶來的對人類的威脅……

可能在技術進步的過程中,確實會引發一些社會問題,但這在人類每個歷史階段都會遇到,人類也不會因此而放慢技術進步的步伐,一些現在看起來引發大眾不適的社會問題,一定會逐步解決。愛因斯坦説過:“科學,究竟是給人帶來幸福還是帶來災難,全取決於人自己。” 畢竟,在一場場人腦和AI的巔峰對決中,並不是機器打敗了人類,而是人類超越了自己!

未來AI更廣泛的用途一定會是在類似無人駕駛、智能安防以及人工智能助理這種真正意義上的非完全信息類的真實環境裏。在真實世界,AI遇到的問題千變萬化,不會有一個統一的規則、統一的函數就能幫助其解釋相應的行為。棋牌類AI只是人工智能非常早期的演練而已。

所以,AI在各種棋牌遊戲和人類對戰,其意義不在於輸贏本身,更重要的是人們對這類遊戲都耳熟能詳,能夠通過比賽了解到AI的最新進展,這對AI的發展有很大促進作用,畢竟AI進化的過程還相當長,即便是圍觀羣眾,也需要了解這個未來會與每個人的生活都息息相關的領域。

我們也期盼着棋牌類AI的成功和突破能夠啟發AI在其他方面的研究和應用,並能將創新應用到更多行業和領域,激勵更多的人投身於AI的研究和實用化,讓人類生活更加便捷、高效和智能化,使整個人類和大自然都能夠受益於AI。在對弈過程中,人工智能研究領域的技術、專家人才培養體系也得以更加完善,從而推動人工智能去攻克一個又一個技術和應用的“高地”。

(完)


“12小時零基礎入門深度學習班”開課啦!

最流行的深度學習技能,“探索+實踐”的矽谷教學模式!

兩天系統線下學習,助你迅速進入深度學習工程師角色!

課程鏈接:http://www.mooc.ai/course/92

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知

資料來源:雷鋒網
作者/編輯:精選轉載

留言


請按此登錄後留言。未成為會員? 立即註冊
    快捷鍵:←
    快捷鍵:→