wordpress文章 頁面模板武漢網(wǎng)絡(luò)推廣優(yōu)化
對比學(xué)習(xí)(Contrastive Learning)是一種自監(jiān)督學(xué)習(xí)的方法,旨在通過拉近相似樣本的表示、拉遠不相似樣本的表示來學(xué)習(xí)特征表示。在訓(xùn)練過程中,模型并不依賴標(biāo)簽,而是通過樣本之間的相似性進行學(xué)習(xí)。以下是對比學(xué)習(xí)的基本原理和具體的訓(xùn)練流程:
1. 基本原理
對比學(xué)習(xí)的核心目標(biāo)是通過構(gòu)造正樣本對(相似樣本)和負樣本對(不相似樣本),讓模型學(xué)習(xí)到對相似樣本的特征表示更接近,而對不相似樣本的特征表示更遠。常用的對比學(xué)習(xí)方法有 SimCLR、MoCo 等。
- 正樣本對:指的是經(jīng)過不同增強方式得到的同一圖像的不同視角,或在一些情況下是語義上相關(guān)的圖像對。
- 負樣本對:指的是不同圖像對,它們在語義上或像素空間上不相關(guān)。
2. 對比學(xué)習(xí)的訓(xùn)練流程
以MoCo為例:
其中momentum encoder是動量編碼器,將encoder中的k的參數(shù)更新過程使用動量公式來約束,在MoCo中,作者將m設(shè)置為0.99(即momentum encoder中k的參數(shù)除了剛開始賦值給他,encoder不進行反向傳播更新,往后全靠自己更新),這樣就可以使得k的參數(shù)更新更依賴于之前k的參數(shù)了。
步驟1:樣本增強
- 對每個輸入樣本(例如圖像),通過數(shù)據(jù)增強(如隨機裁剪、旋轉(zhuǎn)、顏色擾動等)生成多個視圖。每個樣本經(jīng)過增強后形成一個正樣本對,即該樣本的兩個不同增強版本。
步驟2:特征提取
- 將增強后的樣本輸入到神經(jīng)網(wǎng)絡(luò)(如卷積神經(jīng)網(wǎng)絡(luò)或 Transformer)中,提取它們的特征表示。特征提取器通常不帶標(biāo)簽地訓(xùn)練,模型在這個過程中學(xué)習(xí)到數(shù)據(jù)的潛在結(jié)構(gòu)。
步驟3:相似性度量
-
對每個樣本對,計算它們的特征表示之間的相似度。通常使用余弦相似度(Cosine Similarity)來衡量特征向量之間的相似性。
- 對于正樣本對(相同樣本的不同視圖),希望它們的特征表示盡量接近,即相似度高。
- 對于負樣本對(不同樣本),希望它們的特征表示盡量遠,即相似度低。
步驟4:損失函數(shù)
-
對比學(xué)習(xí)常用的損失函數(shù)是對比損失(Contrastive Loss)或NCE(Noise Contrastive Estimation)損失,其中最常用的是 InfoNCE 損失。該損失函數(shù)通過極大化正樣本對的相似性,極小化負樣本對的相似性來優(yōu)化模型。
InfoNCE 損失函數(shù)的公式如下:
在反向傳播過程中,L分別對q和k中的權(quán)重w微分來進行參數(shù)更新,使得權(quán)重作用于與q相似性高的k
后的loss更低
步驟5:優(yōu)化與更新
- 利用梯度下降算法最小化對比損失,從而更新網(wǎng)絡(luò)參數(shù),使模型能夠?qū)W到更好的特征表示。
3. 監(jiān)督對比學(xué)習(xí)
在有標(biāo)簽的情況下,可以利用標(biāo)簽信息來構(gòu)造更加有效的正負樣本對。**監(jiān)督對比學(xué)習(xí)(Supervised Contrastive Learning)**通過使用相同類別的樣本作為正樣本對,不同類別的樣本作為負樣本對,這種方式可以進一步提升模型的分類性能。具體步驟如下:
- 構(gòu)建正樣本對:對于每個樣本,選擇與其類別相同的其他樣本作為正樣本,而非只依賴數(shù)據(jù)增強生成正樣本對。
- 構(gòu)建負樣本對:選擇不同類別的樣本作為負樣本。
通過引入監(jiān)督信息,監(jiān)督對比學(xué)習(xí)可以更加有效地對齊同類別樣本的特征表示,從而提升模型的泛化能力。
這種方式確保了模型能夠更好地利用語言模式中的信息,增強對跨領(lǐng)域數(shù)據(jù)的泛化能力。相當(dāng)于對正樣本對最大化,負樣本對最小化來使模型對于同類別的樣本有著更好的辨識能力;在一些E2D的模型中,可以保留或凍結(jié)編碼器部分當(dāng)作預(yù)訓(xùn)練編碼器,然后進行下游任務(wù)。