【E課堂】一文讀懂深度學習

2021-02-08 電子產品世界

  近日,在深度學習領域出現了一場熱烈的爭論。這一切都要從Jeff Leek在Simply Stats上發表了一篇題為 《數據量不夠大,別玩深度學習》 (Don't use deep learning your data isn't that big)的博文開始。作者Jeff Leek在這篇博文中指出,當樣本數據集很小時(這種情況在生物信息領域很常見),即使有一些層和隱藏單元,具有較少參數的線性模型的表現是優於深度網絡的。為了證明自己的論點,Leek舉了一個基於MNIST資料庫進行圖像識別的例子,分辨0或者1。他還表示,當在一個使用僅僅80個樣本的MNIST數據集中進行0和1的分類時,一個簡單的線性預測器(邏輯回歸)要比深度神經網絡的預測準確度更高。

本文引用地址:http://www.eepw.com.cn/article/201709/364740.htm

  這篇博文的發表引起了領域內的爭論,哈佛大學藥學院的生物醫藥信息學專業博士後Andrew Beam寫了篇文章來反駁: 《就算數據不夠大,也能玩深度學習》 (You can probably use deep learning even if your data isn't that big)。Andrew Beam指出,即使數據集很小,一個適當訓練的深度網絡也能擊敗簡單的線性模型。如今,越來越多的生物信息學研究人員正在使用深度學習來解決各種各樣的問題,這樣的爭論愈演愈烈。這種炒作是真的嗎?還是說線性模型就足夠滿足我們的所有需求呢?結論一如既往——要視情況而定。在這篇文章中,作者探索了一些機器學習的使用實例,在這些實例中使用深度學習並不明智。並且解釋了一些對深度學習的誤解,作者認為正是這些錯誤的認識導致深度學習沒有得到有效地使用,這種情況對於新手來說尤其容易出現。

  打破深度學習偏見

  首先,我們來看看許多外行者容易產生的偏見,其實是一些半真半假的片面認識。主要有兩點,其中的一點更具技術性,我將詳細解釋。

  深度學習在小樣本集上也可以取得很好的效果

  深度學習是在大數據的背景下火起來的(第一個谷歌大腦項目向深度神經網絡提供了大量的Youtube視頻),自從那以後,絕大部分的深度學習內容都是基於大數據量中的複雜算法。

  然而,這種大數據+深度學習的配對不知為何被人誤解為:深度學習不能應用於小樣本。如果只有幾個樣例,將其輸入具有高參數樣本比例的神經網絡似乎一定會走上過擬合的道路。然而,僅僅考慮給定問題的樣本容量和維度,無論有監督還是無監督,幾乎都是在真空中對數據進行建模,沒有任何的上下文。可能的數據情況是:你擁有與問題相關的數據源,或者該領域的專家可以提供的強大的先驗知識,或者數據可以以非常特殊的方式進行構建(例如,以圖形或圖像編碼的形式)。所有的這些情況中,深度學習有機會成為一種可供選擇的方法——例如,你可以編碼較大的相關數據集的有效表示,並將該表示應用到你的問題中。這種典型的示例常見於自然語言處理,你可以學習大型語料庫中的詞語嵌入,例如維基百科,然後將他們作為一個較小的、較窄的語料庫嵌入到一個有監督任務中。極端情況下,你可以用一套神經網絡進行聯合學習特徵表示,這是在小樣本集中重用該表示的一種有效方式。這種方法被稱作「一次性學習」(one-shot learning),並且已經成功應用到包括 計算機視覺 和 藥物研發 在內的具有高維數據的領域。

    

 

  藥物研發中的一次性學習網絡,摘自 Altae-Tran et al. ACS Cent. Sci. 2017

  深度學習不是一切的答案

  我聽過最多的第二個偏見就是過度宣傳。許多尚未入門該領域的人,僅僅因為深度神經網絡在其它領域的出色表現,就期待它也能為他們帶來神話般的表現提升。其他人則從深度學習在圖像、音樂和語言(與人類關係密切的三種數據類型)處理領域的令人印象深刻的表現中受到啟發,於是就頭腦發熱地鑽入該領域,迫不及待地嘗試訓練最新的GAN結構。當然,這種大肆吹捧在很多方面是真實存在的。深度學習在機器學習中的地位不可小覷,也是數據建模方法庫的重要工具。它的普及帶動了諸如tensorflow和pytorch等許多重要框架的發展,它們即使是在深度學習之外也是十分有用的。失敗者崛起成為超級巨星的故事激勵了許多研究員重新審視以前的模糊算法,如進化算法和增強學習。但任何情況下也不能認為深度學習是萬能良藥。除了「天下沒有免費的午餐」這點之外,深度學習模型是非常微妙的,並且需要仔細甚至非常耗時耗力的超參數搜索、調整,以及測試(文章後續有更多講解)。除此之外,在很多情況下,從實踐的角度來看,使用深度學習是沒有意義的,更簡單的模型反而能獲得更好的效果。

  深度學習不僅僅是

  深度學習模型從機器學習的其他領域傳來時,我認為還有另外一個方面經常被忽略。大多數深度學習的教程和介紹材料都將模型描述為通過層次方式進行連接的節點層組成,其中第一層是輸入,最後一層是輸出,並且你可以用某種形式的隨機梯度下降(SGD)方法來訓練網絡。有些材料會簡單介紹隨機梯度下降是如何工作的,以及什麼是反向傳播,但大部分介紹主要關注的是豐富的神經網絡類型(卷積神經網絡,循環神經網絡等等)。而優化方法本身卻很少受到關注,這是很不幸的,因為深度學習為什麼能夠起到很大的作用,絕大部分原因就是這些特殊的優化方法(具體論述可以參考Ferenc Huszár的 博客 以及博客中引用的 論文 )。了解如何優化參數,以及如何劃分數據,從而更有效地使用它們以便在合理時間內使網絡獲得良好的收斂,是至關重要的。不過,為什麼隨機梯度下降如此關鍵還是未知的,但是現在線索也正零星出現。我傾向於將該方法看成是貝葉斯推理的一部分。實質上,在你進行某種形式的數值優化時,你都會用特定的假設和先驗來執行一些貝葉斯推理。其實有一個被稱做 概率數值計算 (probabilistic numerics)的完整研究領域,就是從這個觀點開始的。隨機梯度下降也是如此, 最新的研究成果 表明,該過程實際上是一個馬爾科夫鏈,在特定假設下,可以看作是後向變分近似的穩態分布。所以當你停止隨機梯度下降,並採用最終的參數時,基本上是從這個近似分布中抽樣得到的。我認為這個想法很有啟發性,因為這樣一來,優化器的參數(這裡是指學習率)就更有意義了。例如,當你增加隨機梯度下降的學習參數時,馬爾可夫鏈就會變得不穩定,直到它找到大面積採樣的局部最小值,這樣一來,就增加了程序的方差。另一方面,如果減少學習參數,馬爾科夫鏈可以慢慢的近似到狹義極小值,直到它收斂,這樣就增加了某個特定區域的偏置。而另一個參數,隨機梯度下降的批次大小,也可以控制算法收斂的區域是什麼類型,小的批次收斂到較大區域,大的批次收斂到較小區域。

    

 

  隨機梯度下降根據學習速率或批尺寸來選擇較大或狹義最小值

  這樣的複雜性意味著深度網絡的優化器非常重要:它們是模型的核心部分,與層架構一樣重要。這一點在機器學習的許多其他模型中並不常見。線性模型(甚至是正則化的,像LASSO算法)以及支持向量機(SVM) 都是凸優化問題,沒有太多細微差別,並且只有一個最優解。這也就是為什麼來自其它領域的研究人員在使用諸如scikit-learn這樣的工具時會感到困惑,因為他們發現找不到簡單地提供.fit()函數的API(儘管現在有些工具,例如skflow,試圖將簡單的網絡置入.fit()中,我認為這有點誤導,因為深度學習的全部重點就是其靈活性)。

  什麼時候不需要深度學習

  在什麼情況下深度學習不是最理想的呢?在我看來,以下情況中,深度學習更多是一種阻礙,而不是福音。

  低預算或低投資問題

  深度網絡是十分靈活的模型,有多種多樣的結構和節點模型、優化器以及正則化方法。根據應用場景,你的模型或許要有卷積層(層尺寸多寬?有沒有池化操作?),或者循環結構(有沒有門控單元?);網絡可能真的很深(hourglass,siamese,或其他結構?)還是只是具有很少的幾個隱藏層(有多少單元?);它可能使用整流線性單元或其他激活函數;它可能會或可能不會有隨機丟棄(在哪一層中?用什麼比例?),並且權重應該是正則化的(L1、L2,或者是某些更奇怪的正則化方法?)。這只是一部分列表,還有很多其他類型的節點、連接,甚至損失函數可以去嘗試。即便只是訓練大型網絡的一個實例,調整許多超參數以及探索框架的過程也是非常耗時的。谷歌最近宣稱自己的AutoML方法可以自動找到最好的架構,令人印象深刻,但仍然需要超過800個GPU全天候運行數周,這對於任何人來說幾乎都是遙不可及的。關鍵在於訓練深度網絡時,在計算和調試部分都會花費巨大的代價。這種消耗對於許多日常預測問題並沒有意義,並且調整深度網絡的投資回報率太低,即使是調整小型網絡。即使有足夠的預算和投資,也沒有理由不嘗試替代方法,哪怕作為基準測試。你可能會驚喜地發現,線性SVM就夠用了。

  解釋和傳達模型參數或特徵對一般受眾的重要性

  深度網絡也是很有名的黑匣子,它具有高預測能力但可解釋性不足。儘管最近有很多工具,諸如顯著圖(saliency maps)和 激活差異 (activation difference),它們對某些領域而言是非常有用的,但它們不會完全被應用到所有的應用中。主要是,當你想要確保網絡不會通過記住數據集或專注於特定的虛假特徵來欺騙你時,這些工具就能很好地工作,但仍然難以從每個特徵的重要性解讀出深度網絡的整體決策。在這個領域,沒有什麼能夠真正地打敗線性模型,因為學習得到的係數與響應有著直接的關係。當將這些解釋傳達給一般受眾,並且他們需要基於此做出決策時,這就顯得尤為重要。例如,醫生需要結合各種不同的數據來確認診斷結果。變量和結果之間的關係越簡單、越直接,醫生就能更好地利用,而不是低估或高估實際值。此外,有些情況下,模型(尤其是深度網絡)的精度並不像可解釋性那樣重要。例如,政策制定者可能想知道一些人口統計變量對於死亡率的影響,並且相較於預測的準確性來說,可能對這種關係的直接近似更有興趣。在這兩種情況下,與更簡單、更易滲透的方法相比,深度學習處於不利地位。

  建立因果機制

  模型可解釋性的極端情況是當我們試圖建立一個機械模型,即實際捕捉數據背後現象的模型。一個好的例子包括試圖猜測兩個分子(例如藥物、蛋白質、核酸等)是否在特定的細胞環境中相互產生影響,或者假設特定的營銷策略是否對銷售產生實際的影響。在這個領域,根據專家意見,沒有什麼可以擊敗老式的貝葉斯方法,它們是我們表示並推斷因果關係的最好方式。Vicarious有一些很好的 最新研究成果 ,說明為什麼這個更有原則性的方法在視頻遊戲任務中比深度學習表現得更好。

  學習「非結構化」特徵

  這可能是具有爭議性的。我發現深度學習擅長的一個領域是為特定任務找到有用的數據表示。一個很好的例子就是上述的詞語嵌入。自然語言具有豐富而複雜的結構,與「上下文感知」(context-aware)網絡相近似:每個單詞都可以通過向量來表示,而這個向量可以編碼其經常出現的文本。在NLP任務中使用在大型語料庫中學習的單詞嵌入,有時可以在另一個語料庫的特定任務中提升效果。然而,如果所討論的語料庫是完全非結構化的,它可能不會起到任何作用。例如,假設你正在通過查看關鍵字的非結構化列表來對對象進行分類,由於關鍵字不是在任何特定結構中都會使用的(比如在一個句子中),所以單詞嵌入不會對這些情況有太大幫助。在這種情況下,數據是一個真正的「詞袋」(bag of words),這種表示很有可能足以滿足任務所需。與此相反的是,如果你使用預訓練的話,單詞嵌入並不是那麼耗費時力,而且可以更好地捕獲關鍵字的相似度。不過,我還是寧願從「詞袋」表示開始,看看能否得到很好的預測結果。畢竟,這個「詞袋」的每個維度都比對應的詞嵌入槽更容易解讀。

  深度學習是未來

  深度學習目前非常火爆,資金充足,並且發展異常迅速。當你還在閱讀會議上發表的論文時,有可能已經有兩、三種新版本可以超越它了。這給我上述列出的幾點提出了很大的挑戰:深度學習在不久的將來可能在這些情景中是非常有用的。用於解釋圖像和離散序列的深度學習模型的工具越來越好。最近推出的軟體,如 Edward 將貝葉斯建模和深度網絡框架結合,能夠量化神經網絡參數的不確定性,以及通過概率編程和自動變分推理進行簡易貝葉斯推理。從長遠來看,可能會有一個簡化的建模庫,能夠給出深度網絡具有的顯著屬性,從而減少需要嘗試的參數空間。所以要不斷更新你的arXiv閱讀內容,這篇博文的內容或許一兩個月內也會過時。

    

 

  Edward通過將概率規劃與tensorflow結合,將深度學習和貝葉斯的模型考慮在內。摘自Tran et al. ICLR 2017

相關焦點

  • 獨家 | 一文讀懂Adaboost
    總結集成學習表示的是一種學習框架,主要包含有三種學習方式:boosting, bagging 和 stacking。本問集中在boosting的學習方式,通過具體的Adaboost算法向大家展示了集成學習的主要思想以及一些相關概念。
  • 一文讀懂深度學習中的矩陣微積分
    點擊我愛計算機視覺標星,更快獲取CVML新技術魚羊 編譯整理量子位 報導 | 公眾號 QbitAI想要真正了解深度神經網絡是如何訓練的
  • 一文讀懂深度學習與機器學習的差異
    什麼是深度學習?深度學習的概念並不新穎。它已經存在好幾年了。但伴隨著現有的所有的炒作,深度的學習越來越受到重視。正如我們在機器學習中所做的那樣,先來看看深度學習的官方定義,然後用一個例子來解釋。機器學習和深度學習的對比  現在的你應該已經對機器學習和深度學習有所了解,接下來我們將會學習其中一些重點,並比較兩種技術。數據依賴性深度學習與傳統的機器學習最主要的區別在於隨著數據規模的增加其性能也不斷增長。當數據很少時,深度學習算法的性能並不好。這是因為深度學習算法需要大量的數據來完美地理解它。
  • 深度學習:讓思維照亮課堂
    為了推動「深度學習」課堂的構建進程,探討以「深度學習」撬動課堂轉型的新思路,交流思想,分享經驗,2017年4月27日,全國小學數學「深度學習」研究聯盟首屆教學研討會在塔影中心小學舉行。此次活動由全國小學數學「深度學習」研究聯盟主辦,連元教育集團無錫市塔影中心小學承辦。
  • 一文讀懂深度學習中的各種卷積
    在這篇文章中,我會歸納總結深度學習中常用的幾種卷積,並會試圖用一種每個人都能理解的方式解釋它們。除了本文之外,還有一些關於這一主題的好文章,請參看原文。希望本文能幫助你構建起對卷積的直觀認知,並成為你研究或學習的有用參考。在信號處理、圖像處理和其它工程/科學領域,卷積都是一種使用廣泛的技術。在深度學習領域,卷積神經網絡(CNN)這種模型架構就得名於這種技術。
  • 叮咚課堂少兒英語怎麼樣?一文讀懂優劣勢!
    叮咚課堂就是一家主打少兒英語AI課堂的機構,很多家長都在問不知道叮咚課堂效果怎麼樣,想給孩子報課卻又一直猶豫不決,不知道該怎麼去判斷。下面我就從自身體驗來幫大家測評下叮咚課堂,會從課程、教材以及師資等方面來進行分析,一起來看看到底適不適合孩子學習吧。
  • 一文讀懂深度學習:從神經元到BERT
    今天,螞蟻金服財富對話算法團隊整理對比了深度學習模型在自然語言處理領域的發展歷程。從簡易的神經元到當前最複雜的BERT模型,深入淺出地介紹了深度學習在 NLP 領域進展,並結合工業界給出了未來的 NLP 的應用方向,相信讀完這篇文章,你對深度學習的整體脈絡會有更加深刻認識。一個神經網絡結構通常包含輸入層、隱藏層、輸出層。
  • 鄭 鋼:「5E」課堂教學:促進學生深度學習
    如今深度學習正在教育領域蓬勃興起,引領著中小學課堂教學改革和發展之勢。深度學習與「5E」模式的關係據研究,教育領域中的深度學習概念最早由瑞典哥德堡大學的馬頓和薩喬提出,他們在1976年研究大學生在進行大量散文閱讀任務時,所表現出的不同的學習過程和使用的學習策略以及理解和記憶的差異化學習結果。
  • 打開讀懂學生讀懂學習的大門
    10年來她頻繁走進中小學課堂,以「螞蟻之眼」觀察,以「蜻蜓之眼」審視,以「飛鳥之眼」瞭望,洞見了一線教師所未見的學情,然後與一線教師一道「以愛孩之心」檢索虛假學習和膚淺學習,這樣的努力很大程度上促進了課堂上真實學習和深度學習的發生。現場有智慧。我深以為然。創新成果一定誕生自日復一日的教學現場。
  • 一文讀懂深度學習文本分類方法
    最近有很多小夥伴想了解深度學習在文本分類的發展,因此,筆者整理最近幾年比較經典的深度文本分類方法,希望幫助小夥伴們了解深度學習在文本分類中的應用。筆者整理了近些年的相關深度文本分類論文,關注「AI算法之心」,後臺回復「文本分類論文」即可下載。
  • 彭州市一區片小學數學課堂深度教學研討活動在白鹿小學舉行
    為切實引領山區數學教師在實際教學工作中指導學生深度學習,達到優質教育資源的相互融合,彭州市教研室數學教研員周啟華老師特帶領數學中心組老師和一批名優老教師來到一區片,在白鹿小學舉行了一次隆重紮實的數學課堂深度教學研討活動。
  • 深度學習助力數據壓縮,一文讀懂相關理論
    2、基於深度學習的數據壓縮深度學習的引入有效解決了傳統方法存在的問題。與傳統壓縮技術相比,基於深度學習的方法具有下列的天然優勢:由於深度學習的參數是基於大量實際數據推導出來的,而傳統的數據壓縮編碼方法主要是基於先驗知識手工構建的,因此深度學習的優良內容自適應性優於基於信號處理的模型。
  • 一文讀懂電容傳感器
    藍色標題,獲取文章】 10、一文讀懂光纖傳感器 11、一文讀懂溫溼度傳感器 12
  • 走出「課堂深度學習」認識的三大誤區
    教育領域中由美國學者馬頓和薩爾約率先開始了對深度學習的實驗研究,並在1976年發表的《學習的本質區別:結果和過程》一文中,針對只是孤立記憶和非批判性接收知識的淺層學習,最早提出了「深度學習」的概念。 在早期研究中,深度學習是相對於淺層學習的一種學習方式。
  • 走出「課堂深度學習」認識的三大誤區!
    教育領域中由美國學者馬頓和薩爾約率先開始了對深度學習的實驗研究,並在1976年發表的《學習的本質區別:結果和過程》一文中,針對只是孤立記憶和非批判性接收知識的淺層學習,最早提出了「深度學習」的概念。在早期研究中,深度學習是相對於淺層學習的一種學習方式。
  • 一文讀懂深度學習中的矩陣微積分,fast.ai創始人&ANTLR之父出品
    這位ANTLR之父和fast.ai創始人Jeremy Howard一起推出了一篇免費教程,旨在幫你快速入門深度學習中的矩陣微積分。簡明,易懂。DeepMind研究科學家Andrew Trask評價說:如果你想跳過不相干的內容,一文看盡深度學習中所需的數學知識,那麼就是這份資源沒錯了。只需一點關於微積分和神經網絡的基礎知識,就能單刀直入,開始以下的學習啦。
  • 為什麼英語「深度學習」課堂成為熱點?
    在熱點研究和優質課、公開課等活動帶領下,「深度學習」課堂的建構,已經成為趨勢。1.到底什麼是「深度學習」?著名專家北師大教授郭華曾給「深度學習」下過一個定義:「是指在教師引領下,學生圍繞著具有挑戰性的學習主題,全身心積極參與、體驗成功、獲得發展的有意義的學習過程。」
  • 一文帶你讀懂計算機視覺
    a comparison of r-cnn, fast r-cnn, faster r-cnn and yolo最近深度學習的迅速發展,可以看到許多新架構取得了很大成功。歷史方法解決該任務的歷史方法是將特徵工程應用於標準機器學習(例如svm),或把深度學習方法應用於目標識別
  • 一文讀懂磁傳感器(必須收藏)
    【點擊藍色標題,獲取文章】 >、一文讀懂接近傳感器 3、一文讀懂磁傳感器 4、一文讀懂流量傳感器
  • 一文讀懂深度學習中的各種卷積
    研究學者 Kunlun Bai 近日發布一篇介紹深度學習的卷積文章,用淺顯易懂的方式介紹了深度學習領域的各種卷積及其優勢。鑑於原文過長,機器之心選擇其中部分內容進行介紹,2、4、5、9、11、12 節請參閱原文。