劉相均
(廣東技術師范大學,廣東 廣州 510665)
近些年,自監督學習(Self-supervised Learning,SSL)在圖像分類、圖像分割、目標檢測等計算機視覺任務中表現出了優異的表征學習能力,廣受研究者們的關注。而對比學習(Contrastive Learning,CL)作為一種極具代表性的SSL 方法,在自然圖像領域取得了進一步成功。與全監督學習不同,CL 方法不需要標注數據,其本身可以利用大量的無標注數據來學習圖像的特征表示。CL 的核心思想是通過數據增強構造樣本的多樣性,利用損失函數在投影的嵌入空間中構造距離近的相似(正)樣本對,同時構建距離相對遠的不同(負)樣本對,從而學習到不同數據樣本之間的相對關系表達。本文將從CL 的發展歷程,CL 的基本原理以及不同CL 算法的比較三個方面進行闡述,然后進行總結,旨在幫助后續的研究者們能夠快速地對CL算法有一個大致了解。
最早的CL 方法可以追溯到基于Siamese 網絡和三元組網絡的方法,這些方法主要應用于驗證和檢索任務。而隨著深度學習的發展,特別是基于深度神經網絡的無監督預訓練方法的興起,在計算機視覺領域中,對比學習逐漸受到廣泛關注,在2018 年Wu 等人[1]提出了InstDisc(Instance Discrimination)模型,采用了Memory bank 來存儲編碼器計算得到的表征向量,由此開啟了基于正負樣本對的對比學習研究思路。隨后,一系列基于對比學習的預訓練方法相繼提出,如MoCo[2]、SimCLR[3]、SwAV[4]等。這些方法都通過對數據樣本之間的關系進行建模來實現特征學習,并在多個視覺任務上取得了優異的效果。隨著Transformer 在視覺領域的熱門,研究者嘗試利用Transformer 的自注意力提取方式進行對比學習的研究,在2021 年SwAV的作者提出了DINO[5]模型。隨后在2022 年Peng 等人[6]考慮了隨機采樣這一增強操作對于視圖質量的影響,提出了訓練預熱Grad-CAM 定位ROI 區域,然后在定位區域內進行中心壓制采樣的方法,該方法為CL 算法的增強視圖提供了更加豐富的圖像對比信息,使得CL 算法更具魯棒性。
對比學習的學習模式可以抽象為通過編碼器-解碼器的架構將圖像Embedding 排列到嵌入空間中,通過在嵌入空間中的關系來判斷圖像間的相似性。其中最優特征嵌入是通過實例級判別來學習的,如圖1所示,該判別試圖最大限度地將訓練樣本的特征分散在單位球面上。假設輸入一個批次的圖像,首先使用數據增強策略得到同批次大小的增強視圖隊列,使用主干CNN網絡將兩部分批次圖像編碼為特征向量,然后通過投影層計算使得向量均勻分布,最后將其投影到高維空間并通過相似度損失函數進行歸一化聚集。圖1 中示例的三組向量表示組內近似,而三組向量相互之間是非近似狀態。

圖1 CL 算法示意圖
從得到的嵌入表征向量損失計算觀察,對比學習旨在通過噪聲對比估計(Noise Contrastive Estimation,NCE)進行學習比較,其中x、x+以及x-表示輸入,x+與x為正樣本對,x-與x為負樣本對,f表示編碼器。由于在實際訓練過程中可能涉及很多不相似對,而衍生出了InfoNCE 損失函數,其具體公式的表達形式為:
通過以上的損失函數,CL 模型不斷地將編碼器參數更新,使得CL 算法所構建的相似正樣本對更加接近,而不同的負樣本對更加遠離,從而實現無監督條件下對圖像的表征學習。
目前已經發展出了不少對比學習算法,不同對比學習算法各有優劣,在具體使用時需要根據任務和數據集的特點進行選擇和調整。在這我們分析極具代表性的三種暹羅網絡結構的模型MoCo、SimCLR 和BYOL[7](如圖2)。MoCo 提出了使用基于動量對比的表征一致性來實現實例區分,利用記憶體(memory bank)形式來進行編碼存儲。盡管MoCo 取得了很好的效果,但是其采樣方式使得區分正樣本對過于簡單,需要進一步探索更高效的正樣本對采樣策略來提升模型的性能。SimCLR 提出使用多種數據增強方法增加輸入圖像的多樣復雜性,不同于MoCo 模型,SimCLR 直接使用當前批次的記憶體內負樣本,但這導致了訓練需要使用較大批次的樣本容量。此外,SimCLR 還提供了一些技術思路,包括在編碼器中添加非線性映射、使用更深的backbone 網絡等。

圖2 暹羅網絡體系對比算法結構演化
BYOL 吸收了MoCo 和SimCLR 的特點并改進,取得了比二者更好的性能。BYOL 只采用了正樣本對,使用隨機初始化的網絡作為目標編碼器,然后將其逐漸替換為經過訓練的查詢編碼器來迭代訓練。BYOL 還采用了回歸范式的損失計算,使用均方差來度量預測值和目標值之間的差異。通過這些改進,BYOL 取得了很好的表現。BYOL 的設計清晰簡潔、方法獨特,為對比學習領域的研究提供了一種有效的方法。
一般來說,暹羅結構形式的CL 網絡適用于小規模數據集和特定領域,而BYOL 和DINO 等方法則更適合大規模無監督學習和跨領域表示學習。我們在以下列舉了一些CL 算法,見表1。其中主要比較了不同的CL算法的核心思想的轉變和隨著新技術的改進。
本文對目前對比學習的發展、原理以及一些CL 算法的設計創新做出了簡要概括,盡管由于不同的體系結構和實現,我們很難詳細比較這些方法的性能,但根據這些CL 算法的設計思路可以總結出對比學習的主要發展的趨勢。當前對比學習面臨的挑戰如下:
1.數據噪聲:CL 方法都要求使用大量的訓練數據,但這些數據往往會存在一定的噪聲和錯誤,這會使模型在學習和推斷時產生不良影響。如何消除數據噪聲和錯誤,提高數據的質量和可靠性,是對比學習領域需要解決的問題。
2.訓練效率:對比學習方法往往需要進行大量的重復計算和參數更新,對計算資源和存儲能力要求很高,這會導致訓練和資源成本的增加。如何提高對比學習的訓練效率,是未來需要面對的挑戰。
3.多模態學習:大多數對比學習方法只是在單個模態上進行學習,如圖像或文本等。但在實際應用中,我們需要對不同模態的數據進行分析。如何將對比學習擴展到不同模態數據之間進行學習,也是未來的一個重要方向。
4.泛化性能:對比學習方法往往是在特定數據集和任務上進行訓練和評估的,但這些方法是否具有比較好的泛化性能,即是否可以在不同數據集和任務上進行推廣,仍然需要進一步的探索。
總的來說,對比學習需要解決的挑戰包括數據噪聲、訓練效率、多模態學習和泛化性能等,在未來通過開展更多的研究和實踐,對比學習有望在更廣泛的場景中發揮重要的作用。