AlphaGo 新近并且很重要的消息是,它的開發(fā)者已經(jīng)找出一種儲存非常類似直覺的方式。
為了解釋它的運(yùn)作方式,讓我描述 一下AlphaGo 系統(tǒng), AlphaGo 團(tuán)隊(duì)在一月份發(fā)表的論文描述了這一系統(tǒng)。(因?yàn)?AlphaGo 和李世石的比賽,這個系統(tǒng)的細(xì)節(jié)有所改進(jìn),但大概指導(dǎo)原則仍然相同。)
一開始, AlphaGo 分析了優(yōu)秀人類棋手的 150,000 場比賽,使用人工神經(jīng)網(wǎng)絡(luò)去發(fā)現(xiàn)這些比賽中的模式。特別的是,它學(xué)會了預(yù)測人類棋手會在任何一個位置落子的可能性。 AlphaGo 的設(shè)計(jì)者后來通過反復(fù)讓其與自己的早期版本對弈,改善和校正了神經(jīng)網(wǎng)絡(luò),系統(tǒng)逐漸提高了獲勝的機(jī)率。
這個神經(jīng)網(wǎng)絡(luò)——被稱為策略網(wǎng)絡(luò)——如何學(xué)會預(yù)測出好的落子?
概括地說,神經(jīng)網(wǎng)絡(luò)是非常復(fù)雜的數(shù)學(xué)模型,有數(shù)以百萬的參數(shù),通過調(diào)整這些參數(shù)改變模型的行為。當(dāng)我說神經(jīng)網(wǎng)絡(luò)‘學(xué)習(xí)’時,意思是,計(jì)算機(jī)持續(xù)對模型參數(shù)做出微量調(diào)整,試著找到一種方式讓它在比賽中得到相應(yīng)微小進(jìn)步。在學(xué)習(xí)的第一階段,它試著在自我對弈中提高獲勝機(jī)率。這聽上去像一個瘋狂的策略——反復(fù)進(jìn)行微量的調(diào)整,進(jìn)而獲得一些極其復(fù)雜的功能——但是,如果你這樣做的時間足夠長,并且具備足夠的計(jì)算能力,網(wǎng)絡(luò)就會變得非常好。而且,有一件奇怪的事:沒有人真正知道它變得很好的原因,因?yàn)樗奶嵘菙?shù)十億次自動微量調(diào)整的結(jié)果。
在這兩個訓(xùn)練階段之后,策略網(wǎng)絡(luò)的圍棋水平相當(dāng)不錯了,和人類業(yè)余選手處于相同水平。但是,距離專業(yè)水平仍有一段很長的路。在某種意義上,業(yè)余水平是一種下圍棋的方式,不需要搜尋比賽的未來走法和評估選擇棋盤位置價值。為了超越業(yè)余水平, AlphaGo 需要一種方式來評估這些位置的價值。
為了克服這個障礙,開發(fā)者們的核心想法是,讓策略網(wǎng)絡(luò)與自身對弈,估算一個給定棋盤位置的勝算大校勝率提供了有關(guān)棋盤位置價值的粗略估算辦法。(實(shí)踐中, AlphaGo 使用了一種比這種觀點(diǎn)稍微復(fù)雜一些的變體。)然后, AlphaGo 將這種評估的方法與對許多可能走法的搜索結(jié)合起來,使搜索偏向于決策網(wǎng)絡(luò)認(rèn)為是很可能贏的走法。然后選擇那個給出最高棋盤估值的棋招。
我們可以從中看到, AlphaGo 不是從以大量詳盡的圍棋知識為基礎(chǔ)的評估系統(tǒng)開始的,這與深藍(lán)團(tuán)隊(duì)所做的不同。恰好相反,通過分析成千上萬場先前的比賽并進(jìn)行多次自我對弈, AlphaGo 通過數(shù)十億的微小調(diào)整,不斷做出微小改進(jìn),建構(gòu)出一個策略網(wǎng)絡(luò)。然后,策略網(wǎng)絡(luò)反過來幫助 AlphaGo 建立起一個評估系統(tǒng),捕獲非常類似于人類優(yōu)秀棋手直覺(對不同棋盤位置價值的直覺)的東西。
按照這種方式, AlphaGo 比深藍(lán)更加激進(jìn)。因?yàn)橛?jì)算發(fā)展的最早時期,計(jì)算機(jī)已經(jīng)被用于搜索優(yōu)化已知函數(shù)的方式。深度的解決辦法僅僅是:搜索旨在優(yōu)化盡管復(fù)雜但其形式主要表達(dá)出了既有國際象棋知識的函數(shù)。當(dāng)然,搜索方式是聰明的,但是,與許多二十世紀(jì)六十年代的程序并無不同。
AlphaGo 也使用了搜尋和優(yōu)化的思想,雖然它的搜尋方式稍微更加聰明。但是,新鮮而不同尋常的是,在前一階段,它使用了一種神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)幫助捕捉某種好的棋盤位置感的函數(shù)。 正是通過結(jié)合這兩個階段,AlphaGo才變?nèi)绱烁咚疁?zhǔn)。
這種復(fù)制直覺模式識別的能力,茲事體大。它也是一種更廣泛趨勢的一部分。在一篇早期的論文中,打造AlphaGo 的公司——也就是 Google DeepMind——打造了一個神經(jīng)網(wǎng)絡(luò),它學(xué)會了玩雅達(dá)利公司的 2,600 個視頻游戲中的 49 個經(jīng)典游戲,許多時候達(dá)到了人類專家無法企及的水平。用計(jì)算機(jī)解決這個問題的保守做法是深藍(lán)style:一位人類程序員分析每場比賽,為比賽計(jì)算出詳盡的控制策略。
對比之下,深藍(lán)的神經(jīng)網(wǎng)絡(luò)簡單探索了許多游戲方式。起初,網(wǎng)絡(luò)和人類初學(xué)者很像,玩得非常糟糕。但是,網(wǎng)絡(luò)偶爾也會有幾個神來之筆。它學(xué)會了識別游戲中好的模式——易言之,得高分的模式——這種方式就像 AlphaGo 學(xué)會好的落子方式一樣。而且,當(dāng)這些發(fā)生時,網(wǎng)絡(luò)會強(qiáng)化這個行為,逐步提高它的游戲水平。