我知道以深度學(xué)習(xí)的缺點(diǎn)來(lái)開始本文是不合時(shí)宜的,但是此前關(guān)于深度學(xué)習(xí)的一大波討論我覺(jué)得可以很好的引出我觀點(diǎn)。一切都是從 Jeff Leek 于 Simply Stats 博客 發(fā)表的一篇關(guān)于在小樣本規(guī)模體系中使用深度學(xué)習(xí)的注意事項(xiàng)文章開始。
來(lái)源 | hyperparameter.space
簡(jiǎn)而言之,Jeff Leek 認(rèn)為當(dāng)樣本規(guī)模很小的時(shí)候(通常在生物領(lǐng)域很常見(jiàn)),參數(shù)較小的線性模型甚至比擁有少量分層和隱藏單元的深網(wǎng)表現(xiàn)更好。為了證明自己的觀點(diǎn),Jeff 展示了一個(gè)擁有十個(gè)最常見(jiàn)信息特征的簡(jiǎn)單線性預(yù)測(cè),在嘗試使用僅 80 個(gè)樣本的 MNIST 數(shù)據(jù)組進(jìn)行 0 和 1 的分類時(shí),它在表現(xiàn)上優(yōu)于簡(jiǎn)單深網(wǎng)。
這引起了 Andrew Beam 注意并寫了一篇文章反駁。文章指出經(jīng)過(guò)適當(dāng)訓(xùn)練甚至只經(jīng)過(guò)幾個(gè)簡(jiǎn)單訓(xùn)練的深度學(xué)習(xí)可以打敗簡(jiǎn)單線性模型。這個(gè)來(lái)來(lái)回回的辯論發(fā)生在越來(lái)越多生物信息研究者采用深度學(xué)習(xí)來(lái)解決問(wèn)題的時(shí)候。這到底是炒作還是線性模型真的是我們所需要的?
對(duì)于這個(gè)問(wèn)題的答案,我認(rèn)為和往常一樣,是需要根據(jù)情況來(lái)決定的。在這篇文章中,我將重心放在機(jī)器學(xué)習(xí)上,解析深度學(xué)習(xí)不是那么有效或者受到阻礙的的使用案例,尤其是對(duì)入門者來(lái)說(shuō)。
▌打破深度學(xué)習(xí)先入為主的觀念
首先,讓我們來(lái)聚焦一些在外行人眼中已經(jīng)成為半真相的先入之見(jiàn)。這些先入之見(jiàn)有兩個(gè)籠統(tǒng)的和一個(gè)更有專業(yè)性的。他們有點(diǎn)類似于 Andrew Beam 在帖子中指出的 誤解 部分的延伸。
▌深度學(xué)習(xí)真的可以在小規(guī)模體系中使用
深度學(xué)習(xí)之所以成功是因?yàn)樗谋澈笥写髷?shù)據(jù)支持(還記得第一個(gè) Google Brain 項(xiàng)目嗎,他將大量的 YouTube 視頻加入到了深網(wǎng)中),并且宣稱有復(fù)雜的算法來(lái)處理這些數(shù)據(jù)。
然而,這個(gè)大數(shù)據(jù)/深度學(xué)習(xí)也可以被翻譯成截然相反的意思:這個(gè)很好用的東西無(wú)法被用到很小的規(guī)模體系中。如果你只有少數(shù)幾個(gè)可供添加進(jìn)神經(jīng)網(wǎng)絡(luò)的樣本,想要適用于高采樣比參數(shù),似乎就感覺(jué)要求過(guò)高了。然而,只考慮給定問(wèn)題的樣本大小和維度,無(wú)論是監(jiān)督還是無(wú)監(jiān)督,都是在真空中對(duì)數(shù)據(jù)進(jìn)行建模,而無(wú)需任何上下文。這種情況可能是因?yàn)槟信c您的問(wèn)題相關(guān)的數(shù)據(jù)源,或者領(lǐng)域?qū)<铱梢蕴峁?qiáng)有力的數(shù)據(jù)源,或者以非常特殊的方式構(gòu)建數(shù)據(jù)(比如使用圖形或圖像進(jìn)行編碼)。
以上的這些情況,深度學(xué)習(xí)都可以作為一種解決辦法。例如,你可以編碼較大的,與數(shù)據(jù)集相關(guān)的表達(dá)。并在你的問(wèn)題中使用這些表達(dá)。一個(gè)關(guān)于這個(gè)的經(jīng)典例子便是我們對(duì)自然語(yǔ)言進(jìn)行的處理。你可以在大型詞匯網(wǎng)站比如Wikipedia上學(xué)習(xí)一個(gè)單詞,并將這個(gè)單詞用在范圍更小更窄的使用中去。在極端情況下,你可以擁有一套神經(jīng)網(wǎng)絡(luò)共同學(xué)習(xí)一種表達(dá)方式,并在小樣本集中重復(fù)使用該表達(dá)方式的有效方法。
這種行為被稱作一次學(xué)習(xí)(one-shot learning),并已經(jīng)被成功應(yīng)用于包括計(jì)算機(jī)視覺(jué)(https://arxiv.org/abs/1606.04080)和藥物研發(fā)(https://arxiv.org/abs/1611.03199)在內(nèi)的高維數(shù)據(jù)的多個(gè)領(lǐng)域。
用于藥品開發(fā)的一次學(xué)習(xí)網(wǎng)絡(luò),引自 Altae-Tran 等人的論文,ACS Cent. Sci. 2017▲
▌深度學(xué)習(xí)不適用于所有情況
第二個(gè)我常聽(tīng)到的先入之見(jiàn)是人們對(duì)于深度學(xué)習(xí)的炒作。很多還沒(méi)開始嘗試的實(shí)踐者希望深網(wǎng)可以給他們帶來(lái)神話般的表現(xiàn)提升,只因?yàn)樗趧e的領(lǐng)域有效。另外一些人則因?yàn)榱钊擞绊懮羁痰慕?,圖像,音樂(lè)和語(yǔ)言收到啟發(fā)。他們嘗試訓(xùn)練最新的 GAN 架構(gòu)而希望成為第一批進(jìn)入這片領(lǐng)域的人。這些炒作在很多方面其實(shí)是真實(shí)的。
深度學(xué)習(xí)在機(jī)器學(xué)習(xí)中已經(jīng)成為不可否認(rèn)的力量,并且是所有數(shù)據(jù)建模者的核心工具。它的普及帶來(lái)了諸如 TensorFlow 和 Pytorch 等重要框架,即使在深入學(xué)習(xí)之外也是非常有用的。從失敗者到超級(jí)明星的起源故事激勵(lì)了研究人員重新審視其他的方法,如進(jìn)化策略和強(qiáng)化學(xué)習(xí)。但這并不是萬(wàn)能的。
天下沒(méi)有免費(fèi)的午餐,深度學(xué)習(xí)模型可以非常細(xì)微,需要仔細(xì)和有時(shí)非常昂貴的超參數(shù)搜索,調(diào)整和測(cè)試(詳細(xì)內(nèi)容會(huì)在之后的文章中提及)。另一方面,在很多情況下,使用深度學(xué)習(xí)從實(shí)踐的角度來(lái)看是沒(méi)有意義的,因?yàn)楦?jiǎn)單的模型工作得更好
▌深度學(xué)習(xí)遠(yuǎn)不止.fit()這么簡(jiǎn)單
另外還有一個(gè)深度學(xué)習(xí)模式的缺失,我認(rèn)為是因?yàn)榉g自其他機(jī)器學(xué)習(xí)領(lǐng)域?qū)е碌?。絕大多數(shù)深度學(xué)習(xí)的教程和入門材料將這些模型描述為由分層連接的節(jié)點(diǎn)層組成,其中第一層是輸入,最后一層是輸出,并且你可以使用某種形式的隨機(jī)梯度下降法來(lái)訓(xùn)練它們??赡芙?jīng)過(guò)一些簡(jiǎn)短的提及梯度下降是如何運(yùn)作以及什么是反響傳播,大部分的解釋都集中在神經(jīng)網(wǎng)絡(luò)豐富的多樣性上(卷積,反復(fù)等等)。
優(yōu)化方法本身只收到了一點(diǎn)點(diǎn)額外關(guān)注,這是很不幸的,因?yàn)樗攀巧疃葘W(xué)習(xí)最重要的部分之一。他解釋了深度學(xué)習(xí)是如何實(shí)現(xiàn)的。知道如何優(yōu)化參數(shù),如何有效地分配數(shù)據(jù)來(lái)使用它們,在合理的時(shí)間內(nèi)獲得良好的結(jié)合是至關(guān)重要的。這也正是為什么隨機(jī)梯度這么關(guān)鍵卻仍然有很多人不了解,問(wèn)題的原因即出自于此。我最喜歡的是執(zhí)行貝葉斯推理一部分的解釋方法。實(shí)質(zhì)上,每當(dāng)你做某種形式的數(shù)值優(yōu)化時(shí),你都會(huì)用特定的假設(shè)和先驗(yàn)來(lái)執(zhí)行一些貝葉斯推理。實(shí)際上,有一個(gè)被稱為概率數(shù)字的領(lǐng)域,就是基于這個(gè)觀點(diǎn)誕生的。
隨機(jī)梯度下降是沒(méi)有什么不同的,最近的工作表明,該程序?qū)嶋H上是一個(gè)馬爾可夫鏈,在某些假設(shè)下,具有一個(gè)可以看作是后向變分近似的靜態(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í),Markov 鏈變得不穩(wěn)定,直到找到大面積樣本的局部極小值;那是因?yàn)槟阍黾恿顺绦虻姆讲?。另一方面,如果您減少學(xué)習(xí)參數(shù),馬爾科夫鏈會(huì)緩慢地接近較窄的最小值,直到其收斂于緊密的區(qū)域;那是因?yàn)槟黾恿四承┎糠值钠?。另一個(gè)參數(shù),SGD 中的批量大小也可以控制算法收斂的區(qū)域是什么類型的區(qū)域:較大區(qū)域的較小批次和較大批次的較小區(qū)域。
SGD 根據(jù)學(xué)習(xí)速度或批量大小而更傾向于寬極小或尖極小▲
這種復(fù)雜性意味著深層網(wǎng)絡(luò)的優(yōu)化器成為最重要的部分:它們是模型的核心部分,與層架構(gòu)一樣重要。這種現(xiàn)象在別的機(jī)器學(xué)習(xí)模型里并不常見(jiàn)。線性模型和 SVMs 的優(yōu)化并沒(méi)有過(guò)多的細(xì)微差別,并且真的只有一個(gè)解決辦法。這就是為什么來(lái)自其他領(lǐng)域和/或使用 Scikit 學(xué)習(xí)的工具的人在他們找不到具有 .fit()方法的非常簡(jiǎn)單的 API 時(shí)會(huì)感到困惑(雖然有一些工具,如Skflow,嘗試將簡(jiǎn)單的網(wǎng)絡(luò)裝入 .fit() 簽名,但我認(rèn)為這有點(diǎn)誤導(dǎo),因?yàn)樯钊雽W(xué)習(xí)的關(guān)鍵是它的靈活性)。
▌什么時(shí)候不應(yīng)使用深度學(xué)習(xí)
結(jié)合以上的觀點(diǎn),深度學(xué)習(xí)不適用于什么樣的任務(wù)?依我之見(jiàn),以下這些主要場(chǎng)景的深度學(xué)習(xí)弊大于利。
低成本或者低承諾問(wèn)題
深網(wǎng)是非常靈活的模型,有著許多架構(gòu)和節(jié)點(diǎn)類型,優(yōu)化器和正則化策略。根據(jù)應(yīng)用,你的模型可能會(huì)有卷基層(有多寬?使用什么匯集操作?)或者反復(fù)結(jié)構(gòu)(有沒(méi)有門?);他也有可能很深(沙漏,暹羅或其他許多架構(gòu)?)又或者只是幾個(gè)隱藏的層(有多少個(gè)單元?); 它可能使用整流線性單元或其他激活功能;它可能或可能沒(méi)有流失dropout(在哪一層?哪一塊?)占比應(yīng)該是恰當(dāng)?shù)?l1,l2,或者是某些東西)。這只是一個(gè)部分列表,有很多其他類型的節(jié)點(diǎn),連接,甚至丟失的功能等著我們嘗試。
這些是調(diào)整和架構(gòu)探索的很多超參數(shù),當(dāng)訓(xùn)練大型網(wǎng)絡(luò)的一個(gè)實(shí)例時(shí)可能非常耗時(shí)。谷歌最近吹噓自己的 AutoML 管道可以自動(dòng)找到最好的架構(gòu),這是非常令人印象深刻的,但仍然需要超過(guò) 800 個(gè) GPU,全天候工作數(shù)周,這對(duì)正常人來(lái)說(shuō)是很難實(shí)現(xiàn)的。問(wèn)題的關(guān)鍵在于訓(xùn)練深網(wǎng)需要大量的成本用于計(jì)算和調(diào)試。這種費(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)替代方法。您可能會(huì)驚喜地發(fā)現(xiàn),線性SVM真的是您需要的。
解釋和傳達(dá)模型參數(shù)對(duì)一般觀眾的重要性
深網(wǎng)另一個(gè)令人詬病的原因是其徒有高預(yù)測(cè)能力卻很難解釋清楚。盡管最近有很多工具,如 Saliency 地圖和 Activation Differences(https://arxiv.org/abs/1704.02685),對(duì)某些領(lǐng)域而言是非常有用的,但它們并不會(huì)完全轉(zhuǎn)移到所有應(yīng)用程序上。
這主要是因?yàn)椋?dāng)您想要確保網(wǎng)絡(luò)不會(huì)通過(guò)記住數(shù)據(jù)集或?qū)W⒂谔囟ǖ奶摷偬卣鱽?lái)欺騙您時(shí),這些工具就能很好地工作,但是對(duì)于深層網(wǎng)絡(luò)的整體決策來(lái)說(shuō),仍然難以將每個(gè)特征的重要性進(jìn)行解釋。在這個(gè)情況下,沒(méi)有什么是可以真正的打敗線性模型的,因?yàn)閷W(xué)習(xí)的難度與客戶反應(yīng)有直接的關(guān)系。當(dāng)將這些解釋傳達(dá)給需要根據(jù)它們作出決定的一般觀眾時(shí),這尤其重要。
舉個(gè)例子,醫(yī)生需要根據(jù)不同的數(shù)據(jù)來(lái)作出診斷,變量和結(jié)果之間的關(guān)系更簡(jiǎn)單更直接,醫(yī)生則能更好的利用它,而不是低估/高估其價(jià)值。此外,有些情況下,模型的準(zhǔn)確性(通常是深度學(xué)習(xí)所擅長(zhǎng)的)并不像解釋性那樣重要。比如,決策者可能想知道人口變量對(duì)死亡率的影響,可能會(huì)對(duì)直接近似關(guān)系感興趣,而不是預(yù)測(cè)的準(zhǔn)確性。從以上兩個(gè)例子,不難看出與更簡(jiǎn)單,更加滲透的方法相比,深度學(xué)習(xí)處于不利地位。
建立因果機(jī)制
模型解釋的極端情況是當(dāng)我們?cè)噲D建立一個(gè)機(jī)械的模型,即一個(gè)實(shí)際捕獲數(shù)據(jù)背后的現(xiàn)象的模型。好的例子包括試圖猜測(cè)兩個(gè)分子(例如藥物,蛋白質(zhì),核酸等)是否在特定的細(xì)胞環(huán)境中相互作用,或者假設(shè)特定的營(yíng)銷策略如何對(duì)銷售產(chǎn)生實(shí)際的影響。在這個(gè)領(lǐng)域沒(méi)有什么能真正的擊敗專家的老式貝葉斯方法(可能不完美);他們是我們表達(dá)和推斷因果關(guān)系的最好方法。Vicarious最近有一些很好的研究證明了為什么更有原則的手段比游戲任務(wù)中的深度學(xué)習(xí)更好。
從 非結(jié)構(gòu)化 功能中學(xué)習(xí)
這一條可能有待爭(zhēng)論。我發(fā)現(xiàn)深入學(xué)習(xí)擅長(zhǎng)的一個(gè)領(lǐng)域是為特定任務(wù)找到有用的數(shù)據(jù)表示。一個(gè)很好的例子是上述的詞語(yǔ)嵌入。自然語(yǔ)言具有豐富而復(fù)雜的結(jié)構(gòu),可以通過(guò) 上下文感知 來(lái)學(xué)習(xí),每個(gè)單詞都可以用向量來(lái)表示并編碼程其最常用的內(nèi)容。為了NLP任務(wù)在大型語(yǔ)料庫(kù)中學(xué)習(xí)使用單詞嵌入有時(shí)可以在另一個(gè)語(yǔ)料庫(kù)的特定任務(wù)中提升效果。
然而,如果所討論的語(yǔ)料庫(kù)是完全非結(jié)構(gòu)化的,則可能沒(méi)有任何用處。例如,假設(shè)您正在查看非結(jié)構(gòu)化的關(guān)鍵字列表來(lái)對(duì)對(duì)象進(jìn)行分類。由于關(guān)鍵字不是在任何特定的結(jié)構(gòu)中使用(如在一個(gè)句子中),所以字嵌入不太可能有幫助。在這種情況下,數(shù)據(jù)是真正的一個(gè)單詞,這種表示可能足以滿足任務(wù)。與此相反的是,如果您預(yù)培訓(xùn)深度學(xué)習(xí)的話,并且可以更好地捕獲關(guān)鍵字相似度,那么字嵌入的代價(jià)并不高。不過(guò),我還是寧愿從一個(gè)詞包的表示開始,看看能否得到很好的預(yù)測(cè)。畢竟,這個(gè)詞包的每個(gè)維度都比對(duì)應(yīng)的字嵌入槽更容易解讀。
▌前路漫漫
深度學(xué)習(xí)領(lǐng)域現(xiàn)在很熱門,資金充足,并且正在快速發(fā)展。當(dāng)你閱讀在會(huì)議上發(fā)表的論文的時(shí)候,它很可能又經(jīng)歷了兩三次迭代并且已經(jīng)不推薦了。這給我以上提出的觀點(diǎn)相符:深度學(xué)習(xí)在不久的將來(lái)可能對(duì)這些情景來(lái)說(shuō)是非常有用的。用于解釋圖像和離散序列的深度學(xué)習(xí)模型的工具越來(lái)越好。
最近的軟件,如融合了貝葉斯建模的 Edward 深層框架,允許量化神經(jīng)網(wǎng)絡(luò)參數(shù)的不確定性和容易的貝葉斯推理通過(guò)概率進(jìn)行編程和自動(dòng)變分推理。從長(zhǎng)遠(yuǎn)來(lái)看,可能會(huì)有一個(gè)減少的建模詞匯表,它會(huì)揭露深層網(wǎng)絡(luò)可以具有的顯著屬性,從而減少需要嘗試的東西的參數(shù)空間。因此,繼續(xù)刷新你的 arXiv 吧,也許這篇文章在一兩個(gè)月后就過(guò)時(shí)了。
Edward 與 TensorFlow 結(jié)合概率規(guī)劃,支持深度學(xué)習(xí)和貝葉斯模型,摘自 Tran 等人的 ICLR 2017 論文
原文:
文章編輯:CobiNet(寧波)
本公司專注于電訊配件,銅纜綜合布線系列領(lǐng)域產(chǎn)品研發(fā)生產(chǎn)超五類,六類,七類線,屏蔽模塊,配線架及相關(guān)模塊配件的研發(fā)和生產(chǎn)。
?2016-2019寧波科博通信技術(shù)有限公司版權(quán)所有浙ICP備16026074號(hào)