2020年AI學術界一場突如其來的辯論:到底什麼是深度學習?

ai科技評論 發佈 2020-01-18T14:10:05+00:00

在過去十年洶湧而來的深度學習浪潮中,大家對深度學習在應用中體現出的各種特點已經非常熟悉了,但畢竟深度學習的理論仍未建立完善。

作者 | 楊曉凡編輯 | Camel

編者按:2019 年底、2020 年初,許多機器學習界活躍的教授、研究員們投身參與了一場的突如其來的討論:到底什麼是深度學習?

在過去十年洶湧而來的深度學習浪潮中,大家對深度學習在應用中體現出的各種特點已經非常熟悉了,但畢竟深度學習的理論仍未建立完善。更重要的是,大家已經意識到了深度學習的種種限制,那麼想要破除限制、實現更高級的智慧時,就免不了需要思考,是「繼續改進深度學習就可以達到目標」,還是「我們需要在深度學習之外另起爐灶」,這裡也就引出了那個看似簡單,但大家尚未達成共識的問題「深度學習是什麼?」

不少學者最近都參與了這個討論,AI 科技評論帶大家回顧一下各方觀點。

Keras 作者 François Chollet 這樣說

Keras作者、谷歌大腦高級研究員 François Chollet 最先給出了自己的觀點:

什麼是深度學習?在 2019 年這個時間點,大家經常用到的那種深度學習定義大概是這樣的:「它由一連串可微分的參數化的層組成,而且是用反向傳播算法端到端地訓練的」。不過這個說法在我看來太過狹隘了,它最多是「我們現在做的深度學習」的描述,而不是對深度學習本身的定義。

比如說,如果你有一個卷積網絡模型,然後你用 ADMM 訓練它的權重,它就不是深度學習了嗎?一個自己學習特徵的 HMAX 模型就不是深度學習了嗎?甚至於,用貪婪算法逐層訓練的深度神經網絡就不是深度學習了嗎?要我說的話,它們都是深度學習。

深度學習應該指的是一種表征學習方法,其中的模型是由一連串的模塊組成的(一般都會堆成一個多層的或者金字塔形的模型,這也就是「深度」的由來),而其中的每一個模塊分別拿出來訓練之後都可以作為獨立的特徵提取器。我在我自己的書里也就是這麼定義的。

通過這樣的定義,我們也就能明確深度學習不是下面這樣的模型:

  1. 不學習表征的模型,比如 SIFT 之類的人工特徵工程,符號 AI,等等

  2. 淺層學習,只有一層特徵提取器的模型

深度學習的定義里不需要指定固定的某種學習機制(比如反向傳播),也不需要指定固定的使用方式(比如監督學習還是強化學習),而且也不是一定要做聯合的端到端學習(和貪婪學習相反)。這才是深度學習「是什麼」的本質屬性、根本結構。這之外的描述僅僅是「我們是如何做深度學習的」。

清晰的定義也就劃分出了明確的邊界,有的東西是深度學習,有的東西不是。2019 年隨處可見的這種深度神經網絡自然是深度學習,而用演化策略 ES、ADMM、虛擬梯度之類的反向傳播替代方案訓練的深度神經網絡當然也是深度學習。

基因編程就不是深度學習,快速排序不是深度學習,SVM 也不是。單獨一個全連接層不是深度學習,但很多個全連接層堆在一起就是;K-means 算法不是深度學習,但把許多個 K-means 特徵提取器堆疊起來就是。甚至我自己在 2011 到 2012 年間,收集視頻數據的位置的成對的共同信息矩陣,然後把矩陣分解堆疊在上面,也是深度學習。

一般的人類軟體工程師用語言寫出的程序不是深度學習,給這些程序加上參數、能自動學習幾個常量,也仍然不是深度學習。一定要用成串連起來的特徵提取器做表征學習,這才是深度學習。它的本質在於通過深度層次化的特徵來描述輸入數據,而這些特徵都是從數據里學習到的。

根據定義也能看出來,深度學習是一種逐步完善的、一點點優化的從數據中提取表征的方法。以深度學習現在的形式來看,它至少是 C1 連續的(甚至到無限階都是連續的)。這一條可能不那麼關鍵,但「逐步優化」的這一條也是深度學習的固有屬性。

所以深度學習和以往的符號運算 AI、常規編程都完全不同,它的基礎結構就是離散的、以數據流為核心的,而且通常也不需要任何中間層的數據表征。

想用深度學習做符號運算也不是不可能,但需要引入很多額外的步驟。可話又說回來,深度學習模型也就只能囊括所有程序中的很小很小的一部分而已,沒必要做什麼都要用深度學習。

還可以再拓展一個問題:大腦是「深度學習」嗎?我認可的只有這一種答案:大腦是一個複雜得難以想像的東西,它把許許多多結構不同的東西包括在內,而我們對大腦的了解還太少;大腦是不是深度學習,我們還給不出確定的答案。我有一個直覺是,大腦總體來說不是深度學習,不過其中的某一些子模塊可以用深度學習來描述,或者是部分符合深度學習的,比如視覺皮層就有深度層次化的特徵表征,即便這些表征不都是學習得到的;視覺皮層也是深度學習的研究中重要的靈感來源。

我可以再補充一句,如果用樹形結構來比喻的話,我們對現代的深度學習的理解和使用,主要還停留在早些時候發展的「現代機器學習」的這一枝上,和神經科學之間沒多大關係。神經科學帶來的影響主要在於高層次的新觀念啟發,而不是直接的模仿借鑑。

Yann LeCun 這樣說

