国产精品久久久久久久小说,国产国产裸模裸模私拍视频,国产精品免费看久久久无码,风流少妇又紧又爽又丰满,国产精品,午夜福利

熱搜: 佳士科技  irobot  工業(yè)機(jī)器人  機(jī)器人  ABB  機(jī)器人產(chǎn)業(yè)聯(lián)盟  發(fā)那科  庫卡  碼垛機(jī)器人  機(jī)械手 

人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?

   日期:2016-03-18     來源:澎湃新聞網(wǎng)    作者:LX     評論:0    
標(biāo)簽:
   很高興能借著AlphaGo 的東風(fēng),和大家分享一下麻將AI研究的現(xiàn)狀。
 
  一. 麻將和圍棋有什么不同?
 
  從博弈論的角度來講,圍棋是完全信息動態(tài)博弈,而麻將屬于非完全信息動態(tài)博弈。圍棋中對局雙方所掌握的信息是對稱的,而麻將中各對局者間所掌握的信息不對稱。雖然大家都能看到每位牌手打過什么牌,但你不知道我的手牌是什么,我也不知道你的手牌是什么。這種信息不對稱的產(chǎn)生的根本原因是牌墻的隨機(jī)性。
 
  圍棋與麻將(或者說棋與牌,弈與博)的上述區(qū)別,決定了它們獲勝策略的根本不同。棋類項目本質(zhì)上就是蒙特卡洛樹,獲勝策略就是選擇或迫使對手選擇一個分支,這個分支下面所有的結(jié)局都是自己勝。只不過由于棋類變化很多,連AlphaGo 也遠(yuǎn)不可能遍歷整個樹,所以AlphaGo 會通過價值網(wǎng)絡(luò)來估計某一分支下勝結(jié)局的概率。其實人類的思維也是類似的,在圍棋里平白被對手屠掉一條大龍,或者在象棋里平白送給對手一個車總是不好的--在這些分支下,勝結(jié)局的概率大大降低了。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  而牌類的獲勝策略在于盡可能增大自己的得分期望(EV)。我并不知道我接下來要摸什么牌,或我的對手有什么牌,但所有可能的情形組成一個概率空間,我只需做出一個選擇,使得自己的得分函數(shù)的期望最大。牌類策略的難點在于,影響這一概率空間的因素過多,且具體影響很難確定,比如對手打牌的習(xí)慣。
 
  下圖選自《科學(xué)化麻雀》,閑家愚形聽牌打10% 危險度的牌對攻,x 軸為自己和牌時得分,y 軸為牌局巡次,z 軸為自己的得分期望。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  二. 何謂「獲勝」?
 
  選手的競技水平如何衡量?麻將是否是「運七技三」的游戲?其實無論圍棋還是麻將,區(qū)分選手的競技水平都不可能只靠一局,就好比AlphaGo 和李世乭要進(jìn)行五番棋對決,AlphaGo 贏第一盤時大家并不覺得AlphaGo 一定比李世乭強一樣。圍棋有三番、五番、十番棋,對于競技麻將(國標(biāo)麻將、日本麻將)而言,區(qū)分頂尖選手的競技水平至少需要2000~10000 手牌(如果采用類似橋牌的復(fù)式賽制,這一數(shù)字會大幅降低)。
 
  至于衡量一個競技項目的競技性,單純用運氣所占比例是沒有意義的。隨著對局?jǐn)?shù)的增大,運氣所占比例會越來越小,選手的長期成績必然會向其真實水平收斂。一個競技項目的競技性應(yīng)當(dāng)用「區(qū)分選手競技水平所需必要對局時間」來衡量。比如圍棋需要三番棋,麻將需要2000 手牌,圍棋一盤平均需要4 小時,三番棋約12 小時,而麻將一手牌約3 分鐘(網(wǎng)絡(luò)對局),2000 手牌約100 小時。麻將相比圍棋有運氣成分,并不意味著麻將選手的競技水平無法衡量,而意味著麻將需要更多的對局時間來區(qū)分選手的競技水平。
 
  下圖選自日本麻將平臺天鳳麻雀鳳凰桌1000 場以上玩家安定段位排行。這里的「試合」是指半莊,也就是兩圈牌,考慮到連莊,平均一試合是10 手牌,1000 試合是10000 手牌??梢钥吹脚剖值母偧妓降玫搅撕茱@著的區(qū)分,結(jié)果也與麻將圈內(nèi)認(rèn)知相似。
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  所以在這個問題下我們討論麻將AI 能否戰(zhàn)勝人類,指的是麻將AI 長期成績(10000 手牌以上)能否比人類更好,并不是單指一手牌。只打一手牌,誰都有可能和牌,這是牌類游戲的本質(zhì)所決定的。
 
  當(dāng)然,這里也不考慮牌手或AI 作弊的問題。如果通過作弊獲得別人手牌的非法信息,麻將的競技平衡就完全被打破了。再強的麻將AI 成績也不可能比作弊的人類好,反之亦然。事實上,現(xiàn)在很多單機(jī)麻將游戲的AI 就是通過作弊來增加「智能」的。
 
  三. 麻將會成為人類面對人工智能的「最后壁壘」嗎?
 
  一言以蔽之,麻將AI 不是做不了,而是沒人做。之所以目前還沒有能夠戰(zhàn)勝人類的麻將AI,主要原因還是人們在麻將AI 研究方面的投入不夠。目前的麻將AI 基本都是麻將游戲制作團(tuán)隊為麻將游戲設(shè)計的,在單機(jī)上就可以運行,強度自然有限。如果像AlphaGo 一樣,世界頂級團(tuán)隊制作,背后龐大資金支持,使用1000 個CPU 運行,想要設(shè)計一個輕易戰(zhàn)勝人類頂尖麻將牌手的AI 沒有任何難度。
 
  首先,麻將的復(fù)雜度要遠(yuǎn)遠(yuǎn)小于圍棋。單就自己的14 張手牌來說(總牌數(shù)136 張),組合共有326520504500 種(計算方法詳見麻雀の數(shù)學(xué)),遠(yuǎn)遠(yuǎn)小于圍棋的2.08×10^170。不足10^12 的手牌種類意味著麻將AI 完全可以提前計算好每手牌的打法估值并儲存在資料庫中,打牌時調(diào)用即可。
 
  下圖選自日本麻將研究者らすかる的個人網(wǎng)站麻雀の數(shù)學(xué)。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  當(dāng)然,打麻將也要考慮別人打的牌以及各家的得分。各家分差的復(fù)雜度是很小的,而別人打的牌雖然復(fù)雜度會很高(136 張牌的牌墻組合為4.3×10^185 種,甚至超越了圍棋的復(fù)雜度),但別人打的10 張牌大多只有1~2 張是有用的信息,AI 只需要識別這種模式并搜索對比以往對局的牌譜即可。
 
  其次,人類對麻將的研究遠(yuǎn)不及圍棋,頂尖麻將牌手的訓(xùn)練水平很低。相比圍棋研究幾千年的歷史,麻將誕生不過百余年,人們真正開始利用科學(xué)手段(統(tǒng)計學(xué)、大數(shù)據(jù))來研究麻將只是近十年剛剛起步。例如「間四間」是上世紀(jì)流行的日本麻將理論,指的是別人打過中間相隔4 張的2 張同花色數(shù)牌,則這2 張牌的內(nèi)側(cè)筋牌是危險牌。如別人打過三筒、八筒(中間相隔四五六七筒),則四七筒是危險牌,這是因為別人手里一開始可能是三五六八筒,三八筒效率較低被打掉,留下的五六筒要四七筒。這一理論在近十年的大數(shù)據(jù)研究中已被證明是完全錯誤的--別人要四七筒的概率并沒有顯著性的上升。
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  可見,目前人們對麻將的研究還處在很初級的階段,通過別人打過的牌來分析別人想要的牌的科學(xué)研究才剛剛開始。麻將界也沒有圍棋那樣3 歲開始學(xué)棋,10 幾歲就和世界頂級高手過招,接受世界頂級指導(dǎo)的職業(yè)選手。麻將本身復(fù)雜度低,人類頂尖牌手水平又不高,被人工智能擊敗會比圍棋要容易得多,不可能是「最后壁壘」。
 
  四. 現(xiàn)在有哪些比較強的麻將AI?
 
  競技麻將方面,目前國標(biāo)麻將和日本麻將都有比較強的AI(高于人類平均水平)。日本麻將的AI 目前最強的當(dāng)然是「爆打」。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  「爆打」是由東京大學(xué)工學(xué)系在讀博士生水上直紀(jì)開發(fā)的日本麻將AI,他所在的課題組就是專門研究麻將AI 的。爆打和AlphaGo 一樣,也具有自我對局和分析并學(xué)習(xí)人類牌譜的能力。水上發(fā)表過的論文題目為《Realizing a Four-Player Computer Mahjong Program by Supervised Learning with Isolated Multi-Player Aspects》,全文詳見http://www.logos.ic.i.u-tokyo.ac.jp/~mizukami/paper/jousho_2014.pdf。
 
  爆打從2015 年開始在最大的日本麻將平臺--天鳳麻雀上開始運行,至2016 年2 月已經(jīng)打了1.3 萬多場(約13 萬手牌)。2015 年9 月,爆打達(dá)到天鳳麻雀四段,2015 年12 月更是一度沖進(jìn)天鳳七段,長期成績顯示平均為六段以上。這意味著什么呢?
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  上圖是天鳳麻雀平臺2016 年3 月13 日的段位成績分布圖(來源ァ◇ライン対戦麻雀天鳳/ ランキング)。天鳳平臺具有非??茖W(xué)的段位和Elo Rating 體系,越是和高水平牌手對局,獲勝后Rate 增加越多,失敗后Rate 減少越少;越是和低水平牌手對局,獲勝后Rate 增加越少,失敗后Rate 減少越多。最終段位和Rate 值的穩(wěn)定值就代表了牌手的真實實力。
 
  可以看到,天鳳麻雀平臺的活躍用戶數(shù)約為17 萬人(不包括新人僵尸號),而六段以上的用戶總數(shù)為5793 人,約占3.4%。也就是說,爆打打麻將比96.6% 的麻將玩家要好,全世界麻將打得比爆打好的人,數(shù)量僅有幾萬人左右(包含所有麻將規(guī)則的估算)。這只是一個課題組,用時一年多研究出的,在一臺電腦上運行的麻將AI,就已經(jīng)基本趕上AlphaGo 早期版本所取得的成績了。
 
  國標(biāo)麻將方面,目前最強的AI 大概是我本人目前正在參與設(shè)計的國標(biāo)麻將AI 了。最初的版本只加入了最常用的十幾個番種的分值判斷,防守端幾乎沒有做,實測對隨機(jī)牌手和牌率就已經(jīng)達(dá)到24% 左右,基本與國標(biāo)麻將平均和牌率24.3% 持平(國標(biāo)麻將數(shù)據(jù)可見國標(biāo)麻將、日本麻將對局時,「點炮、自摸、流局」的比例分別是多少? - 段昊的回答)。實際水平大概處在所有牌手中上位10~20%左右的水平(低段位牌手多,大部分牌手的水平處在平均以下)。
 
  五. 麻將AI 的算法應(yīng)該是什么樣子的?
 
  最后,我來淺談一下麻將AI 的基本算法。
 
  1. 基礎(chǔ)牌效率
 
  麻將的牌效率指的是能使手牌更快和牌的打牌方法,是麻將的基本功。來簡單舉個例子:
 
  下圖牌畫取自聯(lián)眾國標(biāo)麻將(http://gbmj.lianzhong.com)。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  這是一手13 張牌的手牌,現(xiàn)階段是一上聽(差1 張牌就可以聽牌),那么哪些牌是有用的牌,或者說我摸到哪些牌會留下呢?這些有用的牌稱為「有效牌」,最有用的當(dāng)然是能讓我直接聽牌的牌,這類牌稱為「第一類有效牌」。
 
  第一類有效牌:能使手牌向和牌前進(jìn)一步(上聽數(shù)降低)的牌,包括:
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  除了第一類有效牌,有用的牌還有以下這些:
 
  第二類有效牌:不能使上聽數(shù)降低,但能使第一類有效牌增多的牌,包括:
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  比如摸到九索,一般情況下應(yīng)該選擇留下九索打掉三索,因為第一類有效牌變多了:
 
  計算采用天鳳牌理ァ◇ライン対戦麻雀天鳳/ 牌理。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  第三類有效牌:不能使上聽數(shù)降低,也不能使第一類有效牌增多,但能使第二類有效牌增多的牌,包括:
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  比如摸到五索,一般情況下應(yīng)該選擇留下三五索拆掉八九索,雖然第一類有效牌張數(shù)沒變,但三五索相比八九索多了1 種第二類有效牌--六索(原是第三類有效牌)。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
 ?。ㄒ苍S看到這里,你有點算不過來,或者感覺這和你平時打的麻將壓根不是一個游戲。沒關(guān)系,這很正常,你可以找張紙,在紙上仔細(xì)算一下每種第二類有效牌都新增了哪些第一類有效牌。)
 
  可見,對于一開始一上聽的13 張手牌而言,除了七八九筒外的所有數(shù)牌都是有用的牌。麻將的牌效率就是這樣--不斷通過有效牌增大自己的進(jìn)張面,最終使得和牌的概率越來越大。也許你已經(jīng)發(fā)現(xiàn),麻將牌效率的本質(zhì)就是一個搜索樹,最開始的手牌
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  經(jīng)過多輪選擇后可能對應(yīng)多種結(jié)局(和牌),例如:
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  路徑:摸到第一類有效牌八萬或七索聽牌,再自摸另一張和牌(最大概率結(jié)局)。
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  路徑:先摸到第二類有效牌一萬或七萬后打掉三索,然后摸到一萬或七萬的另一張聽七索,或者摸到七索選擇聽一萬和七萬對倒和牌。
 
  人工智能在麻將領(lǐng)域能夠戰(zhàn)勝人類嗎?
 
  路徑:先摸到第三類有效牌三筒后打掉三索,然后摸到四筒后拆掉八九索,之后和牌。
 
  對于一個兩上聽以內(nèi)的手牌來說,這個樹的深度最多也就是4~5 步,每一步的分支平均在15 種左右,也就是說復(fù)雜度最多在10^5 數(shù)量級。由于每條路徑都對應(yīng)著一個確定的概率,一個好的麻將AI 完全可以做到遍歷這個樹,比較兩種或更多種打牌選擇之間所對應(yīng)結(jié)局的和牌期望之和。
 
  對于三上聽以外的手牌(由上文圖中可知三上聽以外的手牌約占手牌所有組合的80%),由于手牌中會存在大量的孤張或簡單搭子,只需單獨比較孤張或簡單搭子的效率即可,計算量更小。
 
  除了上述窮舉手牌搜索樹的方法,還可以采用模擬的方法。比如讓麻將AI 在短時間內(nèi)模擬兩種打法各1000 手牌,哪個和牌率更高就選哪種打法。雖然這樣不太精確但已經(jīng)足夠保證比人要強了。
 
  2. 和牌限制與番數(shù)價值
 
  很多麻將規(guī)則對和牌有限制,比如國標(biāo)麻將必須八番起和,四川麻將必須缺一門,太原麻將和牌必須包含指定牌張等等。我們只需在上述基礎(chǔ)牌效率算法搜索樹的基礎(chǔ)上,「砍掉」那些結(jié)局不符合要求的分支即可。
 
  有些時候我們不僅關(guān)注和牌的概率,也關(guān)注和牌的大小,比如有些牌我們寧可損失一些進(jìn)張也想去做清一色,追求更高的和牌得分。我們只需為樹的所有結(jié)果賦值(和牌得分),并用結(jié)局對應(yīng)的值與路徑對應(yīng)的概率求出不同打法的得分期望并進(jìn)行比較。
 
  3. 副露判斷
 
  「這個牌該不該碰」似乎是打麻將時比較令人頭疼的問題。但其實副露判斷只是計算量大,并不需要特殊的算法,依然是對比碰與不碰兩種選擇所對應(yīng)的所有結(jié)局的得分期望即可。日本麻將中的立直(報聽)判斷也是同理。
 
  只不過當(dāng)我們在考慮「打哪張好」的時候,兩種打牌選擇之間所對應(yīng)的路徑和結(jié)局有大部分都是重合的;而我們在考慮「該不該碰」的時候,兩種選擇所對應(yīng)的路徑和結(jié)局基本是完全不同的,這無形中增大了計算量。其實人腦在做蒙特卡洛樹搜索時,比較容易做到「想得很深」,比如職業(yè)棋手可以提前算到20 甚至30 步棋;但難以做到「想得很廣」,通常情況下大腦只能做到從兩種選擇中找?guī)讉€概率較大、有代表性的結(jié)局樣本做比較。所以副露判斷顯得難,其實只是計算量的問題,而對于麻將AI 來說,這不是問題。
 
  4. 防守端
 
  防守端需要解決的是攻守判斷和防守打法兩個問題,即「什么時候要防守」和「要防守應(yīng)該打什么」。解決這些問題最好的方法是讓麻將AI 自己通過大量的牌譜(千萬場量級)進(jìn)行自我學(xué)習(xí)。正如前文我所提到的,其實人們對于麻將應(yīng)該如何科學(xué)防守的研究也才剛剛開始,想要分析一個打過三筒和八筒的人真正需要的是幾筒,需要大量的牌譜作為樣本進(jìn)行研究。這部分研究現(xiàn)在還要等待電腦去完成,未來的麻將AI 在這方面要比人類做得更好可以說是必然的。
 
  對大量牌譜所做的出牌模式研究還可反過來應(yīng)用于牌效率算法的改進(jìn)中。比如早巡打過八萬的人手牌中有九萬的概率較小,那么牌墻中剩余九萬的概率就有所上升,牌效率中利用九萬的路徑的概率就可以做出相應(yīng)的修正。
 
  5. 狀況判斷
 
  狀況判斷指的是麻將的「大局觀」,如為了爭取第一名或者為了規(guī)避第四名而采取不同的策略。狀況判斷其實就是對得分期望做進(jìn)一步的修正。比如某狀況下我必須自摸13 番牌才能逆轉(zhuǎn),那么最終結(jié)果是13 番以下的牌的得分期望可以進(jìn)一步降低,而13 番及以上的牌的得分期望則可以提高。
 
  總之,麻將的復(fù)雜度較低,算法上可以用搜索樹窮舉法以及大量牌譜的自我學(xué)習(xí)來解決,只要有大量牌譜資料,有人肯花時間,有人愿意出資,開發(fā)一個能勝過人類的麻將AI,非常容易。
 
 
 
更多>相關(guān)資訊
0相關(guān)評論

推薦圖文
推薦資訊
點擊排行