Skip to content

值得您信賴的旅遊品牌 | 團體旅遊、自由行的專家‎

機場接送

Menu
  • 首頁
  • 旅遊天地
  • 裝潢設計
  • 環保清潔
  • 發燒車訊
Menu

自動網絡搜索(NAS)在語義分割上的應用(一)

Posted on 2021-01-072021-01-07 by admin

【摘要】本文簡單介紹了NAS的發展現況和在語義分割中的應用,並且詳細解讀了兩篇流行的work:DARTS和Auto-DeepLab。

自動網絡搜索

多數神經網絡結構都是基於一些成熟的backbone,如ResNet, MobileNet,稍作改進構建而成來完成不同任務。正因如此,深度神經網絡總被詬病為black-box,因為hyparameter是基於實驗求得而並非通過嚴謹的數學推導。所以,很多DNN研究人員將大量時間花在修改模型和實驗“調參”上面,而忽略novelty本身。許多教授戲稱這種現象為“graduate student descent”。

近兩年,學術界興起了“自動網絡搜索”取代人工設計網絡結構。2016年,Google Brain公開了他們的研究成果NASNet【1】,這是第一個用自動網絡搜索Neural Architecture Seach (NAS)完成的神經網絡,為深度學習打開了新局面。NASNet是由一系列operation(如depth separable conv, max pooling等)疊加而成。至於怎樣選擇operation,作者用強化學習(RL)的方法,用一個controller網絡隨機組合operations生成模塊,通過評估選擇最優模塊組成網絡結構。Google提供的雲上服務Cloud AutoML正是基於NAS方法,根據用戶上傳的數據自動搜索神經網絡再將結果輸出。迄今為止,國內外很多工業界和學術界的AI Lab都有NAS相關工作:Google Brain提出了NasNet, MNasNet和Nas-FPN,Google提出MobileNetv3,Auto-DeepLab和Dense Prediction Cell(DPC);MIT Han Song團隊提出ProxylessNet;Facebook提出FbNet;Baidu提出SETN;騰訊提出FPNAS;小米提出FairNAS;京東AI提出CAS;華為諾亞有提出P-DARTS等。通過各大實驗室對NAS的研究成果,似乎可以看出自動網絡搜索將會成為趨勢。

接下來我們簡單介紹一下NAS的流程,詳細內容可參考【2】。NAS的架構主要包含三部分:搜索空間Search Space,搜索策略Search Strategy和評估機制Performance Estimation(如下圖)。

  • 首先搜索空間會定義一些模塊(cell),operations(例如dilated conv 3×3),和宏觀網絡結構。cell是由若干個operation組合而成。通常來說,NAS會自動搜索出一些可以重複的cell,將cell按照設定的宏觀網絡結構堆疊起來形成network。Zoph et al.提出了兩種cell,normal cell和reduction cell【3】。Reduction cell有改變spatial resolution的功能。這兩種cell在現有的算法中最為常見。此外還有來自CAS網絡【4】的multi-scale cell,作用和ASPP類似可用作decoder。至於對宏觀網絡結構的設定,早期的工作會採用chained-structured,或者帶分支結構multi-branch例如ResNet和DenseNet帶有skip和shortcut。
  • 搜索策略在NAS中至關重要,因為它決定了下一步要選擇哪一個cell或者operation組成網絡結構。搜索的目的就是讓現有的網絡結構在unseen data上得到最好的效果。如前文提到,第一篇工作NASNet中用到了強化學習作為搜索策略。雖然實驗結果尚可,但強化學習耗時過長並且需要大量GPU資源。NASNet就是用幾百個GPU搜索了幾天才完成,這對於資源少的研究人員來說不可能完成。繼NASNet之後早期的工作多是基於RL完成搜索。隨着其他方法的研究,如random search, Bayesian optimization, Gradient-based, evolution algorithms,搜索時間在下降並且GPU使用量也在減少,使得NAS得以普及。感謝https://github.com/D-X-Y/Awesome-NAS 提供了搜索策略的調研。
  • 由於一個神經網絡通常有幾十甚至上百層,結構也很複雜,一個及時並有效的反饋對於減少搜索時間很有幫助。最簡單的方法是把訓練數據分成兩部分,train data用來訓練網絡結構,validation data用來評估當前搜索到的網絡結構。一般來說,一個好的評估機制要兼具速度和準確度,舉個例子,train data少則網絡結構訓練不到位,train data多則搜索時間過長。來自Freiburg大學的Elsken團隊發表了關於NAS的調研,裏面對於評估方法講的很詳細,請挪步【2】。

