鮑捷:人工智能之父和深度學習的30年學術傳承

近些年來,在人工智能領域飛速發展的同時,深度學習領域也跟著火遍國內外,掀起了一陣學習的熱潮。但鮮為人知的是,深度學習並不是一開始就“出道既巔峰”,它曾經兩次進入“AI冬季”,這兩次低谷期加起來整整34年,可謂是一波三折!第一次的低谷期還是由於人工智能領域的靈魂人物——人工智能之父Marvin Minsky“重拳出擊”而進入的。

鮑捷:人工智能之父和深度學習的30年學術傳承

人工智能領域的學術相傳

故事要從我的導師的導師的導師說起,對的,你沒有看錯,這裡出現了三個“導師”......我很榮幸成為James Hendler的學生,見證了一個新的領域從崛起到低谷、從再次崛起到低谷、到如今火爆全球所展現出來的蓬勃生機!

歷史上第一部能自我學習的人工神經網絡機器——SNARC誕生在1951年,是正忙於暑假作業的研究生Marvin Minsky設計並建構的,Minsky從學生時代就在研究神經網絡這一未知領域,但當時的他萬萬沒想到他以為的小打小鬧,會在短短几年後改變整個學術界。

5年後,Minsky聯合John McCarthy組織了達特茅斯會議,在這場會議中,人工智能的概念第一次被提出,此後形成了一個新的學門,為此,他們創建了麻省理工學院 AI實驗室(大名鼎鼎的MIT計算機科學與人工智能實驗室的項目的前身)。此時的Minsky更是被世人稱為人工智能之父

1969年,神經網絡正當高潮期,這位Minsky卻做了一個被後人稱為AI史上最具爭議的事情——他撰寫的《感知器》一書對神經網絡提出批判,他認為神經網絡對於當時的環境並不能完全實現很多想法,卻萬萬沒想到這一舉動直接讓神經網絡進入了長達17年的第一次低谷期,後世也將這段時間稱之為“AI冬季”。

但這不代表Minsky對神經網絡不看好,他並沒有放棄這一技術,他帶領學生Eugene Charniak在麻省理工學院的人工智能實驗室進行鑽研時,發明了一種知識表示方法——“框架”(Frame)理論,這是一個有關語言、記憶和學習等過程如何工作、還涵蓋了意識、自我意識和自由意志等概念的理論。

轉眼到了1980年代,Minsky有了新進展,他聯合Irving John Good,向世人展示瞭如何根據任意學習程序自動生成(自我複製)人工神經網絡:人工大腦可以通過與人類大腦發育驚人相似的過程來生長,在任何給定的情況下,精確的細節都是永遠不會知道的,即使它們是精確的細節,對於人類的理解來說也將是數百萬次。這個階段的神經網絡得到了一個大飛躍!

與此同時,Minsky的學生Charniak將在Minsky身上學到的神經網絡知識,傳授給了自己的學生James Hendler(我的導師),Hendler繼承了知識表示這個方向的工作,主攻主體(agent)理論、規劃和知識推理方面。

後來,Minsky、Charniak、Hendler還各自研究過規劃理論(規劃理論是Minsky的導師Albert Tucker提出的,他是一位大數學家,他的另一個學生是諾貝爾經濟學獎的得主John Nash),在人工智能歷史上,這些不同分支的理論往往被相互借鑑,這些大宗師們也得益於不侷限於某一狹隘視角。

這足以看出,在神經網絡還不是特別發達的時候,便可以延伸出多個思路、與不同的理念相融合,繼而應用在多個領域,而這些不同的想法豐富了Minsky一手創建的神經網絡。

Minsky的一生都在為人工智能領域的發展而努力,他創建了這個領域,看著它從0到如今隨處可見的人工智能應用,更是將神經網絡推向了世人的面前。

鮑捷談深度學習

神經網絡的發展,迄今經歷了三個週期,包括三次高潮和兩次低谷。

第一個週期(1943—1986),感知器時代。

從1943年McCulloch-Pitts(MP)模型作為開端、1957年感知器的提出為標誌性高潮起點,到1969年Minsky的《感知器》一書提出批判進入低谷,醞釀期14年,高潮期12年,之後低谷期17年。

第二個週期(1986—2012),BP算法時代。

以1986年誤差反向傳播(BP)算法為標誌性高潮起點,並沒有明確進入低谷的標誌性事件,一般認為在1995年前後進入低谷。高潮期是9年,之後低谷期也是17年——真是一種歷史的巧合。

第三個週期(2012年至今),深度學習時代。

以2012年深度學習在ImageNet競賽大獲全勝為標誌性高潮起點,到現在還在高潮期中,尚未進入低谷。這次的高潮期已經持續了7年。

以上的週期年份,主要是對於美國的學術界而言,而在中國,以前則會滯後幾年,不過在最近一個週期裡,中美兩國已經基本同步發展了。

