close

機器之心專欄

機器之心編輯部

由顏水成老師帶領的 Sea AI Lab 提出了一種多粒度自監督學習框架 Mugs[1],用以學習不同粒度的非監督特徵,從而滿足不同下游任務對不同粒度甚至多粒度特徵的需求。在相同的實驗設置下(相同數據集和模型等),該方法大幅超越了目前最好的自監督學習方法。在沒有使用額外數據的情況下,該方法在 ImageNet 數據集上取得了目前最高的線性評估準確率(linear probing accuracy)82.1% 以及最高的 KNN 分類準確率 80.3%。


詳細結果請參看 paperswithcode 的Leaderboard:https://paperswithcode.com/sota/self-supervised-image-classification-on?p=mugs-a-multi-granular-self-supervised

一:背景和動機

通過精心設計上游任務(pretext task),自監督學習從這些上游任務上直接拿到無監督數據的偽標籤,並且利用這些偽標籤訓練深度學習模型。實驗結果表明通過自監督學習到的特徵在很多下游任務上展現出比常規監督學習更強的遷移性能和泛化性能。目前大量的無標籤數據可以在互聯網上獲得,自監督學習已經展示出比常規監督學習更大的潛能。

在自監督學習中,許多下游任務其實需要不同粒度的特徵,例如粗粒的特徵或者細粒度的特徵。舉例來說,常規的分類問題一般會用更多的粗粒度特徵,而細粒度的分類問題則需要更多的細粒度特徵。更重要的是,在實際應用中,許多下游任務需要多粒度的特徵來處理數據中的複雜結構。一個典型的例子是 ImageNet 上的分類問題。首先,注意到 ImageNet 數據非常貼近實際數據,擁有類別上的層級結構,也就是很多小類擁有相似的屬性從屬於一個大類(例如犬科類裡面包含很多不同品種的狗和狼)。這樣一來,為了區分不同的大類別,例如犬科類和鳥類,我們就需要粗粒度的特徵。為了進一步區分更細的類別,譬如狗和狼,我們則需要稍微細粒度一點的特徵。最後為了細分不同品種的狗,我們需要更加細粒度的特徵。許多其他應用,例如物體檢測與識別,也面臨着類似的多粒度特徵需求。

然而,現在的自監督學習方法一般都只側重於單粒度特徵的學習。譬如,最經典的對比學習 MoCo[2] 構建實例識別任務來區分單個實例。這樣一來,MoCo 側重學習更多實例級的細粒度特徵,但是它不考慮數據中粗粒度的類別結構(cluster structure)。另外一類具有代表性的自監督學習是基於聚類的自監督學習,包含 DINO[3],DeepCluster[4]等。這類方法將類似的實例聚到同一個虛擬類別中,從而學習聚類級別的粗粒度特性。然而,它不能很好地處理對細粒度特性有所需求的下游任務。因此,在下游任務的特徵偏好未知的情況下,我們應該構建一個學習多粒度特徵的自監督學習框架,以便儘可能多地處理不同下游任務。

為了解決上述問題,該研究提出了一種多粒度自監督學習 (Mugs) 框架來顯示地學習視覺數據的多粒度特徵。具體來說,Mugs 主要學習三種不同粒度特徵:

第一是 instance-level(實例級別的)細粒度特徵,用於將不同的實例區分開;

第二是稍微粗粒度的 local-group 數據特徵。這類特徵主要是為了保證非常相似的樣本能夠聚集成小簇,從而形成一個 local-group 上的整體語義(例如對應到非常相似的狗)。這樣一來,local-group 特徵則會將第一類過於分散的實例特徵進行高階語義的重新聚集,也就讓相似的樣本享有相似的特徵;

第三類是數據中更加粗粒度的 group 特徵(例如犬科特徵)。這類特徵是保證相似的 local-groups 能夠靠的更近,從而保證數據整體語義的一致性。通過這樣的層級數據語義學習,該方法能夠學到更貼合實際應用的特徵,從而更加滿足於不同下游任務對不同粒度特徵的需求。

論文地址:https://arxiv.org/pdf/2203.14415.pdf

Github 地址:https://github.com/sail-sg/mugs


二:方法

如前面所述,該方法主要通過三種不同粒度的監督來學習三種不同粒度的特徵, 包含 1) instance-level 細粒度特徵,2)稍微粗粒度的 local-group 特徵, 3)粗粒度的 group 特徵。下面將介紹這三種特徵的具體學習方法。

圖一:Mugs 自監督學習整體框架。(a)展示了總體框架。對於每幅圖像,Mugs 將兩次隨機增強的樣本輸入學生和教師骨幹網絡。然後, Mugs 採用三種不同粒度的監督 / 損失: 1)instance discrimination loss, 2)local-group discrimination loss,3) group discrimination loss。(b)展示了學生和老師中都有的 local-group discrimination 模塊。這個模塊首先平均所有 patch tokens 得到 average token,並從一個 buffer 裡面找到當前 average token 的 top-k 鄰居。然後,它使用一個小的 transformer 來聚合 average token 和它的 k 個鄰居,從而獲得一個 local group feature(即新的 class token)。

A). instance-level 細粒度特徵學習

和對比學習 MoCo 一樣,Mugs 通過 instance discrimination supervision(實例判別監督)來分散不同的實例特徵,從而監督實例級別的細粒度特徵學習。

具體來說,給定樣本, Mugs 進行兩次數據增強得到, 然後分別送進老師和學生 backbone 得到。接着 Mugs 把裡面的 class token分別送入對應的投影網絡。最後,Mugs 將學生網絡對應的輸出進一步輸入到一個預測網絡用來預測老師的輸出。為了達到讓老師和學生輸出一致的目的,Mugs 使用 infoNCE 損失函數來實現:


其中,分別對應老師和學生分支最後的輸出。代表的是一個緩存 buffer,用於存貯過往的。這樣一來,正如圖一中的效果圖所示,Mugs 把同一個圖片對應的特徵拉進,把不同圖片的特徵推遠,從而分散開 instance-level 的特徵。

B). 稍微粗粒度的 local-group 特徵學習

如前所述,細粒度特徵通常不足以滿足不同的下游任務(例如分類),因為缺乏足夠的高級數據語義。為了學習更高級別的細粒度(即稍微粗粒度)特徵,這裡也稱為 local-group feature,Mugs 提出了一種新穎而有效的 local-group supervision。直觀地講,如圖一中第三個球面所示,這種監督鼓勵數據特徵具有小但分散的 local-group 結構。目的是保證高度相似的樣本能夠在特徵空間上聚集,避免前面所介紹的 instance discrimination supervision 將相似的樣本推得過遠,從而避免破壞一定的語義。這樣一來,local-group supervision 有助於捕獲數據中的更高級別語義。接下來將首先介紹其細節,然後更加詳細地討論它的好處。

給定兩個數據增廣後的樣本, 假設老師和學生骨幹網絡得到。如圖一中的子圖(b)所示,Mugs 把裡面的 patch tokens分別進行平均池化得到。在另一方面,Mugs 使用一個 buffer 以先進先出的方式來保存過往的。接着,Mugs 分別為當前的裡面找到它們對應的 top-k 鄰居。然後,Mugs 藉助一個小的 transformer 將融合成一個 local-group feature:


其中,代表的是一個兩層的 transformer:它的 input class token 是,input patch tokens 是,輸出 class token有着同樣的功能。因為和它的 top-k 鄰居很相似,它們一起組成一個 local-group。因此,它們的融合也被稱為的 local-group feature。最後 Mugs 拉進同一張圖片的兩個數據增強的 local-group feature,並且推遠不同圖片的 local-group feature:


其中,分別對應老師和學生的投影網絡。代表學生網絡的預測網絡,代表一個緩存 buffer,用於存貯過往的。這樣一來,正如圖一中的第三個球面特徵效果圖所示,Mugs 將分散的特徵聚集為小的聚類中心,從而學習到稍微粗粒度的 local-group 特徵。

這種 local-group discrimination supervision 給 Mugs 帶來兩方面的好處。

它是上述 instance discrimination supervision 的有效補充。針對同一張圖片的兩個數據增強後的樣本,這種監督要求這兩個樣本的 local-group 相同。這意味着除了樣本本身對齊之外,它們對應的鄰居也應該很好地對齊。這種鄰居對齊一個更具挑戰性的對齊問題,也增強了更高級別的 local-group 語義對齊。

這種監督鼓勵高度相似的樣本形成 local-group,並將不同的 local-groups 分散開來,從而提高了特徵的語義判別能力。這是因為 a)這種監督所尋求的鄰居數目 k 非常小(大約 10),這樣在同一 local-group 的樣本高度相似,有助於形成非常緊湊的 local-group; b)這種監督進一步將不同的 local-groups 分開。通過這兩個方面,這種 local-group 通過考慮數據中的 local-group 結構,促進了更高級別的細粒度特徵學習,有效地補充了 instance discrimination supervision。


C). 粗粒度的 group 特徵學習

為了避免了上述相似的 local-group 分散的過於隨機或較遠,Mugs 中的 group discrimination supervision 將類似的樣本聚集在一起,從而拉近類似的 local-group。這樣一來,Mugs 可以在更高語義級別上捕獲粗粒度特徵。

具體來說,如圖一所示,給定, 老師和學生 backbone 分別輸出。接着 Mugs 把裡面的 class token分別送進對應的投影網絡。然後,Mugs 構建了一系列的可學習聚類中心來在線計算偽聚類標籤:


其中,函數是對它的輸入進行 sharpening 操作。接下來,類似於監督分類任務,Mugs 使用交叉熵損失,但使用軟標籤作為訓練損失:


D). 整體訓練損失函數

最後,該方法將上述三種互補的監督損失函數融合從而形成一個整體的訓練損失函數:


其中,超參數分別代表三種監督權重。在實驗中,為了方便,三個超參數都設置為 1/3。

現在討論這三個監督對特徵學習的共同影響。這也將它與現有的粒度特徵學習方法,例如 MoCo 和 DINO ,區分開來。如前所述,instance discrimination supervision 就是拉近同一圖像的不同增廣的樣本,從而將不同圖像的特徵近似地分散 在球面上(如圖一第二個球面所示)。它幫助 Mugs 學習 instance-level 的細粒度特徵。其次,local-group discrimination supervision 為 instance discrimination supervision 提供補充性監督。它考慮一張圖片的 local-group,並鼓勵同一張圖片的不同增廣樣本擁有高度相似的鄰居。這樣一來,local-group supervision 則會將 instance discrimination supervision 中過於分散的實例特徵進行高階語義的重新聚集,也就讓相似的樣本享有相似的特徵。最後,為了避免了上述相似的 local-group 分散的過於隨機或較遠,Mugs 中的 group discrimination supervision 將類似的樣本聚集在一起,從而拉近類似的 local-group。這樣一來,Mugs 可以在更高語義級別上捕獲粗粒度特徵。通過這樣互補的多粒度監督學習,Mugs 能夠學到更貼合實際應用的特徵,從而更加滿足於不同下游任務對不同粒度特徵的需求。

三:實驗結果

