基于對比的自監(jiān)督學習

對比自監(jiān)督學習綜述

作者:Ashish Jaiswal, Ashwin Ramesh Babu, Mohammad Zaki Zadeh, Debapriya Banerjee, Fillia Makedon

單位:德克薩斯大學阿林頓分校

時間:2020年12月22日

文章目錄

對比自監(jiān)督學習綜述

摘要

關(guān)鍵詞

1. 介紹

2. 前置任務(wù)(Pretext Tasks)

顏色變換

幾何變換

基于上下文的

拼圖

基于幀的

未來預測

視圖預測 View Prediction (Cross modal-based)

確定對的前置任務(wù)

3. 架構(gòu)

端到端學習

使用 Memory Bank

使用 Momentum Encoder

特征表示聚類 Clustering Feature Representation

4. Encoders

5. 訓練

6. 下游任務(wù)

對 Kernels 和 特征圖進行可視化

最近相鄰擷取

7. 基準

8. NLP上的對比學習

9. 討論和未來方向

缺少理論支撐

數(shù)據(jù)增強的選擇和前置任務(wù)

恰當?shù)呢摌颖静蓸?/a>

數(shù)據(jù)集偏見

10. 結(jié)論

Reference

摘要

自監(jiān)督學習(Self-supervised learning)最近獲得了很多關(guān)注,因為其可以避免對數(shù)據(jù)集進行大量的標簽標注。它可以把自己定義的偽標簽當作訓練的信號,然后把學習到的表示(representation)用作下游任務(wù)里。最近,對比學習被當作自監(jiān)督學習中一個非常重要的一部分,被廣泛運用在計算機視覺、自然語言處理等領(lǐng)域。它的目標是:將一個樣本的不同的、增強過的新樣本們在嵌入空間中盡可能地近,然后讓不同的樣本之間盡可能地遠。這篇論文提供了一個非常詳盡的對比自監(jiān)督學習綜述。我們解釋了在對比學習中常用的前置任務(wù)(pretext task),以及各種新的對比學習架構(gòu)。然后我們對不同的方法做了效果對比,包括各種下游任務(wù)例如圖片分類、目標檢測、行為識別等。最后,我們對當前模型的局限性、它們所需要的更多的技術(shù)、以及它們未來的發(fā)展方向做了總結(jié)。

關(guān)鍵詞

對比學習 contrastive learning

自監(jiān)督學習 self-supervised learning

判別學習 discriminative learning

圖片/視頻分類 image/video classification

目標檢測 object detection

無監(jiān)督學習 unsupervised learning

遷移學習 transfer learning

1. 介紹

深度學習從大量數(shù)據(jù)中自動學習的能力使其在各種領(lǐng)域廣泛應(yīng)用,例如CV和NLP。

但是深度學習也有其瓶頸,就是它需要大量的人工標注的標簽。

例如在計算機視覺中,監(jiān)督模型需要在圖片的表示和圖片的標簽之間建立關(guān)聯(lián)。

傳統(tǒng)的監(jiān)督學習模型極度依賴于大量的有標簽數(shù)據(jù)。

所以研究者們想研究出一種辦法,如何利用大量的無標簽數(shù)據(jù)。

所以自監(jiān)督學習的到了廣泛關(guān)注,因為它可以從數(shù)據(jù)自己本身中尋找標簽來監(jiān)督模型的訓練。

圖一:對比學習的直觀理解:讓原圖片和增強的圖片變近,讓原圖片和其他圖片變遠。

監(jiān)督學習不僅需要大量的標注數(shù)據(jù),它還面臨著下面的各種問題:

模型的泛化性能

偽相關(guān)

對抗攻擊

最近,自監(jiān)督學習結(jié)合了生成模型和對比模型的特點:從大量無標簽數(shù)據(jù)中學習表示。

一種流行的方式是設(shè)計各種前置任務(wù)(pretext task)來讓模型從偽標簽中來學習特征。例如圖像修復、圖像著色、拼圖、超分辨率、視頻幀預測、視聽對應(yīng)等。這些前置任務(wù)被證明可以學習到很好的表示。

圖二:對比自監(jiān)督學習訓練范式

在2014年生成對抗網(wǎng)絡(luò)(GAN)[3] 推出之后,生成模型得到了很多關(guān)注。它之后變成了許多強大的模型的基礎(chǔ),例如 CycleGAN, StyleGAN, PixelRNN, Text2Image, DiscoGAN 等。

這些模型啟發(fā)研究者去研究自監(jiān)督學習(不需要標簽)。

