新聞中心

EEPW首頁(yè) > 智能計(jì)算 > 業(yè)界動(dòng)態(tài) > 深度學(xué)習(xí)被「神化」!如何「客觀」看待深度學(xué)習(xí)?

深度學(xué)習(xí)被「神化」!如何「客觀」看待深度學(xué)習(xí)?

作者: 時(shí)間:2017-07-11 來(lái)源:網(wǎng)絡(luò) 收藏
編者按:深度學(xué)習(xí)隨著AlphaGo大勝李世石之后被“神話”,很多人認(rèn)為深度學(xué)習(xí)就是挑戰(zhàn)人類智力的“神器”??墒?,深度學(xué)習(xí)真的如他們想象的那般“戰(zhàn)無(wú)不勝”嗎?

  本文編譯自hyperparameter.space,作者是Pablo Cordero,就讀于加利福尼亞大學(xué)圣克魯斯校區(qū),主攻方向?yàn)榧?xì)胞生物學(xué)和再生醫(yī)學(xué)背景下的應(yīng)用機(jī)器學(xué)習(xí)研究。閱讀此文后,你便能夠從深層理解,為什么其實(shí)并不像普通百姓想象的那般“神”了,甚至,你還會(huì)發(fā)現(xiàn)它有時(shí)還有些“笨”。

