本文作者為 Neil Lawrence,謝菲爾德大學(xué)機器學(xué)習(xí)和計算生物學(xué)教授。在
ODSC East(Open Data Science Conference East:開放數(shù)據(jù)科學(xué)大會(美國東部))上他詳盡地探討了機器學(xué)習(xí)的問題。
機器學(xué)習(xí)是一種數(shù)據(jù)驅(qū)動的人工智能研究方法。AlphaGo 通過許多局的自我對弈和觀察大量專業(yè)棋手的對弈歷史記錄來學(xué)習(xí)怎樣下圍棋。
看起來,讓計算機成為世界上最好的圍棋手只是一個時間問題。AlphaGo 通過機器學(xué)習(xí)擊敗了歐洲圍棋冠軍,這項技術(shù)是近來計算機視覺、語音識別和語言翻譯等人工智能領(lǐng)域內(nèi)的重大進(jìn)步的基礎(chǔ)。
最終的結(jié)果,當(dāng) AlphaGo 和那位歐洲圍棋冠軍開始第一場比賽時,它所下過的棋局?jǐn)?shù)量就已經(jīng)遠(yuǎn)遠(yuǎn)超過了任何人一輩子可能下過的棋局?jǐn)?shù)量。自從那次獲勝之后,AlphaGo 還一直在積極學(xué)習(xí)提高自己。它日夜堅持不停地下棋,努力為與世界冠軍的對戰(zhàn)做準(zhǔn)備。
我們的數(shù)據(jù)錯覺
[size=1em]這一現(xiàn)象并不僅限于 AlphaGo。在其它領(lǐng)域,我們(系統(tǒng)的)人類級別表現(xiàn)也受驚人的龐大數(shù)據(jù)驅(qū)動。我們的視覺系統(tǒng)為了識別物體需要遠(yuǎn)比我們所需更多的有標(biāo)記圖像,我們的語音系統(tǒng)為了理解話語需要遠(yuǎn)比我們所需更多的話語,我們的翻譯系統(tǒng)需要的已翻譯樣本比一個人類能夠閱讀的還多。 [size=1em]
[size=1em]
△世界數(shù)據(jù)能力的增長評估
所以,盡管我們正在一些曾經(jīng)被認(rèn)為非常困難或不可能的任務(wù)中取得可觀的進(jìn)步,但事實是這些進(jìn)步更多是由更多的可用數(shù)據(jù)推動,不是來自算法的進(jìn)步。事實上,當(dāng)我們首次嘗試解決諸如物體識別和語言翻譯這樣的任務(wù)時,如果試圖將最新方法應(yīng)用到那時擁有的數(shù)據(jù)量上,這些任務(wù)不可能得到解決。是數(shù)據(jù)爆炸讓它們易于處理。
蒸汽
[size=1em]這種情況讓我想起了工業(yè)革命的早期階段。Thomas Newcomen 生于英國西南部——一個自羅馬時代以來就以錫礦聞名的地區(qū)。礦需要將水抽出去使采礦不被影響。 1712 年,Newcomen 發(fā)明了蒸汽機來做這件事。他發(fā)明的引擎由一個位于鍋爐頂部的大型活塞組成。鍋爐產(chǎn)生的蒸汽交替填充這個活塞,然后通過直接注入水進(jìn)行冷卻,進(jìn)而引發(fā)運動。 [size=1em]
[size=1em] 煤炭
[size=1em]剛使用的時候,Newcomen 的引擎在他當(dāng)?shù)氐腻a礦里只有相對很小的作用,如此低效以至于毫不實用。但是,它們卻在煤田中得到了廣泛的使用,因為在煤田里可以很容易補充燃料。這多少讓我想起今天的情形:主要互聯(lián)網(wǎng)公司可以通過當(dāng)前一代推理引擎獲利,因為這些公司相當(dāng)于當(dāng)年的煤田,擁有大量可供使用的數(shù)據(jù)。 [size=1em]
醫(yī)療應(yīng)用
[size=1em]目前,我們正在錯失(這一領(lǐng)域的)錫礦以及任何其他礦藏的等價物。在醫(yī)藥等應(yīng)用領(lǐng)域,我們面臨不少困難,首先是因為:系統(tǒng)的復(fù)雜性遠(yuǎn)遠(yuǎn)高于語音、視覺、甚至圍棋游戲。我們的干預(yù)通常是在生物化學(xué)層面,然而,干預(yù)的臨床表現(xiàn)卻發(fā)生在全球健康層面。
對于罕見或復(fù)雜的疾病——那些由壞境和基因原因共同導(dǎo)致的疾病,使用當(dāng)前這套低效模型,我們將永遠(yuǎn)不會獲得足夠的數(shù)據(jù),讓這些復(fù)雜模型學(xué)習(xí)早期診斷和治療所需的知識。
分離冷凝器
[size=1em]在我們腦海里,蒸汽機與詹姆斯·瓦特的相關(guān)度要高得多,瓦特通過引入分離冷凝器讓蒸汽機變得實用。他沒有直接將水注入到汽缸中,而是將蒸汽吸出汽缸后分開冷卻它。 [size=1em]
[size=1em] [size=1em]△詹姆斯·瓦特帶有分離冷凝器的蒸汽機的結(jié)構(gòu) [size=1em]
[size=1em]這種設(shè)計更加有效,因為汽缸本身再也不用經(jīng)歷加熱和冷卻的循環(huán)了。由此導(dǎo)致了效率的倍增,使蒸汽機變得實用;它不再只被用于康沃爾的錫礦,也被用在了鐵路和牽引引擎上。 [size=1em]
智能
[size=1em]我對智能的定義是:使用信息,節(jié)省能源。
智能決策的含義是,消化事實,做出決定,這個決定減少了與行動相關(guān)的支出(較之沒有掌握哪些事實的情況下)。根據(jù)這一定義,通過生成決定節(jié)省能源或者使用更少的信息,我們就能變得更加智能。
在非,F(xiàn)實的意義上,目前還存在數(shù)據(jù)效率赤字問題,赤字和當(dāng)年 Newcomen 的引擎效率赤字一樣大。機器學(xué)習(xí)需要它的分離冷凝器這一契機。在數(shù)據(jù)效率上,我們需要一次瓦特的分離冷凝器一樣的革命。 [size=1em]
函數(shù)組合(Function Composition)和深度學(xué)習(xí)
△DeepFace 的架構(gòu),該識別系統(tǒng)來自 Facebook 的論文[size=1em]
[size=1em]在數(shù)學(xué)上,我們有時候可以將一個函數(shù)看作是一個確定過程(deterministic process)。因此,我們能將深度學(xué)習(xí)視為確定過程的組合。每個過程組合起來,創(chuàng)造出更加復(fù)雜的過程。對過程呈現(xiàn)數(shù)據(jù)(presentation of data to the process)能讓我們運用一組轉(zhuǎn)換獲得一個結(jié)果。上面的例子來自于 Facebook 的DeepFace 算法,其目標(biāo)是區(qū)分所給圖片是否是 Calista Flockhart 的臉。
[size=1em]
在機器學(xué)習(xí)中,這被稱為深度學(xué)習(xí)。對于一些作者而言,這與大腦有關(guān)或是一種思考人工智能的基本方式,但是,我們可以簡單將其看做是一種明智的想法,將一系列簡單變換運用于圖片,構(gòu)建復(fù)雜轉(zhuǎn)換。
現(xiàn)在機器學(xué)習(xí)的難題是怎么決定這些轉(zhuǎn)換的應(yīng)該是什么樣的。每一個更簡單的確定轉(zhuǎn)換,確實可以有許多參數(shù)。在 DeepFace 的案例中總共有超過 1.2 億個參數(shù)。
當(dāng)我們想到深度學(xué)習(xí)時,就能想到任何給定數(shù)據(jù)點通過決定過程,就像小球穿過早期的彈球機(Pachinko 機)。每一層的欄針等同于深度模型的每一層。 [size=1em]

