全球數(shù)據(jù)探索者大會(huì)”正式在北京拉開大幕。德?lián)銩I之父托馬斯?桑德霍姆介紹了德州撲克AI的價(jià)值和目前的研究方向。
卡耐基梅隆大學(xué)計(jì)算機(jī)系教授、德?lián)銩I之父托馬斯?桑德霍姆
你好。今天我講一下超人類的AI怎么做戰(zhàn)略性的分析和推理,這里用撲克做例子,今天我們說的是不完美信息的游戲,也就是說整個(gè)對(duì)手的狀態(tài)不被機(jī)器人所知,這個(gè)跟下棋沒有什么太大的聯(lián)系,確實(shí)和談判很像,我們知道AlphaGo的技術(shù)可以用于所有的完美信息的游戲,完美信息的游戲是有這樣的一個(gè)好性質(zhì),就是我們一個(gè)大游戲分解成各個(gè)小的子游戲,子游戲怎么樣解決的呢?通過別的子游戲的結(jié)論來學(xué)習(xí)。比如說它防御的時(shí)候,你看一下當(dāng)我們看這一局的時(shí)候,你不關(guān)心其他局或者是其他的象棋步驟里面對(duì)手怎么做?你只看這一步怎么樣做就能夠?qū)W到了,而非完美的信息是什么意思?就是一個(gè)信息一個(gè)子游戲?qū)W到的,不能用于另外一個(gè)子游戲。那么不完美信息的游戲就比完美信息的游戲更難,這些是基于某一個(gè)小領(lǐng)域的技術(shù),并且不可遷于其他的小領(lǐng)域的,比如說撲克,我們發(fā)明了這種算法能夠在這種不完美信息的情景下也能夠?qū)W習(xí)。由于完美信息和不完美信息的游戲兩者本質(zhì)不一樣,AlphaGo所應(yīng)用的技術(shù)不可以應(yīng)用到完美的撲克游戲里面,因?yàn)閮烧叩男再|(zhì)是不一樣的。在不完美信息的游戲里面,我們的挑戰(zhàn)是不知道對(duì)手和他的行為或者是說他的行為可能性。那么對(duì)于他們以往做了些什么呢?我也不知道。
我跟我的撲克對(duì)手,我不知道他以往的行動(dòng),他也不知道我以往的行動(dòng),像我們?nèi)祟惷鎸?duì)的情景里面更多的是這一類的,不知道對(duì)手背后的盤算,那么我們想問的是對(duì)手的行動(dòng)對(duì)我有什么樣的啟示,我怎么樣通過對(duì)手的行動(dòng)來推測(cè)到背后的動(dòng)機(jī),我的行動(dòng)也泄露了我的哪些意圖給我的對(duì)手呢?這里面有意思的是,我們不需要去解析這些行動(dòng)的信號(hào)。這些信號(hào)讓我們回過頭來看這個(gè)納什的方程式,納什先生其實(shí)只是給博弈論一個(gè)定義,他并沒有給我們結(jié)論,他用一些算法,根據(jù)更窄的定義來算出,爭(zhēng)取更好的算法。那撲克里面有很多的數(shù)學(xué)原理,如果我們看一下納什先生的那篇博士論文,把他的博弈論方程首先展示給我們,這是1993年的時(shí)候,這里只有一個(gè)定義,那就是類似于撲克的定義。再往后對(duì)于撲克,我們有了更多的科學(xué)家和更多的定義。大家也會(huì)討論如果有更多更好的策略和戰(zhàn)略來贏撲克,最近去年,我們有數(shù)以百計(jì)的關(guān)于這個(gè)撲克的撲克研究。我講的不會(huì)太多,我只講一些重點(diǎn)的研究,首先有2004、2005年的學(xué)生和我一起做了這樣一個(gè)關(guān)于無損抽取的一個(gè)算法,就是說你略掉了,或者是說不知道這個(gè)游戲的99%的信息,卻依然可以去知道這個(gè)游戲的規(guī)則。
那么,我們現(xiàn)在要談的無限下注德州撲克的紙牌壓注成為最難的一個(gè)計(jì)算機(jī)界解決的標(biāo)桿,里面包含了10的161次方的情景,我們看一下這個(gè)比我們?cè)谝粋€(gè)宇宙里面原子還要多10的161次方,這個(gè)應(yīng)用包括了撲克,這里面也被很多的類似于皇家賭場(chǎng)的電影所引用。
而到目前為止我剛剛說的無限下注的紙牌游戲是被AI攻破的,我們看一下這種單周的關(guān)于無限下注的突破,這是第二次單挑,因?yàn)橹坝幸淮稳藱C(jī)對(duì)抗,當(dāng)時(shí)的AI輸給了人類選手,這次我們叫做再對(duì)抗,再挑戰(zhàn)。我們的AI系統(tǒng)是我們的一個(gè)冷撲大師的智能系統(tǒng),它的對(duì)手是四個(gè)非常優(yōu)秀的撲克選手,我們一共做了12萬次的交手,在20天之內(nèi),然后下注的賭金20萬美元之多,大家有很強(qiáng)的動(dòng)機(jī)去贏。2017年這場(chǎng),我們其實(shí)把這筆20萬美元的獎(jiǎng)金,不是每個(gè)人給20萬,而是根據(jù)這四個(gè)選手的表現(xiàn)成比例的分配,而且我們的試驗(yàn)設(shè)計(jì)非常的保守,讓人類去設(shè)計(jì)整個(gè)游戲的范式,為什么這么做呢?讓人類去設(shè)計(jì)整個(gè)游戲的各種范式,以便于到最后去決定誰贏誰輸?shù)臅r(shí)候,因?yàn)槭侨祟愂孪仍O(shè)計(jì)好的,就不會(huì)有各種的爭(zhēng)吵和爭(zhēng)議了。
那么,整個(gè)的人類在押注的時(shí)候,更多的時(shí)候會(huì)覺得人類會(huì)贏。我們看一下游戲的現(xiàn)場(chǎng),丹尼爾是我的朋友,我的同事,他們單獨(dú)的一對(duì)一單調(diào),一對(duì)一的。
一說到丹尼爾和AI單挑,AI和上面的四位撲克大師在樓上單挑。比方說杰森,他在同時(shí)看著兩桌,他在這兩桌之間可能來回切換,在他左邊的這個(gè)小屏幕上,他可以進(jìn)行切換,最終的結(jié)果,我們的冷撲大師系統(tǒng)贏,而且大勝人類。同理,我們用這個(gè)冷撲大師跟中國的賭神進(jìn)行對(duì)抗,中國的龍之隊(duì),中國的六位賭神,這是國際撲克大師的贏家,這些都是頂級(jí)的撲克手。冷撲大師還是贏了我們?nèi)祟惖馁€神。
有人要問了,我們這個(gè)冷撲大師的系統(tǒng)是什么原理呢?基本上我們用的是已驗(yàn)證正確的技術(shù),這里面沒有深度學(xué)習(xí)。所以說在上面主要有三個(gè)選擇,第一個(gè)選擇是有很多的一些游戲的規(guī)則的輸出,還有一些更小的游戲的抽象化,最后有一個(gè)算法進(jìn)行藍(lán)圖戰(zhàn)略的執(zhí)行。然后在我們的子博弈的解決器里面,實(shí)際上也是在游戲的過程中來進(jìn)行問題的解決,有一個(gè)自我改善的模塊,它能夠把所有的這些本身的AI的后臺(tái)的主機(jī)在晚上的時(shí)候做一個(gè)更新。
對(duì)于軟件的運(yùn)行,在我們的匹茲堡的超級(jí)計(jì)算機(jī)中心的這臺(tái)計(jì)算機(jī)有1200萬小時(shí)的游戲的時(shí)間積攢。所以說它有很多的輸入的信息,如果我們把AlphaGo和它進(jìn)行對(duì)比的話,AlphaGo是用人類的游戲歷史,我們沒有做這個(gè)東西,我們是白手起家的。好像是我們對(duì)著鏡子給自己進(jìn)行拳擊,然后突然跳起來飛踢泰森的關(guān)系,我們也是一樣的,我們通過AlphaGo來進(jìn)行自我游戲?qū)崿F(xiàn)的。我們看看第一個(gè)解析,是模塊里面使用新的抽象化的算法,相對(duì)來說獲得一個(gè)更小的規(guī)則,然后我們會(huì)有一個(gè)平衡化的過程。然后重新回到我們最初的游戲中進(jìn)行我們所謂的藍(lán)圖戰(zhàn)略。
然后這里有兩個(gè)抽象化,一個(gè)是勝利的抽象化,是定期進(jìn)行算法的計(jì)算,我們也是從最初的計(jì)算機(jī)里面,2016年的時(shí)候做過,現(xiàn)在我們用一個(gè)最大的抽象化,我們是進(jìn)行了一個(gè)平衡化的算法,來獲得多種抽象化,所以從第一個(gè)賭局到我們的第二個(gè)賭輪里面,在所有的賭輪里面都可以進(jìn)行,第四個(gè)賭輪里面我們使用了子博弈的解決器,這里面有一個(gè)產(chǎn)品的抽象畫,所以這樣的話我們可以對(duì)于我們的客戶端有一個(gè)更好的理解了。第三個(gè)正式的抽象化是從我們的撲克的賭輪中,我們這里使用了人工智能之外,還加入了一些大賭局和小賭局的概念,所以說我們可以有最初的一個(gè)初級(jí)算法,然后把它進(jìn)行一個(gè)優(yōu)化,但是暫時(shí)沒有辦法來進(jìn)行拓展,所以說我們還需要把它第一個(gè)賭局進(jìn)行一個(gè)慢慢的往外拓展,后來到了子博弈的解決器,我們這里稍微多講一些,當(dāng)然這也是整個(gè)架構(gòu)的最新一部分。這里有五個(gè)新部分,第一個(gè)部分很可能是可以把它當(dāng)前的對(duì)手的一些內(nèi)容考慮在內(nèi),第二個(gè),它是屬于一些戰(zhàn)略中的,你的子博弈的,這個(gè)計(jì)算方式很可能不會(huì)比這個(gè)藍(lán)圖戰(zhàn)略更差。然后,如果說對(duì)手在當(dāng)前的階段犯一個(gè)錯(cuò)誤的話,我們可以重新再考慮到它這樣的一個(gè)情況下,然后同時(shí)考慮到出現(xiàn)的錯(cuò)誤,但是還能夠保證你的勝利,所以說它是可以更好的與真正的人進(jìn)行比賽的時(shí)候,不會(huì)出現(xiàn)這種類似的錯(cuò)誤。
還有就是說關(guān)于子博弈的解決問題。一開始的時(shí)候,你解決這個(gè)問題一再進(jìn)行游戲。但是我們?cè)谶@里先要再次解決剩余的一些,就是說整個(gè)局我要重新的做一遍,每當(dāng)對(duì)手走一步,我都會(huì)把剩下的部分再重新算一遍。另外,它還可以把當(dāng)時(shí),你可以猜想的步驟,再把步驟的實(shí)際這一步計(jì)算在內(nèi),這些都是在我們的抽象中,還有它可以啟動(dòng)得比較早,以前都是在最后一個(gè)賭輪,現(xiàn)在我們放在第三個(gè)賭輪里面,如果這里沒有在子博弈中的這種牌的抽象化,我們這樣做是因?yàn)槲覀兿M軌蛲ㄟ^一種新方式進(jìn)行子博弈的解決。
最后一個(gè)模塊,它就是自我改善的模塊,它采用了完全不同的一種方法來進(jìn)行自身的改善。并且它也使用了之前我們所說的平衡的戰(zhàn)略。那么我通常是怎么做的呢?就是說我們需要把一系列的對(duì)手模塊聚集在一起進(jìn)行一個(gè)開發(fā),我覺得它是比較有風(fēng)險(xiǎn)的一個(gè)方法,特別是對(duì)于一些頂級(jí)玩家來講,因?yàn)轫敿?jí)玩家是屬于世界上的這個(gè)方面的專家,他們是很容易來反漏洞的專家,所以說這個(gè)過程中,很容易會(huì)遇到困難,然后我們讓我們的對(duì)手行為集成告訴我們說我們自己戰(zhàn)略里面的漏洞在哪,這樣我們?cè)谶@個(gè)超級(jí)計(jì)算機(jī)里面,我們的算法就會(huì)把這些加入到我們的行為的抽象畫里去,之后我們就可以把它添加到我們的庫里面去,我們可以在自己的主機(jī)里面把一些理性的內(nèi)容再加入。
所以這里是在我們的頂端的AI,當(dāng)然還有一些其他的,這里是我選取的一些最好的。左邊是我們的,右手邊是其他人的,這張圖的意義是講到了我們每年都要進(jìn)行改善??赡苁菑睦碚撋线_(dá)到10的一百多次方。
下面我們?cè)僦v一下,在我們實(shí)驗(yàn)室里面研究的一些情況,還有就是說如何來解決非完整的信息的內(nèi)容,這是我們的一些在做的課題,所以在游戲中和我們之前講的,它會(huì)有一個(gè)非完整性信息,需要有一個(gè)抽象化的尋找器,然后我們要知道它里邊的一個(gè),游戲中會(huì)出現(xiàn)的問題的路徑,然后我們有一個(gè)這種算法,它可以把一些概率來進(jìn)行計(jì)算,如果說你這個(gè)模型離我們的偏差這么遠(yuǎn),然后它這個(gè)模塊會(huì)來進(jìn)行改善,我們?cè)趽淇酥惺莵碜龈?jìng)賽的,所以我們?cè)诒荣愔行枰獞?yīng)用來進(jìn)行一個(gè)模擬,雖然規(guī)則不是這么清楚。所以同樣的一個(gè)概念,如果我們的模塊,現(xiàn)實(shí)當(dāng)中只有這么一個(gè)差異的話,我們可以來改善我們的戰(zhàn)略。然后讓它更適合現(xiàn)實(shí)中的情況。
第二點(diǎn),在我們之前說過,可能在事件當(dāng)中最好的是平衡戰(zhàn)略,也是我們能夠獲得的最好的理論,今年夏天開始,我們有更多的一些算法了。
第三個(gè),我們?cè)陔p方都會(huì)出現(xiàn)比較大的,或者是很多的錯(cuò)誤的時(shí)候,我們是不是能解決這些問題。盡管傳統(tǒng)意義上來講,我們覺得有一些錯(cuò)誤可能是可以進(jìn)行計(jì)算化的,但是現(xiàn)在在計(jì)算機(jī)里面的一些技術(shù)可以用更好的辦法來進(jìn)行一個(gè)改善。最后,就是在利用或者是說開發(fā)之間的這種對(duì)比,在游戲中,我們需要去發(fā)現(xiàn)對(duì)方的漏洞。然后開始通過這種非游戲理論的方式,考慮到自己如何不會(huì)被對(duì)方所利用。
所以說如果你開始采用游戲理論的時(shí)候,有人如果說利用了這種游戲理論或者是博弈理論是不安全的,但是現(xiàn)實(shí)中不見得如此,你可以利用別人的同時(shí),也可以保證自己不被利用,也可以保證自己的安全性。像我之前提到的這些技術(shù),不僅僅是被用來編程,這些被用來任何一個(gè)你有互動(dòng)的過程中,這個(gè)當(dāng)中不光有一方,還有不完整的信息,對(duì)于新技術(shù)的能力,之所以這么振奮,是因?yàn)槲覀兛吹搅诉@種戰(zhàn)略性的機(jī)器中有很多的類似知識(shí)的復(fù)制。我認(rèn)為這種戰(zhàn)略定價(jià),或者是說戰(zhàn)略產(chǎn)品的組合,也可以利用它來進(jìn)行一個(gè)優(yōu)化。
現(xiàn)在,在AI當(dāng)中,我們不光可以節(jié)省更多的人力,同時(shí),又可以做得比最好的人類更強(qiáng),讓我們有更多的理由來利用到實(shí)際中。有一些人可能覺得大多數(shù)的現(xiàn)實(shí)中的應(yīng)用,總會(huì)存在著不完美信息,就算是不看做一個(gè)游戲,那么我們想象一下,比如說在定價(jià)中的利用,如果對(duì)方的這個(gè)競(jìng)爭(zhēng)對(duì)手的價(jià)格已經(jīng)固定了,如果突然對(duì)方改變了這個(gè)價(jià)格,你需要實(shí)現(xiàn)自己的價(jià)值優(yōu)化,需要反應(yīng),這里面是一個(gè)反映式的模塊。戰(zhàn)略性的定價(jià)可以讓你來驅(qū)動(dòng)市場(chǎng)的發(fā)展,同時(shí)可以事先進(jìn)行價(jià)格的思考,同樣你戰(zhàn)略性的產(chǎn)品和組合優(yōu)化,在金融中的使用也比較多,比如說戰(zhàn)略性的結(jié)構(gòu)或者是說戰(zhàn)略貿(mào)易執(zhí)行等等,還有自動(dòng)的溢價(jià)。我們使用眼鏡改善我們的視力,為什么不能用AI來改善自己的戰(zhàn)略邏輯呢?
還有像拍賣中,如果說有這種投機(jī)式的拍賣,如果沒有人知道底價(jià)的情況下,是不是可以采用合理的競(jìng)猜。還有像電影版權(quán),不同的一些流媒體公司,他們可能要買一些不同的視頻流,到底如何能夠構(gòu)建一個(gè)更好的視頻流的組合,如何來進(jìn)行更好的談判。大部分的應(yīng)用會(huì)考慮到網(wǎng)絡(luò)安全問題,如何來防護(hù)漏洞和操作系統(tǒng)中的問題,以及政治運(yùn)動(dòng)中,我到底要花多少錢,基于我競(jìng)爭(zhēng)對(duì)手的預(yù)算來進(jìn)行計(jì)算。還有自動(dòng)駕駛車輛中,或者是說半自動(dòng)駕駛的車隊(duì)由不同公司來進(jìn)行運(yùn)維的時(shí)候,如何來獲得一個(gè)更好的道路規(guī)則。有很多的一些軍隊(duì)或者是說在實(shí)體安全方面的應(yīng)用,還有生物適應(yīng)或者是說一些醫(yī)藥的安排中,我們已經(jīng)有了多種的計(jì)劃能夠把這些,比如說對(duì)患者人群來進(jìn)行更好的一個(gè)規(guī)劃,才能夠避免進(jìn)行一些疫苗的注射和癌癥的防護(hù)等等,當(dāng)然我們還有娛樂式的,訓(xùn)練式的應(yīng)用技術(shù),在很多的新的游戲中,同時(shí)也會(huì)有一些社交的游戲。
最后一張幻燈片我想指出的是人工智能不光是深度學(xué)習(xí),還有一些重要的部分和領(lǐng)域,現(xiàn)在有一些新的技術(shù)和領(lǐng)域,我們叫做戰(zhàn)略性邏輯,它是我們戰(zhàn)略博弈的一部分,同時(shí)我們還有向?qū)κ纸5鹊?,這些也是需要很多的模型。機(jī)器學(xué)習(xí)是關(guān)于過去,但是我們從過去的數(shù)據(jù)中學(xué)習(xí)來希望能夠預(yù)測(cè)到未來或者是說在未來能夠做到更多有益的東西,戰(zhàn)略性邏輯會(huì)關(guān)系到很多的可能性,是關(guān)于未來而推出的游戲,我們已經(jīng)做了一些試驗(yàn),希望能夠獲得更多結(jié)果,謝謝大家。