ICLR2020|商湯提出新目標檢測NAS方法:算力重分配(CRNAS)
- 2020 年 2 月 10 日
- 筆記
作者:Jeff Liang(梁豐)
https://zhuanlan.zhihu.com/p/100010060
本文已由作者授權,未經允許,不得二次轉載
介紹一下我在商湯科技&悉尼大學AutoML組ICLR2020最新文章,文章也會分享一些我對NAS的一些淺顯的個人看法,希望能夠對大家有所啟發。
《Computation Reallocation for Object Detection》(CRNAS)
Author: Feng Liang, Chen Lin, Ronghao Guo, Ming Sun, Wei Wu, Junjie Yan, Wanli Ouyang
鏈接:https://arxiv.org/abs/1912.11234
Why is CRNAS ? (Motivation)
在今年7月正式決定要做檢測NAS時,當時學界已經有了一些很不錯的檢測NAS文章,如DetNAS[1],NAS-FPN[2],NAS-FCOS[3],對於檢測的各個組件(backbone, neck, head)都已經有相關的研究。既然占坑是沒有機會了,那不如就去思考已有的工作還有上面可以改進的,為此,我們換了一個研究的視角,從檢測這個問題本身去考慮NAS。
那檢測的問題在哪呢?做過檢測的應該都會想到一個重要方面物體的尺度(Scale),關於檢測的尺度有非常多優秀的工作,詳細了解可以參考[4]。在檢測中,往往會直接將分類網絡,如Res50拿過來做提取特徵的主幹網絡(backbone),但是這麼直接應用過來是不合適的,參考DetNet[5]。我們更進一步分析了這個Gap的可能的一大原因是兩個任務的data相差太大。對Res50分類而言,ImageNet輸入大小是224*224,但是對於檢測而言,拿COCO為例,輸入可能到800*1333,而且還需要去handle各個尺度的物體。那麼我們如何才能設計(搜索)一個適合於檢測的backbone呢?
這個時候,我們將網絡的有效感受野ERF[6]與網絡算力分配模式聯繫了起來。在Faster RCNN + FPN這一經典baseline中,我們希望FPN的各層有合適能力去檢測對應大小的物體(Anchor Size)。當我們畫出R50-FPN的各層的ERF時,發現對於P3而言(小物體),ERF挺大有冗餘,但對於P5而言(大物體),ERF又不夠有點稀疏,見下圖Figure 1右上角。這也就是直接應用Res50作為backbone的問題,經過我們的stage的重分配之後,可以明顯看到各層FPN有更加平衡的ERF,保證了最後的性能。

那通過什麼方式可能改變算力分配,進而改變ERF影響最後結果呢?我們提出了兩種方向,在不同分辨率(feature resolution)和不同的採樣位置(spatial position)進行算力分配。我們做了大量的試驗,從輕量級的MobileNetV2到重量級的ResNeXt101,都獲得了穩定的漲點。我們搜索出來的模型也有非常好的可遷移性,可以遷移到其他的neck(NAS-FPN),其他的數據VOC,其他的任務實例分割(Mask RCNN)。
What is CRNAS ? (Approach)
為了進行算力重分配,我們構建了一個兩級搜索來配合這個龐大的搜索空間。我們先進行stage的搜索,然後進行spatial的搜索。簡單來說,先搜索各個stage的block number,再搜索各個位置的dilated conv的rate,因為dilated conv通過改變採樣點的稀疏程度,可以改變網絡的感受野。
1.Stage reallocation across different feature resolution
考慮到不同stage的block計算量大部分情況是一樣的(因為downsample往往會帶來channel數的翻倍),我們利用One-shot NAS[7]的方式構建超圖,當超圖訓練完成後,我們去測試各種組合的性能,從其中挑選中最好的組合。我們也設計了可以重複利用的超圖,也就是你訓練了一個超圖之後,我們可以從中挑選出這個系列中任何計算量下最好的模型,如Res18到Res101。

