0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

揭秘谷歌AutoML背后的漸進(jìn)式搜索技術(shù)

5b9O_deeplearni ? 來源:未知 ? 作者:李倩 ? 2018-03-30 16:44 ? 次閱讀

谷歌的AutoML一經(jīng)提出,就引起了學(xué)界及業(yè)界的廣泛關(guān)注,然而其簡易操作的背后,則是強大算力支持下的大量科研工作,其中之一便是漸進(jìn)式網(wǎng)絡(luò)結(jié)構(gòu)搜索技術(shù)。本文中,劉晨曦博士將為大家揭開AutoML的面紗,看他如何通過迭代自學(xué)習(xí)的方式,積跬步以至千里,尋找到最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu),從而將萬繁歸于至簡。

文末,大講堂特別提供文中提到所有文章和代碼的下載鏈接。

本文中,將介紹的漸進(jìn)式神經(jīng)網(wǎng)絡(luò)搜索算法,是和谷歌大腦、谷歌云、谷歌研究院的很多研究員一同完成的。

其中,PNASNet-5在ImageNet上的代碼和模型已經(jīng)發(fā)布在TensorFlow Slim:

首先介紹AutoML,它是谷歌內(nèi)部一個宏大的目標(biāo),是創(chuàng)造一種機器學(xué)習(xí)算法,使得它能夠最好地服務(wù)于用戶提供的數(shù)據(jù),而在這過程中有盡可能少的人類參與。

從起初的AlexNet到Inception,ResNet,Inception-ResNet,機器在圖像分類問題上已經(jīng)取得了很好的成績,那么我們?yōu)槭裁催€想使用AutoML算法來研究圖像分類呢?

首先,如果可以通過自動搜索,找到比人類設(shè)計的最好算法還好的算法,豈不是很酷?其次,從更加實用的角度出發(fā),圖像分類問題是大家學(xué)習(xí)得很多的問題,如果在該問題上取得突破,那么突破其他問題的可能性也大大增加。

接下來介紹Neural Architecture Search(NAS)問題,它是AutoML一個具體的分支。

Neural Architecture Search基本遵循這樣一個循環(huán):首先,基于一些策略規(guī)則創(chuàng)造簡單的網(wǎng)絡(luò),然后對它訓(xùn)練并在一些驗證集上進(jìn)行測試,最后根據(jù)網(wǎng)絡(luò)性能的反饋來優(yōu)化這些策略規(guī)則,基于這些優(yōu)化后的策略來對網(wǎng)絡(luò)不斷進(jìn)行迭代更新。

之前的NAS工作可以大致分為兩方面,首先是強化學(xué)習(xí),在神經(jīng)結(jié)構(gòu)搜索中需要選擇很多的元素,如輸入層和層參數(shù)(比如選擇核為3還是5的卷積操作)的設(shè)置,設(shè)計整個神經(jīng)網(wǎng)絡(luò)的過程可以看作一系列的動作,動作的獎賞就是在驗證集上的分類準(zhǔn)確率。通過不斷對動作更新,使智能體學(xué)習(xí)到越來越好的網(wǎng)絡(luò)結(jié)構(gòu),這樣強化學(xué)習(xí)和NAS就聯(lián)系起來了。

另一方面NAS是一些進(jìn)化算法,這一大類方法的主要思路是,用一串?dāng)?shù)定義一個神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。如圖是ICCV2017謝凌曦博士的工作,他用一串二進(jìn)制碼定義一種規(guī)則來表達(dá)特定的神經(jīng)網(wǎng)絡(luò)連接方式,最開始的碼是隨機的,從這些點出發(fā)可以做一些突變,甚至在兩個數(shù)串(擁有較高驗證準(zhǔn)確率)之間做突變,經(jīng)過一段時間就可以提供更好的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

而目前方法最大的問題在于,它對算力的要求特別高。以強化學(xué)習(xí)為例,谷歌大腦最開始提出的強化學(xué)習(xí)方法,用了800塊K40GPU,訓(xùn)練了28天;后來2017年7月提出的改進(jìn)版,用了500塊P100GPU訓(xùn)練了4天,而且這是在非常小的CIFAR-10數(shù)據(jù)集上做的,該數(shù)據(jù)集只有5萬張30*30的圖。即便這樣小的數(shù)據(jù)集就需要如此大的算力支撐,也就是說想要繼續(xù)擴(kuò)展NAS,用強化學(xué)習(xí)的方法是不現(xiàn)實的。

為加速NAS過程,我們提出了一個新的方法,謂之“漸進(jìn)式的神經(jīng)結(jié)構(gòu)搜索”。它既不是基于強化學(xué)習(xí)的,也不屬于進(jìn)化算法。在介紹具體算法前,首先來理解這里的搜索空間。

首先搜索可重復(fù)的cells(可以看作是Residual block),一旦找到一個cell,就可以自由地選擇其疊加方式,形成一個完整的網(wǎng)絡(luò)。這樣的策略在Residual Network中已經(jīng)出現(xiàn)多次。當(dāng)確定了cell structure后如上右圖將其疊加成一個完整的網(wǎng)絡(luò),以CIFAR-10網(wǎng)絡(luò)舉例,在兩個stride2的cell之間,stride1的cell疊加次數(shù)都為N,而Residual網(wǎng)絡(luò)中不同的groups疊加的次數(shù)不同。

一個網(wǎng)絡(luò)通常由這三個要素來確定:cell的結(jié)構(gòu),cell重復(fù)的次數(shù)N,每一個cell中的卷積核個數(shù)F,為了控制網(wǎng)絡(luò)的復(fù)雜度,N和F通常經(jīng)手工設(shè)計。可以理解為,N控制網(wǎng)絡(luò)的深度,F(xiàn)控制網(wǎng)絡(luò)的寬度。

接下來主要討論如何確定cell,在我們的搜索空間中,一個cell由5個block組成,每個block是一個(I_1,I_2,O_1,O_2,C)的元組。以下將具體介紹。

如圖,網(wǎng)絡(luò)輸入的搜索空間如圖中灰色矩形所示,I_1,I_2對應(yīng)圖中hidden layer A和hidden layer B,I即指輸入(Input)。這兩個灰塊可以選擇不同的隱含空間,cell c block b可能的輸入定義為:

前一個cell的輸出:H_B^(c-1)

前一個的前一個的cell的輸出:H_B^(c-2)

在當(dāng)前cell的當(dāng)前block的所有之前輸出:{H_1^c,…,H_(b-1)^c }

比如右邊的block是這個cell里的第一個block,在選用第二個block的時候它就可以選取第一個block產(chǎn)生的new hidden layer,也就是說,第二個block的輸入涵蓋了第一個block的輸出。這樣的設(shè)計為了允許一定的泛化性,可以刻畫Residual Network,DenseNet之類的網(wǎng)絡(luò)。

O_1,O_2對應(yīng)圖中的黃色方框,這其實是對剛才選取的隱含層的一元運算符,它包含了3*3的卷積,5*5的卷積,7*7的卷積,identity,3*3的均值池化,3*3的最大值池化,3*3的加寬池化以及1*7后接7*1的卷積。讓數(shù)據(jù)在搜索空間中學(xué)習(xí)找到最適合的操作。

綠色框代表C這個運算,它把由I_1,I_2產(chǎn)生的O_1,O_2通過一定的方式組合到一起,產(chǎn)生一個新的隱含空間。這個C操作是按位加和的操作。

在這個搜索空間下,盡可能有效地學(xué)習(xí)到一個性能較好的cell,這樣就能疊加起來成為一個完整的網(wǎng)絡(luò)。而剛才包含5個block的cell的搜索空間是非常大的,如上圖等式所示。而之前介紹的無論是強化學(xué)習(xí)還是基于進(jìn)化算法,都是直接搜索,這在搜索開始是非常迷茫的,那么如果不直接在那個空間進(jìn)行搜索,而是漸進(jìn)式地進(jìn)行如下操作會怎樣呢:

首先訓(xùn)練所有的1-block cells,只有256個這樣的cell。雖然可以通過枚舉的方式,但性能會很低,因為只有1個block的cell不如包含5個block的cell有效。但是,這部分性能信息可以為是否繼續(xù)采用這個cell的信號提供輔助,基于1-block cell的表現(xiàn),我們可以嘗試發(fā)現(xiàn)最有希望的2-block cell,并對其進(jìn)行訓(xùn)練,如此迭代,即可構(gòu)建整個網(wǎng)絡(luò)。

可以概括為一個簡單的算法,訓(xùn)練和評估當(dāng)前有b個blocks的cells,然后根據(jù)其中最好的K個cells來枚舉b+1個blocks,然后去訓(xùn)練和評估。

