當前位置:
首頁 > 新聞 > 深度學習的偏見、局限性及其未來

深度學習的偏見、局限性及其未來

機器之心編譯

參與:黃小天


近日,加州大學聖克魯茲分校(UCSC)斯圖爾特實驗室博士後 Pablo Cordero 在其個人博客上發表了首篇文章《WHEN NOT TO USE DEEP LEARNING》,探討了深度學習的當前現狀和先入之見,並分析了其局限性。

我知道博客標題中使用否定詞很奇怪,但是前幾天有一波討論正好相應於我正在思考的一些問題。這一切開始於 Jeff Leek 發表的一篇有關說明在小樣本範圍內使用深度學習的文章。要言之,他認為當樣本較小時(這在生物領域很常見),帶有少許參數的線性模型甚至比帶有少量層和隱藏單元的深度網路性能更優。他繼續展示了一個非常簡單的帶有十大信息特徵的線性預測器,在使用大約 80 個樣本在 MNIST 數據集中分類 0 和 1 時,性能比一個簡單的深度網路更優。這促使 Andrew beam 寫了一篇反駁文章(詳見:小心訓練模型,數據少也可以玩轉深度學習),其中寫道一個適當訓練的深度網路能夠完勝簡單的線性模型,甚至僅僅使用非常少的訓練樣本。在爭論期間,越來越多的生物醫療信息研究者開始採用深度學習處理不同的問題。hype real 或者線性模型就是我們需要的全部嗎?正如往常一樣,答案是看情況。在本文中,我將介紹幾個機器學習的應用案例,其中深度學習在應用和處理先入之見方面並沒有太多實際意義,我認為正是這些先入之見(preconception)阻礙了深度學習的應用,尤其是對於入門者來說。

深度學習的先入之見

首先,讓我們解決一些先入之見,外行人已經將其誤認為半真理。有兩個大的先入之見以及一個比較技術的先入之見,這在某種程度上是對 Andrew Beam 關於「錯誤之見」的延伸。

深度學習可真正應用於小數據樣本

深度學習的聲望建立在大量數據之上(比如首個谷歌大腦工程向深度網路饋送了大量的 YouTube 視頻),並且作為複雜演算法運行大量數據以來一直被公開化。不幸的是,大數據和深度學習的關係也有時對反:一個深度學習不能應用於小數據樣本的神話。如果你的神經網路樣本數據很少,帶有較高的參數樣本比,表面上看很可能會出現過擬合。然而,如果只考慮給定問題的樣本大小和維度,不管是監督學習還是無監督學習,這是憑空地建模數據,無需語境。很可能是這種情況,你有與問題相關的數據資源,或者某個領域專家可以提供 strong prior,或者數據的組織結構很特殊。在所有這些情況中,深度學習有機會成為一種有效方法,例如,可以為更大的相關數據集編碼有用的表徵,並將其應用在你的問題之中。其經典圖示在自然語言處理中非常普遍,其中你可以學習大型語料庫的詞嵌入,並將其作為更小更窄語料庫中的嵌入來完成有監督學習任務。極端地說,你可以聯合一組神經網路學習一個表徵和一個有效的方式以在小樣本集中重複使用表徵。這被稱作 one-shot learning,並被成功用在諸多高維數據領域,比如計算機視覺和藥物發現。

深度學習的偏見、局限性及其未來

用於藥物發現的 one-shot learning,引自 Altae-Tran 等人的論文。ACS Cent. Sci. 2017。

深度學習並不是一切的答案

第二個我聽到最多的先入之見是 hype。許多准從業者希冀深度網路可以帶給他們一個神秘的性能提升,僅僅因為神經網路在其他領域也行之有效。其他人從建模和操控圖像、音樂、語言的工作中獲得啟發,並通過嘗試訓練最新的 GAN 架構猛衝進這個領域。hype 真實存在,且方式多樣。深度學習在機器學習中一枝獨秀,並成了數據建模的一件重要工具。深度學習的流行催生出了一些核心的框架比如 TensorFlow 和 PyTorch,它們出奇地好用,甚至在深度學習之外也是。超級巨星源自失敗者的故事啟發了研究者重拾以前被埋沒的方法,比如進化策略和強化學習。但這無論如何不是萬能葯。除卻沒有免費午餐的考量,深度學習模型可以非常細微,需要小心、有時非常昂貴的超參數搜索、調試和測試(後文將有詳述)。此外,在很多情況下深度學習並無太多實際價值,反而是更簡單的模型效率更高。