自動網絡搜索在語義分割上的應用

相比於目標檢測,語義分割可以更好的解析圖像,因為圖像上的每一個pixel都會被分類。所以語義分割可以完成目標檢測無法完成的任務,如自動駕駛的全景分割,醫療圖像診斷,衛星圖分割,背景摳圖和AR換裝等。過去的五年繼FCN之後,很多神經網絡在公開數據集上都有不錯的成績。隨着AI產品落地,對神經網絡性能的要求更為嚴格:在保證accuracy的前提下,在有限制的硬件資源運行並且提升inference速度。這為設計神經網絡增加了很大難度。所以NAS是一個很好的選擇,它可以避免通過大量調參實驗來決定最優網絡結構。在語義分割之前,NAS在圖像分類和目標檢測上均有成功的應用。我們總結了近兩年比較流行的NAS在語義分割上的工作。多數的語義分割的網絡都是encoder-decoder結構,在這裏我們對比了實際搜索的部分,搜索性能耗時和方法。由於每一個work都在不同實驗環境下進行,所以實驗結果沒有直接進行對比。

(1)第一篇將NAS應用於語義分割的工作來自Google DeepLab團隊,作者是Liang-Chieh Chen等一眾大佬。DeepLabv3+的準確度已經達到一定高度,繼而DeepLab團隊將研究方向轉移到了NAS上面。基於和DeepLab同樣的encoder-decoder結構, 在【5】工作中,作者將encoder結構固定,試圖搜索出一個更小的 ASPP,用到的搜索策略是random search。在Cityscapes達到82.7% mIoU,在PASCAL VOC 12上達到87.9%,結果尚可但搜索時間過慢,用370個GPU搜索一周才得到網絡,這也限制了該方法的普及。

(2)同樣來自DeepLab團隊,Auto-DeepLab【6】相比之前的工作在搜索效率上有顯著的提升。這都歸功於它gradient-based的搜索策略DARTS【9】。與上一篇相反,Auto-DeepLab的目標是搜索encoder,而decoder則採用ASPP。從實驗結果來看,Auto-DeepLab的準確度和DeepLabv3+相差不多,但是FLOPs和參數數量卻是DeepLabv3+的一半。後文我們會具體介紹DARTS和Auto-DeepLab。

(3)Customizable Architecture Search (CAS)【4】是來自京東AI Lab的工作。在搜索空間定義了三種cell,分別是normal cell,reduction cell和新提出的multi-scale cell。其中multi-scale cell是ASPP 的功能類似,所以CAS的搜索區間是針對全部網絡。在搜索策略上依然採用DARTS。值得一提的是,在搜索網絡的時候,CAS不僅考慮accuracy,還考慮了每個模塊的GPU time,CPU time,FLOPs和參數數量。這些屬性對於實時任務至關重要。所以CAS在Cityscapes上的準確度是72.3%,雖然沒有很高,但是在TitanXP GPU的速度fps達到108。

(4)來自Adeleide大學的Vladimir Nekrasov團隊在light weight模型上面做了大量工作,而最近也將研究重心轉到了NAS上面。在【7】中,作者採用RL的搜索策略搜索decoder。眾所周知RL非常耗時,所以作者採用知識蒸餾策略和Polyak Averaging方法結合提升搜索速度,而這正是本文的major contribution。

(5)最後一篇來自商湯發布在Artix的文章,採用圖神經網絡GCN作為搜索策略,試圖尋找cell之間最優的連接方式【8】。和CAS類似,在本文中每個模塊的性能如latency也在搜索評估時考慮進去。在Cityscape上GAS達到73.3%mIoU,在TitanXP GPU的速度是102fps。

簡單總結一下上述工作,我們可以發現NAS在語義分割上的應用還算成功,並且很多團隊已經在NAS上進行研究探索。尤其在DARTS類似的高效搜索策略提出后,個人研究者和小團隊也可以構建自己的NAS網絡,而不受制於GPU資源。

DARTS: Differentiable Architecture Search

