一場突如其來的討論:到底什麼是深度學習?SVM其實也是深度學習嗎?

2020-12-11 雷鋒網

雷鋒網 AI 科技評論按: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 科技評論報導。

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 深度學習的學習歷程
    看來看去,感覺好像什麼都懂了,不就那些模塊嗎,conv、lstm、pooling、fc、drop out等等,這些模塊的公式早就能背得滾瓜爛熟。alexnet、vgg、googlenet、resnet等網絡就像樂高一樣,把這些模塊當積木一樣組合起來,好像也沒啥特別的。又好像什麼都不懂,學會這些模塊的公式就算會深度學習了嗎?
  • 深度學習是什麼,如何進行深度學習?
    開展深度學習的研究與實踐正是把握教學本質的一種積極努力,是我國課程教學改革走向深入的必需。 當前,智能機器尤其是智能化穿戴設備的大量出現,部分傳統職業已被替代,甚至有人認為教師和教學也可能被替代而消失。在這樣的情形下,我們不得不思考:在智能化時代,真的不需要教學了嗎?真的不需要教師了嗎?
  • 什麼是深度學習?
    文|楊德發(《學本式教師資源開發研究》課題組負責人,微信:cq-ydf,電郵:529334038@qq.com,歡迎各大紙媒、公眾號向楊德發約稿)這幾天微信上在轉發關於「深度學習」的文章,看了幾篇,感覺這些文章的作者並沒弄明白「什麼是深度學習」,其文章一點也沒有抓住深度學習的本質。
  • 傅盛:深度學習是什麼?
    尤其,以深度學習取得的進步為顯著標誌。它讓匍匐前進60年的人工智慧一鳴驚人。我們正降落到一片新大陸。深度學習帶來的這場重大技術革命,有可能顛覆過去20年網際網路對技術的認知,實現技術體驗的跨越式發展。那麼,深度學習到底是什麼?怎麼理解它的重要性?我們先從概念和現象入手。
  • 知乎回答 | 面試官是怎麼判斷面試者的深度學習水平的?
    CNN通過什麼手段抓住了這個共性?再補充一個問題,為什麼很多做人臉的paper會最後加入一個local connected conv?傳統機器學習一定要好好問問,因為很多人只會深度學習的調參技巧,知其然,不知其所以然。傳統機器學習算法裡面理論相對完備,通過考傳統機器學習算法更容易看出應聘者的理論能力。
  • 3 分鐘搞懂深度學習到底在深什麼
    答案是:不,建構一套深度學習的網絡,其實沒有想像中困難,只要看完這篇文章,就能夠有基本的了解,再搭配網絡資源自學一下,甚至就可以開始建立自己的深度學習網絡。如果你想要深度學習「深度學習」,又能快速搞懂它到底在深什麼東西,看這篇文章就對了,那我們開始囉!
  • 什麼是深度學習
    什麼是深度學習      長期以來,我們的教師勤勉而努力,但對於究竟如何在教學中實現對學生的核心素養的培養,實現立德樹人的根本任務,卻少有思考。其實這樣就把「教書」和「育人」割裂了。如果教學僅僅停留在知識的傳遞上而不去促進學生的主動發展,就偏離了其本義和目的。
  • 深度強化學習(一)----深度學習介紹系列
    (引用了http://36kr.com/p/220012.html 與 http://www.infoq.com/cn/articles/atari-reinforcement-learning)為了讓大家能稍微詳細的了解深度強化學習算法,我們先分別介紹強化學習算法與深度學習算法,再說說他們如何結合的,最後大概總結下。首先我們說說什麼是強化學習吧。
  • 深度學習入門 | 第一講 深度學習與回歸分析
    在這一講,我想和大家探討一下深度學習與回歸分析之間的關係。深度學習作為人工智慧領域備受關注的模型方法,在媒體上可以看到大量的宣傳材料。客觀地說,很多宣傳其實是有失偏頗的,甚至是誤導的,把深度學習和人工智慧給過度神化了。而回歸分析不一樣,它是當前很多高校學生的必修課。它聽起來不是那麼的高大上,但好處是人們對它非常熟悉。
  • 什麼是深度學習? - 45分鐘理解深度神經網絡和深度學習
    什麼是深度學習?
  • 計算語言學與深度學習
    與在法國裡爾舉行的2015國際機器學習大會(International Conference on Machine Learning, ICML)同時,舉行了差不多同樣規模的2015深度學習研討會。在研討會結束時舉行了一場專題討論,在討論中尼爾·勞倫斯(Neil Lawrence)說:「自然語言處理的處境現在有點像只夜間公路上的兔子,被『深度學習』這部高速行駛『汽車』的『前大燈』晃瞎了眼睛,只能束手待斃。」計算語言學者們應當認真對待這個論斷。對我們而言,深度學習就是我們研究的終點了嗎?這些關於深度學習威力的預測從何而來呢?
  • 楊德發:什麼是深度學習?
    今黃老之學,德雅學宮者,取齊稷下學宮之優,匯舉國各家學術之師,行不治而議之論辯,發各家之言。凡聚德雅學宮的文人學者,無論其學術派別、思想觀點、國別、年齡、資歷,都可以自由發表學術見解和學生作品,可以互相爭辯、詰難、爭論天下教育時勢。
  • 想學習深度學習需要什麼樣的基礎?
    很多小夥伴對深度學習的理解都有一些誤解,今天就為你一一解答。 很多人第一反應是深度學習特別高大上,需要一定基礎才能學習,但是關於需要學習深度學習所需要的基礎其實存在很多誤區。迷茫於在網上雖然能找到各類深度學習課程和資料,但是是不是適合自己,如何能在一堆裡面找到系統的、深入的、落地的學習內容,這對很多人來說都是橫在學習面前的一道坎。
  • 《深度學習入門一》一入侯門深似海,深度學習深幾許
    所以,這個深度學習的入門系列,能帶給你的是「從入門到精通」,還是「從入門到放棄」,一切都取決你個人的認知。成就你自己的,永遠都是你自己,是吧?好了,言歸正傳,下面開始我們的正題。說到深度學習,我們首先需要知道,什麼是學習?
  • 讓學習真正發生——深度學習
    學習的目的是什麼?大多數人都有這種疑問,高三拼命的學習,通過大量的練習,對知識進行不斷的鞏固,但是上了大學後,高中學過的知識基本都已經忘了,那學生到底學了什麼?一、基本學習能力 大學以前的學習都是為了讓人具有基本的學習能力,如閱讀,查找,初級計算,理解等能力。這些能力可以說是一個人能夠在社會生存所必須的能力。擁有了這些能力個人就具備了自學的能力,以後,在任何環境中,個體都不會太過的窘迫。
  • 深度學習領域有哪些瓶頸?
    這樣一來,研究人員就更加容易發現錯誤在哪,而不像深度神經網絡是個黑盒,誰也不知道裡面發生了什麼。但要學習組合模型,並不容易。之所以我們覺得對抗樣本是深度學習的瓶頸是因為,圖像很直觀,當我們看到兩張幾乎一樣的圖片,最後深度學習模型給出兩種完全不一樣的分類結果,這給我們的衝擊很大。如果修改一個原本類別是A的feature中某個元素的值,然後使得svm的分類改變為B,我們會覺得不以為然,「你改變了這個feature中某個元素的值,它的分類結果改變很正常啊」。
  • 素養本位 深度學習
    為了科學推進課程建設的開發與實施,更好地提升學生的核心素養,山大附中理綜組於2020年11月6日開展了主題為「指向深度學習的新常態課堂研究及高中新課標指導下課程建設案例修改」的教研活動。全體附中理綜組教師參加了此次教研活動,分享思考與感悟,分析困惑與疑問,收穫滿滿。
  • 如何給非專業人士講解什麼是深度學習?
    認字時,一定是小朋友的大腦在接受許多遍相似圖像的刺激後,為每個漢字總結出了某種規律性的東西,下次大腦再看到符合這種規律的圖案,就知道是什麼字了。其實,要教計算機認字,差不多也是同樣的道理。計算機也要先把每一個字的圖案反覆看很多很多遍,然後,在計算機的大腦(處理器加上存儲器)裡,總結出一個規律來,以後計算機再看到類似的圖案,只要符合之前總結的規律,計算機就能知道這圖案到底是什麼字。
  • 如何理解學生的深度學習
    深度學習是最近幾年教育界的一個熱詞。其實,深度學習原是機器學習中的一個概念,源於人工神經網絡的研究,提出的動機在於建立、模擬人腦進行分析學習的神經網絡,模仿人腦的機制來解釋數據。後來,深度學習被移植到了教育教學領域,迅速風靡。但是,教育教學中人(學生)的深度學習內涵到底是什麼?
  • 深度學習入門
    那麼深度學習到底是什麼,其與傳統的機器學習之間又有什麼樣的關聯。對於想入坑深度學習的同學,又該從哪些方面入手。這就是本文要回答的問題。深度學習的提出       先從深度學習的提出開始說起,深度學習的概念是由Hinton在2006年提出,他當時首次提出了深度信念網絡(DBN),相比之前,他採用無監督方式逐層訓練深層網絡,在深層網絡訓練中取得了跨越式的進展。