我最早接觸神經網絡是在1996年。那時候雖然在美國神經網絡已經進入了冬天,但是在20世紀90年代的中國計算機界,神經網絡依然是一門“顯學”,雖然不能說言必稱神經網絡,但相信神經網絡是一種“萬靈藥”的想法還是非常普遍的。

我當時的同學,有學土木的、機械的、電氣的、儀器的,聽說我是做神經網絡的,都跑過來要合作用神經網絡發論文,大體也行得通。我們拿它來做電力負載預測、橋樑結構優化,效果都是非常好的。

到20世紀90年代末,發現BP網絡、Hopfield網絡有這樣那樣的問題,那時候便有一個想法,為什麼不能進一步利用網絡的層次性,做一種層次化學習的神經網絡呢?2001年,我帶著這個想法去Iowa State University向Vasant Honavar學習人工智能。Honavar也是神經網絡專家,那時他在這個領域研究了十幾年了,但是他和我說,研究神經網絡是再也得不到資助了,你必須換一個方向。

後來也的確是這樣。那時候即使是做神經網絡的人,也必須套著其他的“馬甲”發表論文。我記得在Geoffrey Hinton他們發表那篇經典論文“A fast learning algorithm for deep belief nets”的2006年,ICDM、ICML這些機器學習的主流會議上,幾乎沒有關於神經網絡的文章。“ICML不應該接受關於神經網絡的文章”還是一種潛規則。Hinton他們的這篇文章,現在回過頭來看預示了神經網絡的復興,但是文章名字也沒有直接提到神經網絡,而用了“belief nets”這樣“安全”的名字——這能讓人去聯想貝葉斯或者概率圖,當時的顯學。

當時神經網絡衰到什麼程度呢?去翻一下那年的“神經網絡大本營”NIPS 2006的論文集,大部分文章都不是關於神經網絡的了,而是貝葉斯、馬爾可夫網絡和支持向量機(SVM,神經網絡的“對頭”)之類的。甚至在NIPS 2012,Hinton都用“自黑”開場:“我今天想告訴大家,其實過去這些年大家沒有必要來參加NIPS。”(戲指過去這些年沒啥進展)。真是讓人唏噓,“一個人的命運當然要靠自我奮鬥,但是也要考慮歷史的進程”。

之所以有這樣的低谷,來自於之前極高的期待。神經網絡的發展史上,反覆出現“極高的期待”—“極度的懷疑”這種震盪。比如下面兩段話分別出現在前兩次高潮時期的媒體上:

海軍披露了一臺尚處初期的電子計算機,期待這臺電子計算機能行走、談話、看和寫,自己複製出自身存在意識……Rosenblatt博士,康奈爾航空實驗室的一位心理學家說,感知機能作為機械太空探險者被髮射到行星上。(《紐約時報》,1958)

現在已經可以採購到神經網絡程序,可用於預測標普500的動向,或者診斷心臟病。諾貝爾獎得主Leon Cooper說,這種技術最終會比電話裡的晶體管還普遍。DARPA的Jasper Lupo認為,我相信這種技術比原子彈更重要。(《科學家》,1988)

現在第三次高潮正在進行中,類似的話近年在媒體上天天有,就不必在這裡舉例了。

在高潮期,不管啥都要蹭神經網絡的熱點,比如在1991年(第二個高潮的巔峰)《終結者2》電影中,施瓦辛格扮演的“終結者”機器人也說:“我的CPU是一個神經網絡處理器,一個會學習的計算機。”(My CPU is a neural-net processor...a learning computer.)那時候沒人能想到,僅僅4年之後這個領域就涼了,神經網絡遇到了自己的“終結者”。

第一代終結者:異或問題

這幾年關於神經網絡起起伏伏的歷史的文章已經很多,這裡不打算複述這段歷史的細節。感興趣的讀者可以參考尼克的《人工智能簡史》一書中“神經網絡簡史”一章,和Andrey Kurenkov的“A Brief History of Neural Nets and Deep Learning”(神經網絡和深度學習簡史)。

我們僅把討論限於核心方法衰落與興起的技術原因。

1969年Minsky(和Seymour Papert)在《感知器》一書裡給感知器判了“死刑”。感知器的具體技術細節,請參考本書第1章“前饋神經網絡”。Minsky的邏輯是:

● 一層感知器只能解決線性問題;

● 要解決非線性問題(包括分段線性問題),比如異或(XOR)問題,我們需要多層感知器(MLP);

● 但是,我們沒有MLP可用的訓練算法。

所以,神經網絡是不夠實用的。這是一本非常嚴謹的專著,影響力很大。一般的讀者未必能理解書中的推理及其前提限制,可能就會得到一個簡單的結論:神經網絡都是騙人的。