通常來說搜索空間是一個離散的空間,在DARTS中【9】,作者將搜索空間定義成一個連續空間,這樣一來搜索到的每一個cell都是可導的,可以用stochastic gradient descent來優化。所以DARTS相比RL並不需要大量GPU資源和搜索時間。在實驗中,DARTS成功用在了CNN模型的圖像分類和RNN模型的language modelling任務上。感恩作者提供了源代碼 https://github.com/quark0/darts ,它可以為我們搭建自己NAS模型提供很好的基礎。

正如前文中提到,多數的NAS網絡會搜索不同類型的可重複的cell,然後將cell連接起來構成神經網絡。這個cell通常用directed acyclic graph(DAG)表示。一個DAG cell包含N個有順序的node,每一個node可以看成在它前面所有node的結合(就像feature map一樣是一個latent representation)。從node i 到node j的連接是某一種operation記作o(i,j). 每一個cell都有兩個input node和一個output node。下圖中是一個DARTS展示的reduction cell。我們可以看到cell k 有兩個input nodes 分別是c_{k-1}和c_{k-2} (來自cell k-1和cell k-2的output node),cell k包含了4個immediate nodes和一個output node c_{k} 。o(i,j)是邊緣上的max_pool_3x3,max_pool等。理論上從一個node到相鄰的node可以有很多種operation,所以搜索最優網絡結構也可以看成是選擇每一個邊上最佳的operation。

DARTS將每對node之間的每一個operation都賦予一個weight,最優解可以用softmax求得,也就是說有最大probability的path代表最優operation,這也是DARTS的核心部分。DARTS在搜索空間中定義了兩種cell,reduction cell和normal cell。宏觀網絡結構是固定的,作者採用了簡單的chained-structured,將reduction cell放在了網絡結構的1/3和2/3處。所以說在搜索的過程中,cell內部不斷更新而宏觀結構沒有變化。我們定義operation的參數為W,將cell中operation的weight記為Alpha。根據論文和source code,我們總結了DARTS的搜索流程如下圖。

網絡搜索的第一步是對模型結構,optimizer,loss進行初始化。文中定義了幾種operation,代碼中的定義在operation.OPS, 兩種cell在代碼中的定義是genotypes.PROMITIVES. 參數Alpha在代碼中定義為arch_parameters()={alphas.normal, alphas.reduce}. 在搜索過程中,train data被分成兩部分,train patch用來訓練網絡參數W而validation patch用來評估搜索到的網絡結構。在代碼中,搜索過程的核心部分在architect.step()。網絡搜索的目標函數就是讓validation在現有網絡的loss最小,文章中公式(3)給出了objective:

為了減少搜索時間,每一輪只用一個training patch去更新參數W計算train loss。在計算Alpha的時候涉及到二階求導,稍微複雜一點,但是論文和代碼都給了詳細解釋,這裏不贅述,代碼中architect._hession_vector_product是求二階導的實現。在更新W和Alpha之後,最優operation通過softmax來計算。文中保留了top-k probability的operation。W和Alpha不斷計算更新直到搜索過程結束。

文中進行了大量實驗,我們這裏只介紹一下在CIFAR-10數據上面進行的圖像分類任務。作者將DARTS與傳統人工設計的網絡DenseNet,和幾個其他常見的NAS網絡進行對比,如AmoeNet和ENet都是常被提及的。DARTS在準確度上優於其他所有算法,並且在搜索速度上明顯比RL快很多。由於結構簡單效果好,而且不需要大量GPU和搜索時間,DARTS已經被大量引用。

Auto-DeepLab: Hierarchical Neural Architecture Search for Semantic Image Segmentation

基於DARTS的結構,Google DeepLab團隊提出了Auto-DeepLab並發表在2019年CVPR上。在tensorflow deeplab官網上公布了nas backbone並且給出了可以訓練的模型結構,但是搜索過程並沒有公開。於是我們訓練了給出的nas網絡結構,在沒有任何pre-training的情況下與deeplab v3+進行對比。代碼參考 https://github.com/tensorflow/models/tree/master/research/deeplab 。

在DARTS中,宏觀網絡結構是提前定義的,而在Auto-DeepLab中宏觀網絡結構也是搜索的一部分。繼承自DeepLab v3+的encoder-decoder結構,Auto-DeepLab的目的是搜索Encoder代替現有的xception65,MobileNet等backbone,decoder採用ASPP。在搜索空間中定義了reduction cell,normal cell和一些operation。Reduction cell用來改變spatial resolution,使其變大兩倍,或不變,或變小兩倍。為了保證feature map的精度,Auto-DeepLab規定最多downsampling 32倍 (s=32)。下圖定義了宏觀網絡結構(左)和cell內部的結構(右)。