2. Operation reallocation across spatial position
在得到stage的結果之後,我們利用dilated conv來完成不同位置稀疏的採樣。與第1步一樣,我們也是利用One-shot NAS[7]的方式構建超圖,但是最後evaluate的方式不是EA,而是一種貪心的算法,具體的可以參考本文和本組另外一篇文章PCNAS[8]。

How is CRNAS ? (Experiments & Results)
從結果上面來看,經過我們的CRNAS,所有的模型在COCO上均有1.5-1.9 mAP左右的提升,而且這些提升都沒有帶來任何的計算量增長,在文章中也有很多的analysis和ablation study,在這就不再贅述。

我們搜索出的模型有非常好的可遷移性,可以遷移到其他的neck(NAS-FPN),其他的數據VOC,其他的任務實例分割(Mask RCNN)。

最後來理解一下搜索出的模型,在我們搜索的不同類型的網絡結構中,我們都發現了一個有趣的趨勢,就是CRNAS趨向於將更多的block以及更多的dilated conv堆疊在網絡的deep stage。這與主圖Figure 1是遙相呼應的,更一步驗證了直接的採用分類網絡作為backbone不太合適。並且這與結果中,APl的增長遠大於APs的現象也是一致的。

Future NAS.
去年的ICLR2019,有DARTS[9],ProxylessNAS[10]這些非常不錯搜索方法的文章。今年的則更多的是對NAS的詮釋與理解,以及在各個task上的應用,參考 ICLR2020 NAS收錄。個人拙見,對NAS的研究一方面可以去研究NAS的核心問題,比如結構與參數,參數與性能的關係,這個可能涉及到神經網絡或者優化的本質問題。一方面可以將NAS看成一個booster,去對各個任務進行具體任務痛點的分析,採用NAS方法進一步利用已有的資源提升性能。
最後的最後,給我們組打一個廣告(重要)
商湯研究院AutoML組,在NAS網絡結構搜索,自動化訓練策略等方面均有不錯的研究。兩年時間裏,團隊發表18NIPS一篇,19CVPR一篇,19ICCV兩篇,19NIPS一篇,20ICLR一篇,20CVPR三篇在投,在工程側,團隊維護automl相關的工具鏈,對各個業務算法進行automl賦能。本組長期招聘優秀實習生與全職員工,大組長的主頁在這Ming sun(https://msunming.github.io/),指導老師是悉尼大學的歐陽萬里老師,歡迎聯繫組長Chen Lin([email protected]),也可以聯繫我[email protected]
謝謝大家!
[1] Chen, Yukang, et al. "Detnas: Neural architecture search on object detection."arXiv preprint arXiv:1903.10979(2019).
[2] Ghiasi, Golnaz, Tsung-Yi Lin, and Quoc V. Le. "Nas-fpn: Learning scalable feature pyramid architecture for object detection." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.
[3] Wang, Ning, et al. "NAS-FCOS: Fast Neural Architecture Search for Object Detection."arXiv preprint arXiv:1906.04423(2019).
[4] Zou, Zhengxia, et al. "Object Detection in 20 Years: A Survey."arXiv preprint arXiv:1905.05055(2019).
[5] Li, Zeming, et al. "Detnet: A backbone network for object detection."arXiv preprint arXiv:1804.06215(2018).
[6] Luo, Wenjie, et al. "Understanding the effective receptive field in deep convolutional neural networks."Advances in neural information processing systems. 2016.
[7] Guo, Zichao, et al. "Single path one-shot neural architecture search with uniform sampling."arXiv preprint arXiv:1904.00420(2019).
[8] Li, Xiang, et al. "Improving One-shot NAS by Suppressing the Posterior Fading."arXiv preprint arXiv:1910.02543(2019).
[9] Liu, Hanxiao, Karen Simonyan, and Yiming Yang. "Darts: Differentiable architecture search." arXiv preprint arXiv:1806.09055 (2018).
[10] Cai, Han, Ligeng Zhu, and Song Han. "Proxylessnas: Direct neural architecture search on target task and hardware."arXiv preprint arXiv:1812.00332(2018).