△彈球機
機器學(xué)習(xí)的目的是重構(gòu)這些欄針的配置,使 Calista 的臉可被正確探測到?梢詫⒛樋醋魇且砸唤M初始條件,而臉通過每一個過程后都以修改過的形式出現(xiàn)。推理的任務(wù)是確保正確的初始條件集合能導(dǎo)向正確的結(jié)論。
我們的深度學(xué)習(xí)模型就像 Pachinko 機,但我們所能控制的只是欄針的位置。深度學(xué)習(xí)的目的是移動這些欄針的位置使其在正確的初始條件集合下(如我們比喻中的圖像所示)可以得到正確結(jié)果。
該模型的參數(shù)有時被稱作是網(wǎng)絡(luò)權(quán)重(network weight)。它們就像是欄針的位置。所以我們可以將 DeepFace 看作是有 1.2 億個欄針的 Pachinko 機。
我們可以將網(wǎng)絡(luò)關(guān)于某個特定模式所「想到」的內(nèi)容看作是小球穿過網(wǎng)絡(luò)時的左右位置。當(dāng)然在現(xiàn)實中,在欄針的每一層,這個「想法」只有一個值。它是一維的。真正的深度網(wǎng)絡(luò)擁有許許多多的維數(shù),所以它就像一臺欄針位于高維空間的 Pachinko 機,通常這被稱作超維空間(hyper-space),這意味著該網(wǎng)絡(luò)的「想法」有更高維數(shù)而且更為復(fù)雜。
確定過程
今天占主導(dǎo)地位的技術(shù)假定,球應(yīng)該通過固定的路徑通過網(wǎng)絡(luò)。球在彈珠機任意層的位置被稱為該層的激活。當(dāng)球落下時,欄針決定了它的位置。在理論上,我們可以精準(zhǔn)地說出球在任何時間的位置,因為彈珠機的每層都只涉及一個球撞擊欄針:這是一個確定過程。
彈珠機的游戲包括試圖通過用正確速度使用柱塞開球來贏得高分。這很難做到,因為分?jǐn)?shù)對起點的位置非常敏感。但實際上,這場游戲是「理解」球的初始速度,并通過給它打分?jǐn)?shù)來分類。
面臨的挑戰(zhàn)是優(yōu)化機器的內(nèi)部結(jié)構(gòu),使它在正確的初始條件下給出正確的答案 (或標(biāo)簽)。然而,要做到這一點,需要探索我們想要測試的全部初始條件:并且針對數(shù)量肯定會很多的圖片。
卷積神經(jīng)網(wǎng)絡(luò) (convolutional neural networks) 的巧妙部分是為機器建構(gòu)第一組層級,使諸如圖片中「不變性」的這些方面更加容易學(xué)習(xí)。 不變性是指在圖片里,不論旋轉(zhuǎn)還是移動,一張臉都是相同一張臉的概念。我們的大腦很容易明白這點,但不變性很難被電腦理解。深度神經(jīng)網(wǎng)絡(luò)則通彈球機第一部分結(jié)構(gòu)的巧妙設(shè)計來實現(xiàn)這一點。
絕大多數(shù)學(xué)習(xí)的方法是,在彈球機的頂部呈現(xiàn)一個圖像,看球在哪里彈出。如果球在錯誤的地方彈出,所有的欄針將稍作移動,試圖讓球多出現(xiàn)在正確的位置。
問題
如果你用各種不同存在微妙變化的方式扔球,這個方法會很好用。你最終可以讓系統(tǒng)正確。但是,如果你只有有限的扔球次數(shù),怎么辦?
你已經(jīng)知道,輸入值的微小變化可以解釋終端相當(dāng)大的變化。彈球機很復(fù)雜,并對輸入值的微小變化敏感。但是,要正確確定這些敏感點需要大量的數(shù)據(jù)。
另一種方法是,確保機器對初始條件的小變化保持強健 。做到這一點需要隨機性。不要把機器建模為一組確定過程——其中球每次以相同的方式掉下,你要把機器建模成一組分層的隨機過程 (stochastic processes) 。
接受在頂部扔球方式上的小變化,意味著我們其實不知道球在任何時間應(yīng)該在哪,因為我們無法準(zhǔn)確知道欄針的位置,或者球的初始狀態(tài)。進(jìn)一步,我們永遠(yuǎn)不會有足夠的數(shù)據(jù)來探索不同所有這些不同的狀態(tài)。
隨機過程構(gòu)成