他們發(fā)現(xiàn)基于GAN的模型很復雜,不容易訓練,主要是由于下面原因:

難以收斂

判別器太強大而導致生成器難以生成好的結(jié)果

判別器和生成器需要同步

圖三:不同的對比學習方法在ImageNet上的效果(TOP1 分類準確率)。

與生成模型不同,對比學習是一種判別模型,它讓相似樣本變近,不同樣本變遠(見圖一)。

為了達到這一點,一種衡量遠近的指標被用來衡量嵌入之間的遠近。

如圖二所示,對比損失用來訓練對比學習模型。一般來說,以圖片為例,對比學習把一張圖片的增強版本當作一個正例,其余圖片當作反例,然后訓練一個模型來區(qū)分正反例。區(qū)分依賴于某種前置任務(wù)。

這樣做,學習到的表示就可以用到下游任務(wù)之中。

2. 前置任務(wù)(Pretext Tasks)

前置任務(wù)是自監(jiān)督學習中非常重要的一種策略。它可以用偽標簽從數(shù)據(jù)中學習表示。

偽標簽是從數(shù)據(jù)本身中定義而來的。

這些任務(wù)可以應(yīng)用到各種數(shù)據(jù)之中,例如圖片、視頻、語言、信號等。

在對比學習的前置任務(wù)之中,原始圖片被當作一種anchor,其增強的圖片被當作正樣本(positive sample),然后其余的圖片被當作負樣本。

大多數(shù)的前置任務(wù)可以被分為四類:

顏色變換

幾何變換

基于上下文的任務(wù)

基于交叉模式的任務(wù)

具體使用哪種任務(wù)取決于具體的問題。

顏色變換

圖四:顏色變換前置任務(wù),包括:原圖,高四噪聲,高斯模糊,顏色失真(jitter)

顏色變換很好理解,不多說了。在這個前置任務(wù)中,圖片經(jīng)過變換,它們還是相似的圖片,模型需要學會辨別這些經(jīng)過顏色變換的圖片。

幾何變換

幾何變換也很好理解,不多說了。

原圖被當作全局視圖(global view),轉(zhuǎn)換過的圖片被當作局部試圖(local view)。

圖五:幾何變換,包括:原圖,裁剪、旋轉(zhuǎn)、翻轉(zhuǎn)等

基于上下文的

拼圖

解決拼圖問題是無監(jiān)督學習中一個非常重要的部分。

在對比學習中,原圖被當作anchor,打亂后的圖片被當作正樣本,其余圖片被當作負樣本。

圖六:解決一個拼圖問題被當作學習表示的前置任務(wù)。

基于幀的

這個策略一般應(yīng)用于時許數(shù)據(jù),例如傳感器的數(shù)據(jù)或者一系列視頻幀。

策略背后的意義是:時間上相近的相似,時間上很遠的不相似。

解決這樣的前置任務(wù)可以讓模型學習到一些跟時間有關(guān)的表示。

在這里,一個視頻中的幀被當作正樣本,其余視頻被當作負樣本。

其余的方法還包括:隨機抽樣一個長視頻中的兩個片段,或者對每個視頻片段做幾何變換。

目標是使用對比損失(contrastive loss)來訓練模型,使得來自一個視頻的片段在嵌入空間中相近,來自不同視頻的片段不相近。

Qian 等人 [20] 提出的一個模型中將兩個正樣本和其余所有的負樣本之間進行對比。

一對正樣本是兩個增強的來自同一個視頻的視頻片段。

這樣,所有的視頻在嵌入空間中都是分割開來的,每個視頻占據(jù)一個小的嵌入空間。

未來預測

圖七:對比預測編碼CPC:contrastive predictive coding。圖中的例子是音頻預測。類似的想法可以用在圖片、視頻、文本等領(lǐng)域上。

對于時序數(shù)據(jù)做對比一個最直觀的方法是預測將來或者預測缺失的信息。

這個前置任務(wù)是基于已有的一系列時間點數(shù)據(jù),去預測將來的高階的信息。

在 [21] [22] 等模型中,高階數(shù)據(jù)被壓縮在一個低維度的隱藏嵌入空間之中。強大的序列模型被當作encoder來生成一個基于上下文的C t C_tCt,然后用C t C_tCt來預測未來的信息。其中蘊含的意義是最大化兩者之間的互信息(Mutual information maximization)。

視圖預測 View Prediction (Cross modal-based)

視圖預測任務(wù)一般用在數(shù)據(jù)本身擁有多個視圖的情況下。

