近幾年,深度進(jìn)修曾經(jīng)進(jìn)入必定水平的狂熱狀況,人們正試圖用這個(gè)技巧處理每個(gè)成績(jī)。但是,深度進(jìn)修真是全能的嗎?瀏覽此文后,你便可以或許從深層懂得為何深度進(jìn)修其實(shí)不是想象的那般“神話”了。
寫在后面
近日,在深度進(jìn)修范疇涌現(xiàn)了一場(chǎng)熱鬧的爭(zhēng)辯。這一切都要從 Jeff Leek 在 Simply Stats 上揭橥了一篇題為《數(shù)據(jù)量不敷年夜,別玩深度進(jìn)修》(Don't use deep learning your data isn't that big)的博文開端。作者 Jeff Leek 在這篇博文中指出,當(dāng)樣本數(shù)據(jù)集很小時(shí)(這類情形在生物信息范疇很罕見),即便有一些層和隱蔽單位,具有較少參數(shù)的線性模子的表示是優(yōu)于深度收集的。為了證實(shí)本身的論點(diǎn),Leek 舉了一個(gè)基于 MNIST 數(shù)據(jù)庫停止圖象辨認(rèn)的例子,分辯 0 或許 1。他還表現(xiàn),當(dāng)在一個(gè)應(yīng)用僅僅 80 個(gè)樣本的 MNIST 數(shù)據(jù)集中停止 0 和 1 的分類時(shí),一個(gè)簡(jiǎn)略的線性猜測(cè)器(邏輯回歸)要比深度神經(jīng)收集的猜測(cè)精確度更高。
這篇博文的揭橥惹起了范疇內(nèi)的爭(zhēng)辯,哈佛年夜學(xué)藥學(xué)院的生物醫(yī)藥信息學(xué)專業(yè)博士后 Andrew Beam 寫了篇文章來辯駁:《就算數(shù)據(jù)不敷年夜,也能玩深度進(jìn)修》(You can probably use deep learning even if your data isn't that big)。Andrew Beam 指出,即便數(shù)據(jù)集很小,一個(gè)恰當(dāng)練習(xí)的深度收集也能擊敗簡(jiǎn)略的線性模子。
現(xiàn)在,愈來愈多的生物信息學(xué)研討人員正在應(yīng)用深度進(jìn)修來處理各類各樣的成績(jī),如許的爭(zhēng)辯愈演愈烈。這類炒作是真的嗎?照樣說線性模子就足夠知足我們的一切需求呢?結(jié)論自始自終——要視情形而定。在這篇文章中,作者摸索了一些機(jī)械進(jìn)修的應(yīng)用實(shí)例,在這些實(shí)例中應(yīng)用深度進(jìn)修其實(shí)不明智。而且說明了一些對(duì)深度進(jìn)修的誤會(huì),作者以為恰是這些毛病的熟悉招致深度進(jìn)修沒有獲得有用地應(yīng)用,這類情形關(guān)于老手來講特別輕易涌現(xiàn)。
打破深度進(jìn)修成見
起首,我們來看看很多內(nèi)行者輕易發(fā)生的成見,實(shí)際上是一些半真半假的單方面熟悉。重要有兩點(diǎn),個(gè)中的一點(diǎn)更具技巧性,我將具體說明。
深度進(jìn)修在小樣本集上也能夠獲得很好的后果
深度進(jìn)修是在年夜數(shù)據(jù)的配景下火起來的(第一個(gè)谷歌年夜腦項(xiàng)目向深度神經(jīng)收集供給了年夜量的 Youtube 視頻),自從那今后,絕年夜部門的深度進(jìn)修內(nèi)容都是基于年夜數(shù)據(jù)量中的龐雜算法。
但是,這類年夜數(shù)據(jù) + 深度進(jìn)修的配對(duì)不知為什么被人誤會(huì)為:深度進(jìn)修不克不及運(yùn)用于小樣本。假如只要幾個(gè)樣例,將其輸出具有高參數(shù)樣本比例的神經(jīng)收集仿佛必定會(huì)走上過擬合的途徑。但是,僅僅斟酌給定成績(jī)的樣本容量和維度,不管有監(jiān)視照樣無監(jiān)視,簡(jiǎn)直都是在真空中對(duì)數(shù)據(jù)停止建模,沒有任何的高低文。
能夠的數(shù)據(jù)情形是:你具有與成績(jī)相干的數(shù)據(jù)源,或許該范疇的專家可以供給的壯大的先驗(yàn)常識(shí),或許數(shù)據(jù)可以以異常特別的方法停止構(gòu)建(例如,以圖形或圖象編碼的情勢(shì))。一切的這些情形中,深度進(jìn)修無機(jī)會(huì)成為一種可供選擇的辦法——例如,你可以編碼較年夜的相干數(shù)據(jù)集的有用表現(xiàn),并將該表現(xiàn)運(yùn)用到你的成績(jī)中。
這類典范的示例罕見于天然說話處置,你可以進(jìn)修年夜型語料庫中的詞語嵌入,例如維基百科,然后將他們作為一個(gè)較小的、較窄的語料庫嵌入到一個(gè)有監(jiān)視義務(wù)中。極端情形下,你可以用一套神經(jīng)收集停止結(jié)合進(jìn)修特點(diǎn)表現(xiàn),這是在小樣本集中重用該表現(xiàn)的一種有用方法。這類辦法被稱作“一次性進(jìn)修”(one-shot learning),而且曾經(jīng)勝利運(yùn)用到包含盤算機(jī)視覺和藥物研發(fā)在內(nèi)的具有高維數(shù)據(jù)的范疇。
藥物研發(fā)中的一次性進(jìn)修收集
深度進(jìn)修不是一切的謎底
我聽過最多的第二個(gè)成見就是過度宣揚(yáng)。很多還沒有入門該范疇的人,僅僅由于深度神經(jīng)收集在其它范疇的精彩表示,就等待它也能為他們帶來神話般的表示晉升。其別人則從深度進(jìn)修在圖象、音樂和說話(與人類關(guān)系親密的三種數(shù)據(jù)類型)處置范疇的使人印象深入的表示中遭到啟示,因而就腦筋發(fā)燒地鉆入該范疇,迫在眉睫地測(cè)驗(yàn)考試練習(xí)最新的 GAN 構(gòu)造。
固然,這類年夜肆吹噓在許多方面是真實(shí)存在的。深度進(jìn)修在機(jī)械進(jìn)修中的位置弗成小覷,也是數(shù)據(jù)建模辦法庫的主要對(duì)象。它的普及帶動(dòng)了諸如 tensorflow 和 pytorch 等很多主要框架的成長(zhǎng),它們即便是在深度進(jìn)修以外也是非常有效的。掉敗者突起成為超等巨星的故事鼓勵(lì)了很多研討員從新審閱之前的隱約算法,如退化算法和加強(qiáng)進(jìn)修。
但任何情形下也不克不及以為深度進(jìn)修是全能良藥。除“世界沒有收費(fèi)的午飯”這點(diǎn)以外,深度進(jìn)修模子長(zhǎng)短常奧妙的,而且須要細(xì)心乃至異常耗時(shí)耗力的超參數(shù)搜刮、調(diào)劑,和測(cè)試(文章后續(xù)有更多講授)。除此以外,在許多情形下,從理論的角度來看,應(yīng)用深度進(jìn)修是沒成心義的,更簡(jiǎn)略的模子反而能取得更好的后果。
深度進(jìn)修不只僅是.fit()
深度進(jìn)修模子從機(jī)械進(jìn)修的其他范疇傳來時(shí),我以為還有別的一個(gè)方面常常被疏忽。年夜多半深度進(jìn)修的教程和引見資料都將模子描寫為經(jīng)由過程條理方法停止銜接的節(jié)點(diǎn)層構(gòu)成,個(gè)中第一層是輸出,最初一層是輸入,而且你可以用某種情勢(shì)的隨機(jī)梯度降低(SGD)辦法來練習(xí)收集。有些資料會(huì)簡(jiǎn)略引見隨機(jī)梯度降低是若何任務(wù)的,和甚么是反向流傳,但年夜部門引見重要存眷的是豐碩的神經(jīng)收集類型(卷積神經(jīng)收集,輪回神經(jīng)收集等等)。
而優(yōu)化辦法自己卻很少遭到存眷,這是很不幸的,由于深度進(jìn)修為何可以或許起到很年夜的感化,絕年夜部門緣由就是這些特別的優(yōu)化辦法(詳細(xì)闡述可以參考 Ferenc Huszár 的博客和博客中援用的論文)。懂得若何優(yōu)化參數(shù),和若何劃分?jǐn)?shù)據(jù),從而更有用地應(yīng)用它們以便在公道時(shí)光內(nèi)使收集取得優(yōu)越的收斂,是相當(dāng)主要的。
不外,為何隨機(jī)梯度降低如斯癥結(jié)照樣未知的,然則如今線索也正零碎涌現(xiàn)。我偏向于將該辦法算作是貝葉斯推理的一部門。本質(zhì)上,在你停止某種情勢(shì)的數(shù)值優(yōu)化時(shí),你都邑用特定的假定和先驗(yàn)來履行一些貝葉斯推理。其實(shí)有一個(gè)被稱做幾率數(shù)值盤算(probabilistic numerics)的完全研討范疇,就是從這個(gè)不雅點(diǎn)開端的。隨機(jī)梯度降低也是如斯,最新的研討結(jié)果注解,該進(jìn)程現(xiàn)實(shí)上是一個(gè)馬爾科夫鏈,在特定假定下,可以看做是后向變分近似的穩(wěn)態(tài)散布。
所以當(dāng)你停滯隨機(jī)梯度降低,并采取終究的參數(shù)時(shí),根本上是從這個(gè)近似散布中抽樣獲得的。我以為這個(gè)設(shè)法主意很有啟示性,由于如許一來,優(yōu)化器的參數(shù)(這里是指進(jìn)修率)就更成心義了。例如,當(dāng)你增長(zhǎng)隨機(jī)梯度降低的進(jìn)修參數(shù)時(shí),馬爾可夫鏈就會(huì)變得不穩(wěn)固,直到它找到年夜面積采樣的部分最小值,如許一來,就增長(zhǎng)了法式的方差。
另外一方面,假如削減進(jìn)修參數(shù),馬爾科夫鏈可以漸漸的近似到廣義極小值,直到它收斂,如許就增長(zhǎng)了某個(gè)特定區(qū)域的偏置。而另外一個(gè)參數(shù),隨機(jī)梯度降低的批次年夜小,也能夠掌握算法收斂的區(qū)域是甚么類型,小的批次收斂到較年夜區(qū)域,年夜的批次收斂到較小區(qū)域。
隨機(jī)梯度降低依據(jù)進(jìn)修速度或批尺寸來選擇較年夜或廣義最小值
如許的龐雜性意味著深度收集的優(yōu)化器異常主要:它們是模子的焦點(diǎn)部門,與層架構(gòu)一樣主要。這一點(diǎn)在機(jī)械進(jìn)修的很多其他模子中其實(shí)不罕見。線性模子(乃至是正則化的,像 LASSO 算法)和支撐向量機(jī)(SVM) 都是凸優(yōu)化成績(jī),沒有太多纖細(xì)差異,而且只要一個(gè)最優(yōu)解。這也就是為何來自其它范疇的研討人員在應(yīng)用諸如 scikit-learn 如許的對(duì)象時(shí)會(huì)覺得迷惑,由于他們發(fā)明找不到簡(jiǎn)略地供給。fit() 函數(shù)的 API(雖然如今有些對(duì)象,例如 skflow,試圖將簡(jiǎn)略的收集置入。fit() 中,我以為這有點(diǎn)誤導(dǎo),由于深度進(jìn)修的全體重點(diǎn)就是其靈巧性)。
甚么時(shí)刻不須要深度進(jìn)修?
在甚么情形下深度進(jìn)修不是最幻想的呢?在我看來,以下情形中,深度進(jìn)修更多是一種障礙,而不是福音。
低預(yù)算或低投資成績(jī)
深度收集是非常靈巧的模子,有多種多樣的構(gòu)造和節(jié)點(diǎn)模子、優(yōu)化器和正則化辦法。依據(jù)運(yùn)用場(chǎng)景,你的模子也許要有卷積層(層尺寸多寬?有無池化操作?),或許輪回構(gòu)造(有無門控單位?);收集能夠真的很深(hourglass,siamese,或其他構(gòu)造?)照樣只是具有很少的幾個(gè)隱蔽層(有若干單位?);它能夠應(yīng)用整流線性單位或其他激活函數(shù);它能夠會(huì)或能夠不會(huì)有隨機(jī)拋棄(在哪一層中?用甚么比例?),而且權(quán)重應(yīng)當(dāng)是正則化的(L1、L2,或許是某些更奇異的正則化辦法?)。這只是一部門列表,還有許多其他類型的節(jié)點(diǎn)、銜接,乃至喪失函數(shù)可以去測(cè)驗(yàn)考試。
即使只是練習(xí)年夜型收集的一個(gè)實(shí)例,調(diào)劑很多超參數(shù)和摸索框架的進(jìn)程也長(zhǎng)短常耗時(shí)的。谷歌比來傳播鼓吹本身的 AutoML 辦法可以主動(dòng)找到最好的架構(gòu),使人印象深入,但依然須要跨越 800 個(gè) GPU 全天候運(yùn)轉(zhuǎn)數(shù)周,這關(guān)于任何人來講簡(jiǎn)直都是高不可攀的。癥結(jié)在于練習(xí)深度收集時(shí),在盤算和調(diào)試部門都邑消費(fèi)偉大的價(jià)值。這類消費(fèi)關(guān)于很多平常猜測(cè)成績(jī)并沒成心義,而且調(diào)劑深度收集的投資報(bào)答率太低,即便是調(diào)劑小型收集。即便有足夠的預(yù)算和投資,也沒有來由不測(cè)驗(yàn)考試替換辦法,哪怕作為基準(zhǔn)測(cè)試。你能夠會(huì)欣喜地發(fā)明,線性 SVM 就夠用了。
說明和轉(zhuǎn)達(dá)模子參數(shù)或特點(diǎn)對(duì)普通受眾的主要性
深度收集也是很著名的黑匣子,它具有高猜測(cè)才能但可說明性缺乏。雖然比來有許多對(duì)象,諸如明顯圖(saliency maps)和激活差別(activation difference),它們對(duì)某些范疇而言長(zhǎng)短常有效的,但它們不會(huì)完整被運(yùn)用到一切的運(yùn)用中。重要是,當(dāng)你想要確保收集不會(huì)經(jīng)由過程記住數(shù)據(jù)集或?qū)W⒂谔囟ǖ奶搨翁攸c(diǎn)來誘騙你時(shí),這些對(duì)象就可以很好地任務(wù),但依然難以從每一個(gè)特點(diǎn)的主要性解讀出深度收集的全體決議計(jì)劃。在這個(gè)范疇,沒有甚么可以或許真正地打敗線性模子,由于進(jìn)修獲得的系數(shù)與呼應(yīng)有著直接的關(guān)系。當(dāng)將這些說明轉(zhuǎn)達(dá)給普通受眾,而且他們須要基于此做出決議計(jì)劃時(shí),這就顯得尤其主要。
例如,大夫須要聯(lián)合各類分歧的數(shù)據(jù)來確認(rèn)診斷成果。變量和成果之間的關(guān)系越簡(jiǎn)略、越直接,大夫就可以更好天時(shí)用,而不是低估或高估現(xiàn)實(shí)值。另外,有些情形下,模子(特別是深度收集)的精度其實(shí)不像可說明性那樣主要。例如,政策制訂者能夠想曉得一些生齒統(tǒng)計(jì)變量關(guān)于逝世亡率的影響,而且相較于猜測(cè)的精確性來講,能夠?qū)@類關(guān)系的直接近似更有興致。在這兩種情形下,與更簡(jiǎn)略、更容易滲入滲出的辦法比擬,深度進(jìn)修處于晦氣位置。
樹立因果機(jī)制
模子可說明性的極端情形是當(dāng)我們?cè)噲D樹立一個(gè)機(jī)械模子,即現(xiàn)實(shí)捕獲數(shù)據(jù)面前景象的模子。一個(gè)好的例子包含試圖猜想兩個(gè)份子(例如藥物、卵白質(zhì)、核酸等)能否在特定的細(xì)胞情況中互相發(fā)生影響,或許假定特定的營(yíng)銷戰(zhàn)略能否對(duì)發(fā)賣發(fā)生現(xiàn)實(shí)的影響。在這個(gè)范疇,依據(jù)專家看法,沒有甚么可以擊敗老式的貝葉斯辦法,它們是我們表現(xiàn)并揣摸因果關(guān)系的最好方法。Vicarious 有一些很好的最新研討結(jié)果,解釋為何這個(gè)更有準(zhǔn)繩性的辦法在視頻游戲義務(wù)中比深度進(jìn)修表示得更好。
進(jìn)修“非構(gòu)造化”特點(diǎn)
這能夠是具有爭(zhēng)議性的。我發(fā)明深度進(jìn)修善于的一個(gè)范疇是為特定義務(wù)找到有效的數(shù)據(jù)表現(xiàn)。一個(gè)很好的例子就是上述的詞語嵌入。天然說話具有豐碩而龐雜的構(gòu)造,與“高低文感知”(context-aware)收集鄰近似:每一個(gè)單詞都可以經(jīng)由過程向量來表現(xiàn),而這個(gè)向量可以編碼其常常涌現(xiàn)的文本。在 NLP 義務(wù)中應(yīng)用在年夜型語料庫中進(jìn)修的單詞嵌入,有時(shí)可以在另外一個(gè)語料庫的特定義務(wù)中晉升后果。但是,假如所評(píng)論辯論的語料庫是完整非構(gòu)造化的,它能夠不會(huì)起就任何感化。
例如,假定你正在經(jīng)由過程檢查癥結(jié)字的非構(gòu)造化列表來對(duì)對(duì)象停止分類,因?yàn)榘Y結(jié)字不是在任何特定構(gòu)造中都邑應(yīng)用的(好比在一個(gè)句子中),所以單詞嵌入不會(huì)對(duì)這些情形有太年夜贊助。在這類情形下,數(shù)據(jù)是一個(gè)真實(shí)的“詞袋”(bag of words),這類表現(xiàn)很有能夠足以知足義務(wù)所需。與此相反的是,假如你應(yīng)用預(yù)練習(xí)的話,單詞嵌入其實(shí)不是那末消耗時(shí)力,并且可以更好地捕捉癥結(jié)字的類似度。不外,我照樣情愿從“詞袋”表現(xiàn)開端,看看可否獲得很好的猜測(cè)成果。究竟,這個(gè)“詞袋”的每一個(gè)維度都比對(duì)應(yīng)的詞嵌入槽更輕易解讀。
深度進(jìn)修是將來
深度進(jìn)修今朝異常火爆,資金充分,而且成長(zhǎng)異常敏捷。當(dāng)你還在瀏覽會(huì)議上揭橥的論文時(shí),有能夠曾經(jīng)有兩、三種新版本可以超出它了。這給我上述列出的幾點(diǎn)提出了很年夜的挑釁:深度進(jìn)修在不久的未來能夠在這些情形中長(zhǎng)短常有效的。用于說明圖象和團(tuán)圓序列的深度進(jìn)修模子的對(duì)象愈來愈好。比來推出的軟件,如 Edward 將貝葉斯建模和深度收集框架聯(lián)合,可以或許量化神經(jīng)收集參數(shù)的不肯定性,和經(jīng)由過程幾率編程和主動(dòng)變分推理停止簡(jiǎn)略單純貝葉斯推理。從久遠(yuǎn)來看,能夠會(huì)有一個(gè)簡(jiǎn)化的建模庫,可以或許給出深度收集具有的明顯屬性,從而削減須要測(cè)驗(yàn)考試的參數(shù)空間。所以要賡續(xù)更新你的 arXiv 瀏覽內(nèi)容,這篇博文的內(nèi)容也許一兩個(gè)月內(nèi)也會(huì)過時(shí)。
Edward 經(jīng)由過程將幾率計(jì)劃與 tensorflow 聯(lián)合,將深度進(jìn)修和貝葉斯的模子斟酌在內(nèi)。