Mugs 使用和其他自監督方法同樣的數據集和評測方法來驗證它的效果。因為 transformer 展現出比 CNN 更強大的潛能(相同規模,transformer 效果會更優,並且它也擁有一統 CV 和 NLP 的潛能),Mugs 同樣主要用 transformer 架構來驗證。Mugs 僅在 ImageNet 1K 的訓練集上預訓練,然後在 ImageNet 1K 的訓練集上進行 Linear Probing 和 KNN 訓練。在這兩種最常見的設置下,Mugs 大幅超越已有方法。在沒有額外數據訓練情況下,Mugs 超過了同樣設置下的最好方法 iBoT,從而取得了最新的 SOTA linear probing 精度 82.1%。另外,在 KNN 設置下,Mugs 甚至超越了 ImageNet 1K 和 ImageNet22K 訓練的最好方法 iBOT,從而刷新了 KNN 下的 SoTA。具體實驗結果可以參看圖二和圖三。

圖二:在 ImageNet-1K 預訓練設置下,各種自監督方法的 Linear Probing 精度對比。通過在 ImageNet-1K 上進行預訓練,在不同的模型尺寸 (見(a)) 和預訓練時間 (見(b)) 下,Mugs 大幅的提高了之前的 SoTA (iBOT)。

圖三:在 ImageNet-1K 上 Linear Probing 和 KNN 的精度對比。

另外,在其他的設置下,包括微調網絡,半監督學習,遷移學習,物體檢測,實例分割,語義分割,視頻語義分割等 7 項任務上,Mugs 也超越了同樣設置下的 SoTA 方法。具體可參看原文。

最後 Mugs 還展示了一些注意力可視化效果圖。從圖四可以看出,在沒有標籤的情況下,Mugs 仍然學到了語義信息。譬如 Mugs 能夠很好地檢測到物體的形狀以及位置。

圖四:Mugs 預訓練的 ViT-Base/16 上的自注意力可視化

Mugs 還使用 T-SNE 揭示 MoCo-v3、DINO、iBOT 和 Mugs 所學習到的特徵之間的差異。在圖五中,每種顏色代表一個獨特的類。通過對比,針對一個類,Mugs 經常在特徵空間中將其劃分為幾個小簇,例如棕色的 6 個簇,紫色的 4 個簇,紅色的 6 個簇,藍色的 5 個簇,然後將這些小簇分散在一個大的類中。這些結果揭示了該特徵中的多粒度結構: 分散的大類(即不同的顏色)對應於粗粒度特徵,一個類中幾個分散的小簇顯示了更小的粗粒度(稍微高級的細粒度); 每一個小簇中的一些單獨實例顯示了實例級的細粒度。相比之下,MoCo-v3、DINO 和 iBOT 通常不顯示這種多粒度特徵結構。正如前文所述,不同下游任務通常需要不同粒度特徵甚至多粒度特徵。因此,這些可視化也能幫助解釋為什麼 Mugs 能夠超越單粒度特徵學習方法。

圖五:各種自監督學習預訓練的 ViT-Base/16 上的 T-SNE 可視化 T-SNE。

參考文獻

[1] Zhou, P., and Zhou, Y., and Si, C., and Yu, W., and Ng, T., and Yan, S., : Mugs: A Multi-Granular Self-Supervised Learning Framework. arXiv preprint arXiv: 2203.14415 (2022)
[2] Chen, X., Xie, S., He, K.: An empirical study of training self-supervised vision transformers. arXiv preprint arXiv:2104.02057 (2021)
[3] Caron, M., Touvron, H., Misra, I., J ́egou, H., Mairal, J., Bojanowski, P., Joulin, A.: Emerging properties in self-supervised vision transformers. arXiv preprint arXiv:2104.14294 (2021)
[4] Caron, M., Bojanowski, P., Joulin, A., Douze, M.: Deep clustering for unsupervised learning of visual features. In: Proceedings of the European Conference on Computer Vision (ECCV). pp. 132–149 (2018)
[5] Zhou, J., Wei, C., Wang, H., Shen, W., Xie, C., Yuille, A., Kong, T.: iBOT: Image bert pre-training with online tokenizer. arXiv preprint arXiv:2111.07832 (2021)

©THE END

轉載請聯繫本公眾號獲得授權

投稿或尋求報道:content@jiqizhixin.com

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()