這並不意味著Minsky本人看衰人工智能領域,實際上1967年他說:“一代人內……創建人工智能的問題就會被事實上解決掉。”這裡可能還有另外一個因素:在那個時候,他是很看好與神經網絡競爭的“符號主義”和“行為主義”的方法的,比如框架方法、微世界方法等,他後面也轉向心智與主體理論的研究,所以《感知器》這本書觀點的形成可能也有路線之間競爭的因素。

但很不幸的是,無論是1967年他對AI過於樂觀的展望,還是1969年他(事後看)對連接主義方法過於悲觀的判斷,都對1973年AI進入全面的冬天起到了推波助瀾的作用。這是“極高的期待導致極度的懷疑”的第一次案例——當然並不是最後一次。

說1969年《感知器》的觀點事後看過於悲觀,是因為在Minsky寫這本書的時候,問題的答案——誤差反向傳播(BP)算法——其實已經出現了,雖然直到1974年Paul Werbos在博士論文中才把它引入了神經網絡。

只是要再等十幾年,這個算法才被幾個小組再次獨立發現並廣為人知。無獨有偶,1995年前後神經網絡再次進入低谷的時候,後來深度學習的那些雛形在20世紀80年代末其實已經出現了,也同樣需要再花二十年才能被主流認知。

不管是不是合理,神經網絡與它的其他AI難兄難弟一起,進入了一個漫長的冬天。當時研究經費的主要來源是政府,但這之後十幾年幾乎沒有政府資助再投入神經網絡。20世紀70年代到80年代初,AI退守的陣地主要是“符號主義”的專家系統。

第二週期的復興:BP算法

1986年,David Rumelhart、Geoffrey Hinton和Ronald Williams發表了著名的文章“Learning representations by back-propagating errors”(通過誤差反向傳播進行表示學習),回應了Minsky在1969年發出的挑戰。儘管不是唯一得到這個發現的小組(其他人包括Parker,1985;LeCun,1985),但是這篇文章本身得益於其清晰的描述,開啟了神經網絡新一輪的高潮。

BP算法是基於一種“簡單”的思路:不是(如感知器那樣)用誤差本身去調整權重,而是用誤差的導數(梯度)。

如果我們有多層神經元(如非線性劃分問題要求的),那隻要逐層地做誤差的“反向傳播”,一層層求導,就可以把誤差按權重“分配”到不同的連接上,這也即鏈式求導。為了能鏈式求導,神經元的輸出要採用可微分的函數,如s形函數(sigmoid)。

在20世紀80年代的時候,一批新的生力軍——物理學家也加入了神經網絡的研究陣地,如John Hopfield、Hermann Haken等。在計算機科學家已經不怎麼搞神經網絡的20世紀80年代早期,這些物理學家反而更有熱情。

與第一週期中常見的生物學背景的科學家不同,物理學家給這些數學方法帶來了新的物理學風格的解釋,如“能量”“勢函數”“吸引子”“吸引域”等。對於上述鏈式求導的梯度下降算法,物理學的解釋是:

在一個誤差構成的“能量函數”地形圖上,我們沿著山坡最陡峭的路線下行,直到達到一個穩定的極小值,也即“收斂”點。

1989年,George Cybenko證明了“萬能近似定理”(universal approximation theorem),從表達力的角度證明了,多層前饋網絡可以近似任意函數(此處表述忽略了一些嚴謹的前提細節)。進一步的理論工作證明了,多層感知器是圖靈完備的,即表達力和圖靈機等價。

這就從根本上消除了Minsky對神經網絡表達力的質疑。後續的工作甚至表明,假如允許網絡的權重是所謂“不可計算實數”的話,多層前饋網絡還可以成為“超圖靈機”——雖然這沒有現實工程意義,不過足以說明神經網絡強大的表達力。

BP算法大獲成功,引起了人們對“連接主義”方法的極大興趣。數以百計的新模型被提出來,比如Hopfield網絡、自組織特徵映射(SOM)網絡、雙向聯想記憶(BAM)、卷積神經網絡、循環神經網絡、玻爾茲曼機等。

物理學家也帶來了很多新方法和新概念,如協同學、模擬退火、隨機場、平均場和各種從統計物理學中借鑑過來的概念。其實後來深度學習復興時代的很多算法,都是在那時候就已經被提出來了。

回看20世紀80年代,你也許會發現今天探索過的很多想法當時都探索過,諸如自動控制、股市預測、癌症診斷、指標識別、蛋白質分類、飛機識別,以及非常多的軍事應用等,都有成功的案例——這是20世紀60年代那一波未曾見的。因為有了這些可商業落地的應用,大量風險投資也加入進來,從而擺脫了單純依靠政府資助發展的模式。

可以說,在那個時代,神經網絡已經是“大數據”驅動的了。相比美好的承諾,新一代神經網絡速度慢的缺點(這來自於大量的求導計算)也就不算什麼了。而且出現了大量用硬件加速的神經網絡——正如今天專用於深度學習的“AI芯片”。

