你有一位朋友,你真的很喜歡,而且你想要邀約她出去約會。雖然你很難處理拒絕,不過如果你非常肯定她會正面答應,那麼你將會開口邀約她。這是星期五的晚上,你坐在那裡,手上握有手機,正試圖決定是否打電話給她。你還記得上一次你問她,她回答不行。但是為什麼呢?在這之前的兩次,她是說可以,但在這些之前的那一次,她是說不行。也許有哪幾天是她不喜歡出門的日子?

也許是她喜歡去酒吧約會,但不喜歡晚餐約會?你先放下你的電話,進行一套異常系統的性質分析,記下你還能記得的那些以前的場合情況:

所以她的回答應該是什麼呢?答應約會或是不答應呢?是否有一種模式可以從不答應約會的情況,辨別出答應約會的模式呢?而且最重要的,關於今天的約會,這個模式會說出什麼呢?

很顯然,沒有單一的因素,可以正確地預測答案。在某些週末她喜歡出去,但某些週末她就拒絕;有時候她喜歡去酒吧約會,但有時她不想去,諸如此類。你認為因素的組合如何呢?也許她喜歡在週末去酒吧約會?不對,顯然場合4的情況就把這項因素組合刪除了。那麼再者,也許她只喜歡在溫暖的週末夜晚出門?賓果!果然這樣就可以了!在這種情況下,望著外面寒冷的天氣,看來今晚並不樂觀。不過等一下,如果沒有什麼好看的電視節目時,那麼她就會喜歡去酒吧約會嗎?這也適用,這意味著今天會是個同意約會的日子!快點,在為時已晚之前,趕快打電話給她。

但稍等一下,你怎麼知道這是正確的模式呢?你已經發現2次,雖然與你以前的經驗相符,但它們卻做出相反的預測。回頭想想,如果天氣很好時,那麼她就只會去酒吧約會嗎?或是當沒有什麼電視節目可以看時,那麼她就會在週末時出去嗎?抑或……在這一點上,你挫敗地揉掉筆記,把它們仍進廢紙簍裡。沒有辦法知道!你可以做什麼呢?就連休謨的鬼魂也在你的肩膀上悲傷地點著頭,無法助你一臂之力。你沒有任何基礎,可以挑選出一個歸納法則,用以做出另一推論。針對「她到底會怎樣回答」的問題,「可以」與「不行」都是同樣合理的回應。時鐘滴答作響。痛苦地,你只能從口袋裡,掏出一枚25 美分硬幣,乾脆直接投擲硬幣猜測吧。

你絕對不是唯一一個處於水深火熱之中的人,我們也是如此。只是我們剛剛出發,步上通往大演算之路,而且我們似乎已經碰到一個難以逾越的障礙。有沒有什麼辦法可以借鑒過去的經驗,讓我們可以有信心的在未來應用呢?如果沒有,是不是表示機器學習是一個無望的計畫呢?對於這件事,是不是所有的科學,甚至所有的人類知識,都還難以站得住腳?

這不像是大數據就可以解決的問題。你可能會是超級風流浪子卡薩諾瓦(Casanova),已經與數以百萬計的女人約過會,每個女人都有數千次約會紀錄,但是你的大資料庫依然無法回答這個問題,到底這個女人這一次將會說出什麼答案!即使今天與之前她回答可以的某些場合完全一樣,同樣的約會時間、同樣的約會形式、同樣的天氣和同樣的電視節目,仍不等於說,這一次她將會答應約會。就你所知,她的回答可能是由你沒想到的,或是你不曾接觸的一些因素所決定。也或許對於她的回應就是沒有任何規律或理由,它們是隨機的,而你試著想要在過去經驗中找出一種適用模式,只會浪費精力卻又得不到任何成果。

自從休謨提出問題後,哲學家們一直不斷爭論他的歸納問題,但是沒有人能提出一個令人滿意的答案。英國哲學家貝特蘭.羅素(Bertrand Russell)喜歡以歸納法優越論者(inductivist)的火雞故事,來說明休謨的問題。他舉例說明,他在農場上的第一個早晨,火雞在早上9 點被餵食,但要成為一位好的歸納法優越論者,他並沒有驟下結論。首先,他在許多不同日子裡,很多不同情況下,蒐集了許多觀察資料。連續好幾天,火雞總是在早上9 點被餵食,所以他最後得出的結論是:火雞總是會在早上9 點被餵食。然後到了聖誕節早晨,火雞並沒有被餵食,因為牠被割喉上桌了。