而實際上,這個算法是不能真正奏效的,因為,對于一個合理的K(如〖10〗^2),需要訓(xùn)練的子網(wǎng)絡(luò)就高達(dá)〖10〗^5個,此運算量已經(jīng)超過了以往的方法。因此,我們提出了一個準(zhǔn)確率預(yù)測器,它可以不用訓(xùn)練和測試,而是只通過觀察數(shù)串,就能評估一個模型是否是有潛力的。

我們使用了一個LSTM網(wǎng)絡(luò)來做準(zhǔn)確率預(yù)測器,之所以使用它,是因為在不同的block中可以使用同一個預(yù)測器。

這里給出完整的Progressive Neural Architecture Search的算法。首先訓(xùn)練并評估當(dāng)前b個blocks的K個cells,然后通過這些數(shù)據(jù)的表現(xiàn)來更新準(zhǔn)確率預(yù)測器,可以使準(zhǔn)確率預(yù)測器更精確,借助預(yù)測器識別K個最有可能的b+1個block。這樣學(xué)出來的結(jié)果可能不是最正確的,但卻是一個合理的trade-off結(jié)果。

舉個例子 ,最開始b=1,Q1時有256個網(wǎng)絡(luò),對它全部訓(xùn)練測試,然后用這K個數(shù)據(jù)點訓(xùn)練準(zhǔn)確率預(yù)測器。枚舉Q1的所有后代M1,并把這個準(zhǔn)確率預(yù)測器運用在M1的每個元素上,選出其中最好的K個,即得到了b=2時的集合Q2。然后將b=2的網(wǎng)絡(luò)進(jìn)行訓(xùn)練測試,經(jīng)過上述相同的過程,可以得到Q3。Q3中最好的模型即為PNAS返回的結(jié)果。

實驗分為兩個過程,一個是在搜索過程中,另一個是在搜索之后。在搜索過程中,我們使用CIFAR-10這個相對較小的數(shù)據(jù)集,每一個子網(wǎng)絡(luò)訓(xùn)練的epoch都設(shè)置為20,K取為256,N為2,F(xiàn)為24,這些參數(shù)都是相對較小的。在搜索之后,我們在CIFAR-10和ImageNet上進(jìn)行測試,使用了更長的epochs,更大的N,F(xiàn)。我們這個工作的目的是加速NAS的過程,下面是實驗對比。

接下來對比PNAS和之前的NAS方法,藍(lán)色的點是PNAS,紅色的是NAS,五個藍(lán)色的chunk對應(yīng)b=1,2,3,4。每個chunk里有256個點,隨著b的增加,進(jìn)到越來越復(fù)雜的搜索空間??梢钥闯鱿啾扔诩t色的點,藍(lán)色的點上漲更加快也更加緊致。右邊是一個放大的圖。

如圖是最后學(xué)習(xí)到的網(wǎng)絡(luò)結(jié)構(gòu),可以看出,最開始學(xué)習(xí)到的是separable和max convolution的組合,后面漸漸學(xué)習(xí)到更多的組合。

PNASNet-5是我們在搜索的過程中找到的最好的網(wǎng)絡(luò)結(jié)構(gòu),它由5個block組成。

這是我們在CIFAR-10上的對比結(jié)果,RL表示算法基于強化學(xué)習(xí),EA表示基于遺傳算法,我們的算法SMBO即sequential model based optimization,Error指最好模型的top-1誤分率。第一組基于強化學(xué)習(xí)的方法中最好的是NASNet-A,它的錯誤率是3.41%,所用參數(shù)個數(shù)為3.3M;第二組是基于遺傳算法的方法,它是DeepMind在2018年ICLR發(fā)表的工作,它最好的錯誤率是3.63%,所用參數(shù)個數(shù)為61.3M,而第三組是我們的方法,在錯誤率為3.41的條件下,我們所用參數(shù)僅為3.2M,并且提速很多。

這張圖更直觀地展示了如何達(dá)到了與NASNet-A可比的性能。

為了驗證準(zhǔn)確率預(yù)測器是否是信息豐富的,我們做了一個隨機的對比實驗,如果不用progressive neural architecture search,在每一個number of b的時候用隨機來代替。結(jié)果表明隨機的策略性能要差很多,尤其是最右,如果在每一個b的取值,都訓(xùn)練256個模型的話,以準(zhǔn)確率大于0.9為統(tǒng)計指標(biāo),隨機法只有三十多個,而PNAS有二百多個符合。

