葉敏超
2017年年初,一位取得在線對弈60連勝的神秘棋手Master震驚了世界圍棋棋壇。在Master取得50連勝的時(shí)候,棋手古力在微博中這樣評價(jià)道:“50連勝……雖然我也曾想過,但事
實(shí)擺在面前時(shí),還是令我等職業(yè)棋士汗顏。也許我們曾經(jīng)認(rèn)為永恒不變的圍棋定式、真理,會因Master的出現(xiàn)而發(fā)生顛覆性的改變……好好睡了吧,去迎接美好的明天與未來!”最終,在與古力進(jìn)行最后一盤對決前,Master終于自己揭下面紗——正如人們猜測的那樣,它果然是升級后的AlphaGo。此次代為執(zhí)子走棋的,依然是AlphaGo團(tuán)隊(duì)中惟一懂圍棋的工程師黃士杰(Aja Huang)博士。
AlphaGo的前輩——深藍(lán)
從2016年起,AlphaGo就成了一個(gè)家喻戶曉的名字。它是一個(gè)圍棋游戲的計(jì)算機(jī)程序,最早由DeepMind公司在英國開發(fā),后被Google公司收購。2015年10月,它成為在19×19的圍棋棋盤上第一個(gè)打敗專業(yè)棋手的計(jì)算機(jī)游戲程序。2016年3月,它在5場比賽中以4:1的比分擊敗了韓國棋手李世石,成為計(jì)算機(jī)游戲程序的又一個(gè)里程碑:第一次由計(jì)算機(jī)圍棋程序打敗了9段的專業(yè)級棋手。因此,AlphaGo被韓國棋院授予“名譽(yù)職業(yè)九段”證書。
其實(shí)計(jì)算機(jī)程序并非首次打敗人類專業(yè)選手。早在1997年5月,IBM公司旗下的“深藍(lán)”電腦就成功挑戰(zhàn)國際象棋世界冠軍卡斯巴羅夫。比賽在5月11日結(jié)束,最終深藍(lán)以3.5:2.5的比分擊敗卡斯巴羅夫,成為首個(gè)在標(biāo)準(zhǔn)比賽時(shí)限內(nèi)擊敗國際象棋世界冠軍的電腦系統(tǒng)。既然深藍(lán)早在10年前就取得了人機(jī)大戰(zhàn)的勝利,那么10年之后,為什么AlphaGo的出現(xiàn)又會掀起如此大的波瀾?這就要從它們不同的原理說起了。
深藍(lán)取勝的秘訣是“窮舉”,也就是窮舉每一步所有可能的格局(落子方法),再根據(jù)當(dāng)前格局窮舉下一步格局。也就是說,事先就做成一棵博弈樹。深藍(lán)窮舉搜索完整棵博弈樹,也就遍歷了所有可能的格局,然后通過對每一種格局進(jìn)行評分,最終選擇最優(yōu)的解法。從當(dāng)今的人工智能角度解讀,深藍(lán)的計(jì)算方式并不智能,只能用“暴力”去形容。深藍(lán)之所以能取得勝利,靠的是計(jì)算機(jī)強(qiáng)大的窮舉計(jì)算能力。當(dāng)計(jì)算機(jī)的內(nèi)存足夠大,計(jì)算速度足夠快時(shí),這種窮舉的算法應(yīng)付國際象棋綽綽有余。那么,可以將這種方法運(yùn)用到圍棋上嗎?答案是“不能”。原因就在于國際象棋與圍棋規(guī)則的差異。國際象棋的棋盤只有64格,而圍棋棋盤卻有361格,從棋盤大小考慮,圍棋的博弈樹遍歷的復(fù)雜度已經(jīng)比國際象棋加大了好幾十個(gè)量級。而圍棋更復(fù)雜的計(jì)算在于其游戲規(guī)則??此坪唵蔚挠螒蛞?guī)則中,每一步的變化加上一些特殊規(guī)則所產(chǎn)生的計(jì)算復(fù)雜度是天文數(shù)字量級的。據(jù)測算,國際象棋的窮舉復(fù)雜度為1046,而圍棋格局的窮舉復(fù)雜度需要10170。這樣的計(jì)算復(fù)雜度,已經(jīng)遠(yuǎn)遠(yuǎn)超越了計(jì)算機(jī)的運(yùn)算能力。因此,圍棋長期以來被認(rèn)為是對人工智能最具挑戰(zhàn)性的棋類游戲。
AlphaGo是如何學(xué)習(xí)的
AlphaGo的出現(xiàn),是人工智能第一次成功挑戰(zhàn)圍棋這個(gè)棋類游戲,具有突破性的意義。那么,當(dāng)博弈樹窮舉不再可行時(shí),AlphaGo是如何進(jìn)行決策的呢?于是,“學(xué)習(xí)”這一概念第一次在計(jì)算機(jī)程序?qū)牡念I(lǐng)域中出現(xiàn)。所謂“學(xué)習(xí)”,就是將專業(yè)棋手的對弈輸入計(jì)算機(jī),計(jì)算機(jī)通過一定的算法,最終得到專業(yè)級的對弈策略。而近年來火了一把的深度神經(jīng)網(wǎng)絡(luò),就成了AlphaGo學(xué)習(xí)的核心算法。在博弈中,AlphaGo使用“價(jià)值網(wǎng)絡(luò)”(value networks)來評估棋盤中的位置,使用“策略網(wǎng)絡(luò)”(policy networks)來確定棋子的移動。這些深度神經(jīng)網(wǎng)絡(luò),通過對人類專家對弈的監(jiān)督學(xué)習(xí)和增強(qiáng)學(xué)習(xí)來進(jìn)行組合訓(xùn)練。
要解釋AlphaGo的學(xué)習(xí)原理,首先要從人工神經(jīng)網(wǎng)絡(luò)(artificial neural networks)開始談起。人工神經(jīng)網(wǎng)絡(luò)簡稱神經(jīng)網(wǎng)絡(luò),是一種模仿人類神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的計(jì)算模型。神經(jīng)網(wǎng)絡(luò)由多個(gè)神經(jīng)元構(gòu)成,每個(gè)神經(jīng)元的結(jié)構(gòu)包含數(shù)據(jù)輸入、輸入權(quán)值、輸入函數(shù)、激活函數(shù)。各種數(shù)據(jù)輸入后根據(jù)權(quán)值在輸入函數(shù)中進(jìn)行疊加,然后通過非線性的激活函數(shù)進(jìn)行變換后輸出。多個(gè)神經(jīng)元組成了神經(jīng)網(wǎng)絡(luò)。最簡單的神經(jīng)網(wǎng)絡(luò)包含一個(gè)輸入層、一個(gè)隱層和一個(gè)輸出層(見圖 2)。其特征是從輸入層輸入,經(jīng)過隱層,最終由輸出層輸出。訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目的,就是根據(jù)若干訓(xùn)練樣本給定的輸入和輸出,計(jì)算出權(quán)值。深度神經(jīng)網(wǎng)絡(luò)與單隱藏層神經(jīng)網(wǎng)絡(luò)的區(qū)別,在于它們的深度和網(wǎng)絡(luò)的層數(shù)。傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)是淺層網(wǎng)絡(luò),由一個(gè)輸入層和一個(gè)輸出層組成,并且最多有一個(gè)隱層。隱層數(shù)目多于一個(gè)(不包括一個(gè))的神經(jīng)網(wǎng)絡(luò),才可稱為深度神經(jīng)網(wǎng)絡(luò)(見圖 3)。在深度神經(jīng)網(wǎng)絡(luò)中,每層神經(jīng)元基于前一層輸出在一組不同的特征上進(jìn)行訓(xùn)練。進(jìn)入神經(jīng)網(wǎng)絡(luò)越深,神經(jīng)元識別的特征越復(fù)雜,因?yàn)檫@些特征是前一層特征的聚合和重組。這種特征的層次結(jié)構(gòu)可以挖掘出非結(jié)構(gòu)化的原始數(shù)據(jù)中的潛在結(jié)構(gòu)。換言之,深度神經(jīng)網(wǎng)絡(luò)可以視為一種自動提取特征的方法。對于圍棋落子這樣的非結(jié)構(gòu)化數(shù)據(jù)來說,深度神經(jīng)網(wǎng)絡(luò)就是很適合的一種學(xué)習(xí)方法。
AlphaGo的學(xué)習(xí)流程包括三步(見圖 4):第一步,使用監(jiān)督學(xué)習(xí)訓(xùn)練策略網(wǎng)絡(luò)。將3000萬個(gè)專業(yè)棋手的落子位置以狀態(tài)-動作對(s,a)作為輸入,訓(xùn)練一個(gè)13層的監(jiān)督學(xué)習(xí)策略網(wǎng)絡(luò);第二步,使用增強(qiáng)學(xué)習(xí)強(qiáng)化策略網(wǎng)絡(luò)。該步驟中的策略網(wǎng)絡(luò)與上一步驟結(jié)構(gòu)相同,都是通過當(dāng)前策略網(wǎng)絡(luò)和之前迭代中隨機(jī)選出的一個(gè)策略網(wǎng)絡(luò)進(jìn)行對弈(自我博弈),根據(jù)勝負(fù)對策略網(wǎng)絡(luò)進(jìn)行更新。第三步,增強(qiáng)學(xué)習(xí)價(jià)值網(wǎng)絡(luò)。使用隨機(jī)梯度下降方法,通過以狀態(tài)-結(jié)果對(s,z)作為輸入,訓(xùn)練價(jià)值網(wǎng)絡(luò)的權(quán)重。完成以上三步學(xué)習(xí)流程后,AlphaGo就獲取到了圍棋落子的“知識”。接下來,AlphaGo只需將策略網(wǎng)絡(luò)與價(jià)值網(wǎng)絡(luò)結(jié)合在一起,然后就能通過使用蒙特卡洛樹搜索法(Monte Carlo Tree Search,即MCTS)尋找到最佳落子方法了。
AlphaGo會超越人類嗎
相較于“深藍(lán)”的窮舉搜索,AlphaGo才算是真正的機(jī)器學(xué)習(xí)。它巧妙使用了深度神經(jīng)網(wǎng)絡(luò)這種自動提取特征的學(xué)習(xí)方法,從雜亂的棋局中挖掘出潛在的隱含特征,甚至是那些“只可意會不可言傳”的特征,學(xué)習(xí)到了專業(yè)棋手的落子套路。而自我博弈的增強(qiáng)學(xué)習(xí)方法,又成了AlphaGo溫故知新、自我提升的強(qiáng)大工具。正因如此,AlphaGo才能突破極限,攻破圍棋這個(gè)堅(jiān)不可摧的人工智能堡壘。
AlphaGo的勝利讓一些人產(chǎn)生了惶恐——今后人工智能是否能夠完全超越人類的智慧,甚至統(tǒng)治人類?其實(shí),我們大可不必惶恐。AlphaGo的深度神經(jīng)網(wǎng)絡(luò)和MCTS法都是由人類設(shè)計(jì)出來的,其學(xué)習(xí)知識的來源也都是人類的對弈。即便是看似“自我思考”的自我對弈,也僅僅是人類設(shè)計(jì)的增強(qiáng)學(xué)習(xí)算法。不但無需惶恐,而且我們還期待,隨著人類智慧的發(fā)展,今后還將有更優(yōu)秀的算法涌現(xiàn)出來,計(jì)算機(jī)的計(jì)算能力也會隨著硬件技術(shù)的發(fā)展而得到很大提升。因此我們有理由相信,人工智能將會有能力攻克更多的難題,更好地為人類服務(wù)。讓我們拭目以待吧。