在另一條故事線上,深度學習三駕馬車之一的 Yoshua Bengio 和「一直以來的深度學習黑粉」 Gary Marcus 的年度拌嘴留下了一個經典問題:「深度學習是否已經足夠了?」("Is DL enough?")這也再次引出了「深度學習到底是什麼」的討論。2011 年圖靈獎得主、貝葉斯網絡之父 Judea Pearl 就表示「因為深度學習沒有清晰的定義,所以我沒辦法回答深度學習是不是已經足夠了」。

有一種據說來自 Yann LeCun 的定義是這樣的:深度學習是一種方法論,是把多個參數化的模塊組合成圖(可以是動態圖),構成模型,然後用基於梯度的方法優化它。LeCun 本人表示,如果這麼定義深度學習的話,那深度學習還遠遠不足以解決目前已經遇到的問題,因為這個定義下的模型架構、優化目標、優化方法都有了具體的限制。

討論中也有人提出,如果直接給出深度學習的定義有爭議,不如我們列一列都有什麼東西不是深度學習?LeCun 給出的答案是:邏輯回歸、核方法、樸素貝葉斯、樹&森林、K-means、K-NN 都不是深度學習,因為它們都不學習數據表征;此外,通過 0 階方法(非梯度)優化的高度不可微分模型也不是深度學習,即便它們可以學習數據表征。

一兩天的討論之後,學者之間沒能立刻形成廣泛一致的共識。Judea Pearl 覺得有點失望,他自己做了這樣一個總結:

雖然我沒能看到什麼好的定義,但是在「深度學習是什麼」的討論里我的感受是,做深度學習的人們似乎都非常相信深度學習還有無限大的潛力,他們沉醉在這些程序、技巧、術語裡無法自拔。我想起了我高中時候學代數學到第二周、第三周時候的樣子,我們也相信這些方法有無限的問題解決能力。但老師告訴我們,如果兩個方程里有三個未知數,那你就解不出這個方程;聽到這句話的時候我們不免會有一些失望,也感受到了自己的無知,但同時,這也讓我們避免在無解的方程上浪費太多時間。只不過,朋友們,現在大家已經都不是高中生了。

LeCun 在下面和他繼續討論了起來:

所以你這是不接受我的定義了?我的定義是,深度學習是一種方法論,是把多個參數化的模塊組合成圖(可以是動態圖),構成模型,設置一個目標函數,然後用某種基於梯度的方法優化它。如果要夠「深」,那麼這個圖就需要在從輸入到輸出的流程上有許多個非線性階段;這種深度也能讓模型學到內部的表征。我的這個定義也沒有指定具體的學習範式(有監督、無監督、強化學習),甚至連結構、目標也都不是定死的。

Judea Pearl 沒有繼續參與這個討論,不過,對比 François Chollet 和 Yann LeCun 給出的答案,不難看出他們的大部分意見是一致的,只不過 LeCun 認為基於梯度的優化方法也是深度學習的一部分,而 Chollet 認為不用基於梯度的方法也可以 —— Chollet 定義下的深度學習就要更寬一些。

那麼回到前面那個問題,即便認可 Chollet 的更寬一些的深度學習的定義,那麼深度學習就夠了嗎?按照他的態度來說,也不夠;我們有那麼多種各式各樣的方法,不需要死守深度學習不放。即便只是今天的已經能用深度學習的問題,也不是時時刻刻都需要用一個基於深度學習的解決方案。

從深度學習視角看舊模型

不過站在今天的深度學習的視角來看,一些經典方法看起來也變得有趣了。深度學習研究員、Fast.ai 創始人 Jeremy Howard 也參與了深度學習邊界的討論,他說邏輯回歸現在看起來就像深度學習,它是一個一層深度的、參數化的函數模塊,可以在數據樣本上用基於梯度的方法訓練。甚至,以他自己的感受來說,把 SVM 看作用 Hinge Loss 損失函數和 L1 正則化的神經網絡要好學、好教得多。

LeCun 也表示贊同:「一個 SVM 就是一個兩層的神經網絡,其中,第一層的每一個神經元都會通過核函數把輸入和某個訓練樣本做對比(所以其實第一層是一種無監督學習的平凡形式:記憶),然後第二層會計算這些輸出的(經過訓練後的)線性組合。

很多參與討論的網友都表示被這一條見解震驚了,其中有個人就說「有一次工作面試的時候他們讓我實現 SVM 然後用梯度下降訓練它,我心想臥槽這不就是個 Hinge Loss 的神經網絡嗎。本來這也不算多大的事,但是突然意識到以後覺得真的很神奇。」

也有網友接著追問:「可以不只有兩層吧?你可以用很多層學習一個核函數,然後用最後一層計算核方法的預測規則。只要你施加一些規則,保證這個核是 Mercer 核,網絡中起到核的作用的層的數量就可以不受限制」。LeCun 回答:「核函數可以任意複雜。但如果核函數是學習得到的,那這就已經是深度學習了…… 其實這就是我們訓練 Siamese 網絡,也就是度量學習(metric learning)的時候做的事情。這就像是訓練一個相似度的核。最後只要你願意的話,也可以在上面再增加一個線性層。」

祝福深度學習的新十年

文章結尾我想引用李飛飛高徒、特斯拉 AI 負責人 Andrej Karpathy 的一條推特作為結尾。

今天已經有網友會在 Reddit 上提問「想要用神經網絡之外的方法做分類任務,理論上有可能嗎?」但其實也就大概八年前你更容易看到的問題是「想要用神經網絡方法做分目標識別,理論上有可能嗎?」這幾年的變化可真有意思。

我們樂於看到深度學習繼續發展,理論更加完善、應用更加豐富、資源利用更加高效,但同時也希望更多研究人員和開發者可以意識到,深度學習並不是那個唯一的、最終的解決方案。我們期待在 2020 年、在這個新十年里看到更高級的、補充深度學習的不足的新方法。

AI 科技評論報導。

關鍵字: