DenseNAS:密集連接搜索空間下的高靈活度網絡結構搜索

2020-12-11 雷鋒網

雷鋒網 AI 科技評論按:近年來,網絡結構搜索(NAS)在自動化設計神經網絡結構方面獲得了較大的成功,也成為模型結構優化領域不可忽視的重要研究課題。NAS 不僅減輕了人們設計、調優模型結構的重重負擔,而且相較於人工設計的網絡結構,搜索出的模型性能有了進一步提升。

最近,地平線-華中科技大學計算機視覺聯合實驗室提出了一個新穎的 Differentiable NAS 方法——DenseNAS, 該方法可以搜索網絡結構中每個 block 的寬度和對應的空間解析度。本文將會從簡介、對於網絡規模搜索的思路、實現方法以及實驗結果等方面詮釋 DenseNAS 這一新的網絡結構搜索方法。本文已獲得地平線公眾號許可進行轉載。

論文地址:https://arxiv.org/abs/1906.09607

代碼地址:https://github.com/JaminFong/DenseNAS

DenseNAS 簡介

NAS 極大推進了神經網絡結構設計的發展,然而很多以往的工作依然需要很大的計算代價。最近 Differentiable NAS 通過在連續空間上構建一個包含所有要搜索結構的搜索空間(super network)極大的減少了搜索代價,但事實上,很少有Differentiable的方法可以搜索網絡結構的寬度(即通道數),因為按照傳統Differentiable NAS的方法,將不同寬度的結構集成到一個 super network 裡面很難實現。在本論文中,我們提出了一個新穎的 DifferentiableNAS 的方法——DenseNAS,該方法可以搜索網絡結構中每個 block 的寬度和對應的空間解析度。我們通過構建一個密集連接的搜索空間來實現該目的。在我們設計的搜索空間中,擁有不同寬度和空間解析度的block之間相互連接,搜索過程中優化block之間的轉移概率從而選取一個最優路徑。DenseNAS 使得網絡結構搜索的靈活性更強,以寬度搜索為出發點,同時可以搜索網絡結構下採樣的位置和全局深度(不僅限於每個block中的層數,block的數量也會被搜索)。在 ImageNet 上,DenseNAS 得到的模型以較低的 latency 取得了 75.9% 的精度,整個搜索過程在 4 塊 GPU 上僅用了 23 個小時。

DenseNAS 以其更高的靈活性應用潛力也更大,可以用於特定場景數據的結構搜索、特定性能和速度需求的搜索以及特定設備的結構部署,因為其在搜索空間上的彈性更大,也可以用於對 scale 敏感的方向,如檢測、分割等任務。

NAS搜索元素的梳理

設計神經網絡結構是深度學習中非常重要的一個領域,近年來 NAS 在自動設計神經網絡方面取得了很大的成功。很多 NAS 方法產生的模型結構與人工設計的結構相比都體現出更優的性能。目前在諸如分類、分割和檢測等各方向 NAS 均有進展。NAS 的方法不僅能夠提升模型的性能,另一方面還能夠減輕人們設計、調優模型結構的負擔。

模型結構設計過程中可以搜索的元素越多,相應工程師的負擔就越小。哪些元素能夠被搜索又取決於搜索空間如何設計。在以往的工作中,操作(operation)類型的搜素已經實現的較好,但是搜索網絡的規模(寬度和深度)就沒有那麼直接。基於增強學習(RL)或者進化算法(EA)的 NAS 方法能夠比較容易的搜索寬度、深度,因為他們的搜索空間在一個離散的空間中,但是這類方法往往需要消耗非常大的計算代價。最近 Differential 和 one-shot 的方法能夠用極少的搜索代價來取得高性能的網絡結構,但是網絡規模的搜索卻不太容易處理。這類方法的搜索依賴於一個包含所有可能結構的超大網絡(super network),網絡規模的搜索需要將不同規模的結構全部整合到 super network 裡面。目前深度搜索通過在每一層的候選項裡面增加直連(identity connection)操作來實現,但寬度的搜索依然不容易處理。

DenseNAS對於網絡規模搜索的思路

深度和寬度的設定往往對結構性能產生很大的影響,特別是通常微小的寬度改變都可能造成模型大小爆炸式的增長,現在的搜索方法中寬度通常由人提前設定好,這需要模型結構方面專家很強的經驗。我們旨在解決基於 Differentiable NAS 的寬度搜索問題,從而提出了 DenseNAS 的方法。我們的方法構建了一個密集連接的搜索空間,並將搜索空間映射到連續可操作的空間。不同於 DenseNet,我們的搜索過程會選擇一條最佳的寬度增長路徑,最終只有一部分 block 會被選中並且最終結構中的 block 之間不會再有連接。在搜索空間中每個 block 對應不同的寬度和空間解析度,從而不僅寬度會被搜索,進行下採樣的位置和全局的深度(block內層數+block的數量)都會被搜索,這使得整個搜索的過程更加靈活。