我們通過考慮球在機器上所有可能經(jīng)過的路徑,獲得更多有效的學(xué)習(xí)方法。不要鼓勵機器只盯著一條路徑,我們鼓勵所有通往正確結(jié)果的路徑。
考慮所有路徑可以使模型對輸入上的小變化上更健壯 (robust)。試想導(dǎo)航通過有許多不同路徑的森林。這兩種方法之間的區(qū)別就像是確保有一個標(biāo)記完善,通往正確目的地的路徑,或者有一組不同的路徑帶你去正確目的地。
這是一個系統(tǒng)的路徑積分解釋。我們設(shè)計了一個系統(tǒng),在其中考慮所有球可能在系統(tǒng)中通過的路徑。更奇怪的是,我們考慮了應(yīng)該同時帶你抵達(dá)那里的欄針的所有可能配置。
這聽起來很困難,但在某一類過程中(例如高斯過程)中確實易于處理 。所以,如果我們用高斯過程做出每一層,就能處理那個組成部分本身。但是,我希望我們的深度模型有很多這樣的層在一起,這樣我們可以為復(fù)雜事情建模。要做到這點,我們組成隨機模型:有效地將這些層再一次疊在一起,就像在彈球機里一樣。當(dāng)我們把簡單的流程堆疊在一起,會有很多關(guān)于如何做數(shù)學(xué)并且執(zhí)行相應(yīng)的算法等挑戰(zhàn)性的問題。
我們知道,對于非常大的數(shù)據(jù)來說,我們所提出的隨機方法瓦解了深度學(xué)習(xí)的確定性方法。因為在這些情況下,路徑積分瓦解成單個最有可能的路徑,隨著我們獲得更多的數(shù)據(jù),它也變得確定。但是,對于低數(shù)據(jù)(low data),我們可以實現(xiàn)更好的效率。
算法的挑戰(zhàn)
主要算法挑戰(zhàn)在于,路徑積分解法(solution of the path integral)要比僅僅找到最佳路徑要有挑戰(zhàn)性地多。最佳路徑僅需我們做出區(qū)分,但是,瀏覽所有路徑需要集成,這是一個更大的挑戰(zhàn):特別是當(dāng)在我們所需的Pachinko機的「超維空間」版本中執(zhí)行這一操作時。這一數(shù)學(xué)操作就是所謂的卷積,而且也只可能針對簡單系統(tǒng)進(jìn)行精確操作。
前行之路
熱動力學(xué)花了好長時間才跟上瓦特分離冷凝器的應(yīng)用步伐,但是,完全理解熱動力學(xué)卻對現(xiàn)代世界的發(fā)展,至關(guān)重要。結(jié)果表明,我們實現(xiàn)高效智能所需的路徑積分和熱動力理論之間存在強數(shù)學(xué)關(guān)系,后者被用來解釋為什么瓦特的分離冷凝器讓蒸汽機引擎更有效率。
一個向前的數(shù)學(xué)方法被稱為「變分法」。包括將不同積分轉(zhuǎn)為不同但更加簡單的優(yōu)化問題。這個方法不是很準(zhǔn)確,但是會時常比確定性方案要好得多。這被稱為變分學(xué)習(xí)。如果我們建造有效的變分算法 ,就能在小數(shù)據(jù)集上實現(xiàn)深度模型。
最終仔細(xì)分析熱能理論基礎(chǔ)的也是變分方法。從這種研究中出現(xiàn)了一些概念,比如熵。
我們知道一件事,通過熱動能的類比,最好讓你的Pachinko機「盡可能地?zé)帷梗ɑ蛘,盡可能不確定)同時約束它按平均值給出正確答案。那會讓它對輸入的變化更加強健。物理學(xué)上,這一方法被稱為最大熵原理。
下一代數(shù)學(xué)高效學(xué)習(xí)方法依賴我們研發(fā)出新算法,正好通過模型傳播隨機性或不確定性。
有一個大型并還在不斷變大的研究人員社區(qū),他們實現(xiàn)并推到這些算法。他們多采用數(shù)學(xué)的方法而不是標(biāo)準(zhǔn)的方法,不過,沒有他們,我們當(dāng)中的許多人會處在當(dāng)年康沃爾鋅礦工的位置:因為我們自己缺乏數(shù)據(jù)效率,因此無法受益于廣泛的數(shù)據(jù)供應(yīng)。
因此,最終,我們的效率要求歸結(jié)為處理不確定的問題。瓦特的效率成果來自確保引擎活塞盡可能維持熱度。因為關(guān)閉熱蒸汽的活塞被吸出并分離冷凝。這能夠讓活塞熱運行,傳遞必需的效率。
在深度學(xué)習(xí)的概率和隨機方法上,我們必須施展同樣的竅門。模型本身需要盡可能地維持熱度:然后,當(dāng)數(shù)據(jù)不足以約束擁抱不確定所需的模型的運行時,別熄滅它。當(dāng)機器循環(huán)通過數(shù)據(jù)時,我們的分離冷凝機將允許學(xué)習(xí)機器中保持高溫。那會確保運行合理方式的全部空間得到開發(fā),并且我們的推理也會保持必要的強健性,即使當(dāng)數(shù)據(jù)稀少時。
?本文由機器之心編譯
|