|
企鵝智酷 | 深度解讀 這篇分析中,企鵝智酷將結(jié)合 AlphaGo 相關(guān)權(quán)威論文中提供的信息,以及這兩場(chǎng)比賽中李世石與 AlphaGo 表現(xiàn),來(lái)用更簡(jiǎn)潔的方式,告訴你谷歌 AlphaGo 到底如何下棋,以及它有哪些被隱藏起來(lái)的弱點(diǎn)。 先說(shuō)核心結(jié)論: 作為戰(zhàn)勝了人類圍棋冠軍的人工智能,AlphaGo (目前版本)強(qiáng)在小范圍戰(zhàn)斗,弱點(diǎn)在于對(duì)全局的判斷; AlphaGo 并非沒(méi)有“情緒”。它也會(huì)懷疑自己,只是用另一種形式呈現(xiàn)(不是人類的抖手或者撓頭發(fā)); 是誰(shuí)在訓(xùn)練 AlphaGo ?是它自己。用一種遠(yuǎn)超人類效率的方式學(xué)習(xí); 李世石如何贏?和很多圍棋專家分析的一樣,從科技角度看,李世石必須在開(kāi)局階段建立優(yōu)勢(shì),并且最好能夠更頻繁轉(zhuǎn)移戰(zhàn)場(chǎng)范圍; 未來(lái),AlphaGo 會(huì)將人類棋手遠(yuǎn)遠(yuǎn)甩在身后。它就只能繼續(xù)和自己玩了。 一、AlphaGo 是如何決定下每一步棋的? 企鵝智酷沒(méi)有能夠真的打開(kāi) AlphaGo 代碼庫(kù),去檢查它全面的運(yùn)行邏輯。我們只能從已公開(kāi)的權(quán)威論文中,來(lái)梳理這個(gè)迄今為止走進(jìn)公眾視野的最強(qiáng)大人工智能,是如何做出決策,戰(zhàn)勝人類的。 簡(jiǎn)單說(shuō),AlphaGo 下的每一步棋,都依賴于“概率”。 1.當(dāng)一開(kāi)始,棋盤有大量空白區(qū)域,棋子較少時(shí),AlphaGo會(huì)更愿意采用“固定策略”。 這種策略來(lái)自于 AlphaGo 自己模擬訓(xùn)練的數(shù)百萬(wàn)場(chǎng)棋局(每一局都從開(kāi)始模擬到結(jié)束)。這讓 AlphaGo 心中有一個(gè)大概的最佳選擇可能性,即下在點(diǎn)A和點(diǎn)B,哪個(gè)更好些。 在這個(gè)時(shí)候,AlphaGo 是通過(guò)經(jīng)驗(yàn)來(lái)判斷的。雖然這個(gè)經(jīng)驗(yàn)不來(lái)自與人類,而是來(lái)自于它結(jié)合人類下棋方式學(xué)習(xí)后,自己和自己對(duì)弈的數(shù)百萬(wàn)經(jīng)驗(yàn)值。但這種基于經(jīng)驗(yàn)的判斷,是人類挑戰(zhàn)它的最佳機(jī)會(huì)——和“恐怖”的機(jī)器推演能力相比,經(jīng)驗(yàn),起碼離人類更近一些。 為什么 AlphaGo 不在一開(kāi)始就用蒙特卡羅算法,盡量窮盡所有可能性,去給出更可靠的“計(jì)算答案”,而不是“經(jīng)驗(yàn)答案”呢? 我們猜測(cè),一方面是當(dāng)棋局尚未真正交鋒時(shí),各種選擇的概率差不多,沒(méi)必要做精確計(jì)算;另一方面,也為了節(jié)省時(shí)間。 2.當(dāng)棋局有局部拼殺時(shí),AlphaGo 的戰(zhàn)力就升級(jí)了。 這時(shí)候,再依賴那數(shù)百萬(wàn)局“自己與自己下棋”的經(jīng)驗(yàn),明顯是不夠的。因?yàn)槠寰炙蚕⑷f(wàn)變,李世石的下法,很可能是 AlphaGo 沒(méi)有模擬過(guò)的(不要高估數(shù)百萬(wàn)局訓(xùn)練,和圍棋的可能性相比,只是滄海一粟)。 這時(shí)候,AlphaGo 會(huì)不再聚焦于整個(gè)棋盤,而將計(jì)算精力縮到一個(gè)小范圍(戰(zhàn)斗區(qū)域,例如右下角5*5,8*8這種)。這時(shí)候,它會(huì)啟動(dòng)現(xiàn)場(chǎng)演算推理功能,即開(kāi)始計(jì)算每一個(gè)落子位置的后續(xù)走勢(shì),來(lái)計(jì)算最佳一步。 這需要時(shí)間。所以,AlphaGo 在短兵相接時(shí),不得不縮小觀察范圍,在局部啟動(dòng)現(xiàn)場(chǎng)計(jì)算。這雖然失去了一定的“大局觀”,但換來(lái)了計(jì)算的效率,和電腦比,人腦的純粹計(jì)算力是相對(duì)弱勢(shì)的,所以,短兵相接,機(jī)器占大優(yōu)勢(shì)。 3.當(dāng)局勢(shì)需要兼顧大局和計(jì)算力時(shí),AlphaGo 怎么辦? 開(kāi)局布局,AlphaGo 用經(jīng)驗(yàn);短兵相接,AlphaGo 用計(jì)算力。那么在局勢(shì)復(fù)雜時(shí),AlphaGo 的另一個(gè)特長(zhǎng)就有用武之地了——兼顧大局觀和計(jì)算能力。 它叫做“棋局評(píng)估器 (Position Evaluator)”。這個(gè)東西會(huì)告訴 AlphaGo ,哪些地方是“不值得”你去深度計(jì)算的。這就幫助 AlphaGo 節(jié)省大量的計(jì)算需求,只針對(duì)局面上有價(jià)值的點(diǎn),來(lái)推演,并給出最終的優(yōu)勝概率排序。所以,這個(gè)評(píng)估器也叫作“價(jià)值網(wǎng)絡(luò)”。 這東西是怎么實(shí)現(xiàn)的呢?也是經(jīng)驗(yàn)。AlphaGo 模擬了兩個(gè)“自己”,然后隨機(jī)落子計(jì)算每個(gè)位置對(duì)贏棋的價(jià)值。這種簡(jiǎn)單粗暴的計(jì)算是人類大腦無(wú)法訓(xùn)練的,只有機(jī)器可以肆無(wú)忌憚的這么做。 打個(gè)形式上的比喻。如果你用過(guò)掃地機(jī)器人就知道,啟動(dòng)后,它并非按照人類的方式,一塊地磚接一塊的掃地,而是以一種亂序的方式,在房間里橫沖直撞。 你以為它瘋了。但只要你關(guān)上門,過(guò)一會(huì),你會(huì)發(fā)現(xiàn)它已經(jīng)把地打掃干凈了——所有的區(qū)域,都被這種隨機(jī)方式覆蓋到。 人類是不可能這么掃地。會(huì)累死你。 但和窮盡推演相比(雖然目前不可實(shí)現(xiàn)),這種價(jià)值估算并不是完全準(zhǔn)確的(掃地和圍棋在精讀與復(fù)雜度上,是完全不同的)。它是在兼顧時(shí)間和效率基礎(chǔ)上,一種最適合的策略。這也是 AlphaGo的一個(gè)弱點(diǎn)。 二、AlphaGo 也會(huì)懷疑自己 我們覺(jué)得人機(jī)對(duì)戰(zhàn)對(duì)李世石不公平的一個(gè)地方,是機(jī)器人不會(huì)受情緒影響,而人類棋手卻時(shí)常受困于其中。 從單一棋局看,AlphaGo 確實(shí)是不會(huì)“后悔”的,因?yàn)樗拿恳徊剑际撬J(rèn)定的最佳決策。但當(dāng)你通過(guò)多局去觀察 AlphaGo 時(shí),會(huì)發(fā)現(xiàn)它其實(shí)也會(huì)“懷疑”,只是這種懷疑,并不會(huì)影響它的棋力,反而會(huì)促進(jìn)它的進(jìn)化。 原理很簡(jiǎn)單。AlphaGo 會(huì)懷疑自己,是因?yàn)樵诤芏嗑置孢x擇時(shí),最優(yōu)解不止一個(gè),或者比較接近。例如有五個(gè)點(diǎn)的贏棋概率都是45%,在這一局里,AlphaGo 可能選擇了點(diǎn)A,但下一句,它可能會(huì)選擇點(diǎn)B…… 如果點(diǎn)A贏了,以后它會(huì)一直選擇點(diǎn)A嗎?這個(gè)我也不清楚,論文里沒(méi)說(shuō)。但從邏輯上推斷,既然是經(jīng)過(guò)了百萬(wàn)棋局的演算,那么一局的勝負(fù),對(duì)于具體某點(diǎn)的概率提升,不會(huì)太明顯。所以,AlphaGo 在應(yīng)對(duì)同樣局面時(shí),它可能給出完全不同的下法——根據(jù)幾個(gè)最優(yōu)解,隨機(jī)選擇。 而這一點(diǎn),也正是它可怕之處。連開(kāi)發(fā)它的人類,都無(wú)法預(yù)測(cè)它的行為。因?yàn)槟惆央S機(jī)函數(shù)的權(quán)利,交給了人工智能自己。 三、AlphaGo 為什么極少下臭棋? 我們通常把人工智能比作”高智商嬰兒“,按照這個(gè)推斷,AlphaGo 就算表現(xiàn)驚艷,但應(yīng)該也會(huì)有下臭棋的時(shí)候。因?yàn)閱渭兊娜斯ぶ悄?,是無(wú)法真的模擬人類思維的。 但 AlphaGo 沒(méi)有丟過(guò)人。因?yàn)樵谝婚_(kāi)始,它并非完全的“自學(xué)”。工程師們安排 AlphaGo 在網(wǎng)絡(luò)對(duì)戰(zhàn)平臺(tái)上,與人類棋手不斷下棋,用來(lái)學(xué)習(xí)人類下棋的風(fēng)格和方式。當(dāng)工程師們覺(jué)得 AlphaGo 足以“像個(gè)人類棋手”時(shí),才讓它開(kāi)始自己和自己更瘋狂的練棋。 你如果很早在KGS(網(wǎng)絡(luò)圍棋對(duì)戰(zhàn)平臺(tái))上遇到過(guò) AlphaGo ,那么,你可能有幸看到過(guò) AlphaGo 還是嬰兒時(shí)的樣子。 四、AlphaGo 自己訓(xùn)練自己,而且效率嚇人 前面提到了,和人類練棋不同,AlphaGo 在學(xué)會(huì)了人類下棋方式后,復(fù)制了兩個(gè)自己,依托計(jì)算機(jī)性能優(yōu)勢(shì),不斷下棋,去豐富對(duì)局面判斷力。這種效率非常之高,甚至已經(jīng)超越了人類歷史上所有的對(duì)弈棋局總數(shù)量。 這意味著 AlphaGo 會(huì)越來(lái)越”老練“。雖然它還是無(wú)法在每一局的每一步中,窮盡所有可能性(如果它能做到,就戰(zhàn)無(wú)不勝了),但它會(huì)不斷通過(guò)訓(xùn)練積累大局觀,而隨著大局觀提升,在實(shí)戰(zhàn)中,它需要做現(xiàn)場(chǎng)精準(zhǔn)推演的效率也會(huì)更聚焦——人類也就越來(lái)越難贏它。 在可以預(yù)見(jiàn)的未來(lái),AlphaGo 會(huì)將人類棋手遠(yuǎn)遠(yuǎn)甩在后面。然后,它就只能在自己的世界里,自己和自己下棋玩了。 人類棋手會(huì)像今天的電競(jìng)愛(ài)好者那樣,去看看兩個(gè)“AlphaGo“ 的對(duì)局直播,一邊驚嘆,一邊感悟。 |
|
|