大量的公司去設計並行計算的神經網絡,IBM、TI都推出了並行神經計算機,還有ANZA、Odyssey、Delta等神經計算協處理器,基於光計算的光學神經網絡,等等。甚至Minsky本人都創辦了一家並行計算人工智能公司“Thinking Machines”,產品名也充滿暗示地叫“連接機”(蹭“連接主義”的名氣)。和今天一樣,也幾乎每天都有頭條,每一天都看起來更加激動人心,眼前的困難都可以被克服。

短短几年之內,極度的懷疑反轉為(又一次的)極高的期待,以至於在之前引用的《科學家》1988年文章“神經網絡初創企業在美國激增”中也表達了對這種期待的擔心:

神經網絡在金融領域如此之熱,以至於有些科學家擔心人們會上當。斯坦福大學教授、有三十年神經網絡經驗的Bernard Widrow說:“一些商業神經網絡公司的信誓旦旦可能會把這個行業帶入另一個黑暗時代。”

Widrow也是在Minsky的影響下進入AI領域的,後來加入斯坦福大學任教。他在1960年提出了自適應線性單元(Adaline),一種和感知器類似的單層神經網絡,用求導數方法來調整權重,所以說有“三十年神經網絡經驗”並不為過。不過,當時他認為神經網絡乃至整個人工智能領域風險有點高,於是他轉向了更穩妥的自適應濾波和自適應模式識別研究。

順便說一句,自適應濾波的很多方法在數學上和神經網絡方法是相通的,甚至只是換了個名字,比如Widrow著名的“最小均方誤差”(LMS)方法在後來的神經網絡研究中也廣為應用。我們在神經網絡的起起伏伏中經常看到這樣的現象(後面還會舉更多的例子):

當領域進入低谷,研究人員換了個名字繼續進行研究。甚至1986年神經網絡復興的時候,Rumelhart編的那本論文集並沒有叫“神經網絡”,而是“並行分佈式處理”(Parallel Distributed Processing)這個低調的名字。

當領域進入高潮,那些潛伏的研究再次迴歸本宗——當然,很多原本不在其中的方法也會來“搭便車”。例如,支持向量機(SVM)方法雖然在20世紀60年代就有了,在20世紀90年代復興的時候,採用的名字卻是“Support Vector Network”,以神經網絡的面貌出現,直到神經網絡進入低谷才把“Network”去掉。

回到1986—1995年這段時間,什麼都要和神經網絡沾邊才好發表。比如,那時候CNN不是指卷積神經網絡(Convolutional Neural Network,見本書第3章),而是細胞神經網絡(Cellular Neural Network)——一種並行硬件實現的細胞自動機,儘管這種算法本來和神經網絡沒有太大關係。順便提一句,它的發明人是“虎媽”(蔡美兒)的父親蔡少棠。

第二代終結者:收斂速度與泛化問題

神經網絡從“飛龍在天”到“亢龍有悔”,也只花了幾年時間,就又遇到了“第二代終結者”。有趣的是,第二代終結者的出現本身又是為了解決第一代終結者問題而導致的。

異或問題本質上是線性不可分問題。為了解決這個問題,在網絡裡引入非線性,以及將這些非線性函數組合的參數化學習方法(BP算法等)。但是這樣複雜的高維非線性模型,在計算上遇到了很多挑戰,基本上都是和鏈式求導的梯度算法相關的。

首先就是“”。訓練一個規模不算很大的神經網絡花上幾天時間是很正常的,在中國就更艱苦了。1998年在讀研究生時我得到的第一臺計算機是一臺“486”,在那上面運行MATLAB的神經網絡程序,隱藏層節點都不敢超過20個。

為什麼這麼慢呢?全連接的前饋網絡,參數空間維數大幅增加,導致了維度災難(The Curse of Dimensionality),參數組合的數量呈指數增長,而預測的精度與空間維數的增加反向相關,在20世紀90年代有限的算力支持下,規模稍大的問題就解決不了了。

“萬能近似定理”雖然說明了我們可以逼近任意函數,但是並不保證有一個訓練算法能夠學習到這個函數。雖然後來我們知道,同樣的神經元數量,多隱層會比單隱層收斂得更快(雖然單隱層和多隱層在表達力上對於連續函數沒區別),但是那時候由於不能解決“梯度消失”的問題(後面還會講到),很少人會用多隱層。

所以,神經網絡內在的結構性是不好的。那時候也有很多“打補丁”的方法,比如,通過進化神經網絡來尋找最優節點結構,或者自適應步長迭代,等等,但事後看,都是些治標不治本的方法。

維度災難的另一個後果是泛化問題。比如訓練一個手寫數字識別器,稍微變化一下圖像可能就識別不了了。這個問題的原因是誤差求導是在一個高維空間裡,目標函數是一個多“峰值”和“谷底”的非線性函數,這就導致了梯度下降迭代終點(“吸引子”)往往不一定是希望找到的結果(全局最優解)。甚至,有些迭代終點根本不是任何目標模式,稱為“偽模式”或者“偽狀態”。