在 [23] 中,anchor和它的正樣本圖片來自同時發(fā)生的視角下,它們在嵌入空間中應(yīng)當盡可能地近,與來自時間線中其他位置的負樣本圖片盡可能地遠。

在 [24] 中,一個樣本的多視角被當作正樣本(intra-sampling),其余的inter-sampling當作負樣本。

圖八:從視頻幀序列中學習表示。[23]

確定對的前置任務(wù)

選擇什么樣的前置任務(wù)取決于你所要解決的任務(wù)。

盡管已經(jīng)有很多類型的前置任務(wù)在對比學習中提出來了,但是選擇哪種前置任務(wù)依舊沒有一個理論支撐。

選擇正確的前置任務(wù)對表示學習有非常大的幫助。

前置任務(wù)的本質(zhì)是:模型可以學習到數(shù)據(jù)本身的一些轉(zhuǎn)換(數(shù)據(jù)轉(zhuǎn)換之后依然被認作是原數(shù)據(jù),轉(zhuǎn)換后到數(shù)據(jù)和原數(shù)據(jù)處于同一嵌入空間),同時模型可以判別其他不同的數(shù)據(jù)樣本。

但是前置任務(wù)本身是一把雙刃劍,某個特定的前置任務(wù)可能對某些問題有利,對其他問題有害。

圖九:兩張圖片的形狀差不多。但是,很多低階的細節(jié)是不一樣的。在這里使用正確的前置任務(wù)是非常重要的。[28]

在 [26] 中,作者專注于選取正確的前置任務(wù)的重要性。

圖十:一個例子:為什么旋轉(zhuǎn)前置任務(wù)有時候表現(xiàn)不好。

3. 架構(gòu)

對比學習依賴于負樣本的數(shù)量,來生成好的表示。

它有時候可以看作是一個字典查詢?nèi)蝿?wù),字典有時候是整個訓練集,有時候是訓練集的子集。

有時候?qū)Ρ葘W習可以根據(jù)如何采樣負樣本來進行分類。

我們將對比學習的架構(gòu)分為以下四類(見圖十一)。

圖十一:(a)端到端訓練,一個encoder用來生成正樣本的表示,一個encoder用來生成負樣本的表示;(b)使用一個memory bank來存儲和抽取負樣本;(c)使用一個momentum encoder當作一個動態(tài)的字典查詢來處理負樣本;(d)額外使用一個聚類機制。

端到端學習

端到端學習是一種復雜的基于梯度的學習系統(tǒng),其中所有的模塊都是可微的。這種架構(gòu)偏好于大的batch size來存儲更多的負樣本。除了原圖片和其增強的圖片,其余的batch中的圖片被當作負樣本。這種架構(gòu)包含兩個encoder:一個query一個key(見圖十一a)。

這兩個encoder可以是一樣的,也可以是不一樣的。

使用一個對比損失,模型會讓正樣本的表示相近,讓負樣本和正樣本的表示相遠。

最近,一種端到端的模型 [15] SimCLR 獲得了很大成功。他們使用了非常大的batch size(4096)訓練了100個epochs。SimCLR證明了一種簡單機制的模型也可以獲得非常好的效果。

圖十二:SimCLR的效果。

另外一種端到端的模型 [21] CPC從高維的時序數(shù)據(jù)中學習表示,其使用對比損失來預測將來。

端到端學習中的負樣本與batch size有關(guān)。而batch size的大小受限于GPU/TPU 內(nèi)存,所以這里有一個計算資源的限制,而且如何優(yōu)化大batch訓練也是一個問題。

使用 Memory Bank

端到端依賴于大的batch(譯者:存疑,某些任務(wù)可能不需要),所以一種可行的解決方案是使用 memory bank。

Memory bank:的作用是在訓練的時候維護大量的負樣本表示。所以,創(chuàng)建一個字典來存儲和更新這些樣本的嵌入。Memory bank?M MM?在數(shù)據(jù)集?D DD?中對每一個樣本?I II?存儲一個表示?m I m_ImI。該機制可以更新負樣本表示,而無需增大訓練的batch size。

圖十三:PIRL中的memory bank。

PIRL [17] 是一種使用了 Memory bank 來學習圖像表示的方法。

但是,在訓練的時候維護一個大的memory bank是一個很復雜的任務(wù)。這種策略的一個缺點是更新表示的計算復雜度很高。

使用 Momentum Encoder