深度學習不僅僅是.fit()

來自機器學習其他領域的翻譯多多少少埋沒掉了深度學習的一個方面。很多教程和入門材料描述深度學習模型由層級互聯層(由節點構成)構成,其中第一層是輸入層,最後一層是輸出層。你可以使用隨機梯度下降訓練它們。也許在簡短提及隨機梯度下降如何工作以及什麼是反向傳播之後,大部分的解釋聚焦在了神經網路類型的豐富上。優化方法本身需要很少的額外注意力,這很不幸,因為很可能相當一部分深度學習奏效的原因是由於這些特殊的方法,並指導如何優化它們的參數;以及如何分割數據以有效使用它們對於在合理的時間範圍內獲得良好捲曲至關重要。為什麼隨機梯度如此重要依然不得而知,但是一些線索正到處浮現。我最喜歡的一個是將該方法闡釋為貝葉斯推理執行的一部分。本質上講,每次當你做某些形式的數運算,你就在使用特定假設和 prior 執行一些貝葉斯推理。

隨機梯度下降並不難,最近的工作表明該步驟實際上是一個馬爾可夫鏈,在特定假設下有一個靜態分布,可被看作是對 posterior 的變分近似。所以當你停止你的 SGD 並採用最後的參數時,你基本上是在從這一近似分布中採樣。我發現這一想法很有啟發力,因為優化器的參數通過這種方式發揮了很大作用。比如,由於你可以增加 SGD 的學習參數,馬爾可夫鏈會變的不穩定直到找到大面積採樣的局部極小值;即,你增加了步驟的方差。另一方面,如果你減少學習參數,馬爾可夫鏈會慢慢近似更窄的極小值,直到它在嚴密區域內收斂;即,你增加了一個特定區域的方差。另一個參數,SGD 中的批大小,也控制著演算法收斂的區域類型。對於小批的更寬廣區域,以及更大批的更窄區域。

深度學習的偏見、局限性及其未來

SGD 優選寬或窄的依賴於其學習率或批大小的最小值。

這一複雜性意味著深度網路的優化器成了第一等級:它們是模型的核心部分,和層架構同等重要。這種情況在機器學習的其他許多模型中並不常見。線性模型和支持向量機是凸優化問題,這些問題實際上沒有太多差別,且只有一個真實答案。這就是為什麼其他領域的人或者使用諸如 scikit-learn 等工具的人在沒有找到帶有.fit() 的非常簡單的 API 時深感困惑。

深度學習的局限性

因此,什麼時候深度學習確實不適合一項任務?依我看,以下幾個主要場景中深度學習並不適用。

低預算或低承諾問題

深度學習模型非常靈活,有大量的架構和節點類型、優化器以及歸一化策略。依靠應用,你的模型也許會有卷積層或者循環結構;它也許真的很深,或者僅有幾個隱藏層;它也許使用整流線性單元或者其他的激活函數;它或許有 dropout,或許沒有,並且權重很可能被歸一化。以上只是一個部分列表,還有很多其他的類型的節點、鏈接甚至損失函數可以嘗試。有很多超參數可以微調,很多架構可以探索,儘管訓練一個大型的神經網路非常耗時。谷歌最近鼓吹其 AutoML 流程可自動找到最佳架構,但是需要超過 800 塊 GPU 全力運轉數周,這可不適合所有人去做。重點是訓練深度網路在計算和調試方面成本很高,這種費用對於許多日常預測問題並沒有任何意義,甚至調整小型網路速度也太慢。即使有足夠的預算和承諾,首先作為基準也沒有理由不嘗試其他方法。你可能會驚喜地發現,線性支持向量機才是你真正需要的全部。

向一個普通聽眾解釋和傳達模型參數/特徵重要性

深度網路之所以臭名昭著是因為它是一個黑箱,預測能力強大卻無法被解釋。即使最近有很多工具在一些領域表現顯著,它們並不會徹底轉向全部的應用。這些工具在你想要確保網路是否欺騙你時工作良好,這主要是通過存儲數據集或者聚焦特定的假特徵實現的。但是向深度網路的整體決策闡釋預特徵的重要性依然很困難嗎?在這一領域,由於學習係數與回應存在直接關係,沒有什麼可以真正打敗線性模型。這在向一般聽眾傳遞這些闡釋時尤其關鍵。例如,內科醫生需要整合所有類型的分散數據從而做出診斷。變數與結果之間的關係越簡單和直接,內科醫生對其利用就越好,並且不會低估/高估其價值。進而,在很多案例中模型的精確度並沒有理論闡釋那麼重要。例如,一個策略決策者也許想要知道人口統計的變數對死亡率的影響,並且相比於預測精度,他很可能對兩者關係的直接近似值更感興趣。在這兩種案例中,相對於更簡單、更深入的方法,深度學習處於劣勢。

