<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          CVPR 2021 Oral | 何愷明團隊提出SimSiam:探索簡單的孿生表示學習

          共 5787字,需瀏覽 12分鐘

           ·

          2021-03-18 17:19

          點擊下面卡片關(guān)注AI算法與圖像處理”,選擇加"星標"或“置頂”

          重磅干貨,第一時間送達


          本文轉(zhuǎn)載自:極市平臺   |  作者:Happy

          導讀

           

          本文是FAIR的陳鑫磊&何愷明大神在無監(jiān)督學習領(lǐng)域又一力作,目前已收錄于CVPR 2021 Oral!其提出了一種非常簡單的表達學習機制用于避免表達學習中的“崩潰”問題,從理論與實驗角度證實了所提方法的有效性;與此同時,還側(cè)面證實了對比學習方法成功的關(guān)鍵性因素:孿生網(wǎng)絡。 

          paper: https://arxiv.org/abs/2011.10566

          Abstract

          孿生網(wǎng)絡已成為無監(jiān)督表達學習領(lǐng)域的通用架構(gòu),現(xiàn)有方法通過最大化同一圖像的兩者增廣的相似性使其避免“崩潰解(collapsing solutions)”問題。在這篇研究中,作者提出一種驚人的實證結(jié)果:Simple Siamese(SimSiam)網(wǎng)絡甚至可以在無((1) negative sample pairs;(2)large batch;(3)momentum encoders)的情形下學習有意義的特征表達。

          作者通過實驗表明:對于損失與結(jié)構(gòu)而言,“崩潰解”確實存在,但是“stop-gradient”操作對于避免“崩潰解”有非常重要的作用。作者提出了一種新穎的“stop-gradient”思想并通過實驗對其進行了驗證,該文所提SimSiam在ImageNet及下游任務上均取得了有競爭力的結(jié)果。作者期望:這個簡單的基準方案可以驅(qū)動更多研員重新思考無監(jiān)督表達學習中的孿生結(jié)構(gòu)。

          Method

          上圖給出了該文所提SimSiam的示意圖,它以圖像的兩個隨機變換作為輸入,通過相同的編碼網(wǎng)絡(它包含一個骨干網(wǎng)絡和一個投影MLP頭模塊,表示為h)提取特征并變換到高維空間。此外作者還定義了一個預測MLP頭模塊h,對其中一個分支的結(jié)果進行變換并與另一個分支的結(jié)果進行匹配,該過程可以描述為,SimSiam對上述特征進行負cosine相似性最小化:

          注:上述公式等價于規(guī)范化向量的MSE損失。與此同時,作者還定義了一個對稱損失:

          上述兩個損失作用于每一張圖像,總損失是所有圖像損失的平均,故最小的可能損失為-1.

          需要的是:該文一個非常重要的概念是Stop-gradient操作(即上圖的右分支部分)??梢酝ㄟ^對上述公式進行簡單的修改得到本文的損失函數(shù):

          也就是說:在損失的第一項,不會從接收梯度信息;在其第二項,則會從接收梯度信息。

          SimSiam的實現(xiàn)偽代碼如下,有沒有一種“就這么簡單”的感覺???

          # Algorithm1 SimSiam Pseudocode, Pytorch-like# f: backbone + projection mlp# h: prediction mlpfor x in loader: # load a minibatch x with n samples  x1, x2 = aug(x), aug(x) # random augmentation  z1, z2 = f(x1), f(x2) # projections, n-by-d  p1, p2 = h(z1), h(z2) # predictions, n-by-d  L = D(p1, z2)/2 + D(p2, z1)/2 # loss  L.backward() # back-propagate  update(f, h) # SGD update    def D(p, z): # negative cosine similarity  z = z.detach() # stop gradient  p = normalize(p, dim=1) # l2-normalize  z = normalize(z, dim=1) # l2-normalizereturn -(p*z).sum(dim=1).mean()

          我們再來看一下SimSiam的基礎配置:

          • Optimizer: SGD用于預訓練,學習率為, 基礎學習率為,學習率采用consine衰減機制,weight decay=0.0001,momentum=0.9。BatchSize默認512,采用了SynBatchNorm。
          • Projection MLP:編碼網(wǎng)絡中投影MLP部分的每個全連接層后接BN層,其輸出層后無ReLU,隱含層的的維度為2048,MLP包含三個全連接層。
          • Prediction MLP:預測MLP中同樣適用了BN層,但其輸出層后無BN與ReLU。MLP有2個全連接層,第一個全連接層的輸入與輸出維度為2048,第二個的輸出維度為512.
          • Backbone:作者選用了ResNet50作為骨干網(wǎng)絡。

          作者在ImageNet上線進行無監(jiān)督預訓練,然后采用監(jiān)督方式凍結(jié)骨干網(wǎng)絡訓練分類頭,最后在驗證集上驗證其性能。

          Empirical Study

          在該部分內(nèi)容中,我們將實證研究SimSiam的表現(xiàn),主要聚焦于哪些行為有助于避免“崩潰解”。

          Stop-gradient

          上圖給出了Stop-gradient添加與否的性能對比,注網(wǎng)絡架構(gòu)與超參保持不變,區(qū)別僅在于是否添加Stop-gradient。

          上圖left表示訓練損失,可以看到:在無Stop-gradient時,優(yōu)化器迅速找了了一個退化解并達到了最小可能損失-1。為證實上述退化解是“崩潰”導致的,作者研究了輸出的規(guī)范化結(jié)果的標準差。如果輸出“崩潰”到了常數(shù)向量,那么其每個通道的標準差應當是0,見上圖middle。

          作為對比,如果輸出具有零均值各項同性高斯分布,可以看到其標準差為。上圖middle中的藍色曲線(即添加了Stop-gradient)接近,這也就意味著輸出并沒有“崩潰”。

          上圖right給出了KNN分類器的驗證精度,KNN分類器可用于訓練過程的監(jiān)控。在無Stop-gradient時,其分類進度僅有0.1%,而添加Stop-gradient后最終分類精度可達67.7%。

          上述實驗表明:“崩潰”確實存在。但“崩潰”的存在不足以說明所提方法可以避免“崩潰”,盡管上述對比中僅有“stop-gradient”的區(qū)別。

          Predictor

          上表給出了Predictor MLP的影響性分析,可以看到:

          • 當移除預測MLP頭模塊h(即h為恒等映射)后,該模型不再有效(work);

          • 如果預測MLP頭模塊h固定為隨機初始化,該模型同樣不再有效;

          • 當預測MLP頭模塊采用常數(shù)學習率時,該模型甚至可以取得比基準更好的結(jié)果(多個實驗中均有類似發(fā)現(xiàn)).

          Batch Size

          上表給出了Batch Size從64變換到4096過程中的精度變化,可以看到:該方法在非常大范圍的batch size下表現(xiàn)均非常好。

          Batch Normalization

          上表比較了投影與預測MLP中不同BN的配置對比,可以看到:

          • 移除所有BN層后,盡管精度只有34.6%,但不會造成“崩潰”;這種低精度更像是優(yōu)化難問題,對隱含層添加BN后精度則提升到了67.4%;
          • 在投影MLP的輸出后添加BN,精度可以進一步提升到68.1%;
          • 在預測MLP的輸出添加BN后反而導致訓練變的不穩(wěn)定。

          總而言之,BN有助于訓練優(yōu)化,這與監(jiān)督學習中BN的作用類似;但并未看到BN有助于避免“崩潰”的證據(jù)。

          Similarity Function

          所提方法除了與cosine相似性組合表現(xiàn)好外,其與交叉熵相似組合表現(xiàn)同樣良好,見上表。此時的交叉熵相似定義如下:

          可以看到:交叉熵相似性同樣可以收斂到一個合理的解并不會導致“崩潰”,這也就是意味著“崩潰”避免行為與cosine相似性無關(guān)。

          Symmetrization

          盡管前述描述中用到了對稱損失,但上表的結(jié)果表明:SimSiam的行為不依賴于對稱損失:非對稱損失同樣取得了合理的結(jié)果,而對稱損失有助于提升精度,這與“崩潰”避免無關(guān)。

          Summary

          通過上面的一些列消融實驗對比分析,可以看到:SimSiam可以得到有意義的結(jié)果而不會導致“崩潰”。優(yōu)化器、BN、相似性函數(shù)、對稱損失可能會影響精度,但與“崩潰”避免無關(guān);對于“崩潰”避免起關(guān)鍵作用的是stop-gradient操作。

          Hypothesis

          接下來,我們將討論:SimSiam到底在隱式的優(yōu)化什么?并通過實驗對其進行驗證。主要從定義、證明以及討論三個方面進行介紹。

          Formulation

          作者假設:SimSiam是類期望最大化算法的一種實現(xiàn)。它隱含的包含兩組變量,并解決兩個潛在子問題,而stop-gradient操作是引入額外變換的結(jié)果。我們考慮如下形式的損失:

          其中分別表示特征提取網(wǎng)絡與數(shù)據(jù)增廣方法,x表示圖像。在這里,作者引入了另外一個變量,其大小正比于圖像數(shù)量,直觀上來講,是x的特征表達。

          基于上述表述,我們考慮如下優(yōu)化問題:

          這種描述形式類似于k-means聚類問題,變量與聚類中心類似,是一個可學習參數(shù);變量與樣本x的對應向量(類似k-means的one-hot向量)類似:即它是x的特征表達。類似于k-means,上述問題可以通過交替方案(固定一個,求解另一個)進行求解:

          對于的求解,可以采用SGD進行子問題求解,此時stop-gradient是一個很自然的結(jié)果,因為梯度先不要反向傳播到,在該子問題中,它是一個常數(shù);對于的七屆,上述問題將轉(zhuǎn)換為:

          結(jié)合前述介紹,SimSiam可以視作上述求解方案的一次性交替近似。

          此外需要注意:(1)上述分析并不包含預測器h;(2) 上述分析并不包含對稱損失,對稱損失并非該方法的必選項,但有助于提升精度。

          Proof of concept

          作者假設:SimSiam是一種類似交錯優(yōu)化的方案,其SGD更新間隔為1。基于該假設,所提方案在多步SGD更新下同樣有效。為此,作者設計了一組實驗驗證上述假設,結(jié)果見下表。

          在這里,等價與SimSiam。可以看到:multi-step variants work well。更多步的SGD更新甚至可以取得比SimSiam更優(yōu)的結(jié)果。這就意味著:交錯優(yōu)化是一種可行的方案,而SimSiam是其特例。

          Comparison

          前述內(nèi)容已經(jīng)說明了所提方法的有效性,接下來將從ImageNet以及遷移學習的角度對比一下所提方法與其他SOTA方法。

          上圖給出了所提方法與其他SOTA無監(jiān)督學習方法在ImageNet的性能,可以看到:SimSiam可以取得具有競爭力的結(jié)果。在100epoch訓練下,所提方法具有最高的精度;但更長的訓練所得收益反而變小。

          上表給出了所提方法與其他SOTA方法在遷移學習方面的性能對比。從中可以看到:SimSiam表達可以很好的遷移到ImageNet以外的任務上,遷移模型的性能極具競爭力

          最后,作者對比了所提方法與其他SOTA方法的區(qū)別&聯(lián)系所在,見上圖。

          • Relation to SimCLR:SimCLR依賴于負采樣以避免“崩潰”,SimSiam可以是作為“SimCLR without negative”。

          • Relation to SwAV:SimSiam可以視作“SwAV without online clustering”.

          • Relation to BYOL: SimSiam可以視作“BYOL without the momentum encoder”.

          全文到此結(jié)束,對該文感興趣的同學建議去查看原文的實驗結(jié)果與實驗分析。

          Conclusion

          該文采通過非常簡單的設計探索了孿生網(wǎng)絡,所提方法方法的有效性意味著:孿生形狀是這些表達學習方法(SimCLR, MoCo,SwAR等)成功的關(guān)鍵原因所在。孿生網(wǎng)絡天然具有建模不變性的特征,而這也是表達學習的核心所在。

          相關(guān)文章

          1. SimCLR: A simple framework for contrastive learning of visual representations
          2. SimCLRv2: Big self-supervised models are strong semi-supervised learners.
          3. SwAV:Unsupervised learning of visual features by contrasting cluster assignments
          4. MoCo: Momentum contrast for unsupervised visual representation learning.
          5. MoCov2:Improved baselines with momentum contrastive learning
          6. BYOL: Bootstrap your own latten: A new aproach to self-supervised learning.
          7. CPC: Data efficient image recognition with contrastive predictive coding.
          8. PIC: Parametric instance classification for unsupervised visual feature learning.


          個人微信(如果沒有備注不拉群!
          請注明:地區(qū)+學校/企業(yè)+研究方向+昵稱



          下載1:何愷明頂會分享


          AI算法與圖像處理」公眾號后臺回復:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


          下載2:終身受益的編程指南:Google編程風格指南


          AI算法與圖像處理」公眾號后臺回復:c++,即可下載。歷經(jīng)十年考驗,最權(quán)威的編程規(guī)范!



          下載3 CVPR2021

          AI算法與圖像處公眾號后臺回復:CVPR即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

          點亮 ,告訴大家你也在看


          瀏覽 267
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操屄电影| 免费爱爱网址 | 免费黄片网站 | 黄色片视频在线观看 | 免费 无码 国产在线观 |