CMU和DeepMind的研究者最近發(fā)表了一篇有趣的論文——Differentiable Architecture Search (DARTS),提出了一種替代神經(jīng)架構(gòu)搜索的方法,目前是機(jī)器學(xué)習(xí)的熱門領(lǐng)域。去年,神經(jīng)架構(gòu)搜索被“捧”得很高,因?yàn)楣雀鐲EO桑德拉·皮查伊和谷歌AI的負(fù)責(zé)人杰夫·迪恩提出,神經(jīng)架構(gòu)搜索和大量的計(jì)算力對于機(jī)器學(xué)習(xí)的普及至關(guān)重要。于是媒體們對谷歌的這一工作進(jìn)行了全面報(bào)道。
在今年3月舉辦的TensorFlow DevSummit大會(huì)上,杰夫·迪恩估計(jì)在未來,谷歌云可以用比目前高100倍的計(jì)算力替代人類機(jī)器學(xué)習(xí)專家。他將需要昂貴計(jì)算成本的神經(jīng)架構(gòu)搜索作為主要案例,解釋了為什么我們需要100倍計(jì)算力才能讓機(jī)器學(xué)習(xí)惠及更多人。
那么,到底什么是神經(jīng)架構(gòu)搜索?這是讓機(jī)器學(xué)習(xí)普及的關(guān)鍵嗎?這篇文章將重點(diǎn)解決這一問題。而在下篇文章中,我們會(huì)詳細(xì)了解谷歌的AutoML。神經(jīng)架構(gòu)搜索是AutoML的一部分,在其剛剛出現(xiàn)時(shí)同樣受到了熱烈的追捧。
目錄
什么是AutoML?
AutoML有多有用?
什么是神經(jīng)架構(gòu)搜索?
什么是DARTS?
神經(jīng)架構(gòu)搜索有什么用處?
除此之外還有什么方法能提高機(jī)器學(xué)習(xí)從業(yè)者的效率?
什么是AutoML?
AutoML這個(gè)術(shù)語曾被用來描述選擇機(jī)器學(xué)習(xí)模型或參數(shù)優(yōu)化的自動(dòng)化方法。這些方法的所用的算法有很多種,例如隨機(jī)森林、梯度提升、神經(jīng)網(wǎng)絡(luò)等等。AutoML包括開源的AutoML庫、研討會(huì)、研究項(xiàng)目和比賽。初學(xué)者可能會(huì)感覺他們只是在為模型測試不同的參數(shù),將這一過程自動(dòng)化可能會(huì)讓機(jī)器學(xué)習(xí)的過程更容易,同時(shí)還能提升有經(jīng)驗(yàn)的從業(yè)者的速度。
AutoML庫有很多種,最“古老”的是AutoWEKA,于2013年發(fā)布,它可以自動(dòng)選擇模型和參數(shù)。其他的庫包括auto-sklearn、H2O AutoML和TPOT。
AutoML有多有用?
AutoML提供了一種可以選擇模型、優(yōu)化超參數(shù)的方法。它同樣能用來評估某一問題所處的水平如何。那么這意味著數(shù)據(jù)科學(xué)家可以被替代嗎?目前還不行,因?yàn)槲覀冃枰紤]機(jī)器學(xué)習(xí)從業(yè)者實(shí)際的工作是什么。
對很多機(jī)器學(xué)習(xí)項(xiàng)目來說,選擇一個(gè)合適的模型只是搭建機(jī)器學(xué)習(xí)產(chǎn)品中的一部分。在上一篇文章中,我們說過如果參與者并不理解機(jī)器學(xué)習(xí)模型各部分之間是如何連接的,這一項(xiàng)目可能會(huì)失敗。我認(rèn)為這一過程需要30多種不同的步驟,其中兩個(gè)非常費(fèi)時(shí),即數(shù)據(jù)清洗和模型訓(xùn)練。雖然AutoML可以幫助選擇模型和超參數(shù),但是仍需要關(guān)注其他數(shù)據(jù)專家的需要和現(xiàn)存的問題。
在下一篇文章中,我會(huì)提出一些AutoML的替代方法,能讓機(jī)器學(xué)習(xí)從業(yè)者工作得更高效。
什么是神經(jīng)架構(gòu)搜索?
神經(jīng)架構(gòu)搜索是AutoML最受人關(guān)注的部分,谷歌CEO桑德拉·皮查伊曾寫道:“設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)非常耗費(fèi)時(shí)間,并且需要一名專家將它限制在更小的科學(xué)和工程社區(qū)里。這就是我們創(chuàng)建AutoML的原因,證明了我們可以讓神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)?!?/p>
他提到的“神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)”是指神經(jīng)架構(gòu)搜索;通常強(qiáng)化學(xué)習(xí)或演化算法使用來設(shè)計(jì)新的神經(jīng)網(wǎng)絡(luò)架構(gòu)的。這非常有用,因?yàn)樗茏屛覀儼l(fā)現(xiàn)更復(fù)雜的架構(gòu),同時(shí)還能根據(jù)具體目標(biāo)進(jìn)行優(yōu)化調(diào)整。神經(jīng)架構(gòu)搜索通常需要大量計(jì)算力。
準(zhǔn)確的說,神經(jīng)架構(gòu)搜索經(jīng)常包括學(xué)習(xí)類似圖層的東西,可以組合成重復(fù)的單元以創(chuàng)建一個(gè)神經(jīng)網(wǎng)絡(luò):
有關(guān)神經(jīng)架構(gòu)搜索的論文非常多,這里我們著重分析最近的幾篇:
AutoML開始進(jìn)入人們的視野就是由于谷歌AI的研究者Quoc Le和Barret Zoph于2017年5月在谷歌I/O大會(huì)上發(fā)表的論文:Neural Architecture Search With Reinforcement Learning。該論文使用強(qiáng)化學(xué)習(xí)為CV領(lǐng)域CIFAR10和NLP中的Penn Tree Bank問題尋找新的結(jié)構(gòu),并達(dá)到了與現(xiàn)有架構(gòu)相似的結(jié)果。
地址:arxiv.org/pdf/1611.01578.pdf
Learning Transferable Architecture for Scalable Image Recognition中的NASNet。這一項(xiàng)目從較小數(shù)據(jù)集(CIFAR10)中尋找建造模塊,之后在大數(shù)據(jù)集(ImageNet)上搭建結(jié)構(gòu)。不過這一項(xiàng)目也需要大量計(jì)算,需要1800個(gè)GPU(相當(dāng)于用1個(gè)GPU訓(xùn)練5年的時(shí)間)才能學(xué)會(huì)架構(gòu)。
地址:ai.googleblog.com/2017/11/automl-for-large-scale-image.html
Regularized Evolution for Image Classifier Architecture Search中的AmoebaNet。這一研究比上一個(gè)NASNet更耗費(fèi)計(jì)算力,需要3150個(gè)GPU(相當(dāng)于用1個(gè)GPU訓(xùn)練9年的時(shí)間)。AmoebaNet中包含從演化算法中訓(xùn)練來的單元,說明經(jīng)過進(jìn)化的結(jié)構(gòu)可以達(dá)到甚至超越人類水平和強(qiáng)化學(xué)習(xí)圖像分類器。fast.ai對此進(jìn)行了改進(jìn),學(xué)習(xí)進(jìn)程加快同時(shí)改變了訓(xùn)練過程中圖像的尺寸后,AmoebaNet目前是在單一機(jī)器上訓(xùn)練ImageNet最便宜的方法。
地址:arxiv.org/abs/1802.01548
Efficient Neural Architecture Search(ENAS):該方法比之前提到的兩種方法都更節(jié)省計(jì)算力,重要的是,它比標(biāo)準(zhǔn)的神經(jīng)架構(gòu)搜索便宜1000倍。在單一GPU上訓(xùn)練只花了16個(gè)小時(shí)。
地址:arxiv.org/pdf/1802.03268.pdf
什么是DARTS?
可微分的結(jié)構(gòu)搜索(differentiable architecture search)是最近由CMU和DeepMind的研究人員發(fā)布的一種方法,它假設(shè)候選架構(gòu)是連續(xù)而不是離散的,利用基于梯度的方法比黑箱搜索更有效。
為了學(xué)習(xí)CIFAR10上的結(jié)構(gòu),DARTS只需要4個(gè)GPU,大大提升了效率。雖然還需要進(jìn)一步研究,但這已經(jīng)為今后的研究指明了方向。
神經(jīng)架構(gòu)搜索有多有用?
在TensorFlow DevSummit上,杰夫·迪恩表示深度學(xué)習(xí)的一個(gè)重要部分正嘗試不同的結(jié)構(gòu)。這是他在演講中提到的唯一一個(gè)有關(guān)機(jī)器學(xué)習(xí)的觀點(diǎn)。
然而選擇模型只是復(fù)雜過程的一部分。大多數(shù)情況下,結(jié)構(gòu)選擇才是更難、更耗時(shí)或更重要的地方。目前,沒有證據(jù)表明每個(gè)新問題最好的方法是在自身結(jié)構(gòu)上建模。
像谷歌這樣致力于結(jié)構(gòu)設(shè)計(jì)和分享的機(jī)構(gòu)為我們提供了很重要的服務(wù)。但是基礎(chǔ)的結(jié)構(gòu)搜索方法只有一小部分研究者在基礎(chǔ)神經(jīng)架構(gòu)的設(shè)計(jì)上才需要使用到,我們可以直接用遷移學(xué)習(xí)得來的結(jié)構(gòu)。
除此之外還有什么方法能提高機(jī)器學(xué)習(xí)從業(yè)者的效率?
AutoML領(lǐng)域關(guān)注的核心問題即,如何讓模型選擇和超參數(shù)優(yōu)化自動(dòng)化?然而自動(dòng)化往往忽視了人類輸入的重要角色。而另一個(gè)重要問題是:人類如何與計(jì)算機(jī)合作,從而讓機(jī)器學(xué)習(xí)更有效呢?增強(qiáng)機(jī)器學(xué)習(xí)(augmented machine learning)是關(guān)注如何讓人與機(jī)器更好合作的話題,其中一個(gè)案例是Leslie Smith的leaning rate finder這篇論文,其中提到學(xué)習(xí)率是一個(gè)可以決定模型訓(xùn)練速度的超參數(shù),或者可以決定模型能否成功訓(xùn)練。學(xué)習(xí)速率查詢器可以讓人類很容易地找到一個(gè)良好的學(xué)習(xí)率,比AutoML更快。
學(xué)習(xí)速率和損失之間的關(guān)系
在對超參數(shù)自動(dòng)化的方法選擇上還有另一個(gè)問題:一些類別的模型運(yùn)用很廣泛,需要調(diào)整的參數(shù)很少,對超參數(shù)的改變并不敏感,這一點(diǎn)常被忽略。例如,隨機(jī)森林優(yōu)于梯度提升機(jī)器的地方就在于隨機(jī)森林更穩(wěn)定,GBM對超參數(shù)微小的變化就很敏感。結(jié)果自然隨機(jī)森林應(yīng)用的更廣泛。所以尋找能高效地改變超參數(shù)的方法將非常有用。
結(jié)語
現(xiàn)在我們對AutoML和神經(jīng)架構(gòu)搜索有了大致了解,在下一篇連載文章中,我們將近距離觀察谷歌的AutoML工具。
-
AI
+關(guān)注
關(guān)注
87文章
28877瀏覽量
266249 -
自動(dòng)化
+關(guān)注
關(guān)注
28文章
5386瀏覽量
78639 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8306瀏覽量
131848
原文標(biāo)題:揭秘AutoML和神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索,機(jī)器學(xué)習(xí)自動(dòng)化真能普及大眾嗎?
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論