建立因果機制

模型闡釋的極端案例是試圖建立一個機制模型,即,一個可以真正捕捉數據背後的現象的模型。好的實例包括試圖猜測兩個分子是否在一個特定的細胞環境中交互?或者假設一個特定的市場策略如何對銷售產生實際影響。該領的專家認為,老式的貝葉斯方法不可替代;它是我們進行因果表徵和推理的最佳方式。Vicarious 最近在這方面有一些傑出成果(https://www.vicarious.com/img/icml2017-schemas.pdf),證明了為什麼這一更加原則性的方法可以在視頻遊戲任務中比深度學習泛化地更好。

從「非結構」特徵中學習

這個有待討論。我發現深度學習擅長的一個領域是為一個特定任務找到數據的有用表徵。一個比較好的示例是上述的的詞嵌入。自然語言有著豐富而複雜的結構,其可通過「語境-意識」網路被近似:每個詞可表徵為一個向量,它編碼了其被使用最多的語境。使用在自然語言處理任務的大型語料庫中學習的詞嵌入有時可使另一個語料庫中的特殊任務獲得提升。然而,如果有問題的語料庫是徹底非結構的,那麼深度學習將毫無用武之地。例如,你正在通過查看關鍵詞的非結構列表進行目標分類。由於關鍵詞並不被用於任何特定結構,詞嵌入並不可能幫助太多。在這一情況中,數據是真正的詞包,表徵對於任務也充足。一個反方論點也許是詞嵌入實際上並沒有那麼昂貴,如果使用預訓練的詞嵌入,你也許可以更好地捕捉到關鍵詞相似性。然而,我依然傾向於從詞包表徵開始,並查看我是否能夠得到好的預測。畢竟,相比於對應的詞嵌入槽,詞包的每一個維度更容易闡釋。

深度是未來

深度學習很熱,資金充足,且發展飛快。當你在一個會議上讀到一篇深度學習論文時,它可能是兩三次迭代後的結果。這給我的上述觀點提出了很大的注意:不久的將來,深度學習也許在一些場景中依然超級有用。闡釋深度學習的工具變得越來越好。最近的軟體(比如 Edward)融合了貝葉斯建模和深度網路框架(詳見:深度概率編程語言 Edward:融合了貝葉斯、深度學習和概率編程),藉助概率編程和自動變分推理,量化了神經網路參數和簡單貝葉斯推理的不確定性。長遠看,存在一個簡化的建模辭彙表,揭示深度網路可以具有的顯著屬性,從而減少需要測試的事物的參數空間。因此,繼續刷 arXiv 吧,沒準一兩個月這篇文章已被迭代。

深度學習的偏見、局限性及其未來

Edward 在 TensorFlow 中融合了概率編程,可同時用於深度學習和貝葉斯模型。摘自 Tran 等人的 ICLR 2017 論文。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

並行貝葉斯在線深度學習框架PBODL:預測廣告系統的點擊率
主要推薦系統演算法總結及Youtube深度學習推薦演算法實例概括
阿里無人零售店現身杭州,智能零售正在成為新風口
騰訊提出並行貝葉斯在線深度學習框架PBODL:預測廣告系統的點擊率

TAG:機器之心 |

您可能感興趣

深度學習的過去,現在和未來
神經進化是深度學習的未來
深度學習第8期:深度學習的常見框架
深度學習並非萬能:全方位對比深度學習和經典機器學習
什麼是深度強化學習:人工智慧和深度學習的下一步
當前的深度學習框架不會改變機器學習的能力增長
如何平衡學習的深度和廣度?
【深度學習並非萬能】全方位對比深度學習和經典機器學習
相比於深度學習,機器學習沒落了嗎?
學習率及其如何改善深度學習演算法
邂逅深度學習
深度學習,人的解析
深度學習中常見概念
深度學習的幾何理解(2)-學習能力的上限
深度學習引擎的終極形態是什麼?
從進化的角度看什麼是高效的學習
生命科學的領地,現在深度學習來了
懷疑論者認為,深度學習「貪婪、脆弱、不透明、淺薄」
學習,是人生最好的態度
深度學習的一些概念分享