如果休謨的問題只是一個可愛的哲學難題,我們可以不加理會,那就好了,但我們不能。例如:Google 的搜尋引擎業務是基於統計預測,當你在搜索框中輸入一些關鍵字後,它會猜測哪些網頁是你正在尋找的。他們的重要資產便是這些大量的搜索查詢紀錄以及連結,其中這些紀錄是過去人們已經輸入的查詢,而連結是人們在相對應的結果網頁上所進行的點擊。但是如果有人輸入的關鍵字組合查詢,並不在現有的搜索查詢紀錄裡,你會怎麼做呢?即使是這樣,你怎麼能自信地認為目前的使用者希望取得與之前查詢相同的網頁呢?

如果我們只是「假設」未來將會像過去一樣,那會如何呢?這無疑就是一個高風險的假設(就像歸納法優越論者的火雞一樣行不通)。另一方面,沒有這種邏輯推論,一切知識都是不可能產生的,而且生命也是如此。即使是危險的,我們寧願賴活著。不幸的是,即便有了這樣的假設,我們並沒有脫離困境。要小心以下這種「平凡無奇」的案例:如果我是一位醫生,病人B 擁有與病人A 完全相同的症狀,那麼我會認為診斷結果是相同的。但是如果病人B的症狀不完全與其他人的情況相符,那麼我就會陷入黑暗中摸索,難以歸納判斷。這正是機器學習的問題,將我們之前從未見過的歸納為例。

但也許這並不是什麼大不了的事情?擁有足夠的數據資料,難道大多數的案例,無法歸屬於「平凡無奇」的類別嗎?當然不是。

我們在前面的章節中看到,為什麼記憶體不適合做為一種通用的學習器,但是如今我們可以使它變得更量化。假設你有一個資料庫,儲存了一萬億筆紀錄,每一筆紀錄具有一千個布林型欄位(Booleanfields,即每個欄位都是一個是或否的問題答案),那是相當龐大的資料庫。你已經看過多少種可能的答案組合情況呢(在你繼續往下閱讀之前,猜猜看吧)?

好吧,因為每個問題的答案都有兩種可能,所以二個問題就會有二乘二個可能的答案組合(是―是、是―否、否―是、否―否),對於三個問題就是二的三次方(2x2x2=23),那麼對於一千個問題就是二的一千次方(21000)了。而在你資料庫中的一萬億筆紀錄,就是21000 的1%的一個gazillionth,其中「gazillionth」表示「零點二八六個零後面加上一個一」(0.280000001)。最重要的一點,不管你有多少資料,如tera-(240)、peta-250)、exa-(260)、zettaor(270)或yotta(280)位元,基本上,你什麼也「沒有」看見。

然而你需要做出決策的新案例,已經存在於現有的資料庫中,這種機會是如此微乎其微,如果沒有歸納推論,你甚至無法順利起步。如果這一切聽起來有點抽象,讓我舉例說明,假設你是一家主要的電子郵件服務供應商,你需要標記每封收到的電子郵件是否為垃圾郵件或者非垃圾郵件,你可能有一個儲存了一萬億封過去電子郵件的資料庫,每封電子郵件已經被標記為垃圾郵件或非垃圾郵件,但這種做法也救不了你,因為若要每一封新的電子郵件,與以前的電子郵件是完全相同的副本,這種機率幾乎是零。你其實別無選擇,但要試著找出在更廣泛的層面上,如何區分垃圾郵件和非垃圾郵件。而且根據休謨的說法,沒有辦法做到這一點。

作者:佩德羅.多明戈斯(Pedro Domingos)為電腦工程博士,現任華盛頓大學電腦工程系教授。

(本文摘自三采文化出版的《大演算:機器學習的終極演算法將如何改變我們的未來,創造新紀元的文明?》一書)

微軟公司共同創辦人比爾·蓋茲在今年6月時,推薦了佩德羅·多明戈斯(Pedro Domingos)的《The Master Algorithm》(大演算),他還曾說:「在某些知識領域,機器將在10年內變得比人類更聰明。」   圖:三采文化提供