來源:https://pixabay.com/
本文將介紹今年於美國長灘舉辦的CVPR2019會議上展示的神經網絡架構搜索(NAS)領域的研究成果。原標題:Neural Architecture Search at CVPR 2019
作者 | Vladimir Nekrasov
編譯 | 林肯二百一十三(西安交通大學)
我相信,每個深度學習研究者和從業者都多多少少地考慮過在他們處理的具體問題上應該使用什麼樣的神經網絡架構。很多人都殫精竭慮地嘗試提出像AlexNet、VGG以及ResNet那樣的有效架構。因此,「博士生下降」也成了一個紅極一時的梗。(註:「博士生下降」英文為Grad Student Descent,簡單而言就是「找一個博士生,讓他不斷調參,直到算法工作」。這種說法歪曲自深度學習的Gradient Descent算法,僅作調侃)
現在呢,我很想驕傲地宣布——「天天調參的鬼日子結束了!」——但是還為時過早。手動調參尋找神經網絡架構依然是個有趣的工作,尤其是對於那些帶了很多學生的導師而言(開玩笑啦~)。
神經網絡架構搜索(NAS)——前言那麼問題來了,神經網絡架構搜索(NAS)究竟是什麼?為什麼我們要了解NAS呢?(這一部分是為了去年完全沒有跟進領域內進展的人準備的)
NAS的核心思想是使用搜索算法來發現用於解決我們的問題所需要的神經網絡結構。回到「博士生下降」的話題:假設你是個希望解決問題A的導師,你會讓你的學生來想一種該問題的最優架構——那麼,你的學生就是你的搜索算法(聽起來似乎更像奴隸?)。
如果你並不是那種泯滅人性的導師(當然也可能你就是那個學生),你可能會首先定義一種搜索空間,這種搜索空間包含定義神經網絡架構的基本構建模塊(block)。通常地,每一種配置字符串(configuration string)描述一種架構——比如說,給定三個層(分別用0、1、2表示)和兩種block(分別為A:1x1卷積和B:3x3卷積),那麼字符串「0A1A2B」表示「x->1x1卷積->1x1卷積->3x3卷積」的網絡結構。你可以天馬行空地憑想像定義這個搜索空間,但別忘了,搜索空間越大,你的搜索算法需要運行的迭代次數就越多,用到的GPU算力也就越多。
搜索算法有哪些可供我們選擇呢?早期的一種算法是進化搜索——網絡架構的種群(population,比如可以是隨機初始化的一些架構)基於適應度(或「收益」,通常即給定架構在特定問題上的驗證指標)不斷地被訓練和突變(mutate,比如對架構的某些部分進行混合)以達到好的驗證指標。另一種方案是基於強化學習,讓智能體(有時候稱作「控制器」)去發現網絡架構的最優配置。這種智能體通常是用循環神經網絡實現的,它的目標是尋找能夠獲得更高收益的神經架構。其他的搜索算法還包括基於梯度的優化(所有可能的架構組成一個巨大的圖,每條邊有一個可學習的實值,代表每個block被使用的概率)、貝葉斯優化(搜索空間由某種啟發函數貫穿,這種啟發函數可以是用於預測採樣模型準度的代理損失函數)等等。
圖註:NAS的高層表示。圖片來源:Elsken et. al
如果你對上述算法感興趣,我推薦閱讀Elsken等人的這篇綜述。他們還建立維護了一個網站,你可以在這裡找到最近的相關文章。
CVPR 2019上的NAS下面本文將目光轉向在CVPR 2019會議上登場的NAS相關工作。如果你只想看大體的總結,下表包含了這些工作的論文和代碼地址(前提是它開源)、它們使用的搜索算法、領域和需要的資源。如果這裡沒有涉及您的文章,可能是我的疏忽導致它被忽略了——請您及時指正。CVPR 2019的所有論文都可以在這裡找到。
宏觀總結 Auto-DeepLab:語義分割的分層神經架構搜索熟悉語義分割領域的研究者應該對DeepLab團隊都不陌生吧?他們不斷提出新的思路、新的模型,不斷推進語義分割模型的性能提升。這次,作者使用NAS來尋找語義分割問題的最佳模型。Auto-DeepLab:語義分割的分層神經架構搜索
本質上講,這篇工作是對DARTS的一種適應性改進。如果你不了解DARTS,下面是對它的一點簡單說明:DARTS(可微架構搜索,Differentiable Architecture Search)是一種基於梯度的隨機優化方法,它將所有可能的架構一次性初始化,並且在優化網絡權重參數的同時還優化混合概率(即模型選擇每一條邊的概率)。Auto-DeepLab的作者則更進一步:為了搜索適合語義分割的模型,作者還讓NAS算法去優化stride運算——也就是在網絡架構圖中的各處是要下採樣特徵圖,或是保持尺度不變,還是進行上採樣。使用一塊P100 GPU,作者運行神經架構搜索3天後得到了與DeepLab-v3+性能大致相當的網絡結構。
圖註:AutoDeepLab發現的一種架構。圖片來源:Liu et. al
有意思的是,作者並沒有將搜索到的網絡在ImageNet上進行預訓練,而是直接從零開始在CityScapes和ADE20K數據集上進行訓練的,只有對PASCAL VOC數據集使用了MS COCO進行訓練。作者在原文中提到:「我們認為PASCAL VOC 2012數據集太小了,用來從零開始訓練模型實在不夠。這種情況下,還是用ImageNet進行預訓練會更有效」。說實在的,要是能看到ImageNet預訓練對作者用的所有數據集上的效果就好了,比如說進行預訓練會不會讓模型在CityScapes數據集上也獲得更好的效果呢?
用單GPU四小時搜索出健壯的神經網絡架構這篇論文中,作者結合了ENAS和DARTS二者的最佳實踐,從而提出了GDAS(Gradient-based search using Differentiable Architecture Sampler)方法。DARTS的定義上文已經提到;ENAS是Pham et. al提出的一種基於強化學習的神經架構搜索方法,它在一開始同樣初始化了一個巨大的圖——但與DARTS在每個邊上添加權重的方式不同,ENAS使用基於強化學習的控制器來決定選擇哪一條路徑。
這裡,作者顯式地採取了一些路徑並進行優化。因為這個採樣是離散的,作者藉助了Gunbel採樣技巧來實現反向傳播。作者原文寫道:「我們在前向傳播時使用argmax函數……而在反向傳播時使用了softmax函數……」。總體上,該方法在用於圖像分類的CIFAR-10數據集和上用於語言建模的Penn Tree Bank (PTB)數據集上實現了快速搜索。
圖註:GDAS發現的網絡單元。圖片來源:Dong and Yang
GDAS的另一個加速訓練、節省內存的技巧是在前向傳播中直接使用argmax函數——使用了in-place後,只有被argmax選擇的一個索引處生成的梯度需要回傳。作者聲稱,使用batch訓練的其它層還是會得到梯度,因為每個batch中的樣本經過的路徑是不同的。
MnasNet:平臺感知的移動端神經網絡架構搜索這篇論文中,作者考慮的是NAS的一種重要應用——搜索適合行動裝置快速推斷場景的網絡架構。為此,作者提出一種多目標的優化方法——基於強化學習的控制器被訓練搜索一種不僅能得到高分、而且能夠在Google Pixel 1的CPU上短時間內響應的模型架構。作者遵循帕累託優化準則,即「如果模型能在不花費額外時間的條件下達到高準確率,或者在不降低準確率的條件下花費更少的時間,則該模型是帕累託最優的」。
圖註:MnasNet神經架構搜索方法概觀。圖片來源:Tan et. al
另外,為了保證模型在搜索空間中高效且可用,作者定義了一種多個層的「block」。每個「block」中,同一個層被重複N次——層的類型和重複次數是由強化學習控制器預測的。總體而言,MnasNet架構設計是受MobileNet-v2啟發的,因此也可以認為:MnasNet是使用強化學習對MobileNet-v2的微調。(不過這個「微調」有點太耗費計算資源啦!MnasNet花費了整整6912個"TPU×小時"!)
RENAS:強化進化神經網絡架構搜索RENAS的主要思路在於:使用可微的強化學習控制器來增強錦標賽選擇法的變異機制。
錦標賽選擇法首先會初始化一個由神經架構(即進化算法中的個體,individual)組成的種群(population)。每個神經架構個體被訓練之後,通過在驗證集上進行評估來確定它們的適應度(fitness)。之後,種群中適應度最強的個體被變異(mutate)——比如改變它的一些層或者運算——從而產生子代(child)。在RENAS論文中,作者添加的強化學習控制器定義了給定網絡如何進行變異。為了加速訓練過程,子代模型直接繼承了父代的模型參數。
圖註:使用強化學習變異的進化算法搜索。圖片來源:Chen et. al
NAS-FPN:搜索用於目標檢測的特徵金字塔架構這一篇論文則關注了NAS的另一種應用——自動化地改進目標檢測網絡。在過去的幾年裡,特徵金字塔網絡(FPN)幾乎成了所有高性能目標檢測網絡的標配。本質上講,FPN起到了對網絡主幹(編碼器)提取的特徵的逐步解碼的作用。NAS-FPN這篇論文的動機就是尋找一些方法來從原始的網絡主幹結構的各層上更好地結合多種尺度的信息。
為此,作者定義了」合併單元「(merging cell)的搜索空間——以多種尺度的特徵作為輸入,將這些特徵進行精化後作為輸出。在合併單元中,基於強化學習的控制器對兩個輸入層(可能尺度並不相同)、輸出尺度和融合方式(可以是求和,或是基於注意力的全局池化等)進行選擇。合併單元的輸出被添加到下採樣的池化層中,作為下一步選擇的選項之一。
圖註:合併單元的結構。圖片來源:Ghiasi et. al
作者表示,合併單元的設計使得「anytime detection」成為可能,因為多個模塊化的單元可以被堆疊在一起,前向傳播可能在其中任何一個之後停止。這樣,即便我們提前結束前向傳播(early exit)並用此時網絡的輸出層進行目標邊框回歸,該特徵圖依然能足夠使邊框回歸能夠有效地檢測出物體邊框。為了加速網絡搜索,作者使用了輸入尺度為512x512的、較輕量級的ResNet-10作為網絡主幹。
IRLAS:基於反向強化學習的神經架構搜索IRLAS的作者觀察發現:人們自行設計的網絡拓撲結構往往比自動化生成的那些結構更優雅,而這些結構同時定義著網絡的響應時間和內存消耗。因此,作者沒有顯式地設定資源消耗的約束,而是試圖促使生成的網絡拓撲儘可能地模仿某種經典網絡模型(如ResNet)。「模仿」這一部分是通過一個獎勵函數中的一個附加項來實現的。
圖註:IRLAS概觀。圖片來源:Guo et. al
我本人非常喜歡這種「提取已有網絡架構設計的精華從而更好地訓練NAS模型」的思想。如果作者能進一步得出一種方案使得NAS模型能夠借鑑多種經典模型(而不止一個),或許會更有意思呢。
使用輔助單元快速搜索小型語義分割模型王婆警告:我(原博文作者)也是這篇論文的合著作者之一,所以以下觀點可能有所偏頗哦~
傳統上,基於強化學習的NAS算法需要大量的運算(通常以「GPUx小時」計,或者「TPU-小時」)。儘管這些NAS算法在分類任務上對較小的「代理」數據集(比如CIFAR-10)還是有不錯的性能,但是在輸出較為「密集」的任務(如語義分割)上,暫時還沒有這種「代理」數據集可用。況且,訓練一個分割模型可比訓練分類模型耗費的時間和資源多多了。
正因如此,我們這篇文章專注於加速基於強化學習的語義分割神經架構搜索的內層循環——也就是對於採樣的網絡結構的訓練與評估。我們以一個預訓練的圖像分類器為基礎(這裡使用的是MobileNet-v2),只對它的解碼器部分進行搜索。為此,我們設計了一些加速收斂的技巧:1)兩階段訓練與早停(early stopping)。第一階段中,我們提前計算出編碼器的輸出,並只訓練解碼器。如果這一階段後的獎勵值比平均的獎勵低的話,就乾脆終止這次訓練;否則進入第二階段,以端到端的方式訓練整個網絡。2)我們藉助知識蒸餾和Polyak權重平均來加速解碼器部分的收斂。3)另外,我們還運用中繼監督優化——但不是簡單地使用單個網絡層來進行分割,而是使用強化學習控制器產生的模型結構對中繼分割器進行過參數化。我們推測,這種過參數化對於小型語義分割模型有以下幫助:a)它可以使網絡主幹的梯度更平滑,b)它使得對較淺的中間層的任務要求不那麼嚴苛。
圖註:作者發現的一種用於語義分割的模型。圖片來源:Nekrasov et. al
FBNet:使用可微NAS的高效硬體感知卷積網絡設計像上邊提到的一些工作一樣,FBNet的作者也是把搜索空間初始化為一個由不同的層組成的巨大的圖,並採用可微的隨機優化方法,輔以Gumbel採樣技巧進行搜索。除此之外,作者用了一個查詢表來估計生成的網絡通路上每一個塊運算花費的時間。與那些只搜索一兩種塊(單元)的NAS文章不同,作者在這裡定義了整個網絡的宏觀架構(宏觀結構空間)和每一層的候選塊(微觀結構空間),並對它們分別進行搜索。
圖註:FBNet搜索到的一些網絡架構。K代表卷積核大小,E代表放大倍率,G代表卷積分組的參數圖片來源:Wu et. al
FBNet的作者以Samsung Galaxy S8為目標設備,使用int8數據類型進行推斷。作者認為,以多種不同的設備為目標是不現實的,畢竟我們要搜索的是更好的針對特定設備的網絡(上文提到的查詢表也是針對特定設備的)。
可自定義的語義分割網絡架構搜索這篇文章的作者將DARTS面向語義分割進行了適應,並將搜索空間設計為三種單元——圖片分類裡常見的普通單元、縮小單元,以及受ASPP啟發而設計的多尺度單元。除了特定任務的損失函數外,算法的優化目標還加入了一個新的目標函數——「選擇特定操作的代價」。為了定義給定操作的這個「代價」值,作者提出了對「僅使用給定操作建立的單元」和「僅使用單一操作建立的單元」之間響應時間、參數數量或FLOP數的差距進行比較、衡量的方法。
圖註:基於資源的語義分割神經架構搜索。圖片來源:Zhang et. al
作者在搜索多尺度單元之前,首先搜索了包含普通單元和縮小單元的語義分割網絡主幹,再使用ImageNet對他們進行微調。意外的是,作者使用這樣簡單粗暴的估計方式依然能有效地找到小而準確的網絡架構。
彩蛋下邊還有兩篇文章,雖然這兩篇並非與NAS緊密相關,但或許對某些人來講還是有點意思的。
這篇文章的作者試圖解決的是多模態融合問題——也就是說,給定多個固定模態的網絡,去尋找連接他們的隱藏層的最佳方式,從而對於特定的任務達到最佳的性能。舉例而言,一種常見的策略是晚融合(late-fusion)——只有每個網絡最後一層的輸出被融合在一起(比如求和,連接等等)。作者將多模態融合問題也定義為神經架構搜索,它不是從零開始對整個網絡結構進行的搜索,而是僅僅尋找已經訓練好的網絡的連接方式。
為此,作者使用了基於序列模型的優化方法(SMBO)。在SMBO中,往往會用一個單獨的、稱作「surrogate」的函數來估計採樣到的架構的準確率。不一樣的是,搜索空間是從一個比較小的架構集合開始的,「surrogate」函數被預訓練後,網絡架構的尺寸才被逐漸變大。傳統NAS框架中這種方法的一個經典案例是漸進式NAS。
通過上述方法,作者找到了一些在MM-IMDB數據集上用於預測電影流派和電影簡介的多模態融合架構,以及在NTU RGB-D數據集上用於根據姿態和RGB信息進行行為識別的架構。
在神經生物學中有這樣一種理論:對於相似的物體,人腦會產生相似的神經響應。基於這種理論,作者推測:具有與人腦相似的激活機制的神經網絡,也應該有更強的泛化能力。因此,作者提出了一種「與人腦模型的相似度」(HMS)的評價指標,並用這種指標來對人體的功能性磁共振成像(fMRI)和神經網絡的激活行為進行比對。在這裡,作者考慮的網絡稱作PredNet,可用於非監督視頻預測,即給定當前幀、預測之後可能發生的內容。
為了定義HMS,作者建立了一種「表示性不相似程度矩陣」(RDM,representational dissimilarity matrix)來量化兩個系統(這裡是網絡與人腦)對一對刺激的響應。給定兩個RDM,HMS被定義為二者的斯皮爾曼等級相關係數。
圖註:HMS指標的計算流。圖片來源:Blanchard et. al
值得關注的一點是,作者發現HMS與驗證集精確度有很強的相關性——也就是說,HMS也許能夠作為用於尋找具有較強泛化性能的網絡並提早停止的指標。另外,要計算HMS,該方法只需要92次刺激。如果能看到這一研究方向能讓生物學理論與人工神經網絡碰撞產生怎樣的火花,那就有意思啦!
該論文的實現代碼已開源:
https://github.com/CVRL/human-model-similarity
結論儘管說「CVPR 2019是NAS重大突破的一場盛會」有點言過其實,但能見識到這麼多工作在克服了對大量GPU/TPU算力的依賴的同時又能達到與之相當的性能,實在是激(yi)動(ke)人(sai)心(ting)呀!我很期待看到NAS的研究將會取得怎樣的進展,以及NAS的眾多研究者能夠想到怎樣的技巧呢。
總結了這麼多,我還想提及一點:從零開始搜索用於圖像以外的分類任務的網絡架構依然是個巨大的挑戰。今年我們見識到了一些神經架構搜索方法有基於強化學習改進的(如NAS-FPN、FastDenseNAS)、基於可微優化改進的(如AutoDeepLab、CAS)和從一開始就預定義巨大的網絡結構的(類似於DARTS的那些),而這些都或多或少地做出了一些讓步——比如將搜索空間限定在有限數量的一些層(基於強化學習的那些),或在搜索開始時預定義巨大的結構(基於DARTS的)。我不禁想到了我們在2015年左右見到的語義分割的進展——那時候的那些工作,大多數都是基於圖像分類器的改進的(見Long et. al的開創性工作——FCN)。而從那之後,針對各種具體任務的各種模型逐漸變得越來越成熟、多樣化(如ASPP、PSP、RefineNet等等),進而推動了這個領域的蓬勃發展。我相信,不久之後,我們也會見識到更多為具體任務量身定做的NAS模型,而不只是圖像分類和語言建模這些基本任務。
非常感謝Chen Hao閱讀本文初版草稿並提出建設性的意見和建議。
本文撰寫於2019年7月5日。
本文編輯:Pita
英語原文:https://drsleep.github.io/NAS-at-CVPR-2019/
想要繼續查看該篇文章相關連結和參考文獻?
點擊【CVPR 2019 神經網絡架構搜索進展綜述】即可訪問!
福利大放送——滿滿的乾貨課程免費送!
「好玩的Python:從數據挖掘到深度學習」該課程涵蓋了從Python入門到CV、NLP實踐等內容,是非常不錯的深度學習入門課程,共計9節32課時,總長度約為13個小時。。
課程頁面:https://ai.yanxishe.com/page/domesticCourse/37
「計算機視覺基礎入門課程」本課程主要介紹深度學習在計算機視覺方向的算法與應用,涵蓋了計算機視覺的歷史與整個課程規劃、CNN的模型原理與訓練技巧、計算機視覺的應用案例等,適合對計算機視覺感興趣的新人。
課程頁面:https://ai.yanxishe.com/page/domesticCourse/46
現AI研習社將兩門課程免費開放給社區認證用戶,只要您在認證時在備註框裡填寫「Python」,待認證通過後,即可獲得該課程全部解鎖權限。心動不如行動噢~
認證方式:https://ai.yanxishe.com/page/blogDetail/13999
雷鋒網(公眾號:雷鋒網)雷鋒網雷鋒網
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。