Hinton在2015年的一個教程裡也總結了基於BP的前饋網絡的問題:

● 數據:帶標籤的數據集很小,只有現在(2015)的千分之一;

● 算力:計算性能很低,只有現在(2015)的百萬分之一;

● 算法:權重的初始化方式和非線性模型錯誤。

後來,數據問題和算力問題被時間解決了,而算法問題早在2006年前後就被解決了(即深度學習革命)。

回到1995年,那時大家並沒有Hinton在20年後的這些洞見,但是也能意識到神經網絡的這些問題很難解決。再一次,“極高的期待導致極度的懷疑”,未能兌現的承諾導致了資金的快速撤離和學術熱情的大幅下降。幾乎所有的神經網絡公司都關門了——至少有300家AI公司,包括Minsky的Thinking Machines(1994)也關門了。

這時候恰好出現了基於統計機器學習的其他競爭方法,導致大家逐漸拋棄了神經網絡而轉向統計機器學習,如支持向量機(SVM)、條件隨機場(CRF)、邏輯迴歸(LR迴歸)等。

其實這些方法也都和神經網絡有千絲萬縷的聯繫,可以證明與某些特定的網絡等價,但是相對簡單、快速,加上出現了一些成熟的工具,到20世紀90年代後期在美國就成為主流了。

這裡只對SVM做一下分析。1963年SVM剛出現的時候,和單層感知器一樣,都只能處理線性分類問題。兩者後來能處理非線性問題,本質都是對原始的數據進行了一個空間變換,使其可以被線性分類,這樣就又可以用線性分類器了,只是兩者對如何做空間變換途徑不同:

● 對於神經網絡,是用隱藏層的矩陣運算,使得數據的原始座標空間從線性不可分轉換成了線性可分;

● 對於SVM,是利用“核函數”來完成這個轉換的。

1995年,由Vladimir Vapnik(LeCun在貝爾實驗室的同事)等人以Support Vector Network的名義發佈了改進後的SVM,很快就在多方面體現出了相較於神經網絡的優勢:無需調參,速度快,全局最優解,比較好地解決了上述BP算法的問題,很快就在算法競爭中勝出。因此,雖然第二次神經網絡進入低谷沒有一個標誌性事件,但是一般認為Vapnik發表“Support Vector Network”這篇文章的1995年可以算轉折點。

SVM到底算不算神經網絡的一種呢?其實線性的SVM和線性的感知器是等價的。兩者都是從線性模型到深度學習之間過渡,即:

● 線性模型;

● 線性SVM ⇔ 單層感知器;

● 非線性核SVM ⇔ 多層感知器;

● 深度學習。

只是,SVM以犧牲了一點表達力靈活性(通常核函數不是任意的)為代價,換來了實踐上的諸多方便。而神經網絡在之後的17年裡,逐漸從“主流”學術界消失了,直到跌到了“鄙視鏈”的最下面。

據說Hinton從20世紀90年代到2006年大部分投稿都被會議拒掉,因為數學(相比統計機器學習)看起來不夠“fancy”(新潮)。

20世紀90年代中期到2010年左右在整體上被認為是第二個AI冬天,神經網絡無疑是其中最冷的一個分支。值得一提的是,這段時間內互聯網興起,連帶導致機器學習方法和語義網方法的興起,算是這個寒冬裡兩個小的局部春天。不過在這個神經網絡“潛龍勿用”的第二個蟄伏期,有些學者依然頑強堅持著,轉機又在慢慢醞釀。

第三週期的復興:深度學習


鮑捷:人工智能之父和深度學習的30年學術傳承

Geoffrey Hinton、Yoshua Bengio和Yann LeCun獲得2018年圖靈獎是眾望所歸。在那漫長的神經網絡的第二個冬天裡,正是他們的堅持才迎來了第三週期的復興,而且勢頭遠遠大於前面兩次。

鮑捷:人工智能之父和深度學習的30年學術傳承

其中,Hinton是1986年和2006年兩次里程碑式論文的作者,也是BP算法和玻爾茲曼機的提出者;Bengio在詞嵌入與注意力機制、生成式對抗網絡(GAN,見本書7.4節)、序列概率模型上有貢獻;LeCun獨立發現並改進了BP算法,發明了卷積神經網絡。

神經網絡之所以翻身了,關鍵還是在一些經典的難問題上確實展示了實用性,把一些停滯了很久的問題向前推進了。先是體現在手寫字符識別MNIST(2006)上,然後是在語音識別(2010)和圖像分類ImageNet(2012)上。ImageNet ILSVRC 2012競賽是神經網絡方法第三次興起的標誌性事件。國內同步就有了報道,餘凱當天在微博上說:

Deep learning令人吃驚!最近第三屆ImageNet Challenge上,Hinton團隊獲得第一,Hit Rate@Top5 =84%,比第二名高出10%!第一屆比賽,我帶領的NEC團隊獲得第一,成績是72%。去年第二屆,Xerox Lab獲得第一,但結果和我們前年的差不多,無實質進步。今年可是飛躍了。

之後另一個標誌性事件是2016年AlphaGo擊敗圍棋世界冠軍李世石,背後基於深度強化學習方法(本書第5章)。這件事有極大的公眾宣傳效果,激發了一輪深度學習風險投資的狂潮。在機器閱讀理解競賽SQuAD上,自2018年以來,序列到序列學習模型(本書第6章)也取得了與人類匹敵的成績。

效果是反駁一切懷疑的最好的武器。

為什麼深度學習能戰勝“第二代終結者”,取得這麼好的成績呢?我想從算法細節、算法哲學、工程成本三個角度談一些個人看法。

01從算法細節的角度分析

前面我們提到鏈式求導帶來一系列問題。單隱層全連接造成收斂速度不夠快,但是由於“梯度消失”(或對偶的“梯度爆炸”)問題,難以實現多隱層誤差反向傳播。而且,網絡還有泛化能力不好、容易過擬合等問題。

它的解決方法其實並不複雜。首先,用分段線性函數ReLU: f(x)=max(0,x)取代sigmoid激活函數——這個函數甚至不是嚴格可微的。線性保證了它的導數不會趨近於零,分段線性則保證了我們可以分段逼近一個函數,儘管從理論上這個逼近不平滑,但是工程上夠用。

實踐表明,ReLU函數在訓練多層神經網絡時,更容易收斂,並且預測性能更好。這不是從理論推導出來的結果,而是有了實踐之後,反過來總結出來的。我們發現單側抑制一些神經元(ReLU的實際作用)會導致“表徵稀疏”,而這反而是好事,既然表示更具有魯棒性,又提高了計算效率。

這種丟棄信息反而提高效果的工程實踐在深度學習的其他一些細節也有體現。比如,“丟棄”算法(dropout)通過每次訓練讓部分神經元“裝死”來避免過擬合,卷積神經網絡中引入“池化”(pooling)丟棄一些輸入信息反而會指數級減小泛化誤差。

以上種種工程技巧,基本原理並不複雜,一旦捅破窗戶紙,不免給人“原來如此簡單”的感覺。與當初戰勝“第一代終結者”也頗有類似之處,就是並非依賴一個高深莫測的新理論,而是依賴一些樸素的“常識”,去從工程上想辦法。

那為什麼這些看似簡單的方法,要過十幾年才被接受呢?大概是因為學術界的遺忘週期是15年吧!三代博士過後大家基本就不記得從前了。正所謂“人心中的成見是一座大山”,直到連成見都被遺忘了,才會有新的開始。

02從算法哲學的角度來分析

總的來說,神經網絡的演進一直沿著“模塊化+層次化”的方向,不斷把多個承擔相對簡單任務的模塊組合起來。BP網絡是感知器的層次化,深度學習網絡則是多個BP網絡的層次化——當然後來也出現了多種非BP網絡的深度層次化。Hinton最近提出的“膠囊”(capsule)網絡就是要進一步模塊化。

層次化並不僅僅是網絡的拓撲疊加,更重要的是學習算法的升級,例如,僅僅簡單地加深層次會導致BP網絡的梯度消失問題。

從本質上說,深度學習網絡可以比經典的BP網絡處理更復雜的任務,在於它的模塊性,使得它可以對複雜問題“分而治之”(Divide and Conquer)。無論是多層前饋網絡,還是循環神經網絡,都體現了這種模塊性。

因為我們處理的問題(圖像、語音、文字)往往都有天然的模塊性,學習網絡的模塊性若匹配了問題本身內在的模塊性,就能取得較好的效果。

這可以看成一種連接主義的“動態規劃”,把原來全連接網絡的訓練這種單一決策過程,變成了多階段決策過程。例如,在多層卷積網絡對圖像的處理中,會出現不同的層次依次“抽取”出了從基礎特徵到高層次模式的現象,每一層基於上一層的輸入,就相當於很多的任務可以被重用了。所以這種方法也被稱為表示學習(representation learning)方法。

這樣的好處是多方面的,既極大提高了學習收斂的速度(解決了維度災難),又可避免那些“不合理”的局部最優解(因為它們在模塊性匹配的過程中被自然淘汰了)。

從這個角度去理解,深度神經網絡是“優雅”的,在於它簡潔而美。一個“好”的模型,通常是“優雅”的。這很難說是什麼科學道理,但是就和物理學一樣,一個計算機科學的算法,如果它是技術主幹道上的一個有深遠價值的東西,往往它是“美”的,簡潔的,沒有太多補丁。

