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.

2016年1月12日星期二

牛口

今日有新聞謂,小學字詞表「告」字上半部穿了底,寫成「牛」,與坊間常用寫法不同,令家長混亂云云。記者訪問了某位(說普通話的)大學中文系教授,他表示,中文字形,構字書法往往人人有別,老師批改習作時,應要寬容。他至此還說得頭頭是道,誰知話鋒一轉,就表示這個小學學習字詞表是「屬於民間的東西,起不了一個法律上的作用」,並建議香港仿效中國與新加坡,制訂具法律約束力的文字,減少爭拗。

在香港教授中文的大學教授,竟以為香港小學學習字詞表是「民間的東西」,使我十分驚訝,不過真正令我感到突兀的,是他那種實用主義的心態。在這位教授心目中,製作一份字形表的目的,似乎就是為了減少爭拗。一個漢字為甚麼要寫成某種特定形狀,字形如何演變至今,彷彿無足輕重。

若制訂字形表的目的,單純是要規範漢字寫法的話,這樣的規範早已存在。由官方制訂的字形表其實並不稀缺。中國有通用規範漢字表,台灣有國字標準字體,日本有改定常用漢字表,就連香港這個小城,也有常用字字形表(新聞提及的小學字詞表,只不過是將此字形表納入附錄)。然而,若追溯漢字的源流的話,就算是官訂的字形表,亦不免錯誤。例如台、港兩地的字形表,皆各自採用了一些不符合原有字義的字形,這是連維基百科也有提及的,根本是舊聞了。

九七之後,中文好像忽然變得很重要。教育當局先是強逼大部份中學推行「母語教學」,用粵語來教授一般科目。吊詭的是,對中文科,當局卻反而要求用一種並非多數港人母語的語言 ── 普通話 ── 來教。(前財政司司長梁錦松最近也不甘寂寞,又走出來支持用普通話教中文。)教師每日面對的困難,諸如經常超時工作,與教學無關的工作比重過大,課程要遷就公開試內容,老師被逼採取不合適的教學工具或方法(例如教育局曾要求中學老師必須用 PowerPoint slides 來講解,不知此政策取消已否)等等,當局卻視若無睹。

以中文科而言,若老師有多點時間準備,多些時間講解,多點裁剪課程的權力,學生就有機會真正領會漢字演變複雜之處。「告」字從牛從口,乃因為它本來根本並非「告訴」的意思,而是指綁在牛角上的一根橫木,乃牛用的防撞欄 (bumper)。至於此「告」字日後何以變成「告訴」的意思,已經完全不可考。我不是說老師應該將漢字字源列作課程一部份,更不是說所有中學生都有能力或興趣學習漢字字源,但若課堂真真正正由老師主導,我相信大部份的中學老師,都有辦法將中文科弄得沒那麼枯燥。

用普通話教中文是否真的較優勝,其實無關宏旨。而今殖民政府亟亟追求的,根本就不是提升香港人的中文水準,而是「中港融合」,消滅粵語。某日若電視節目都只講普通話,報紙都只寫簡體字,內容開口埋口都是國家民族,領導人一律「偉光正」,天災人禍都是感動時刻,當權者才不管你的中文如何,反正以他們本身的中文水準,也判斷不了別人行文之優劣。