最后是在ImageNet數(shù)據(jù)集上的對比,首先介紹在輕量神經(jīng)網(wǎng)絡(luò)的應(yīng)用比對。我們控制Mult-Adds不超過600M,在這一條件下,PNASNet-5相比MobileNet-224,ShuffleNet(2x),和NASNet-A有最高的top1和top5的準(zhǔn)確率。

此外,對不加限制的模型進(jìn)行比對,在實驗過程中盡量和NASNet-A的參數(shù)量保持一致,最后的top1準(zhǔn)確率達(dá)到了82.9%。

總結(jié)一下,本次報告中介紹的工作中最關(guān)鍵的幾個點:大多數(shù)現(xiàn)存的神經(jīng)網(wǎng)絡(luò)搜索方法都有很高的算力需求,由此產(chǎn)生高昂的時間代價,而我們試圖加速這個過程。思路的核心在于,將cells從簡單到復(fù)雜推進(jìn),加之比NASNet-A更緊致的搜索空間,PNAS找到了一個可比的cell,只用了1280個而不是20000個子模型。這使得AutoML將可以用到更多有挑戰(zhàn)的數(shù)據(jù)集上。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 谷歌
    +關(guān)注

    關(guān)注

    27

    文章

    6128

    瀏覽量

    104952
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4734

    瀏覽量

    100420

原文標(biāo)題:跬步至千里:揭秘谷歌AutoML背后的漸進(jìn)式搜索技術(shù)

