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