為了解決 memory bank 的缺點,momentum encoder [14] 被提了出來。這種機制創(chuàng)建了一種特殊的字典,它把字典當作一個隊列的keys,當前的batch進入隊列,最老的batch退出隊列。

Momentum encoder 共享了encoder Q的參數(shù)。它不會在每次反向傳播后更新,而是依據(jù)query encoder的參數(shù)來更新:

θ k ← m θ k + ( 1 ? m ) θ q \theta_k \leftarrow m\theta_k + (1-m)\theta_q?θk←mθk+(1?m)θq

在公式中,m ∈ [ 0 , 1 ) m\in [0, 1)m∈[0,1)?是momentum系數(shù)。只有參數(shù)θ q \theta_qθq會被反向傳播更新。

Momentum update使得θ k \theta_kθk緩慢、柔和地依據(jù)θ q \theta_qθq來更新,使得兩個encoders的區(qū)別并不會很大。

Momentum encoder的優(yōu)點是不需要訓練兩個不一樣的encoder,而且維護memory bank會比較簡單。

特征表示聚類 Clustering Feature Representation

上面介紹的三種架構(gòu)都是用某種相似度衡量來對比樣本,使得相似樣本相近,不相似樣本變遠,從而學習到好的表示。

本節(jié)介紹的機制使用兩個共享參數(shù)的端到端架構(gòu),這種架構(gòu)使用聚類算法來聚類相似樣本表示。

圖十四:傳統(tǒng)對比樣本學習 vs 對比聚類學習[13]

SwAV [13] 使用了聚類方法。其背后的idea在于,在一個嵌入空間中,貓的樣本們應(yīng)該和狗的樣本們相近(都是動物),而與房子的樣本們相遠。

在基于樣本的學習中,每個樣本被當作一個數(shù)據(jù)集中的離散類。

離散類在連續(xù)的嵌入空間中(相似的樣本表示相近)可能會有問題。

例如在一個batch里,正樣本是貓,負樣本們中也有貓,模型會讓正樣本的貓和負樣本中的貓變遠,不利于表示學習。

4. Encoders

在自監(jiān)督學習中,Encoder非常重要,因為它們把數(shù)據(jù)樣本遍歷到隱空間中。

圖十五:訓練一個Encoder,然后遷移學習到下游任務(wù)。

沒有一個強大的encoder的話,模型可能難以學到有效的表示,從而執(zhí)行分類任務(wù)。對比學習中的大多數(shù)模型都采用了ResNet或其變種。

5. 訓練

為了訓練一個encoder,需要一個前置任務(wù)來利用對比損失來進行反向傳播。

對比學習最核心的觀點是將相似樣本靠近,不相似樣本靠遠。

所以需要一個相似度衡量指標來衡量兩個表示的相近程度。

在對比學習中,最常用的指標是cosine similarity。

c o s s i m ( A , B ) = A ? B ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ cos_sim(A, B) = \frac{A\cdot B}{||A||||B||}?cossim(A,B)=∣∣A∣∣∣∣B∣∣A?B

Noise Contrastive Estimation (NCE) [38] 函數(shù)定義為:

L N C E = ? log ? exp ? ( s i m ( q , k + ) / τ exp ? ( s i m ( q , k + ) / τ ) + exp ? ( s i m ( q , k ? ) / τ ) L_{NCE} = -\log \frac{\exp (sim(q, k_+)/\tau}{\exp (sim(q, k_+)/\tau ) + \exp (sim (q, k_{-})/\tau)}?LNCE=?logexp(sim(q,k+)/τ)+exp(sim(q,k?)/τ)exp(sim(q,k+)/τ

其中q qq是原樣本,k + k_+k+是正樣本,k ? k_-k?是負樣本,τ \tauτ是超參數(shù),被稱為溫度系數(shù)。s i m ( ) sim()sim()可以是任何相似度函數(shù),一般來說是cosine similarity。

如果負樣本的數(shù)量很多,NCE的一個變種 InfoNCE 定義為:

L I n f o N C E = ? log ? exp ? ( s i m ( q , k + ) / τ exp ? ( s i m ( q , k + ) / τ ) + ∑ i = 0 K exp ? ( s i m ( q , k i ) / τ ) L_{InfoNCE} = -\log \frac{\exp (sim(q, k_+)/\tau}{\exp(sim(q, k_+)/\tau) + \sum_{i=0}^K \exp(sim(q, k_i)/\tau)}?LInfoNCE=?logexp(sim(q,k+)/τ)+∑i=0Kexp(sim(q,ki)/τ)exp(sim(q,k+)/τ

k i k_iki表示負樣本。

與其他深度學習模型類似,對比學習應(yīng)用了許多訓練優(yōu)化算法。訓練的過程包括最小化損失函數(shù)來學習模型的參數(shù)。

常見的優(yōu)化算法包括 SGD 和 Adam 等。

訓練大的 batch 的網(wǎng)絡(luò)有時需要特殊設(shè)計的優(yōu)化算法,例如 LARS。

6. 下游任務(wù)

圖十六:計算機視覺中的各種下游任務(wù)

一般來說,計算機視覺的自監(jiān)督訓練包括兩個任務(wù):

前置任務(wù)

下游任務(wù)

下游任務(wù)聚焦于具體的應(yīng)用,在優(yōu)化下游任務(wù)的時候,模型利用到了前置任務(wù)優(yōu)化時期所學到的知識。這些任務(wù)可以是分類、檢測、分割、預測等。圖十七提供了一個遷移學習的流程。

圖十七:計算機視覺中的下游任務(wù)

為了測試自監(jiān)督學習中學習到的特征對下游任務(wù)的效果,一些方法,例如

kernel visualization

feature map visualization

nearsest-neighbor based approaches

被用來分析前置任務(wù)的有效性。

對 Kernels 和 特征圖進行可視化

在這里,第一個卷積層的特征的kernels(分別來自于自監(jiān)督訓練和監(jiān)督訓練)被用來做比較。

類似地,不同層的 attention maps 也可以被用來測試模型的有效性。

圖十八:AlexNet所訓練的 attention map

最近相鄰擷取

一般來說,相同類的樣本在隱藏空間中的位置應(yīng)該相近。對一個輸入的樣本,使用最近相鄰方法,可以在數(shù)據(jù)集中使用 top-K 抽取來分析自監(jiān)督學習的模型是否有效。

7. 基準

最近,許多自監(jiān)督學習模型挑戰(zhàn)了監(jiān)督模型的效果。在本章中,我們收集和對比了這些模型的效果,在下游任務(wù)上。對于圖像分類,我們選擇了ImageNet和Places數(shù)據(jù)集。類似的,對于目標檢測,我們選擇了Pascal VOC數(shù)據(jù)集。行為識別和視頻分類我們選擇了UCF-101,HMDB-51和Kinetics。

表一:ImageNet

表二:Places 數(shù)據(jù)集

表三:VOC7+12 (a)frozen feature (b)fine-tune

表四:視頻分類

不具體解釋了。

8. NLP上的對比學習

提供了一些背景知識,略。

9. 討論和未來方向

盡管實驗結(jié)果顯示對比學習的效果很好,但是它還需要更多的理論論證。

缺少理論支撐

數(shù)據(jù)增強的選擇和前置任務(wù)

恰當?shù)呢摌颖静蓸?/a>

數(shù)據(jù)集偏見

10. 結(jié)論

這篇論文總結(jié)了各種流行的自監(jiān)督對比模型。

我們解釋了對比學習中不同的模塊:

如何選擇正確的前置任務(wù)

如何選擇學習架構(gòu)

如何在下游任務(wù)上優(yōu)化

基于對比學習的模型獲得了非常好的實驗效果。

本文最后總結(jié)了當前對比學習面臨的問題。

Reference

[3] Ian J Goodfellow et al., Generative adversarial networks, 2014.

[13] Caron et al., Unsupervised learning of visual features by contrasting cluster assignments, 2020.

[14] He et al., Momentum contrast for unsupervised visual representation learning, CVPR, 2019.

[15] Chen et al., A simple framework for contrastive learning of visual representations, ICML, 2020.

[20] Qian et al., Spatiotemporal contrastive video representation learning, arXiv, 2020.

[21] Oord et al., Representation learning with contrastive predictive coding, arXiv, 2018.

[22] Lorre et al., Temporal contrastive pretraining for video action recognition, IEEE Winter Conference on Applications of Computer Vision, 2020.

[23] Sermanet et al., Time-contrastive networks: Self-supervised learning from video, 2017.

[24] Tao et al., Self-supervised video representation learning using inter-intra contrastive framework, 2020.

[26] Yamaguchi et al., Multiple pretext-task for self- supervised learning via mixing multiple image transformations, 2019.

[28] Noroozi et al., Unsupervised learning of visual representations by solving jigsaw puzzles, ECCV, 2016.

[38] Gutmann et al., A new estimation principle for unnormalized statistical models, AISTATS, 2020.

參考鏈接:https://blog.csdn.net/xovee/article/details/111622221

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容