0
本文作者: 圖普科技 | 2018-08-01 17:19 | 專題:AutoML 祛魅 |
雷鋒網(wǎng)按:本文由「圖普科技」編譯自 An Opinionated Introduction to AutoML and Neural Architecture Search
來(lái)自CMU和DeepMind的研究人員最近發(fā)布了一篇有趣的新論文,稱為可微分網(wǎng)絡(luò)結(jié)構(gòu)搜索(DARTS),它提供了一種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的替代方法,這是目前機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)大熱門。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索去年被大肆吹捧,Google首席執(zhí)行官Sundar Pichai和Google AI負(fù)責(zé)人Jeff Dean宣稱,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索及其所需的大量計(jì)算能力對(duì)于機(jī)器學(xué)習(xí)的大眾化至關(guān)重要。科技媒體爭(zhēng)相報(bào)道了谷歌在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索方面的工作。
報(bào)道谷歌的AutoML和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的頭條新聞
在2018年3月舉辦的TensorFlow DevSummit大會(huì)上,Jeff Dean在主題演講(大約22:20左右開始)中宣稱,未來(lái)谷歌可能會(huì)用100倍的計(jì)算能力取代機(jī)器學(xué)習(xí)專家。 他給出了需要龐大計(jì)算力的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索作為例子(他給出的唯一例子),來(lái)說明為什么我們需要100倍的計(jì)算能力才能使更多人能夠使用ML。
Jeff Dean在TensorFlow DevSummit大會(huì)上的主題演講
什么是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索?它是使得機(jī)器學(xué)習(xí)技術(shù)可以被非機(jī)器學(xué)習(xí)專家所使用的關(guān)鍵嗎?
我將在這篇文章中深入研究這些問題,在下一篇文章中,我將專門研究Google的AutoML。 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索是一個(gè)名為AutoML的更廣泛領(lǐng)域的一部分。AutoML近年來(lái)受到了很多關(guān)注,我們將首先來(lái)探討它。
目錄:
? AutoML是什么?
? AutoML有用嗎?
? 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索是什么?
? DARTS是什么?
? 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索有用嗎?
? 如何讓機(jī)器學(xué)習(xí)從業(yè)者更高效地工作? AutoML vs增強(qiáng)機(jī)器學(xué)習(xí)
傳統(tǒng)上,術(shù)語(yǔ)AutoML用于描述模型選擇和/或超參數(shù)優(yōu)化的自動(dòng)化方法。這些方法適用于許多類型的算法,例如隨機(jī)森林,梯度提升機(jī)器(gradient boosting machines),神經(jīng)網(wǎng)絡(luò)等。 AutoML領(lǐng)域包括開源AutoML庫(kù),研討會(huì),研究和比賽。 初學(xué)者常常覺得他們?cè)跒槟P蜏y(cè)試不同的超參數(shù)時(shí)通常僅憑猜測(cè),而將這部分過程的自動(dòng)化可以使機(jī)器學(xué)習(xí)變得更加容易。即使是對(duì)經(jīng)驗(yàn)豐富的機(jī)器學(xué)習(xí)從業(yè)者而言,這一自動(dòng)化過程也可以加快他們的速度。
業(yè)內(nèi)現(xiàn)存有許多AutoML庫(kù),其中最早出現(xiàn)的是AutoWEKA,它于2013年首次發(fā)布,可以自動(dòng)選擇模型和超參數(shù)。其他值得注意的AutoML庫(kù)包括auto-sklearn(將AutoWEKA拓展到了python環(huán)境),H2O AutoML和TPOT。 AutoML.org(以前被稱為ML4AAD,Machine Learning for Automated Algorithm Design)小組,自2014年以來(lái)一直在ICML機(jī)器學(xué)習(xí)學(xué)術(shù)會(huì)議上組織AutoML研討會(huì)。
AutoML提供了一種選擇模型和優(yōu)化超參數(shù)的方法。它還可以用于獲取對(duì)于一個(gè)問題可能性能的基準(zhǔn)結(jié)果。這是否意味著數(shù)據(jù)科學(xué)家將被取代? 并非如此,因?yàn)槲覀冎?,機(jī)器學(xué)習(xí)從業(yè)者還有許多其他事情要做。
對(duì)于許多機(jī)器學(xué)習(xí)項(xiàng)目,選擇模型不過是構(gòu)建機(jī)器學(xué)習(xí)產(chǎn)品復(fù)雜過程中的一部分。 正如我在上一篇文章中所述,如果參與者不了解項(xiàng)目各個(gè)部分是如何相互關(guān)聯(lián)的,那么項(xiàng)目必然會(huì)失敗。我能想到過程中可能會(huì)涉及的30多個(gè)不同步驟。我必須要強(qiáng)調(diào),機(jī)器學(xué)習(xí)(特別是深度學(xué)習(xí))中最耗時(shí)的兩個(gè)方面是清理數(shù)據(jù)(這是機(jī)器學(xué)習(xí)中不可或缺的一部分)和訓(xùn)練模型。 雖然AutoML可以幫助選擇模型并選擇超參數(shù),但重要的是,我們?nèi)匀灰砬逵心男?shù)據(jù)科學(xué)的技能是需要的以及那些仍未解決的難題。
我將提出一些替代AutoML方法的建議,以使機(jī)器學(xué)習(xí)從業(yè)者在進(jìn)行最后一步時(shí)更有效率。
現(xiàn)在我們已經(jīng)介紹了AutoML的一些內(nèi)容,讓我們來(lái)看看該領(lǐng)域特別活躍的一個(gè)子集:神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索。谷歌首席執(zhí)行官桑達(dá)·皮采Sundar Pichai在博客中寫道:“設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)是非常耗時(shí)的,其對(duì)專業(yè)知識(shí)的極高要求使得只有小部分科研人員和工程師才能參與設(shè)計(jì)。這就是我們創(chuàng)建AutoML方法的原因,有了它,神經(jīng)網(wǎng)絡(luò)也可以設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)?!?/p>
Pichai所說的使用“神經(jīng)網(wǎng)絡(luò)也可以設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)”就是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索; 通常使用強(qiáng)化學(xué)習(xí)或進(jìn)化算法來(lái)設(shè)計(jì)新的神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)結(jié)構(gòu)。這很有用,因?yàn)樗沟梦覀兡軌虬l(fā)現(xiàn)比人們想象的要復(fù)雜得多的網(wǎng)絡(luò)結(jié)構(gòu),并且這些網(wǎng)絡(luò)結(jié)構(gòu)可以針對(duì)特定目標(biāo)進(jìn)行優(yōu)化。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索通常需要大量計(jì)算力。
確切地說,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索通常涉及學(xué)習(xí)像層(通常稱為“單元”)之類的東西,它們可以組裝成一堆重復(fù)的單元來(lái)創(chuàng)建神經(jīng)網(wǎng)絡(luò):
來(lái)自Zoph等人2017年發(fā)表的論文。左邊是單元堆疊的完整神經(jīng)網(wǎng)絡(luò),右邊是單元的內(nèi)部結(jié)構(gòu)
關(guān)于神經(jīng)結(jié)構(gòu)搜索的學(xué)術(shù)論文很多,所以我將在這里重點(diǎn)介紹幾篇最近發(fā)表的論文:
? 在2017年5月舉行的Google I / O大會(huì)上,Google AI研究人員Quoc Le和Barret Zoph發(fā)布了他們的研究成果(點(diǎn)擊查看論文),AutoML這一術(shù)語(yǔ)迅速成為主流。該研究使用強(qiáng)化學(xué)習(xí)為計(jì)算機(jī)視覺領(lǐng)域的Cifar10問題和NLP領(lǐng)域的Penn Tree Bank問題尋找到了新的網(wǎng)絡(luò)結(jié)構(gòu),并取得了與現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)類似的結(jié)果。
來(lái)自Le和Zoph的博客文章:左邊更簡(jiǎn)單的架構(gòu)是人類設(shè)計(jì)的,右邊更復(fù)雜的架構(gòu)是神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)的。
? 通過Learning Transferable Architectures for Scalable Image Recognition論文中提出的NASNet。這項(xiàng)研究在小數(shù)據(jù)集Cifar10上尋找一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)構(gòu)建塊,然后為大型數(shù)據(jù)集ImageNet構(gòu)建網(wǎng)絡(luò)。這項(xiàng)研究需要大量計(jì)算,花費(fèi)1800個(gè)GPU天(相當(dāng)于1個(gè)GPU工作5年)來(lái)學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)(谷歌團(tuán)隊(duì)使用500個(gè)GPU 訓(xùn)練了4天?。?。
? Regularized Evolution for Image Classifier Architecture Search論文中提出的AmoebaNet。這項(xiàng)研究比NASNet需要更多的計(jì)算,它花費(fèi)3150個(gè) GPU天(相當(dāng)于1 GPU近9年的時(shí)間)來(lái)學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)(Google團(tuán)隊(duì)使用450個(gè)K40 GPU 訓(xùn)練了7天?。?。 AmoebaNet由通過進(jìn)化算法習(xí)得的“單元”組成,表明人工智能進(jìn)化而來(lái)的架構(gòu)可以媲美甚至超越人工制作和強(qiáng)化學(xué)習(xí)設(shè)計(jì)的圖像分類器。 fast.ai對(duì)此架構(gòu)進(jìn)行了改進(jìn),學(xué)習(xí)進(jìn)程加快的同時(shí)改變了訓(xùn)練過程中圖像的尺寸。AmoebaNet已成為在單臺(tái)機(jī)器上訓(xùn)練ImageNet最便宜的方式!
? 高效的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(ENAS):使用的GPU小時(shí)數(shù)比現(xiàn)有的自動(dòng)模型設(shè)計(jì)方法少得多,特別是比標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索所需的計(jì)算力要少1000倍。這項(xiàng)研究?jī)H使用單個(gè)GPU訓(xùn)練了16個(gè)小時(shí)!
可微分網(wǎng)絡(luò)結(jié)構(gòu)搜索(DARTS)。這項(xiàng)研究是最近由卡內(nèi)基梅隆大學(xué)和DeepMind的一個(gè)團(tuán)隊(duì)發(fā)布的,我對(duì)這個(gè)想法很感興趣。 DARTS假定候選網(wǎng)絡(luò)結(jié)構(gòu)的空間是連續(xù)的,而不是離散的,這使得它能夠使用基于梯度的方法。這比大多數(shù)神經(jīng)架構(gòu)搜索算法使用的黑箱搜索效率高得多。
來(lái)自DARTS,它將所有可能的網(wǎng)絡(luò)結(jié)構(gòu)空間視為連續(xù)的,而非離散的
要為Cifar-10學(xué)習(xí)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),DARTS僅需4個(gè)GPU天,相比之下,NASNet為1800 個(gè)GPU天,AmoebaNet為3150個(gè)GPU天(準(zhǔn)確度都相同)。這是效率的巨大提升! 雖然還需要更多的探索,但這是一個(gè)很有前景的研究方向。 Google經(jīng)常強(qiáng)調(diào)神經(jīng)架構(gòu)搜索需要巨大計(jì)算力,這說明有效的網(wǎng)絡(luò)結(jié)構(gòu)搜索方法很可能未被充分探索。
在他的TensorFlow DevSummit主題演講中(從22:20開始),Jeff Dean提出深度學(xué)習(xí)工作的一個(gè)重要部分是嘗試不同的網(wǎng)絡(luò)結(jié)構(gòu)。這是Dean在他的簡(jiǎn)短的演講中唯一強(qiáng)調(diào)的機(jī)器學(xué)習(xí)步驟,我對(duì)他的重點(diǎn)感到驚訝。Sundar Pichai的博文包含了類似的斷言。
Jeff Dean的幻燈片顯示神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索可以嘗試20種不同的模型以找到最準(zhǔn)確的一種。
但是,選擇模型只是構(gòu)建機(jī)器學(xué)習(xí)產(chǎn)品復(fù)雜過程中的一部分。 在大多數(shù)情況下,網(wǎng)絡(luò)結(jié)構(gòu)選擇遠(yuǎn)不是最難,最耗時(shí)或最重要的問題。目前,沒有證據(jù)能夠證明每個(gè)問題最好用它自己獨(dú)特的網(wǎng)絡(luò)結(jié)構(gòu)來(lái)建模,大多數(shù)從業(yè)者都認(rèn)為不太可能會(huì)出現(xiàn)這種情況。
谷歌等組織致力于網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì),并與其他人共享他們發(fā)現(xiàn)的網(wǎng)絡(luò)結(jié)構(gòu)。這樣的服務(wù)是非常重要且有用的。 然而,只有那些致力于基礎(chǔ)神經(jīng)結(jié)構(gòu)設(shè)計(jì)的小部分研究人員才需要基礎(chǔ)架構(gòu)搜索方法。 我們其他人可以通過遷移學(xué)習(xí)來(lái)利用他們找到的網(wǎng)絡(luò)結(jié)構(gòu)。
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索是AutoML領(lǐng)域的一部分,該領(lǐng)域關(guān)注的核心問題是:我們?nèi)绾螌⒛P瓦x擇和超參數(shù)優(yōu)化過程自動(dòng)化? 然而,自動(dòng)化忽視了人類參與的重要作用。 我想提出另一個(gè)問題:人類和計(jì)算機(jī)如何協(xié)同工作才能使機(jī)器學(xué)習(xí)效率更高? 增強(qiáng)機(jī)器的重點(diǎn)在于弄清楚人和機(jī)器應(yīng)如何更好地協(xié)同工作以發(fā)揮他們的不同優(yōu)勢(shì)。
增強(qiáng)機(jī)器學(xué)習(xí)的一個(gè)例子是Leslie Smith的學(xué)習(xí)率查詢器,它可在fastai庫(kù)(在PyTorch之上運(yùn)行的高級(jí)API)中實(shí)現(xiàn),我們?cè)诿赓M(fèi)的深度學(xué)習(xí)課程中也將其作為關(guān)鍵技術(shù)進(jìn)行教學(xué)。 學(xué)習(xí)率是一個(gè)超參數(shù),可以確定模型訓(xùn)練的速度,甚至可以確定模型是否訓(xùn)練成功。 學(xué)習(xí)速率查詢器允許人類通過查看生成的圖表中找到合適的學(xué)習(xí)速率。它比AutoML更快地解決了這一問題,增強(qiáng)了數(shù)據(jù)科學(xué)家對(duì)訓(xùn)練過程的理解,并鼓勵(lì)采用更強(qiáng)大的多步驟方法來(lái)訓(xùn)練模型。
來(lái)自Surmenok關(guān)于學(xué)習(xí)率查詢器的博客文章,顯示了學(xué)習(xí)率與損失之間的關(guān)系
專注于自動(dòng)化超參數(shù)選擇存在的另一個(gè)問題是:它忽視了某些類型的模型可能適用性更廣,需要調(diào)整的超參數(shù)更少以及對(duì)超參數(shù)選擇不太敏感的情況。例如,隨機(jī)森林優(yōu)于梯度提升機(jī)器(Grandient Boosting Machine, GBM)的重要一點(diǎn)是隨機(jī)森林更加穩(wěn)定,而GBM往往對(duì)超參數(shù)的微小變化相當(dāng)敏感。因此,隨機(jī)森林在業(yè)內(nèi)得到廣泛應(yīng)用。研究有效刪除超參數(shù)的方法(通過更智能的默認(rèn)值或通過新模型)將產(chǎn)生巨大的影響。當(dāng)我在2013年開始對(duì)深度學(xué)習(xí)感興趣時(shí),對(duì)如此多的超參數(shù)感到不知所措,我很高興新的研究和工具幫助消除了許多超參數(shù)(特別是為初學(xué)者)。例如,在fast.ai課程中,初學(xué)者只需要選擇學(xué)習(xí)率這一個(gè)超參數(shù),我們甚至?xí)o你一個(gè)工具來(lái)做到這一點(diǎn)!
相關(guān)文章:
揭秘 | 谷歌自動(dòng)化機(jī)器學(xué)習(xí)真的那么神嗎?
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章