方法介紹

1.密集連接搜索空間的構建

我們將整個搜索空間劃分為幾個層次:層(layer)、塊(block)、網絡(network)。

每個 layer 包含各種操作候選項,候選操作基於 MBConv,同時也包含 skip connection 用來做深度搜索。

每個 block 由層組成,一個 block 被劃分為兩個部分頭層(head layers)和堆疊層(stacking layers)。我們對每個 block 設定一個寬度和對應的空間解析度。對於頭層來說,其輸入來源於前幾個 block 不同通道數和空間解析度的數據。頭層是並行的,將所有輸入數據轉換到相同通道數和空間解析度;堆疊層是串行的,每層被設定在相同通道數和解析度下,並且每層的操作可搜索。

不同於以往的工作,block 的數量固定,我們的搜索空間包含更多不同寬度的 block ,最終只有一部分被選取,這使得搜索的自由度更大。整個 network 包含幾個 stage,每個 stage 對應一個範圍的寬度和固定的空間解析度。網絡中 block 的寬度從頭到尾逐步增長,每個 block 都會連向其後繼的幾個 block。


2.搜索空間的連續性鬆弛

對於 layer 層次,每個候選操作被賦予一個結構參數,layer 的輸出由所有候選操作輸出的加權和得到:


對於 block 層次,每個 block 的數據會輸出到其後繼的幾個 block,每條輸出的路徑同樣會被賦予一個結構參數,並通過 softmax 歸一化為輸出概率。每個 block 會接受前繼幾個 block 的輸出數據,在 head layers 部分,會對來自不同 block 的數據利用路徑的概率值進行加權求和:


3.搜索算法

整個搜索過程被分為兩個階段,第一階段只有 operation 的權重參數被優化;第二階段 operation 的權重參數和結構參數按照 epoch 交替優化。當整個搜索過程結束後,我們利用結構參數來導出最終的結構。每一層的操作將選擇結構權重最大的候選項;在 network 層面,我們利用 Viterbi 算法來選擇整個傳輸概率最大的路徑,僅有一部分 block 被選中。

搜索過程中我們加入了多目標優化,latency 被作為次優化目標,通過查表的方法被優化。

參數優化過程中我們通過概率採樣 path 來進行加速。對於 operation 的權重參數,採樣 path 的優化方法不僅可以起到加速、減少顯存消耗的作用,還可以在一定程度上降低不同結構 operation 之間的耦合效應。

實驗結果

DenseNAS 在 ImageNet 上搜索的結果如下表所示。我們設置 GPU 上的 latency 為次優化目標,DenseNAS 搜索得到的模型在低 latency 下取得了優良的精度。在同等latency的設定下,DenseNAS 的精度遠高於人工設計的 MobileNet 模型。和 NASNet-A、AmoebaNet-A 和 DARTS 等經典的 NAS 模型相比,DenseNAS 模型精度更高,FLOPs 和 latency 更小。在搜索時間上 DenseNAS 僅在 4 塊 GPU 上花費 23 小時(92 GPU hours)。和 Proxyless、FBNet 相比,我們的寬度均為自動搜索,並取得了卓越的模型性能。

DenseNAS 進一步在不同程度 latency 優化下搜索模型,在各個 latency 設定和需求下,都能得到性能優越的模型結構,均要遠好於固定寬度/block 搜索和人工設計的模型。

DenseNAS 搜索得到的模型結構如下圖所示:


關於作者

方傑民 & 孫玉柱,地平線平臺與技術部算法研發二部算法實習生(mentor:張騫 & 李源),主要研究方向為網絡結構搜索、模型結構優化。該項目完成於他們實習期間。他們於華中科技大學電子信息與通信學院人工智慧研究所研究生在讀,師從劉文予教授和王興剛副教授

雷鋒網(公眾號:雷鋒網) AI 科技評論

雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • CVPR 2020|解放工程師,DenseNAS 讓結構搜索更靈活
    神經網絡的規模設計(深度和寬度)往往對結構的性能起著很大的作用,最近很多工作也通過人為調整寬度來獲取更優的性能,但寬度的調整仍然需要較大的人為先驗以及大量的試驗。DenseNAS的提出則旨在實現高靈活度的網絡結構搜索。
  • 港中文、MIT 聯合工作:利用NAS搜索針對對抗攻擊的魯棒神經網絡結構
    作者 | 楊宇喆論文連結:https://openaccess.thecvf.com/content_CVPR_2020/papers/Guo_When_NAS_Meets_Robustness_In_Search_of_Robust_Architectures_Against_CVPR_2020_paper.pdf源碼地址
  • CVPR 2019 神經網絡架構搜索進展綜述
    如果你並不是那種泯滅人性的導師(當然也可能你就是那個學生),你可能會首先定義一種搜索空間,這種搜索空間包含定義神經網絡架構的基本構建模塊(block)。Auto-DeepLab的作者則更進一步:為了搜索適合語義分割的模型,作者還讓NAS算法去優化stride運算——也就是在網絡架構圖中的各處是要下採樣特徵圖,或是保持尺度不變,還是進行上採樣。使用一塊P100 GPU,作者運行神經架構搜索3天後得到了與DeepLab-v3+性能大致相當的網絡結構。
  • ICCV 2019|四小時搜索NN結構,廈大提出快速NAS檢索方法
    圖一:神經網絡結構檢索如圖一顯示,NAS 由三部分組成:搜索空間,搜索策略和性能評估:傳統的 NAS 算法在搜索空間中採樣神經網絡結構並估計性能,然後輸入到搜索策略算法中進行更新,一直迭代至收斂。儘管取得了顯著進步,但傳統的 NAS 方法仍然受到密集計算和內存成本的限制。
  • 網絡拓撲兩部曲——搜索定位
    信息數位化的社會,面對大量寬泛的信息,如何能快速有效的搜索到關鍵的信息,顯得尤為重要。網絡拓撲也是如此,隨著網絡規模的不斷擴大,複雜性的不斷增加!如何有效地利用好企業IT資源,實現穩定的網絡支持和網絡效益一直是網絡管理者備感棘手的問題。網絡管理成本隨網絡設備的更替與增多而過快增長。當網絡結構異常複雜,用戶的網絡拓撲很難在一個屏幕上展現或者很難找到所關心的網絡拓撲中的某個關鍵設備。
  • 神經結構搜索在機器翻譯中的應用
    1、背景近年來,深度學習在圖像和語言處理領域應用得越來越廣泛,但是性能優異的網絡都是人為根據大量的經驗去精心設計的,於是基於機器自己設計的神經結構搜索成了最近熱門的一個研究課題。相較於圖像識別任務,機器翻譯任務目前最先進基於注意力機制的模型結構更複雜,單個模型訓練的時間更長,比如相同設備下,在英德14任務上訓練一個搜索出的模型需要10個小時,但是對於圖像分類CIFAR-10任務使用代理技術只需要兩個小時[3]。因此在搜索空間和搜索的策略上都與圖像分類領域有著較大差異。
  • 谷歌大腦重磅研究:神經結構搜索發現全新特徵金字塔架構,超越Mask...
    特徵金字塔網絡(FPN)是產生用於目標檢測的金字塔特徵表示的典型模型架構之一。該方法採用通常用於圖像分類的主幹模型,通過自頂向下的連接和橫向連接,將主幹模型特徵層中的相鄰兩層按順序組合,從而構建特徵金字塔。設計特徵金字塔結構的挑戰在於其巨大的設計空間。組合來自不同尺度的特徵的可能連接的數量隨層數呈指數增長。
  • 什麼是神經網絡架構搜索?
    儘管用於NAS的搜索空間通常較大,而且涵蓋了控制神經網絡架構的方方面面,但是底層問題與超參數優化所解決的問題相同:在搜索空間內,找到在目標任務上表現良好的一組配置。 因此,我們將NAS視為超參數優化中的子問題。
  • 超參數的自動搜索
    optimization,對於深度學習說,超參數主要可為兩類:前者的自動調優仍是HO的範疇,而後者的自動調優一般稱為網絡架構搜索(Neural Architecture Search,NAS)定義搜索空間,然後通過搜索策略找出候選網絡結構,對它們進行評估,根據反饋進行下一輪的搜索搜索空間定義基本是和DNN的發展相應。
  • 萬字解讀商湯科技ICLR2019論文:隨機神經網絡結構搜索
    這並不是商湯科技第一次在頂會上發表 NAS 相關論文,2018年,商湯在 CVPR 上發表了一篇關於 NAS 的論文《深度增強學習自動網絡結構設計》,提出了一種基於強化學習的網絡結構自動設計算法,通過「網絡塊」的設計思想,讓搜索空間大大降低,並且使設計的網絡具有非常強的可遷移性。
  • 谷歌大腦提出NAS-FPN:一種學會自動架構搜索的特徵金字塔網絡
    其中自下而上的路徑是用於提取特徵的常用卷積網絡,空間解析度自下而上地下降。當空間解析度下降,且檢測到更高層的結構時,每層的語義值增加。設計特徵金字塔架構的挑戰在於其巨大的設計空間。組合不同尺度的可能連接數量隨著網絡層數的增加呈指數級增長。最近,神經架構搜索算法在巨大的搜索空間中有效地發現了用於圖像分類的高性能架構。為了實現這個領域的結果,Quoc V.
  • 雞生蛋與蛋生雞,縱覽神經架構搜索方法
    從谷歌漸進式的架構搜索到 CMU 的可微架構搜索,利用神經網絡自動搭建不同的神經網絡架構已經受到廣泛的關注。最近弗萊堡大學的研究者發表了一篇論文縱覽不同的神經架構搜索方法,他們從神經網絡的搜索空間、搜索策略以及性能評估策略等三個方向探討了不同的思路與方法。
  • 科學家提出多自由度網絡架構協同搜索新方法
    基於梯度更新的可微分網絡架構搜索算法在顯著降低搜索開銷的情況下,能夠從巨大的架構空間中搜索到有效的網絡架構。但由於可微分網絡架構搜索中超網絡權重共享、單路徑採樣和寬度粗粒度離散性的搜索空間,搜索到的網絡架構很難同時達到準確性和資源約束上的最優。可微分網絡架構搜索仍有很多問題亟待解決。
  • 爭鳴網絡人立方搜索 比人肉搜索更囧更強大(圖)
    正當人肉搜索是否入刑法還在爭論不休時,一款更囧(jiǒng)更強大的搜尋引擎——人立方搜索驚現江湖,在瞬間為你理出一張「關係網」,是將惡搞進行到底,還是發揮其獨到的搜索功能,輸入你的名字,就會出現你的社會關係,一場網絡江湖的搜索大戰拉開序幕。
  • ICML 2020|提升神經網絡架構搜索穩定性,UCLA提出新型NAS算法
    可微網絡架構搜索(DARTS)能夠大幅縮短搜索時間,但是其穩定性受到質疑。隨著搜索進行,DARTS 生成的網絡架構性能會逐漸變差。最終生成的結構甚至全是跳過連接(skip connection),沒有任何卷積操作。
  • AI|神經架構搜索(NAS)簡要介紹
    傳統的方法遇到的問題主要有:結構編碼方式無法代表複雜的網絡結構搜索空間,編碼空間過大導致這些搜索算法無法收斂,深度學習模型訓練時間太長導致黑箱優化方法的計算效率降低等。總而言之,這個問題和研究思路早在90年代已經被很多學者研究過,但是新的時代使這個問題面臨新的挑戰,當然就需要重新研究一些方法來解決。
  • 今日Paper|神經網絡結構搜索;視覺目標;人物識別;視頻3D人體姿態...
    目錄基於進化算法和權值共享的神經網絡結構搜索檢測視頻中關注的視覺目標包含狀態信息的弱監督學習方法進行人物識別基於解剖學感知的視頻3D人體姿態估計RandLA-Net:一種新型的大規模點雲語義分割框架基於進化算法和權值共享的神經網絡結構搜索論文名稱:CARS: Continuous Evolution for Efficient Neural Architecture Search作者:Zhaohui發表時間
  • Noisy DARTS:含注入噪聲的可微分神經網絡搜索
    目前 NAS 方法已經存在非常多,其中 DARTS [2] 方法,即可微分結構搜索(Differentiable Architecture Search),是格外引起廣大研究從業人員關注的一種方法。針對每層神經網絡不同的操作,DARTS 為每種操作分配權重,然後在向後梯度傳遞的時候更新這些權重,最後對這些權重採用 softmax 方法選擇出唯一路徑。
  • 語義分割領域開山之作:Google提出用神經網絡搜索實現語義分割
    基於 NAS 的圖像分類遷移到高解析度的圖像處理(語義分割、目標識別、實例分割)有很大的挑戰:(1)神經網絡的搜索空間和基本運算單元有本質不同。(2)架構搜索必須固有地在高解析度圖像上運行,因此不能實現從低解析度圖像訓練模型遷移到高解析度圖像。論文首次嘗試將元學習應用於密集圖像預測(本人理解就是像素級圖像分割)。
  • 微信6.1搜索附近餐館,連接一切
    微信新版本將可能把「搜索附近的餐館」作為一個獨立的二級入口與「搜索附近的人」相併列於「發現」之中,試想一下,這對於線下餐館來說會是多麼強大的一個流量入口!對於線下餐館來說,微信早已經開始培養和教育他們在微信中進行信息展示、優化運營流程。比如,微信不斷推出服務號高級群發接口、微信支付、微信卡券、接入智能硬體等功能,這都是希望幫助包括餐館在內的線下商戶通過網際網路的方式革新傳統的運營模式。