文章出處:【微信號:deeplearningclass,微信公眾號:深度學(xué)習(xí)大講堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    漸進(jìn)式神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索技術(shù)

    我們提出一種學(xué)習(xí)卷積神經(jīng)網(wǎng)絡(luò)(CNN)結(jié)構(gòu)的新方法,該方法比現(xiàn)有的基于強化學(xué)習(xí)和進(jìn)化算法的技術(shù)更有效。使用了基于序列模型的優(yōu)化(SMBO)策略,在這種策略中,按照增加的復(fù)雜性對結(jié)構(gòu)進(jìn)行搜索,同時學(xué)習(xí)代理模型(surrogate model)來引導(dǎo)在結(jié)構(gòu)空間中的
    的頭像 發(fā)表于 08-03 09:32 ?5391次閱讀

    原文分享-谷歌

    受怕。  谷歌有著不同的技術(shù)軌跡……它先做系統(tǒng)。這并不令人感到意外:搜索引擎的前端用戶體驗,至少在1998年時非常的簡單,單一輸入框再加一個搜索按鈕的HTML頁面?! ?/div>
    發(fā)表于 07-19 15:42

    5G的背后技術(shù)揭秘

    將比4G提高10倍左右,只需要幾秒即可下載一部高清電影,能夠滿足消費者對虛擬現(xiàn)實、超高清視頻等更高的網(wǎng)絡(luò)體驗需求,另一方面,安全性上,5G具有更高的可靠性,更低的時延,能夠滿足智能制造、自動駕駛等行業(yè)應(yīng)用的特定需求,拓寬融合產(chǎn)業(yè)的發(fā)展空間。那么,如此厲害的第五代移動通信技術(shù),背后
    發(fā)表于 07-16 07:00

    AutoML和神經(jīng)架構(gòu)搜索介紹

    AutoMl及NAS概述:更有效地設(shè)計神經(jīng)網(wǎng)絡(luò)模型工具
    發(fā)表于 09-04 06:37

    【動畫】EMC電磁兼容,電動車背后的玄學(xué)?揭秘!

    【動畫】EMC電磁兼容,電動車背后的玄學(xué)?揭秘
    發(fā)表于 06-30 13:32

    基于SIMD的漸進(jìn)式網(wǎng)絡(luò)編碼的高效實現(xiàn)

    Intel Pentium 系列以后的CPU 中增加了SIMD 擴(kuò)展指令集,利用這些指令可以顯著提高需要處理大量數(shù)據(jù)運算的軟件的效率。本文采用漸進(jìn)式網(wǎng)絡(luò)編碼算法,應(yīng)用預(yù)查表的方法和SSE3 并行查表
    發(fā)表于 12-30 14:16 ?10次下載

    拆解報告:三星SGH-J750,漸進(jìn)式開發(fā)策略的范例

    拆解報告:三星SGH-J750,漸進(jìn)式開發(fā)策略的范例 本期的拆解對象是三星公司的SGH-J750手機,該產(chǎn)品是反映蜂窩電話市場背后快速短暫的OEM外包決策、ASIC開發(fā)策略和入門方
    發(fā)表于 02-01 10:11 ?761次閱讀

    什么是神經(jīng)架構(gòu)搜索?機器學(xué)習(xí)自動化真能普及大眾嗎?

    到底什么是神經(jīng)架構(gòu)搜索?這是讓機器學(xué)習(xí)普及的關(guān)鍵嗎?這篇文章將重點解決這一問題。而在下篇文章中,我們會詳細(xì)了解谷歌AutoML。神經(jīng)架構(gòu)搜索Au
    的頭像 發(fā)表于 07-19 15:36 ?5608次閱讀
    什么是神經(jīng)架構(gòu)<b class='flag-5'>搜索</b>?機器學(xué)習(xí)自動化真能普及大眾嗎?

    詳細(xì)講解谷歌AutoML

    的詳情頁面,我們得知Cloud AutoML Vision依靠兩種核心技術(shù):遷移學(xué)習(xí)和神經(jīng)架構(gòu)搜索。由于在上一篇文章中我們已經(jīng)解釋過神經(jīng)架構(gòu)搜索,現(xiàn)在我們重點關(guān)注遷移學(xué)習(xí),看看它是如何
    的頭像 發(fā)表于 07-26 09:29 ?5575次閱讀

    人工智能革命的領(lǐng)軍人物 谷歌AutoML幕后的傳奇英雄

    提及谷歌大腦、seq2seq、AutoML,許多人已是耳熟能詳。在成功的背后,定是有許多研究人員的默默付出。而Quoc Le就是其中一位,堪稱谷歌真正的“隱藏人物”、幕后英雄!他,是真
    的頭像 發(fā)表于 08-13 14:11 ?3388次閱讀
    人工智能革命的領(lǐng)軍人物 <b class='flag-5'>谷歌</b><b class='flag-5'>AutoML</b>幕后的傳奇英雄

    AutoML新書:AutoML系統(tǒng)背后的基礎(chǔ)知識

    傳統(tǒng)上,術(shù)語AutoML用于描述模型選擇和/或超參數(shù)優(yōu)化的自動化方法。這些方法適用于許多類型的算法,例如隨機森林,梯度提升機器(gradient boosting machines),神經(jīng)網(wǎng)絡(luò)等
    的頭像 發(fā)表于 10-18 09:50 ?5066次閱讀

    AutoML又一利器來了,谷歌宣布開源AdaNet(附教程)

    關(guān)鍵詞:AutoML , AdaNet , 集成學(xué)習(xí) , 機器學(xué)習(xí) , 神經(jīng)網(wǎng)絡(luò) 來源:新智元 今天,谷歌宣布開源AdaNet,這是一個輕量級的基于TensorFlow的框架,可以在最少的專家干預(yù)
    發(fā)表于 10-31 17:43 ?281次閱讀

    未來可期之PWA漸進(jìn)式Web應(yīng)用

    作者 | 極鏈科技Video++前端Team子昂整理 | 包包前端技術(shù)這幾年發(fā)展迅速,其中就有PWA,全名Progressive Web APP即漸進(jìn)式Web應(yīng)用程序,在2016年,Google I
    的頭像 發(fā)表于 07-29 18:27 ?944次閱讀
    未來可期之PWA<b class='flag-5'>漸進(jìn)式</b>Web應(yīng)用

    谷歌AutoML應(yīng)用于Transformer架構(gòu),翻譯結(jié)果飆升!

    為了探索AutoML在序列域中的應(yīng)用是否能夠取得的成功,谷歌的研究團(tuán)隊在進(jìn)行基于進(jìn)化的神經(jīng)架構(gòu)搜索(NAS)之后,使用了翻譯作為一般的序列任務(wù)的代理,并找到了Evolved Transformer這一新的Transformer架
    的頭像 發(fā)表于 06-16 11:29 ?2991次閱讀

    5G改變社會?區(qū)分利益群體訴求, 漸進(jìn)式推進(jìn)5G的落地

    “5G改變社會”,在很大程度上也是對社會上各行業(yè)利益格局的重新調(diào)整,這不是一個單純的技術(shù)進(jìn)步的過程,而是融合社會、經(jīng)濟(jì)、文化等各方面因素,需要各方面配合協(xié)同推進(jìn),千行百業(yè)用5G不能急功近利,它是一個漸進(jìn)式的過程。
    的頭像 發(fā)表于 08-19 15:46 ?2647次閱讀