2016年1月28日星期四

樊麾對AlphaGo

昨日 Google 的 DeepMind 小組宣布,由他們開發的圍棋程式 AlphaGo 上月於閉門賽事中,直落五盤擊敗中國棋手樊麾

一九九七年,IBM 的「深藍」於公開的國際象棋比賽中,擊敗俄羅斯棋王卡斯巴洛夫。當時無論是媒體抑或民間,基本上都是驚呼「電腦/AI 終於勝過人類了」,不過老實說,我覺得這種反應很蠢。

首先,我們現在稱為「人類」的物體,儘管智能和體格有別,但個體「規格」之間的差異不大,但何謂「一部」電腦?某電腦裝置用了一塊多核心的 CPU,那它究竟是一部電腦,還是多部電腦?若像深藍般,用多顆 CPU 作平行處理又如何?「雲」端的機器又如何?再極端一點,如果當年和卡斯巴洛夫對奕的,係如 SETI@home 那樣大規模分散式的電腦網絡,那麼這比賽究竟是雙雄對壘,抑或是由棋王以一敵萬?

深藍擊敗卡斯巴洛夫,我並不覺得驚奇。集合夠多資源,就有勝過一人份的運算能力,這不是應該的嗎?

再者,深藍算不算「人工智能」也很難說。如何才稱得上 AI,本來就沒有共識。傳統的奕棋程式,用的更只是 brute-force search。概念上,電腦下棋之前,不過是先列出了無限步之後(直至終局)的所有可能狀況,再揀最有利的那一手來下。當然,電腦運算能力有限,不能盡算所有棋路,因此奕棋程式的重點,就在於決定各種棋路搜尋次序,以及每一路棋中,推算到幾多步才停。

我大學主修的並非電腦科學,更沒學過人工智能,所以當年我聽到棋賽結果的新聞時,心裏都疑惑,究竟深藍是否有所突破,用了一些配得上稱為 "AI" 的算則。事隔不久,深藍的主設計者許峰雄到薄大的講座講深藍。這類話題講座,若非太過 dumped down 就是太 technical,所以我沒打算去聽,不過我還記得,許峰雄於講座的摘要中,是清楚寫明他也認為深藍的算則只是 brute-force search,算不上 AI 的。

電腦下西洋棋勝過棋王之後,終極的人類 boss 就是圍棋國手了,不過也許是我孤陋寡聞,過去廿年間,似乎都未聽過有那個圍棋國手玩十九路圍棋(即是用橫直都是十九行的正式棋盤)輸給電腦。即使是十三路圍棋,或者對手為中段位的職業棋士,好像也只是傳出過幾次電腦贏職業棋士的消息。算則方面,廿年來亦好像只有一個真正的突破,就是發明了利用蒙地卡羅樹搜尋 (Monte-Carlo tree search) 的技巧,大大降低了要搜尋的棋路數目。

今次被 AlphaGo 擊敗的樊麾二段,和中國頂尖圍棋棋士古力九段同輩。BBC 的報道說 "A Google artificial intelligence program has beaten the European champion of the board game Go"。我是棋屎十段,不敢狗眼看人低,不過從網上搜尋,看不出樊麾於韓日中三個圍棋強國的賽事中有何勝績,至於 European champion 這個頭銜,指的是歐洲圍棋大會 (European Go Congress) 的年度賽事,歷史儘管悠久,卻不似是職業棋士之間的比賽。

DeepMind 小組的論文已於 Nature 刊登,從論文摘要來看,AlphaGo 的算則主要是利用 deep neural network 去選擇要搜尋的棋路,而這種做法可以單獨運用或者配合 Monte-Carlo tree search 使用。BBC 報道的標說 Google achieves AI 'breakthrough' by beating Go champion,不過驟眼看來,AlphaGo 的算則並無重大突破。報道中,DeepMind 的主事人 Demis Hassabis 亦沒有說過他們發明了甚麼嶄新的東西。他謂,此前人們認為要再多十年,電腦才有望擊敗頂尖圍棋棋士,而 AlphaGo 這麼早就可以擊敗樊麾,乃因為既有算則的改良比想象中快,而 AlphaGo 又結合了多種算則。

小組說他們已經約定三月份和韓國頂尖棋手李世乭對戰,AlphaGo 的真正實力,到時可知底蘊。

P.S. This blog of a DeepMind team member has a concise explanation of what was going on.

沒有留言: