表示學(xué)習(xí)的目的是將原始數(shù)據(jù)轉(zhuǎn)換成更好的表達(dá),以提升下游任務(wù)的效果。在表示學(xué)習(xí)中,損失函數(shù)的設(shè)計(jì)一直是被研究的熱點(diǎn)。損失指導(dǎo)著整個(gè)表示學(xué)習(xí)的過程,直接決定了表示學(xué)習(xí)的效果。這篇文章總結(jié)了表示學(xué)習(xí)中的7大損失函數(shù)的發(fā)展歷程,以及它們演進(jìn)過程中的設(shè)計(jì)思路,主要包括contrastive loss、triplet loss、n-pair loss、infoNce loss、focal loss、GHM loss、circle loss。
1. Contrastive Loss
Dimensionality Reduction by Learning an Invariant Mapping(CVPR 2006)提出contrastive loss,模型中輸入兩個(gè)樣本,經(jīng)過相同的編碼器得到兩個(gè)樣本的編碼。如果兩個(gè)樣本屬于同一類別,則優(yōu)化目標(biāo)為讓兩個(gè)樣本在某個(gè)空間內(nèi)的距離小;如果兩個(gè)樣本不屬于同一類別,并且兩個(gè)樣本之間的距離小于一個(gè)超參數(shù)m,則優(yōu)化目標(biāo)為讓兩個(gè)樣本距離接近m。損失函數(shù)可以表示為:
Contrastive Loss是后面很多表示學(xué)習(xí)損失函數(shù)的基礎(chǔ),通過這種對(duì)比的方式,讓模型生成的表示滿足相似樣本距離近,不同樣本距離遠(yuǎn)的條件,實(shí)現(xiàn)更高質(zhì)量的表示生成。
2. Triplet Loss
FaceNet: A unified embedding for face recognition and clustering(CVPR 2015)提出triplet loss,計(jì)算triplet loss需要比較3個(gè)樣本,這3個(gè)樣本分別為anchor、position和negtive。其目標(biāo)為讓anchor和positive樣本(類別相同)的距離盡可能近,而和negtive樣本(類別不同)的距離盡可能遠(yuǎn)。因此triplet loss設(shè)計(jì)為,讓anchor和positive樣本之間的距離比anchor和negtive樣本要小,并且要小至少一個(gè)margin的距離才不計(jì)入loss。
3. N-pair Loss
Improved Deep Metric Learning with Multi-class N-pair Loss Objective(NIPS 2016)提出N-pairLoss。在之前提出的contrastive loss和triplet loss中,每次更新只會(huì)使用一個(gè)負(fù)樣本,而無法見到多種其他類型負(fù)樣本信息,因此模型優(yōu)化過程只會(huì)保證當(dāng)前樣本的embedding和被采樣的負(fù)樣本距離遠(yuǎn),無法保證和所有類型的負(fù)樣本都遠(yuǎn),會(huì)影響模型收斂速度和效果。即使多輪更新,但是這種情況仍然會(huì)導(dǎo)致每輪更新的不穩(wěn)定性,導(dǎo)致學(xué)習(xí)過程持續(xù)震蕩。
為了解決這個(gè)問題,讓模型在每輪更新中見到更多的負(fù)樣本,本文提出了N-pair loss,主要改進(jìn)是每次更新的時(shí)候會(huì)使用多個(gè)負(fù)樣本的信息。N-pair loss可以看成是一種triplet loss的擴(kuò)展,兩個(gè)的關(guān)系如下圖,當(dāng)我們有1個(gè)正樣本和N-1個(gè)負(fù)樣本時(shí),N-pair loss的計(jì)算方式:
擴(kuò)大負(fù)樣本數(shù)量的問題在于,原來每個(gè)batch內(nèi)只需要計(jì)算N*3個(gè)樣本,現(xiàn)在需要計(jì)算N*(N+1)個(gè)樣本,運(yùn)算量大幅度提高,難以實(shí)現(xiàn)。為了解決這個(gè)問題,文中提出將一個(gè)batch內(nèi)不同樣本的負(fù)樣本數(shù)據(jù)共享,這樣只需要計(jì)算3*N個(gè)樣本的embedding即可,實(shí)現(xiàn)了效率提升。
4. InfoNceLoss
Representation learning with contrastive predictive coding(2018)提出infoNce loss,是對(duì)比學(xué)習(xí)中最常用的loss之一,它和softmax的形式很相似,主要目標(biāo)是給定一個(gè)query,以及k個(gè)樣本,k個(gè)樣本中有一個(gè)是和query匹配的正樣本,其他都是負(fù)樣本。當(dāng)query和正樣本相似,并且和其他樣本都不相似時(shí),loss更小。InfoNCE loss可以表示為如下形式,其中r代表temperature,采用內(nèi)積的形式度量?jī)蓚€(gè)樣本生成向量的距離,InfoNCE loss也是近兩年比較火的對(duì)比學(xué)習(xí)中最常用的損失函數(shù)之一:
相比softmax,InfoNCE loss使用了temperature參數(shù),以此將樣本的差距拉大,提升模型的收斂速度。
5. Focal Loss
Focal Loss for Dense Object Detection(2018)提出Focal Loss,最開始主要是為了解決目標(biāo)檢測(cè)中的問題,但是在很多其他領(lǐng)域也可以適用。Focal Loss解決的核心問題是,當(dāng)數(shù)據(jù)中有很多容易學(xué)習(xí)的樣本和較少的難學(xué)習(xí)樣本時(shí),如何調(diào)和難易樣本的權(quán)重。如果數(shù)據(jù)中容易的樣本很多,難的樣本很少,容易的樣本就會(huì)對(duì)主導(dǎo)整體loss,對(duì)難樣本區(qū)分能力弱。
為了解決這個(gè)問題,F(xiàn)ocal Loss根據(jù)模型對(duì)每個(gè)樣本的打分結(jié)果給該樣本的loss設(shè)置一個(gè)權(quán)重,減小容易學(xué)的樣本(即模型打分置信的樣本)的loss權(quán)重。在交叉熵的基礎(chǔ)上,公式可以表示如下:
其中pt表示,當(dāng)label為1時(shí)模型的預(yù)測(cè)值,當(dāng)label為0時(shí)1-模型的預(yù)測(cè)值。通過對(duì)這個(gè)loss公式的分析可以看出,對(duì)于label為1的樣本,且模型預(yù)測(cè)值接近1,這個(gè)時(shí)候該樣本分類正確且容易預(yù)測(cè),則第一項(xiàng)權(quán)重接近0,顯著減小了這種易分類樣本的loss權(quán)重。當(dāng)label為0,模型預(yù)測(cè)值接近1時(shí),屬于預(yù)測(cè)錯(cuò)誤,loss的權(quán)重也是接近1的,對(duì)該樣本的loss基本沒有影響。
6. GHM Loss
在Focal Loss中強(qiáng)制讓模型關(guān)注難分類的樣本,但是數(shù)據(jù)中可能也存在一些異常點(diǎn),過度關(guān)注這些難分類樣本,反而會(huì)讓模型效果變差。Gradient Harmonized Single-stage Detector(AAAI 2019)提出了GHM Loss,
首先分析了一個(gè)收斂的目標(biāo)檢測(cè)模型中,所有樣本梯度模長(zhǎng)的分布情況。梯度模長(zhǎng)衡量了一個(gè)樣本對(duì)模型梯度的影響大小(不考慮方向),反映了一個(gè)樣本的難以程度,g越大模型因?yàn)榇藰颖拘枰碌奶荻仍酱螅A(yù)測(cè)難度越大。基于交叉熵和模型輸出,梯度模長(zhǎng)g定義如下:
一個(gè)收斂的目標(biāo)檢測(cè)模型的梯度模長(zhǎng)分布如下,簡(jiǎn)單樣本(即g很小的樣本)占絕大多數(shù),這部分樣本是我們希望減小其loss權(quán)重的;同時(shí)還有很多難樣本,它們的g非常大,這部分可以被視作異常點(diǎn),因?yàn)樗鼈兊奶荻炔环洗蠖鄶?shù)樣本,對(duì)于這部分極難樣本也應(yīng)該減小權(quán)重。
為了同時(shí)減小易學(xué)習(xí)樣本和異常點(diǎn)樣本的權(quán)重,文中引入了梯度密度的概念(GD),衡量單位梯度模長(zhǎng)的樣本密度。這個(gè)梯度密度用來作為交叉熵loss中的樣本權(quán)重,公式如下:
上面右側(cè)的圖對(duì)比了各種loss對(duì)不同梯度模長(zhǎng)樣本的影響情況,可以看到GHM對(duì)于簡(jiǎn)單樣本和困難樣本都進(jìn)行了一定的loss抑制,而Focal Loss只能對(duì)簡(jiǎn)單樣本進(jìn)行l(wèi)oss抑制,普通loss對(duì)這兩類樣本都沒有抑制作用。
7. Circle Loss
Circle Loss: A Unified Perspective of Pair Similarity Optimization(CVPR 2020)提出circle loss,從一個(gè)統(tǒng)一的視角融合了class-level loss和pair-wise loss。這兩種優(yōu)化目標(biāo),其實(shí)都是在最小化sn-sp,其中sn表示between-class similarity,即不同類別的樣本表示距離應(yīng)該盡可能大;sp表示within-class similarity,即相同類別的樣本表示距離盡可能小。因此,兩種類型的loss都可以寫成如下統(tǒng)一形式:
基于sn-sp這種loss存在的問題是,優(yōu)化過程中對(duì)sn和sp的懲罰力度是一樣的。例如下面左圖中,A點(diǎn)的sn已經(jīng)很小了,滿足要求了,而sp還不夠大,sn-sp這種優(yōu)化方法讓sn和sp的更新幅度相同。而更好的方法是多更新一些sp,少更新一些sn。此外,這種loss在優(yōu)化過程中也會(huì)導(dǎo)致模棱兩可的情況,導(dǎo)致收斂狀態(tài)不明確。例如T和T'這兩個(gè)點(diǎn),都滿足給定margin的情況下的優(yōu)化目標(biāo),但卻存在不同的優(yōu)化點(diǎn)。
為了解決這個(gè)問題,circle loss在sn和sp分別增加了權(quán)重,用來動(dòng)態(tài)確定sn和sp更新的力度,實(shí)現(xiàn)sn和sp以不同步調(diào)學(xué)習(xí),circle loss的公式如下。當(dāng)sn或sp相似度結(jié)果距離各自的最優(yōu)點(diǎn)較遠(yuǎn)時(shí),會(huì)以一個(gè)更大的權(quán)重進(jìn)行更新。同時(shí),在這種情況下loss不再是對(duì)稱的,需要對(duì)sn和sp分別引入各自的margin。
8. 總結(jié)
損失函數(shù)是影響表示學(xué)習(xí)效果的關(guān)鍵因素之一,本文介紹了表示學(xué)習(xí)中7大損失函數(shù)的發(fā)展歷程,核心思路都是通過對(duì)比的方式約束模型生成的表示滿足相似樣本距離近,不同樣本距離遠(yuǎn)的原則。 審核編輯:郭婷
-
編碼器
+關(guān)注
關(guān)注
45文章
3639瀏覽量
134429
原文標(biāo)題:表示學(xué)習(xí)中的7大損失函數(shù)梳理
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論