EI盤古研究分享【CVPR2022】自監督預訓練下的神經網絡架構搜索算法DATA
1. 問題提出
Contrastive learning是近兩年關注度十分高的大規模無標簽數據下的預訓練方式,遷移到分類任務上雖然還沒有超過有監督的ImageNet-pretrain,但是檢測,分割這種密集預測下游任務中已經有超出有監督預訓練的表現。當我們把自監督預訓練落地到下游時,分類,檢測,分割不同任務,點,邊,云端不同硬件往往需要不同的模型,由于自監督的downstream-agnostic,需要我們根據具體場景提前選好模型,然后針對完全不同的模型分別做一次自監督預訓練,這個過程中有兩個痛點:
小模型預訓練后在下游上的性能遠低于其進行有監督預訓練后的表現(如圖1)
訓練成本較高。對比學習預訓練畢竟是無監督預訓練,監督信號沒有那么明確,網絡收斂一般較慢(以MoCo v2 [1] 為例,常規setting一般為200 epoch,但是完全收斂一般需要800 epoch,是常規有監督預訓練的八倍。)
為了解決上述痛點,我們引入神經網絡架構搜索(NAS)到自監督訓練當中,將NAS中的超網訓練,自監督預訓練,自蒸餾結合,三者相輔相成,很好的解決了我們上述的問題。
圖1. 小模型自監督預訓練后在ImageNet上的性能表現
2. 具體過程
2.1 問題初探
針對上面痛點,我們首先想到了在NAS領域的超網訓練(BigNAS[2],OFA[3], etc.)。我們借鑒BigNAS形式進行直接的嘗試(OFA的pipeline過于冗長,整個過程不夠簡潔,我們嘗試后棄用),看在對比學習這種較弱的監督信號下是否也能夠一樣訓練出一個可裁剪出數十萬個小模型的超網。 為了快速驗證方法的可行性,我們采用ImageNet-10% 作為訓練集進行200 epoch的訓練,然后進行linear evaluation,實驗結果如下表所示:
表1. 超網訓練和MoCo v2結合前后R50性能對比
可以看到實驗結果并不理想,相比于單獨的resnet50訓練,采用超網訓練后提取出的resnet50 進行linear evaluation的結果要低兩個多點。我們分析原因主要是出在由于網絡寬度深度處于不斷變化,讓EMA update的那個branch并不夠穩定。與此同時,我們注意到Dino[4]把對比學習formulate成了一個teacher-student的蒸餾形式,ReSSL[5]和SEED[6] 又分別用完全相同的proxy task 完整自監督預訓練和自監督knowledge distillation。從其中我們受到啟發,將不進行梯度更新的那個branch formulate成一個穩定的teacher,它的網絡結構保持為梯度更新branch最大的形式,達到穩定監督信號的同時又帶有自監督蒸餾以促進更好的子網訓練,于是我們得到了如下的實驗結果:
表2. 固定EMA更新分支模型結構超網下R50與之前模型性能比較
可以看到效果比較明顯, 從超網中提取出的resnet50 在linear evaluation上的表現已經超過了單獨的resnet50 0.9% acc,這里我們實現了。并且最令我們興奮的是由于自蒸餾的加持,超網中提取出的小模型表現性能十分優異,遠超小模型單獨進行預訓練后的模型表現(見圖4)。
2.2 新的問題
在我們成功訓練了可以裁剪成數十萬涵蓋很大FLOPs范圍不同子網的超網之后,這看起來是很令人興奮的一件事。但是進一步發現,相比于supervised NAS中的超網訓練之后,搜索只需要耗費很少的代價,這里的超網想要最終搜索出使用性能表現優異的子網還有著不小的代價。因為有監督訓練完的超網提取出的不同子網只需要在驗證集上進行inference,根據metric選取top 1即可,但是自監督預訓練過后的數十萬網絡并沒有metric去挑選出合適的子網,需要我們把這些預訓練子網都重新在下游train一遍,再在下游驗證集上進行inference選取top 1。目前計算機視覺領域的預訓練還沒有像NLP領域中的預訓練發揮出同樣的作用,預訓練任務和下游任務還是存在著一個較大的gap,預訓練模型往往只是作為一個好的初始化進行訓練,這樣來看挑選子網的過程花費讓人難以接受,為了盡可能找到好的子網,需要的代價過于龐大。 為此這里遇到一個新的問題——“我們怎么才能以盡可能少的代價在數萬個預訓練好的網絡中選取最好的那個”
3. 重新思考
遇到問題,我們首先去搜索一下之前相關論文,看下別人有沒有遇到類似的問題看能不能從中收到啟發,經過一番檢索,發現UnNAS[7] 是第一篇嘗試如何從無標簽的情況下選取最優網絡的相關方法,這篇文章的motivation更多的關注在無標簽上而不是關注在訓練成本上,但是文中claim的觀點給了我們很大的啟示——”已經預訓練過的模型,本身就包含有很多模型相關的信息在里面“,我們似乎可以不經過下游的有監督微調就可以給這個模型將會有的表現做出一些判斷,但可惜的是對比學習預訓練不像旋轉預測,上色,解字謎這種自監督任務一樣有明顯的metric。
在21年,OpenAI release 了兩個 大數據集下表現出驚艷性能的兩個多模態大模型——CLIP,DALL·E,與此同時越來越多的研究者注意到了大模型的潛力,在如今數據規模下,似乎大模型可以帶來無限的可能性,對于我們這些學校的實驗室,肯定是沒辦法參與那些有錢大廠們玩的科研,但是神經網絡當今發展的趨勢卻讓我們突然意識到了一個事——大模型似乎總是好的?!
和最大的越像越好的無標簽搜索
基于以上的思考,我們做出一個假設——“這么多可裁剪出的預訓練子網,哪個和最大的teacher網絡越像,哪個越可能是在下游finetune有更好表現的網絡“。為此我們提出讓子網在對應的下游數據集上進行inference,通過獲取feature map和最大的teacher網絡推理得到的feature map的相似度作為子網搜索的metric。我們在此基礎上更進一步思考了一下,根據具體下游任務finetune時pretarined backbone最直接用到的輸出feature map進行相似度計算(比如下游為FasterRCNN-FPN, 則選取C2~C5 feature map,下游為PSPnet + auxiliary head 的語義分割模型,則選取C4~C5)似乎是一個更加合理的選擇。為此,在對應下游數據集上,根據下游任務用到的模型結構選取對應的feature map計算相似度就是我們最終的metric,這個metric也正對應了我們文章的domain-aware and task-aware。到這里從超網訓練到最終的子網選取,我們整個完整的pipeline 就完成了(如下圖3)。接下來就是機器拉滿來驗證我們idea的有效性了。
圖3. 整個算法的完整管線圖
5. 實驗結果
5.1 線性相關程度驗證
我們從最一開始預訓練好的超網中采樣出大約五十個子網,然后在COCO instance segmentation,ImageNet semi-supervised classification, cityscapes semantic segmentation 這幾個常用benchmark上進行了驗證,根據最終子網的性能ranking和相似度的ranking計算皮爾遜相關系數,結果如下表3所示,可以看到尤其是當下游和上游數據集分布接近時,這種相關程度特別高,進一步驗證了我們的假設有效性。
表3. 子網與最大網絡相似度的ranking和子網最終性能的ranking的相似度
5.2 分類下游任務
我們把可裁剪出的子網按照input size為224x224下的FLOPs 每1GFLOPs范圍內分成一組,每組隨機采樣100個子網,然后根據上述metric選取出相似度最高的子網,下為Linear evaluation和ImageNet-semi supervised 下的結果。相比于我們的MoCo v2 baseline 我們獲得一致的提升。
圖4. ImageNet數據集下的實驗結果
6.3 檢測分割下游任務
在COCO和cityscapes數據集上我們根據MoCo的setting,分別采用MaskRCNN-FPN和FCN進行進行實例分割和語義分割下游任務的測試。實例分割的結果如表4所示。
表4. COCO數據集下實例分割結果
在cityscapes結果上(表5),我們注意到了4G~5G FLOPs 和 6G~7G FLOPs 下提取的模型性能下降的情況,與前面相關系數計算中該任務下相關系數相對較低對應了起來,我們分析一個很重要的原因在于ImageNet數據集和Cityscapes的數據集分布相差較大,影響了預訓練模型在該數據集下的輸出feature map質量從而導致了該現象,我們沒有進一步深入的去研究,歡迎評論區探討交流。
表5. Cityscapes數據集下語義分割結果
7. 結語
到這里我們的文章就分享完了,論文中還有更詳細的消融實驗來證明我們方法的有效性,就不在這里詳細列舉,更多內容歡迎關注我們的原文和代碼。
代碼:https://github.com/GAIA-vision/GAIA-ssl
論文:https://arxiv.org/abs/2203.09041
參考文獻
[1] Xinlei Chen, Haoqi Fan, Ross Girshick, and Kaiming He. Improved baselines with momentum contrastive learning. arXiv:2003.04297, 2020.
[2] Jiahui Yu, Pengchong Jin, Hanxiao Liu, Gabriel Bender, Pieter-Jan Kindermans, Mingxing Tan, Thomas Huang, Xiaodan Song, Ruoming Pang, and Quoc Le. Bignas: Scaling up neural architecture search with big single-stage models. In ECCV, 2020.
[3] Han Cai, Chuang Gan, Tianzhe Wang, Zhekai Zhang, and Song Han. Once-for-all: Train one network and specialize it for efficient deployment. In ICLR, 2020.
[4] Mathilde Caron, Hugo Touvron, Ishan Misra, Herve J ′ egou, ′ Julien Mairal, Piotr Bojanowski, and Armand Joulin. Emerging properties in self-supervised vision transformers. In ICCV, 2021.
[5] Mingkai Zheng, Shan You, Fei Wang, Chen Qian, Changshui Zhang, Xiaogang Wang, and Chang Xu. Ressl: Relational self-supervised learning with weak augmentation. In NeurIPS, 2021.
[5] Zhiyuan Fang, Jianfeng Wang, Lijuan Wang, Lei Zhang,Yezhou Yang, and Zicheng Liu. Seed: Self-supervised dis-tillation for visual representation. In ICLR, 2021.
[6] Chenxi Liu, Piotr Doll ?ar, Kaiming He, Ross Girshick, Alan Yuille, and Saining Xie. Are labels necessary for neural ar-chitecture search? In ECCV, 2020.
機器學習 神經網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。