您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>數(shù)值算法/人工智能>

深度解讀AlphaGo

大?。?/span>0.5 MB 人氣: 2017-10-12 需要積分:1
什么?人類已經(jīng)打開了潘多拉魔盒嗎?AlphaGo的勝利是否意味著人工智能的黑色方碑已經(jīng)出現(xiàn)?本文將從AlphaGo的原理入手逐步探討這個(gè)問題。
  AlphaGo與李世石的對戰(zhàn)已經(jīng)進(jìn)行了四局。前三局世人驚嘆于AlphaGo對李世石的全面碾壓,很多人直呼人類要完。因?yàn)楸灰暈槿祟?a href='http://ttokpm.com/v/' target='_blank' class='arckwlink_none'>智能的圣杯-圍棋,在冷酷的機(jī)器(或者是瘋狂的小狗)面前變成了唾手可得的普通馬克杯,而人類的頂尖棋手似乎毫無還手之力。3月12號(hào)的第四局,李世石終于扳回一居,而且下了幾手讓人驚嘆的好棋。特別是第 78 手,圍棋吧很多人贊為 “神之一手”,“名留青史”,“扼住命運(yùn)喉嚨的一手”。因?yàn)檫@一局,圍棋吧的主流輿論已經(jīng)從前幾天的震驚, 嘆息,傷心,甚至是認(rèn)為李世石收了谷歌的黑錢轉(zhuǎn)變?yōu)轶@喜,甚至認(rèn)為李世石已經(jīng)找到了打狗棒法。而人類要完黨則認(rèn)為這比 AlphaGo 5:0 大勝更可怕,因?yàn)檫@只狗甚至知道下假棋來麻痹人類,真是細(xì)思極恐。
  不論怎樣,AlphaGo在與人類頂尖圍棋高手的對決中已經(jīng)以3勝的優(yōu)勢鎖定了勝局,李世石目前只是在為人類的尊嚴(yán)而戰(zhàn)了。圍棋一年前還通常被認(rèn)為是 10年 內(nèi)都無法被人工智能攻克的防線,然而轉(zhuǎn)眼就變成了馬其諾防線了。那么這場人機(jī)大戰(zhàn)到底意味著什么?人類已經(jīng)打開了潘多拉魔盒嗎? AlphaGo 的勝利是否意味著人工智能的黑色方碑(圖 1, 請參見電影《2001:太空漫游》)已經(jīng)出現(xiàn)? 本文將從 AlphaGo 的原理入手逐步探討這個(gè)問題。
  一、AlphaGo 的原理
  網(wǎng)上介紹 AlphaGo 原理的文章已經(jīng)有不少,但是我覺得想深入了解其原理的同學(xué)還是應(yīng)該看看 Nature 上的論文原文 “Mastering the game of Go with deep neural networks and tree search”。雖然這篇文章有 20 頁,但是正文部分加上介紹部分細(xì)節(jié)的 Method 部分也就 8 頁,其中還包括了很多圖。個(gè)人覺得介紹 AlphaGo 的原理還是這篇最好。為了后面的討論方便,這里對其原理做簡要總結(jié)。
  對于圍棋這類完全信息博弈,從理論上來說可以通過暴力搜索所有可能的對弈過程來確定最優(yōu)的走法。對于這類問題,其難度完全是由搜索的寬度和深度來決定的。1997年 深藍(lán)解決了國際象棋,其每步的搜索寬度和深度分別約為 35 和 80 步。而圍棋每步的搜索寬度和深度則分別約為 250 和 150 步,搜索計(jì)算量遠(yuǎn)遠(yuǎn)超過國際象棋。減少搜索量的兩個(gè)基本原則是:1. 通過評(píng)估局勢來減少搜索的深度,即當(dāng)搜索到一定深度后通過一個(gè)近似局勢判斷函數(shù) (價(jià)值函數(shù)) 來取代更深層次的搜索;2. 通過策略函數(shù)來選擇寬度搜索的步驟,通過剔除低可能性的步驟來減少搜索寬度。很簡單的兩個(gè)原則,但難度在于減少搜索量和得到最優(yōu)解之間是根本性矛盾的,如何在盡可能減少搜索量和盡可能逼近最優(yōu)解之間做到很好的平衡才是最大的挑戰(zhàn)。
  傳統(tǒng)的暴力搜索加剪枝的方法在圍棋問題上長期無法有大的突破, 直到 2006年 蒙特卡洛樹搜索 (Monte Carlo Tree Search) 在圍棋上得到應(yīng)用,使得人工智能圍棋的能力有了較大突破達(dá)到了前所未有的業(yè)余 5-6 段的水平。MCTS 把博弈過程的搜索當(dāng)成一個(gè)多臂老虎機(jī)問題(multiarmed bandit problem),采用 UCT 策略來平衡在不同搜索分支上的 Exploration 和 Exploitation 問題。MCTS 與暴力搜索不同點(diǎn)在于它沒有嚴(yán)格意義的深度優(yōu)先還是寬度優(yōu)先,從搜索開始的跟節(jié)點(diǎn),采用隨機(jī)策略挑選搜索分支,每一層都是如此,當(dāng)隨機(jī)搜索完成一次后,又會(huì)重新回到根節(jié)點(diǎn)開始下一輪搜索。純隨機(jī)的搜索其效率是極低的,如同解決多臂老虎機(jī)的問題一樣,MCTS 會(huì)記錄每次搜索獲得的收益,從而更新那些搜索路徑上的節(jié)點(diǎn)的勝率。在下一輪搜索時(shí)就可以給勝率更高的分支更高的搜索概率。當(dāng)然為了平衡陷入局部最優(yōu)的問題,概率選擇函數(shù)還會(huì)考慮一個(gè)分支的被搜索的次數(shù),次數(shù)越少被選中的概率也會(huì)相應(yīng)提高。面對圍棋這么巨大的搜索空間,這個(gè)基本策略依然是不可行的。在每次搜索過程中的搜索深度還是必須予以限制。對于原始的 MCTS 采取的策略是當(dāng)一個(gè)搜索節(jié)點(diǎn)其被搜索的次數(shù)小于一定閾值時(shí)(在 AlphaGo 中好像是 40), 就終止向下搜索。 同時(shí)采用 Simulation 的策略,從該節(jié)點(diǎn)開始,通過一輪或者若干輪隨機(jī)走棋來確定最后的收益。當(dāng)搜索次數(shù)大于閾值時(shí),則會(huì)將搜索節(jié)點(diǎn)向下擴(kuò)展。Wikipedia 上 MCTS 詞條中的示例圖(圖 2)展示了 MCTS 的四個(gè)步驟:
  深度解讀AlphaGo
  圖2
  1. 選擇:根據(jù)子節(jié)點(diǎn)的勝率隨機(jī)選擇搜索路徑。
  2. 擴(kuò)展:當(dāng)葉子節(jié)點(diǎn)的搜索次數(shù)大于閾值時(shí)向下擴(kuò)展出新的葉子節(jié)點(diǎn)(如無先驗(yàn)則隨機(jī)選擇)。
  3. 仿真:從葉子節(jié)點(diǎn)開始隨機(jī)走棋一輪或者若干輪得到終局的收益。
  4. 回傳:將此次搜索的結(jié)果回傳到搜索路徑的每個(gè)節(jié)點(diǎn)來更新勝率。
  深度解讀AlphaGo
  圖3
  AlphaGo 其基本原理也是基于 MCTS 的,其實(shí)一點(diǎn)也不深?yuàn)W。但是 AlphaGo 在 MCTS 上做了兩個(gè)主要的優(yōu)化工作,使得圍棋人工智能從業(yè)余水平飛躍至職業(yè)頂尖水平。這兩個(gè)優(yōu)化工作分別是策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò),這兩個(gè)網(wǎng)絡(luò)都是深度神經(jīng)網(wǎng)絡(luò),本質(zhì)上是還是兩個(gè)函數(shù)。這兩個(gè)網(wǎng)絡(luò)分別解決什么問題呢?在原始 MCTS 中的選擇步驟中,開始的那些搜索只能純隨機(jī)的挑選子節(jié)點(diǎn),其收斂效率顯然是很低的。而策略網(wǎng)絡(luò)以當(dāng)前局勢為輸入,輸出每個(gè)合法走法的概率,這個(gè)概率就可以作為選擇步驟的先驗(yàn)概率,加速搜索過程的收斂。而價(jià)值網(wǎng)絡(luò)則是在仿真那一步時(shí)直接根據(jù)當(dāng)前局勢給出收益的估值。 需要注意的是在 AlphaGo 中,價(jià)值網(wǎng)絡(luò)并不是取代了隨機(jī)走棋方法,而是與隨機(jī)走棋并行(隨機(jī)走棋在 CPU 上而價(jià)值網(wǎng)絡(luò)在 GPU 上運(yùn)行)。 然后將兩者的結(jié)果進(jìn)行加權(quán) (系數(shù)為 0.5)。當(dāng)然 AlphaGo 的隨機(jī)走棋也應(yīng)該是做了大量的優(yōu)化工作,可能借鑒了之前的一些圍棋人工智能的工作。摘自 AlphaGo 論文的圖 3 清晰展示了策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)如何將圍棋人工智能的水平從業(yè)余水平提升到職業(yè)水平(Rollouts 就是隨機(jī)走棋)。因此 AlphaGo 的精髓就是在策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)上。
  策略網(wǎng)絡(luò)可以抽象為, 其中 s 為當(dāng)前局勢,a 為走法,其實(shí)就是在當(dāng)前局勢下每一個(gè)合法走法的條件概率函數(shù)。為了得到這個(gè)函數(shù),AlphaGo 采用的監(jiān)督學(xué)習(xí)的辦法,從 KGS Go Server 上拿到的三千萬個(gè)局勢訓(xùn)練了深達(dá) 13 層的深度神經(jīng)網(wǎng)絡(luò)。這一網(wǎng)絡(luò)能將走法預(yù)測準(zhǔn)確度提高到 57%。如果將這一問題看成一個(gè)多分類問題,在平均類別約為 250 個(gè)的情況下取得 57%的精確度是十分驚人的。在這個(gè)訓(xùn)練過程中,其目標(biāo)是更看重走法對最后的勝負(fù)影響而不僅僅是對人類走法的預(yù)測精度。 這個(gè)深度學(xué)習(xí)網(wǎng)絡(luò)的預(yù)測耗時(shí)也是相當(dāng)大的(需要 3 毫秒)。為此 AlphaGo 又用更簡單的辦法訓(xùn)練了一個(gè)快速策略函數(shù)作為備份,其預(yù)測精度只有 24.2%但是預(yù)測耗時(shí)僅為 2 微秒,低 1000 個(gè)數(shù)量級(jí)。需要注意的是,AlphaGo 實(shí)際使用的策略網(wǎng)絡(luò)就是從人類棋譜中學(xué)到的策略網(wǎng)絡(luò),而并沒有使用通過自我對弈來強(qiáng)化學(xué)習(xí)獲得的策略網(wǎng)絡(luò)。這是因?yàn)樵趯?shí)際對戰(zhàn)中,監(jiān)督學(xué)習(xí)網(wǎng)絡(luò)比強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)效果要好。
  價(jià)值網(wǎng)絡(luò)是個(gè)當(dāng)值函數(shù),可以抽象為, 即當(dāng)前局勢下的收益期望函數(shù)。價(jià)值網(wǎng)絡(luò)有 14 個(gè)隱層,其訓(xùn)練是通過采用強(qiáng)化學(xué)習(xí)策略網(wǎng)絡(luò) AlphaGo 的自我對弈過程中產(chǎn)生的局勢和最終的勝負(fù)來訓(xùn)練這個(gè)函數(shù)。
  強(qiáng)化學(xué)習(xí)或者說自我學(xué)習(xí)這個(gè)過程是大家對 AlphaGo 最著迷的部分,也是藥丸黨最憂心的部分。這個(gè)過程甚至被解讀成了養(yǎng)蠱,無數(shù)個(gè) AlphaGo 自我拼殺,最后留下一個(gè)氣度無比的。但讀完論文發(fā)現(xiàn),強(qiáng)化學(xué)習(xí)的作用其實(shí)并沒有那么大。首先是強(qiáng)化學(xué)習(xí)是在之前學(xué)習(xí)人類棋譜的監(jiān)督學(xué)習(xí)網(wǎng)絡(luò)的基礎(chǔ)上進(jìn)一步來學(xué)習(xí)的,而不是從 0 基礎(chǔ)開始。其次,強(qiáng)化學(xué)習(xí)網(wǎng)絡(luò)的并沒有用在實(shí)際博弈中,而是用在訓(xùn)練價(jià)值網(wǎng)絡(luò)中。而且在訓(xùn)練價(jià)值網(wǎng)絡(luò)中,并不是只使用那條最強(qiáng)的蠱狗,而是會(huì)隨機(jī)使用不同的狗。個(gè)人認(rèn)為,強(qiáng)化學(xué)習(xí)在 AlphaGo 中主要是用來創(chuàng)造具有不同風(fēng)格的狗,然后通過這些不同風(fēng)格的狗訓(xùn)練價(jià)值網(wǎng)絡(luò),從而避免價(jià)值網(wǎng)絡(luò)的過擬合。這可能是因?yàn)槟壳叭祟惼遄V的數(shù)量不夠用來訓(xùn)練足夠多的水平高的策略網(wǎng)絡(luò)來支持價(jià)值網(wǎng)絡(luò)的訓(xùn)練。
  二、AlphaGo 到底從人類經(jīng)驗(yàn)中學(xué)到了什么?
  個(gè)人認(rèn)為,AlphaGo 有某種程度的超強(qiáng)學(xué)習(xí)能力,能夠輕松的學(xué)習(xí)人類有史以來所有下過的棋譜(只要這些棋譜能夠數(shù)字化),并從這些人類的經(jīng)驗(yàn)中學(xué)到致勝的秘訣。但顯然,AlphaGo 下圍棋的邏輯從人類看起來肯定是不優(yōu)美的。MCTS 框架與人類棋手的布局謀篇完全沒有相同的地方,只是冷冰冰的暴力計(jì)算加上概率的權(quán)衡。策略網(wǎng)絡(luò)學(xué)習(xí)了大量人類的策略經(jīng)驗(yàn),可以非常好的判斷應(yīng)該走哪一步,但并不是基于對圍棋的理解和邏輯推理。如果你要問為什么要選擇這一步,策略網(wǎng)絡(luò)給出的回答會(huì)是歷史上這種情況 90%的人都會(huì)走這一步。而策略網(wǎng)絡(luò)呢,學(xué)習(xí)的是當(dāng)前局面的勝負(fù)優(yōu)勢的判斷,但是它同樣無法給出一個(gè)邏輯性的回答,而只能回答根據(jù)歷史經(jīng)驗(yàn),這種局面贏的概率是 60%這樣的答案。有些人說,這種能力近乎人的直覺,但我覺得人類直覺的機(jī)制應(yīng)該比這復(fù)雜得多,我們的直覺無法給出判斷的概率, 或者說人類的思維核心并不是概率性的。AlphaGo 從大量人類經(jīng)驗(yàn)中學(xué)到了大量的相關(guān)性的規(guī)律(概率函數(shù)),但是確沒有學(xué)習(xí)到任何的因果性規(guī)律。這應(yīng)該是 AlphaGo 和人類棋手最本質(zhì)的區(qū)別了。
  三、AlphaGo 超越了人類的智能了嗎?
  要回答這個(gè)問題,首先要明確超越的定義。如果說能打敗人類頂尖棋手,那 AlphaGo 在圍棋上的智能確實(shí)是超越了人類。 但是假設(shè),人類再也不玩圍棋了,沒有更新的人類棋譜,AlphaGo 的圍棋智能還能提高嗎? 從前面的分析看, AlphaGo 的自我學(xué)習(xí)過程作用并不是那么大,這點(diǎn)我是表示懷疑的。也許人類沉淀的經(jīng)驗(yàn)決定了 AlphaGo 能力的上界,這個(gè)上界可能會(huì)高于人類自身頂尖高手。但是當(dāng)人類不能繼續(xù)發(fā)展圍棋,AlphaGo 的能力也就會(huì)止步不前。
  從理論上來說圍棋可能發(fā)生的變化數(shù)量是個(gè) 170 位數(shù), 這是人類和計(jì)算機(jī)的能力都無法窮盡的。無論是人類的邏輯推理,還是人工智能的搜索策略,陷入局部最優(yōu)是無法避免的命運(yùn)。而目前 AlphaGo 的機(jī)制,決定了其肯定是跟著人類掉進(jìn)坑里(某些局部最優(yōu))。如果人類不能不斷的挖掘新坑(新的局部最優(yōu),或者圍棋新的風(fēng)格和流派),AlphaGo 能跳出老坑的可能性并不是太大。從這個(gè)意義上來說,AlphaGo 在圍棋上超越人類智能應(yīng)該還沒有實(shí)現(xiàn)。
  四、AlphaGo 會(huì)故意輸給李世石嗎?
  12號(hào)這一局有人認(rèn)為是 AlphaGo 故意輸給李世石,或者為了保存實(shí)力,或者為了能夠進(jìn)入排名。但是從 Google 公開的原理來看,其顯然不具備做這樣決策的機(jī)制。AlphaGo 的機(jī)制就是追求當(dāng)局取勝,完全沒有考慮各局之間的關(guān)系,更沒有人工智能偉大崛起的戰(zhàn)略目標(biāo)。 AlphaGo 故意輸只是句玩笑而已。真要說故意,那也只可能是 DeepMind 中的人干的事情。
  五、人類能否戰(zhàn)勝 AlphaGo?
  李世石贏了一局,圍棋吧不少人都認(rèn)為人類找到了克制 AlphaGo 的打狗棒法。就是不要把狗當(dāng)人,不要用人的思維對待狗,我們需要大膽跳出以往的經(jīng)驗(yàn),去尋找神之一手。結(jié)合前面的分析,我覺得這個(gè)思路是對的。本質(zhì)上 AlphaGo 是在追隨人類圍棋的發(fā)展,如果人類不能跳出自己的窠臼,則只會(huì)被在這個(gè)窠臼中算無遺策的 AlphaGo 碾壓。人類棋手可以通過自己的邏輯推理,尋找跳出當(dāng)前局部最優(yōu)的方法。但這也不是一件容易的事情,跳出經(jīng)驗(yàn)思維,更多的可能性是陷入更大的逆勢,這對人的要求太高了,也只有頂尖棋手才有可能做到。而且 AlphaGo 也能夠不段的學(xué)習(xí)新的經(jīng)驗(yàn),神之一手可能戰(zhàn)勝 AlphaGo 一次,但下一次就不見得有機(jī)會(huì)了。AlphaGo 就如同練就了針對棋力的吸星大法,人類對他的挑戰(zhàn)只會(huì)越來約困難。
  六、AlphaGo 能干什么以及不能干什么?
  DeepMind 的目標(biāo)肯定不只是圍棋,圍棋只是一個(gè)儀式,來展示其在人工智能上的神跡??垂_報(bào)導(dǎo),下一步可能是星際爭霸,然后是醫(yī)療,智能手機(jī)助手,甚至是政府,商業(yè)和戰(zhàn)爭決策等領(lǐng)域。
  Demis Hassabis 在接受 The Verge 采訪時(shí)透露 DeepMind 接下來關(guān)注的核心領(lǐng)域?qū)?huì)是個(gè)人手機(jī)助手。Hassabis 認(rèn)為目前的個(gè)人手機(jī)助手都是預(yù)編程的,過于脆弱,無法應(yīng)變各種情況, 而 DeepMind 想通過人工智能技術(shù),特別是無監(jiān)督的自我學(xué)習(xí)方式具有真正智能的真正智能手機(jī)助手。這是因?yàn)橹悄苁謾C(jī)的輸入變化太多,需要巨量的訓(xùn)練樣本才能學(xué)到有用的東西。而這正是 AlphaGo 目前主要依賴的方法。為此,Hassabis 想挑戰(zhàn)讓機(jī)器的自我學(xué)習(xí)成為主要的學(xué)習(xí)方式, 他對此充滿了信心。但我認(rèn)為這個(gè)問題可能不是那么好解決的,因?yàn)樵?AlphaGo 中自我學(xué)習(xí)的作用是相對有限的。如果在圍棋這種相對簡單的環(huán)境中,自我學(xué)習(xí)的作用都相對有限,在更加復(fù)雜的環(huán)境中要能有很好的自我學(xué)習(xí)效果其挑戰(zhàn)會(huì)更加巨大。不過從我們 TalkingData 的角度來看,把我們的海量移動(dòng)端數(shù)據(jù)和監(jiān)督學(xué)習(xí)技術(shù)相結(jié)合,可能更容易實(shí)現(xiàn) Hassabis 的設(shè)想。
  我個(gè)人期待 AlphaGo 能夠創(chuàng)造更大的神跡,但同時(shí)也認(rèn)為其應(yīng)用還是有一定局限性的。因?yàn)椴⒉皇撬械膶?shí)際問題都能找到這么多的訓(xùn)練數(shù)據(jù)。尤其在政府,商業(yè)和戰(zhàn)爭決策上,窮盡人類歷史也找不到多少精確的訓(xùn)練集,而問題本身的復(fù)雜性又是超過圍棋這種完全信息博弈的。在這種情況下,恐怕很難學(xué)到足夠準(zhǔn)確的策略網(wǎng)絡(luò)和價(jià)值網(wǎng)絡(luò)。這就使得 AlphaGo 的方法面對這些問題,可能是完全無法解決的。
  七、AlphaGo 到底意味著什么?
  雖然在圍棋這一被人類自認(rèn)為是智能圣杯的特定領(lǐng)域, AlphaGo 取得了巨大成就,但其基本機(jī)制并沒有什么顛覆性的東西。要實(shí)現(xiàn)強(qiáng)人工智能的星辰大海,目前的計(jì)算機(jī)理論和技術(shù)可能只算得上工質(zhì)火箭。但是 AlphaGo 所代表的人工智能突破性的發(fā)展也不能被低估,工質(zhì)火箭畢竟把人類帶入了太空時(shí)代。目前的人工智能在某些領(lǐng)域已經(jīng)能夠更好的學(xué)習(xí)全人類的經(jīng)驗(yàn)的能力。也許人工智能很難創(chuàng)造出什么,但是至少能把人類已經(jīng)達(dá)到的高度推向更高,將人類從更多的重復(fù)性勞動(dòng)中解放出來,也為我們創(chuàng)造更好的生活,更好的環(huán)境。 AlphaGo 是人類進(jìn)步史上的一個(gè)重要臺(tái)階,但是它可能并不是人工智能崛起的黑色方碑。
  作者介紹:張夏天TalkingData首席數(shù)據(jù)科學(xué)家,曾在IBM中國研究院,騰訊數(shù)據(jù)平臺(tái)部,華為諾亞方舟實(shí)驗(yàn)室任職。對大數(shù)據(jù)環(huán)境下的機(jī)器學(xué)習(xí),數(shù)據(jù)挖掘有深入的研究和實(shí)踐經(jīng)驗(yàn)。在TalkingData負(fù)責(zé)數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)工作,為TalkingData各個(gè)產(chǎn)品線和服務(wù)線提供支持。
?

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評(píng)論

      用戶評(píng)論
      評(píng)價(jià):好評(píng)中評(píng)差評(píng)

      發(fā)表評(píng)論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?