Auto-DeepLab定義了12個cell,而上圖(左)中前面兩個白色的node是固定的兩層為了縮小spatial resolution。如圖左灰色箭頭所示,正式搜索之後,每一個cell的位置都有多種cell類型可以選擇:可以來自於當前cell相同的spatial resolution的cell,也可以是比當前cell的spatial resolution大一倍或小一倍的cell。作者將這些空間路徑(灰色箭頭表示的路徑)也賦予一個weight,記作Beta。如圖右,每一個cell的輸出都是由相鄰spatial resolution的cell結合而成,而Beta的值可以理解成不同路徑的probability。為了更直觀,我們把圖右的三個cell分別用藍色,黃色和綠色標註,對應圖左的三個cell。與DARTS類似,我們將operation的parameters記作W,將cell內部operation的權重記作Alpha。所以搜索最優網絡結構,即迭代計算並更新W,Alpha和Beta。文中給出每一個cell的實際輸出為:

從上面公式可以看出,W和{Alpha,Beta}要分別計算和更新。所有的weight都是非負數。Alpha的計算方式依然是ArgMax,而計算Beta用了經典的貪心算法Viterbi算法。下圖給出的宏觀網絡結構是基於Cityscapes搜索到的結果,對應代碼中的backbone是[0,0,0,1,2,1,2,2,3,3,2,1], 数字代表downsample倍數。在模型中,每一個cell中的node由兩個路徑組成,如圖右。

文中用了三組開源數據PASCAL VOC 12, Cityscapes和ADE20k做了對比實驗。具體實驗參數設置和對比算法在論文中有詳細說明,這裏只對比和Deeplab v3+。Cityscapes訓練數據尺寸是[769×769],而PASCAL VOC 12和ADE20k訓練數據尺寸是[513×513]。一般來說,Auto-DeepLab和DeepLabv3+準確度相差無幾,但是速度上要快2.33倍,並且Auto-DeepLab可以從零開始訓練。

除了文中給出的實驗結果以外,我們在PASCAL VOC 12數據上從零開始訓練了Auto-DeepLab,用代碼中給出的模型結構,並且與DeepLabv3+(xception65)進行結果對比。但是並不是所有結果都能復現,分析原因大概是這樣:首先,上文中給出的模型結構是用Cityscapes數據集搜索得到,也許在PASCAL VOC 12上並不是最優解;其次沒有用ImageNet做pre-training,訓練環境也不同。我們在下面表格中對比了FLOPs, 參數數量, 在K80 GPU上面的fps和mIoU。

下圖中直觀對比了ground truth(第二列),deeplabv3+(第三列)和Auto-DeepLab-S(第四列)的分割結果。與上面的mIoU一致,DeepLabv3+的分割結果要比Auto-DeepLab更精準一些,尤其是在邊緣。對於簡單的圖像案例,兩者分割結果相差無幾,但是在較難的情況下,Auto-DeepLab會有很大誤差(在第三個案例中,Auto-DeepLab將女孩識別成狗)。

總結

本文簡單介紹了NAS的發展現況和在語義分割中的應用,並且詳細解讀了兩篇流行的work:DARTS和Auto-DeepLab。從整體實驗結果來看,還不能看出NAS的方法比傳統的模型有壓倒性優勢,尤其在準確度上。但是NAS給深度學習注入了新鮮的血液,為研究者提供了一種新的思路,並且還有很大的提升空間和待開發領域。也許人工設計網絡結構將會被自動網絡搜索取代。

翻譯或有誤差,請參考原文https://medium.com/@majingting2014/neural-architecture-search-on-semantic-segmentation-1801ee48d6c4

 

對這塊比較關注的同學可以移步繼續閱讀《自動網絡搜索(NAS)在語義分割上的應用(二)》

References

[1] Zoph, Barret, and Quoc V. Le. “Neural architecture search with reinforcement learning.” The International Conference on Learning Representations (ICLR) (2017)

[2] Elsken, Thomas, Jan Hendrik Metzen, and Frank Hutter. “Neural Architecture Search: A Survey.” Journal of Machine Learning Research 20.55 (2019): 1-21.

[3] Zoph, Barret, et al. “Learning transferable architectures for scalable image recognition.” Proceedings of the IEEE conference on computer vision and pattern recognition (CVPR). 2018.

[4] Zhang, Yiheng, et al. “Customizable Architecture Search for Semantic Segmentation.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2019.

[5] Chen, Liang-Chieh, et al. “Searching for efficient multi-scale architectures for dense image prediction.” Advances in Neural Information Processing Systems (NIPS). 2018.

[6] Liu, Chenxi, et al. “Auto-deeplab: Hierarchical neural architecture search for semantic image segmentation.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2019.

[7] Nekrasov, Vladimir, et al. “Fast neural architecture search of compact semantic segmentation models via auxiliary cells.” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). 2019.

[8] Lin, Peiwen, et al. “Graph-guided Architecture Search for Real-time Semantic Segmentation.” arXiv preprint arXiv:1909.06793 (2019).

[9] Liu, Hanxiao, Karen Simonyan, and Yiming Yang. “Darts: Differentiable architecture search.” The International Conference on Learning Representations (ICLR) (2019).

點擊關注,第一時間了解華為雲新鮮技術~

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※為什麼 USB CONNECTOR 是電子產業重要的元件?

※網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※台北網頁設計公司全省服務真心推薦

※想知道最厲害的網頁設計公司"嚨底家"!

※推薦評價好的iphone維修中心

好站推薦

  • 健康醫療 減重知識專區
  • 婚紗世界 婚紗攝影寫真網
  • 成人話題 未滿18請勿進入
  • 流行時尚 時下流行愛美情報
  • 理財資訊 當舖借貸信用卡各式理財方法
  • 生活情報 各行各業情報資訊
  • 科技資訊 工業電子3C產品
  • 網路資訊 新奇趣味爆笑內容
  • 美食分享 全台各式名產 伴手禮
  • 裝潢設計 買屋賣屋裝修一羅框
  • 視覺設計 T恤、團體服、制服、polo衫

近期文章

  • 聽說大家都在糾結這個問題…RX5、博越、GS4、瑞虎7怎麼選?
  • 這些5萬就能買到的超帥SUV!別告訴我你還沒關注…
  • 再不買真要漲價了…推薦這8款實用有面子的SUV回家過年
  • 17萬起買個性SUV,這款美系SUV是不是真的比奇駿更值得買?
  • 要便宜還要檔次?8萬元白菜價的合資三廂車隨便挑

標籤

USB CONNECTOR  一中街住宿 南投搬家公司費用 古典家具推薦 台中一中住宿 台中一中民宿 台中室內設計 台中室內設計公司 台中室內設計師 台中室內設計推薦 台中電動車 台北網頁設計 台東伴手禮 台東名產 地板施工 大圖輸出 如何寫文案 婚禮錄影 宜蘭民宿 家具工廠推薦 家具訂製工廠推薦 家具訂製推薦 實木地板 復刻家具推薦 新竹婚宴會館 木地板 木質地板 柚木地板 桃園機場接送 桃園自助婚紗 沙發修理 沙發換皮 海島型木地板 牛軋糖 租車 網站設計 網頁設計 網頁設計公司 超耐磨木地板 銷售文案 隱形鐵窗 電動車 馬賽克拼貼 馬賽克磁磚 馬賽克磚

彙整

  • 2021 年 1 月
  • 2020 年 12 月
  • 2020 年 11 月
  • 2020 年 10 月
  • 2020 年 9 月
  • 2020 年 8 月
  • 2020 年 7 月
  • 2020 年 6 月
  • 2020 年 5 月
  • 2020 年 4 月
  • 2020 年 3 月
  • 2020 年 2 月
  • 2020 年 1 月
  • 2019 年 12 月
  • 2019 年 11 月
  • 2019 年 10 月
  • 2019 年 9 月
  • 2019 年 8 月
  • 2019 年 7 月
  • 2019 年 6 月
  • 2019 年 5 月
  • 2019 年 4 月
  • 2019 年 3 月
  • 2019 年 2 月
  • 2019 年 1 月
  • 2018 年 12 月
©2021 值得您信賴的旅遊品牌 | 團體旅遊、自由行的專家‎ | Built using WordPress and Responsive Blogily theme by Superb