本文引用地址:http://butianyuan.cn/article/201707/361572.htm

  我知道以一種較為消極的態(tài)度來(lái)作為博客的開(kāi)頭是很奇怪的方式,但是在過(guò)去幾天里有一波討論,我認(rèn)為這是關(guān)于我最近一直在思考的話題一個(gè)很好的切入點(diǎn)。這一切都從Jeff Leek在Simply Stats博客中發(fā)表了一篇關(guān)于在小樣本規(guī)模體系中使用的注意事項(xiàng)開(kāi)始的??傊?,他認(rèn)為,當(dāng)樣本量很小(這在生物領(lǐng)域頻繁發(fā)生)時(shí),即使有一些層和隱藏單元,具有較少參數(shù)的線性模型的表現(xiàn)是優(yōu)于深度網(wǎng)絡(luò)的。他還表示,當(dāng)在一個(gè)使用僅僅80個(gè)樣本的MNIST數(shù)據(jù)集中進(jìn)行0和1的分類時(shí),一個(gè)具有十大最具特征值的非常簡(jiǎn)單的線性預(yù)測(cè)器的表現(xiàn)要比一個(gè)簡(jiǎn)單的深度網(wǎng)絡(luò)好得多。這促使Andrew beam寫出一篇文章來(lái)反駁,一個(gè)適當(dāng)訓(xùn)練的深度網(wǎng)絡(luò)能夠擊敗簡(jiǎn)單的線性模型,即使是很少的訓(xùn)練樣本?,F(xiàn)如今頻繁出現(xiàn)的是,越來(lái)越多的生物醫(yī)學(xué)信息學(xué)研究人員正在使用來(lái)解決各種問(wèn)題。這種肆無(wú)忌憚的宣傳是真的有效嗎?或者說(shuō)這種線性模型是我們所需要的嗎?答案一如既往的是——這取決于先決條件。在這篇文章中,我想探索機(jī)器學(xué)習(xí)中的使用案例,實(shí)際上,深度學(xué)習(xí)并不是真正意義上對(duì)所有應(yīng)用都有效,同時(shí)探索出我認(rèn)為可以使得深度學(xué)習(xí)得到有效使用的解決想法,特別是針對(duì)新來(lái)者。

  打破深度學(xué)習(xí)之偏見(jiàn)

  首先,我們要剔除一些先入為主的偏見(jiàn),很多圈外的人們還處于一知半解的狀態(tài)。有兩個(gè)廣泛的認(rèn)知點(diǎn),而我將要對(duì)這個(gè)更為技術(shù)性的做一個(gè)詳細(xì)說(shuō)明。這有點(diǎn)像是對(duì)Andrew Beam在他的帖子中所完美地闡述的“誤解”部分的延伸。

  深層學(xué)習(xí)確實(shí)可以在小樣本的情況下進(jìn)行

  深度學(xué)習(xí)是隨著大數(shù)據(jù)的背景下產(chǎn)生的(請(qǐng)牢記,第一個(gè)Google大腦項(xiàng)目正在向深度網(wǎng)絡(luò)提供大量YouTube視頻),并自此不斷地被宣稱運(yùn)行在大量數(shù)據(jù)中的復(fù)雜算法。不幸的是,這個(gè)大數(shù)據(jù)/深度學(xué)習(xí)對(duì)不知為何也被誤解:在小樣本條件下不能使用的虛構(gòu)體。如果你只有幾個(gè)樣本,在一個(gè)具有高樣本參數(shù)比例的神經(jīng)網(wǎng)絡(luò)中進(jìn)行開(kāi)發(fā),看起來(lái)似乎會(huì)出現(xiàn)過(guò)度擬合。然而,僅僅考慮給定問(wèn)題的樣本容量和維度,無(wú)論是監(jiān)督還是無(wú)監(jiān)督,都幾乎是在真空中對(duì)數(shù)據(jù)進(jìn)行建模的,而無(wú)需任何背景??赡艿那闆r是,你擁有與你問(wèn)題相關(guān)的數(shù)據(jù)源,或者該領(lǐng)域?qū)<铱梢蕴峁?qiáng)有力的數(shù)據(jù)源,或者數(shù)據(jù)可以以非常特殊的方式進(jìn)行構(gòu)建(例如,以圖形或圖像編碼的方式進(jìn)行)。在所有這些情況下,深度學(xué)習(xí)有機(jī)會(huì)成為一種可供選擇的方法——例如,你可以編碼較大的相關(guān)數(shù)據(jù)集的有用表示,并將其應(yīng)用于你的問(wèn)題中。這種經(jīng)典的示例常見(jiàn)于自然語(yǔ)言處理,你可以學(xué)習(xí)大型語(yǔ)料庫(kù)中嵌入的詞語(yǔ),然后將它們作為一個(gè)較小的、較窄的語(yǔ)料庫(kù)嵌入到一個(gè)監(jiān)督的任務(wù)中。在極端情況下,你可以擁有一套神經(jīng)網(wǎng)絡(luò),共同學(xué)習(xí)一種表示方式,并在小型樣本中重用該表示的有效方式。這被稱為一次性學(xué)習(xí)(one-shot learning),并已經(jīng)成功應(yīng)用于包括計(jì)算機(jī)視覺(jué)和藥物發(fā)現(xiàn)在內(nèi)的高維數(shù)據(jù)的許多領(lǐng)域當(dāng)中。

  藥物發(fā)現(xiàn)中的一次性學(xué)習(xí)神經(jīng)網(wǎng)絡(luò),摘自Altae-Tran et al. ACS Cent. Sci. 2017

  深度學(xué)習(xí)不是一切的答案

  我聽(tīng)到最多的第二個(gè)偏見(jiàn)就是過(guò)度宣傳。許多尚未從事AI職業(yè)的人,期望深度網(wǎng)絡(luò)能夠給他們一個(gè)神話般的表現(xiàn)提升力,僅僅因?yàn)樗谄渌I(lǐng)域有效。其他人則從深度學(xué)習(xí)在圖像、音樂(lè)和語(yǔ)言(最貼近人類的三種數(shù)據(jù)類型)中的令人印象深刻的表現(xiàn)中受到鼓舞,并通過(guò)嘗試訓(xùn)練最新的GAN架構(gòu),而匆匆一頭扎進(jìn)這個(gè)領(lǐng)域。當(dāng)然,在許多方面這種過(guò)度宣傳也是真實(shí)存在的。深度學(xué)習(xí)已經(jīng)成為機(jī)器學(xué)習(xí)中不可否認(rèn)的力量,也是數(shù)據(jù)建模者的重要工具。它的普及帶來(lái)了諸如tensorflow和pytorch等重要框架,它們即使是在深度學(xué)習(xí)之外也是非常有用的。失敗者的巨星崛起的故事激勵(lì)了研究人員重新審視其他以前模糊的方法,如進(jìn)化方法和強(qiáng)化學(xué)習(xí)。但這不是萬(wàn)能的。除了考慮天下沒(méi)有免費(fèi)的午餐之外,深度學(xué)習(xí)模型可以非常細(xì)微,并且需要仔細(xì),有時(shí)甚至是非常昂貴的超參數(shù)搜索、調(diào)整和測(cè)試(文章后續(xù)將有更多講解)。此外,有很多情況下,從實(shí)踐的角度來(lái)看,使用深度學(xué)習(xí)是沒(méi)有意義的,而更簡(jiǎn)單的模型工作得更好。

  深度學(xué)習(xí)不僅僅是.fit()

  深度學(xué)習(xí)模型還有另外一個(gè)方面的應(yīng)用,我認(rèn)為在其他機(jī)器學(xué)習(xí)領(lǐng)域方面是有所損失的。大多數(shù)深度學(xué)習(xí)的教程和介紹性材料描述了這些模型由層次連接的節(jié)點(diǎn)層組成,其中第一層是輸入,最后一層是輸出,并且你可以使用某種形式的隨機(jī)梯度下降(SGD)來(lái)訓(xùn)練它們。可能有一些簡(jiǎn)要的介紹隨機(jī)梯度下降是如何工作的,以及什么是反向傳播,大部分解釋集中在神經(jīng)網(wǎng)絡(luò)類型(卷積、循環(huán)等)。而優(yōu)化方法本身卻沒(méi)有什么人關(guān)注,這是很不幸的,因?yàn)楹苡锌赡苌疃葘W(xué)習(xí)為什么能夠起作用的很大(如果不是最大的)一部分原因就是這些特定的方法(例如來(lái)自Ferenc Huszár’s的這篇文章和從該文中引用的論文,并且要知道,如何優(yōu)化它們的參數(shù),以及如何分割數(shù)據(jù),從而有效地使用它們以便在合理的時(shí)間內(nèi)獲得良好的收斂,是至關(guān)重要的。不過(guò),為什么隨機(jī)梯度如此關(guān)鍵卻仍然是未知的,現(xiàn)在也或多或少地出現(xiàn)了一些線索。我最喜歡的一個(gè)是將該方法解釋為執(zhí)行貝葉斯推理的一部分。實(shí)質(zhì)上,每當(dāng)你做某種形式的數(shù)值優(yōu)化時(shí),你都會(huì)用特定的假設(shè)和先驗(yàn)來(lái)執(zhí)行一些貝葉斯推理。實(shí)際上,有一個(gè)被稱為概率數(shù)值計(jì)算(probabilistic numerics)的整個(gè)領(lǐng)域,就是從這個(gè)角度出現(xiàn)的。隨機(jī)梯度下降是沒(méi)有什么不同,最新的研究成果表明,該程序?qū)嶋H上是一個(gè)馬爾可夫鏈,在某些假設(shè)下,可以看作是后向變分近似的靜態(tài)分布。所以當(dāng)你停止你的SGD并采用最后的參數(shù)時(shí),你基本上是從這個(gè)近似分布中抽樣的。我發(fā)現(xiàn)這個(gè)想法是有啟發(fā)性的,因?yàn)閮?yōu)化器的參數(shù)(在這種情況下是學(xué)習(xí)率)使得這種方式更有意義。例如,當(dāng)你增加SGD的學(xué)習(xí)參數(shù)時(shí),馬可夫鏈就會(huì)變得不穩(wěn)定,直到找到大面積采樣的局部極小值;也就是說(shuō),增加了程序的方差。另一方面,如果你減少學(xué)習(xí)參數(shù),馬爾可夫鏈慢慢接近狹義極小值,直到它收斂于一個(gè)區(qū)域;那就是你增加某個(gè)區(qū)域的偏差。而另一個(gè)參數(shù),SGD中的批量大小也可以控制算法收斂的區(qū)域是什么類型的區(qū)域:小批量的較大區(qū)域和大批次的小區(qū)域。

  SGD根據(jù)學(xué)習(xí)速率或批量大小而選擇較大或極限最小值

  這種復(fù)雜性意味著深度網(wǎng)絡(luò)的優(yōu)化器變得非常重要:它們是模型的核心部分,與層架構(gòu)一樣重要。這與機(jī)器學(xué)習(xí)中的許多其他模型并不完全相同。線性模型(甚至是正則化的,像LASSO算法)和支持向量機(jī)SVM都是凸優(yōu)化問(wèn)題,沒(méi)有那么多的細(xì)微差別,而且只有一個(gè)答案。這就是為什么來(lái)自其他領(lǐng)域和/或使用諸如scikit-learn工具的人在他們沒(méi)有找到一個(gè)非常簡(jiǎn)單的具有.fit()方法的API時(shí)會(huì)感到困惑。盡管有一些工具,如skflow,嘗試將網(wǎng)絡(luò)簡(jiǎn)化成一個(gè).fit()簽名,我認(rèn)為這有點(diǎn)誤導(dǎo),因?yàn)樯疃葘W(xué)習(xí)的全部重點(diǎn)就是它的靈活性。

  何時(shí)不需要深度學(xué)習(xí)?

  那么,什么時(shí)候深度學(xué)習(xí)不適合于某些任務(wù)呢?從我的角度來(lái)看,以下這些情況下,深度學(xué)習(xí)更多是一種阻礙,而不是福音。

  低預(yù)算或低投入問(wèn)題

  深度網(wǎng)絡(luò)是非常靈活的模型,具有多種架構(gòu)和節(jié)點(diǎn)類型、優(yōu)化器和正則化策略。根據(jù)應(yīng)用程序,你的模型可能具有卷積層(多大?使用什么池操作?)或循環(huán)結(jié)構(gòu)(有沒(méi)有門控?);它可能真的很深(hourglass、siamese,或者其他的架構(gòu))?還是只是具有很少的幾個(gè)隱藏層(有多少單元?);它可能使用整流線性單元或其他激活函數(shù);它可能或可能不會(huì)有退出(在什么層次中?用什么分?jǐn)?shù)?),權(quán)重應(yīng)該是正則化的(l1、l2,或者是某些更奇怪的東西?)。這只是一部分列表,還有很多其他類型的節(jié)點(diǎn)、連接,甚至損失函數(shù)。即便只是訓(xùn)練一個(gè)大型網(wǎng)絡(luò)的示例,那些需要調(diào)整的參數(shù)以及需要探索的框架的過(guò)程也是非常耗時(shí)的。谷歌最近吹噓自己的AutoML方法可以自動(dòng)找到最好的架構(gòu),這是非常令人印象深刻的,但仍然需要超過(guò)800個(gè)GPU,全天候運(yùn)行數(shù)周,這幾乎對(duì)于任何人來(lái)說(shuō)是都遙不可及的。關(guān)鍵在于訓(xùn)練深層網(wǎng)絡(luò)時(shí),在計(jì)算和調(diào)試部分都會(huì)花費(fèi)巨大的代價(jià)。這種費(fèi)用對(duì)于許多日常預(yù)測(cè)問(wèn)題并沒(méi)有意義,即使調(diào)整小型網(wǎng)絡(luò)。調(diào)整網(wǎng)絡(luò)的投資回報(bào)率可能太低。即使有足夠的預(yù)算和承諾,也沒(méi)有理由不嘗試替代方法,即使是基準(zhǔn)測(cè)試。你可能會(huì)驚喜地發(fā)現(xiàn),線性SVM對(duì)于你就夠用了。

  解釋和傳達(dá)模型參數(shù)對(duì)一般受眾的重要性

  深度網(wǎng)絡(luò)也是各臭名昭著的黑匣子,它具有高預(yù)測(cè)能力但可解釋性不足。盡管最近有很多工具,諸如顯著圖(saliency maps)和激活差異(https://arxiv.org/abs/1704.02685),對(duì)某些領(lǐng)域而言是非常有用的,但它們不會(huì)完全遷移到所有的應(yīng)用程序中。主要是,當(dāng)你想要確保網(wǎng)絡(luò)不會(huì)通過(guò)記住數(shù)據(jù)集或?qū)W⒂谔囟ǖ奶摷偬卣鱽?lái)欺騙你時(shí),這些工具就能很好地工作,但仍然難以將每個(gè)功能的重要性解釋為深度網(wǎng)絡(luò)的整體決策。在這個(gè)領(lǐng)域,沒(méi)有什么能夠真正地打敗線性模型,因?yàn)閷W(xué)習(xí)系數(shù)與響應(yīng)有著直接的關(guān)系。當(dāng)將這些解釋傳達(dá)給一般受眾時(shí),這就顯得尤為重要。例如,醫(yī)生需要包含各種不同的數(shù)據(jù)來(lái)確認(rèn)診斷。變量和結(jié)果之間的關(guān)系越簡(jiǎn)單、越直接,醫(yī)生就能更好地利用,而不是低于/高于實(shí)際值。此外,有些情況下,模型的精度并不像可解釋性那樣重要。例如,策略制定者可能想知道一些人口統(tǒng)計(jì)變量對(duì)于死亡率的影響,并且相較于預(yù)測(cè)的準(zhǔn)確性來(lái)說(shuō),可能對(duì)這種關(guān)系的直接近似比更有興趣。在這兩種情況下,與更簡(jiǎn)單、更易滲透的方法相比,深度學(xué)習(xí)處于不利地位。

  建立因果機(jī)制

  模型可解釋性的極端情況是當(dāng)我們?cè)噲D建立一個(gè)機(jī)械模型,即實(shí)際捕捉數(shù)據(jù)背后的現(xiàn)象的模型。一個(gè)好的例子包括試圖猜測(cè)兩個(gè)分子(例如藥物、蛋白質(zhì)、核酸等)是否在特定的細(xì)胞環(huán)境中相互作用,或者假設(shè)特定的營(yíng)銷策略如何對(duì)銷售產(chǎn)生實(shí)際的影響。在這個(gè)領(lǐng)域,根據(jù)專家意見(jiàn),沒(méi)有什么可以擊敗老式的貝葉斯方法,它們是我們表達(dá)并推斷因果關(guān)系的最好方式。Vicarious有一些很好的最新研究成果,說(shuō)明為什么這個(gè)更原則的方法在視頻游戲任務(wù)中比深度學(xué)習(xí)表現(xiàn)得更好。

  學(xué)習(xí)“非結(jié)構(gòu)化”特征

  這可能是具有爭(zhēng)議性的。我發(fā)現(xiàn)深度學(xué)習(xí)擅長(zhǎng)的一個(gè)領(lǐng)域是為特定任務(wù)找到有用的數(shù)據(jù)表示。一個(gè)很好的例子就是上述的詞語(yǔ)嵌入。自然語(yǔ)言具有豐富而復(fù)雜的結(jié)構(gòu),可以說(shuō)與“上下文感知”(context-aware)網(wǎng)絡(luò)相近似:每個(gè)單詞都可以在向量中表示,而這個(gè)向量可以編碼其經(jīng)常使用的文本。在大型語(yǔ)料庫(kù)中學(xué)習(xí)的NLP任務(wù)中使用單詞嵌入,它有時(shí)可以在另一個(gè)語(yǔ)料庫(kù)的特定任務(wù)中提升效果。然而,如果所討論的語(yǔ)料庫(kù)是完全非結(jié)構(gòu)化的,則可能不會(huì)起到任何作用。例如,假設(shè)你正在通過(guò)查看關(guān)鍵字的非結(jié)構(gòu)化列表來(lái)對(duì)對(duì)象進(jìn)行分類,由于關(guān)鍵字不是在任何特定結(jié)構(gòu)中都會(huì)使用的(比如在一個(gè)句子中),所以單詞嵌入不太可能有助于所有這些情況。在這種情況下,數(shù)據(jù)是真正的一個(gè)單詞包,這種表示很有可能足以滿足任務(wù)所需。與此相反的是,如果你使用預(yù)訓(xùn)練的話,可以更好地捕獲關(guān)鍵字的相似度,而且單詞嵌入并不是那么昂貴。不過(guò),我還是寧愿從一個(gè)單詞的表示開(kāi)始,看看能否得到很好的預(yù)測(cè)結(jié)果。畢竟,這個(gè)詞包的每個(gè)維度都比對(duì)應(yīng)的詞嵌入槽更容易解讀。

  前景廣闊

  深度學(xué)習(xí)目前非常火爆,且資金充足,并且發(fā)展異常迅速。當(dāng)你還在閱讀會(huì)議上發(fā)表的論文時(shí),它可能已經(jīng)有兩三次迭代了。這給我上述列出的幾點(diǎn)提出了很大的挑戰(zhàn):深度學(xué)習(xí)在不久的將來(lái)可能在這些情景中是非常有用的。用于解釋圖像和離散序列的深度學(xué)習(xí)模型的工具越來(lái)越好。最近的軟件,如Edward與貝葉斯結(jié)合建模和深度網(wǎng)絡(luò)框架,將量化神經(jīng)網(wǎng)絡(luò)參數(shù)的不確定性考慮在內(nèi),通過(guò)概率編程的簡(jiǎn)易貝葉斯推理和自動(dòng)變分推理。從長(zhǎng)遠(yuǎn)來(lái)看,可能會(huì)有一個(gè)簡(jiǎn)化的建模詞匯表,指出深度網(wǎng)絡(luò)可以具有的顯著屬性,從而減少需要嘗試的參數(shù)空間。

  Edward通過(guò)tensorflow與概率規(guī)劃結(jié)合,將深度學(xué)習(xí)和貝葉斯的模型考慮在內(nèi)。



關(guān)鍵詞: 深度學(xué)習(xí)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