一個糟糕的算法,就好像托勒密的“本輪”,一個補丁套一個補丁,或者像在發明抗生素之前治療肺結核的方法,神秘而不可解釋。如之前給BP網絡和Hopfield網絡打各種補丁的方法,前置各種ad-hoc不變形特徵提取器,用進化算法訓練網絡結構,用局部定位消除虛假吸引子,等等,數學上都高深莫測,但是效果並不好。現在回頭看,那些模型都很“醜”。

深度學習把學習分層,不是個數學問題,而是個知識重用問題,每一層自然分解出不同等級的特徵,從底層特徵到高層特徵。這樣一下子就把原來打幾千種補丁的必要性都消滅了。這個架構是優雅的,也同時解決了收斂速度問題和泛化問題,因為它觸及了問題的本質。一個優雅的方法,基本的原理往往是特別好懂的,不用看公式就能懂。

這裡多說一句,深度學習模型現在大火的同時,也出現了很多對它的“本輪”補丁,如一些幾百層的神經網絡模型。搞得這麼複雜的模型,通常在技術演進上是旁支。

03從工程成本角度分析

深度學習的成功,工具系統的可用性是很關鍵的因素。工具大大降低了運用這些方法的門檻。深度學習被採用,並不一定是因為它效果最好——許多場合可能就和傳統方法的最好水平差不多。

但是,發揮傳統方法的最好水平需要一位有多年經驗的“老中醫”,而深度學習工具可以讓一個剛出道的學生就達到相近或稍差的表現,在語音和圖像場景上更可以超出傳統方法。這從管理學和經濟學上都帶來了巨大的好處。

例如2006年Netflix推薦算法大賽,冠軍團隊利用集成算法,整合了107種算法,最後提高了10個百分點。而2016年,有人用Keras寫了一段不到20行的深度神經網絡程序就得到了類似的結果。

又如基於深度學習的依存文法解析器senna和傳統的Stanford parser相比,效果接近,略差一點,但是從建模複雜性上,senna就遠遠比Stanford parser簡單了,senna只用了一個零頭的代碼量就達到了接近的效果。

以前需要“老中醫”來做特徵工程,現在交給深度學習來進行表示學習(representation learning),通過深度神經網絡中的逐層加工,逐漸將低層的特徵表示轉化為高層的特徵表示。

同樣,以前也需要“老中醫”來對核函數(kernel)、卷積模板(mask)等強烈依賴經驗的計算單元進行選擇或者構造,這限制了可能的學習種類。深度學習網絡相當於可以從數據中學習kernel或者mask,大大提高了靈活性,降低了對經驗的依賴。

又如,在深度學習中廣泛採用預訓練模型(如最近很火的BERT)。這個想法的本質是知識重用。可複用的預訓練模型作為“工作母機”,可以被後續的工程再去針對特定的任務修正和調優。

綜上所述,大量深度學習工具的出現,大大降低了神經網絡的入門門檻,大大增加了神經網絡工程師的供給總量,大大降低了領域專家介入成本,從而有利於控制工程總成本。

不過,現實的問題求解並不是單一工序。任何一個實際問題的解決,都需要工程上的細緻的問題分解,並不總是存在“端到端”的方法,多種工具的組合運用是工程不可或缺的。隨著深度學習的普及,最近幾年畢業的學生,很多甚至不知道深度學習之外的方法了,連傳統機器學習都丟掉了,更不用說規則方法了,這對實際解決問題將是有害的。

會有第三代終結者嗎?

深度學習如今進入了本輪高潮的第7個年頭,正如日中天,在前所未有的海量資金投入時,討論是不是會有什麼因素導致本輪高潮的結束似乎是杞人憂天。有人認為,這一次的神經網絡復興將是最後一次,因為神經網絡將不可能再次進入低谷。

不過,“一切偉大的世界歷史事變……可以說都出現兩次”。“極高的期待導致極度的懷疑”這件事已經發生兩次了,如今正處在第三次“極高的期待”中,很多名人又開始擔心人工智能威脅人類了。為了這一領域的健康發展,我們也應該審視深度學習是不是有其自身的邊界,並提前想一想對這些邊界的應對。

如之前的分析,第二代終結者問題(鏈式求導的副作用)恰恰是為了解決第一代終結者問題(非線性分類)而帶來的新問題。那終結第三次神經網絡高潮(深度學習)的會不會也是為了解決第二代終結者問題而導致的新問題呢?

01“暴力美學”

當我們加深網絡層次並引入模塊性的時候,會帶來什麼副作用呢?現在深度學習反而變得越來越貴,層數越來越多,預訓練模型也越來越昂貴,深度學習在很多場景下反而變成了“暴力美學”,成為拼數據、拼GPU的燒錢遊戲。

但是,其實去非巨頭的企業走走就會知道,大多數的領域落地問題,還不能承擔這種成本,尤其是很多機構組織的問題解決,必須從低成本小問題開始。“暴力美學”式的深度學習,就只能停留在“頭部問題”(即存在大量數據和大量算力的問題)上,而難以解決大多數垂直領域問題。

02“煉丹”

深度學習的結果越來越難以解釋和定向優化,整個系統是個“煉丹”的黑箱。當然,這個問題不是深度學習獨有的,是整個“連接主義”方法共同的問題。只是深度學習把這種“煉丹”推到了一個全新的高度,調參的效果往往不可理解,沒法解釋。

但是非常多的應用問題,如醫療和自動駕駛,的確是需要可解釋性和定向優化的,這就限制了應用的效果。

03遞歸性序列

黑箱問題本身可能還不是致命的,但是它又帶來了另一個問題:一些在人看起來很清晰的問題,基於海量的訓練數據機器還是學習不好。這類問題通常是一種“遞歸性生成規則”,最簡單的如數字的構成規則,基於這些規則可能生成無窮無盡的序列。

基於純語料對齊技術訓練,就很難得到不出錯的中英文數字翻譯。類似的遞歸性序列不僅在語言中大量存在,在表格、篇章等結構中也廣泛存在。深度學習到底能不能在工程上解決這類語法歸納(grammar induction)問題,還是個待實踐的問題。

04知識融合

這個問題也是近來學術界關注的熱點。如何把先驗知識或者“知識圖譜”(即數據本身的結構性)融合進深度神經網絡?各類的向量化方法被提出,語義並不依賴於把符號直接映射到模型世界的個體上,而取決於個體的統計特性。

但是除了詞向量,其他更復雜的知識結構(例如屬性、二元關係和表達式)在工程上依然鮮有成功。在自然語言處理中,外源知識恐怕是難以避免的,目前的向量化方法,似乎還不足以獨立完成這個 任務。

深度學習的這些問題(潛在的“第三代終結者”問題),也同樣是難以僅僅用拓撲的改良來解決的,例如增加神經網絡層數或者再提升數據的量級。

可能需要我們進一步提出更先進的網絡結構,或者融合其他的AI工具,而不僅是“打補丁”(和二十多年前一樣)。讀者可能也會得出自己的“終結者問題”。思考這些問題,並不意味著我們否定深度學習,而是有助於我們進一步拓寬思路。也許,如之前的兩次復興一樣,答案並不複雜,需要的僅僅是從常識出發,去發現工程的技巧。

8結語

下面兩句話都是Minsky說的。

1970:“三到八年後,我們就會有一個機器,達到普通人類的智能水平。”——三年之後AI進入冬天。

2003:“1970年代以來,AI就腦死亡了。”——三年之後Hinton悄然舉起復興的大旗。

可見,即使是AI創始人自己,對未來的預測,也常常是錯誤的。

從某種程度上說,也許我們不可能走出週期律,它會一直陪伴著這個學科。因為人工智能可能和所有其他的計算機分支都不一樣,她會一次又一次讓我們著迷,因為愛而被衝昏頭腦,又因為愛而對她生恨。這恰恰是她的魅力所在。

神經網絡(包括深度學習)是最好的第一種算法和最後一種算法。當你對一個問題一無所知,請用神經網絡。當一個問題已經被明確可解,神經網絡總是可以幫你達到已知的最優結果。

在兩者之間,神經網絡和其他算法一樣優秀或者糟糕。神經網絡模型在實踐有效後通常都會經歷簡化,甚至部分“白箱”化。這在工程上是幾乎一定會發生的。總之,它是一個“最不壞的選擇”。

我們可以做到的是實事求是,一切從實踐出發,一切從工程出發,去理解約束,理解落地細節,抓住本質。我們也會經歷知其然、知其所以然,到知未然的認識深化過程。對神經網絡這樣一種頗為複雜的工具,比較和實踐都是不可或缺的。

Charniak的這本書就是可以幫助您達到這一點的優秀參考書。它是一本實事求是的教材,它也是一本以工程為導向的指南,以Python和Tensorflow為實踐工具,可以帶你以清晰的邏輯進入實戰,去領略基礎的深度學習算法如CNN、RNN、LSTM、GAN等。這本書只是一個開始,正如本文前面所述,神經網絡是一個有深厚歷史淵源的學科,在未來還有很多其他的進階話題等著對此有興趣的讀者去探索。

我相信你會和我一樣,愉快地閱讀本書,並獲得思考的樂趣。

本書作者尤金·查爾尼克(Eugene Charniak),美國布朗大學計算機科學和認知科學教授,博士畢業於MIT,博士導師是人工智能之父馬文·明斯基。本書是一本人工智能經典入門書,美國常青藤名校經典教材,得到國內知識圖譜界領軍人物、文因互聯CEO鮑捷作序,國內外產業界和學術界大咖鼎力推薦

本書基於Tensorflow編寫,以項目為導向,通過一系列的編程任務,向讀者介紹了熱門的人工智能應用,包括計算機視覺、自然語言處理和強化學習等。


分享到:


相關文章: