对比学习(二)-模型坍塌-infoNCE损失函数
接對(duì)比學(xué)習(xí)(一)
對(duì)比學(xué)習(xí)(二)
- L2正則使用原因
- 模型坍塌
- infoNCE損失函數(shù)
- 負(fù)例難度
L2正則使用原因
使用l2正則化的原因:
- 對(duì)比學(xué)習(xí)在做特征相似度計(jì)算時(shí),要先對(duì)表示向量做l2正則化然后再做點(diǎn)積計(jì)算,或者進(jìn)行cosine相似度計(jì)算。研究表明,把特征表示g(f(x))映射到單位超球面上,有這樣的好處。首先,相比帶有向量長(zhǎng)度信息的點(diǎn)積,在去掉長(zhǎng)度信息后的單位長(zhǎng)度向量入如下所示的操作上,能增加深度學(xué)習(xí)模型的訓(xùn)練穩(wěn)定性。
- 當(dāng)把表示向量映射到球面上,如果模型的表示能力足夠好,對(duì)于相似的實(shí)例會(huì)聚集到比較近的區(qū)域上,那么很容易適用線性分類器把某類與其他類別分開。將向量首先經(jīng)過l2正則化后再進(jìn)行相似度計(jì)算就相當(dāng)于,把向量映射到了球面超面上進(jìn)行相互比較。實(shí)驗(yàn)也表明,首先進(jìn)行l(wèi)2正則化能夠提升模型的效果。
一個(gè)好的表示學(xué)習(xí)模型應(yīng)該具備的特點(diǎn):
- 一個(gè)好的對(duì)比學(xué)習(xí)應(yīng)該具備以下兩個(gè)屬性:Alignment和Uniformity。其中,Alignment指的是相似的例子,也就是正例,映射到單位超球面后,應(yīng)該具有比較接近的特征,球面距離應(yīng)該比較近;Uniformity指的是系統(tǒng)應(yīng)該傾向于應(yīng)該在特征里保留盡可能多的信息,映射到球面上就要求,單位球面上的特征應(yīng)該盡可能地均與分布在球面上,分布越均勻,意味著保留的特征也就越多越充分。因?yàn)?#xff0c;分布越均勻,意味著各自保留各自的獨(dú)有的特征,這代表著信息保留越充分。
模型坍塌
- Uniformity特性的極端反例,所有數(shù)據(jù)都映射到單位超球面的同一個(gè)點(diǎn)上,這代表著所有數(shù)據(jù)的信息都被丟掉,體現(xiàn)為數(shù)據(jù)分布極度不均勻得到了超球面上的同一個(gè)點(diǎn)。也就意味著,所有數(shù)據(jù)經(jīng)過兩次非線性計(jì)算之后都收斂到同一個(gè)常數(shù)上,這種異常情況我們稱之為:模型坍塌(collapse),如上圖所示。
infoNCE損失函數(shù)
- 在simCLR中,可以看到,對(duì)比學(xué)習(xí)模型結(jié)構(gòu)由上下兩個(gè)分支,首先會(huì)將正例對(duì)和負(fù)例對(duì)進(jìn)行兩次非線性計(jì)算,將訓(xùn)練數(shù)據(jù)映射到超球面上。然后通過提下優(yōu)化目標(biāo)的損失函數(shù)為infoNCE損失函數(shù),通過損失函數(shù)來調(diào)整這些映射到單位球面上的點(diǎn)之間的拓?fù)浣Y(jié)構(gòu)關(guān)系,希望能夠?qū)⒄诔蛎嬷g的距離更為接近,負(fù)例在超球面上距離推遠(yuǎn)。infoNCE損失函數(shù)如下所示:
- 在公式中可知,分子中的S()體現(xiàn)出了Alignment屬性,它期望在超球面上正例之間的距離越近越好;分母中的S()則體現(xiàn)了Uniformity屬性,它期望在負(fù)例對(duì)之間的距離盡可能的遠(yuǎn),這種水之間的推力會(huì)盡量將點(diǎn)盡可能地均勻分布在超球面上,保留了盡可能多的有用信息。損失函數(shù)inforNCE會(huì)在Alignment和Uniformity之間尋找折中點(diǎn)。如果只有Alignment模型會(huì)很快坍塌到常數(shù),損失函數(shù)中采用負(fù)例的對(duì)比學(xué)習(xí)計(jì)算方法,主要是靠負(fù)例的Uniformity來防止模型坍塌,很多典型的對(duì)比學(xué)習(xí)方法都是基于此的。
- infoNCE的思想:正例之間相互吸引,負(fù)例之間相互排斥。
- 在infoNCE損失函數(shù)中,有一個(gè)神秘參數(shù)T,這個(gè)參數(shù)的存在有什么用呢?很多實(shí)驗(yàn)研究表明,對(duì)比學(xué)習(xí)模型要想效果比較好,溫度參數(shù)T需要設(shè)置一個(gè)比較小的數(shù)值,一般設(shè)置為0.1或者0.2.。infoNCE能夠感知負(fù)例難度的損失函數(shù),而之所以能夠做到這一點(diǎn),主要依賴與超參數(shù)T。
負(fù)例難度
-
如何感知負(fù)例的難度?什么樣的負(fù)例是有難度的?
-
在對(duì)比學(xué)習(xí)中,對(duì)于數(shù)據(jù)x,除了他的唯一正例x+外,所有其他的數(shù)據(jù)都是負(fù)例。但是,這些負(fù)例有一些和x比較像,有一些差異比較大,對(duì)于比較接近原始數(shù)據(jù)特征,難以進(jìn)行區(qū)分的,難度比較大;對(duì)于區(qū)別度很大,存在的共同特征表較少的,難度比較小,區(qū)分比較容易。比如:原始圖像為狗,需要區(qū)分的為狗和狼,難度比較大,需要區(qū)分的為樹、人,難度比較小,便于區(qū)分。
-
將其映射到超球面上就是,比較像的、有難度的負(fù)例在超球面上距離比較近,比較容易區(qū)分的在超球面上距離比較遠(yuǎn)。也就是說,距離越近的負(fù)例越難區(qū)分,距離越遠(yuǎn)的負(fù)例越容易區(qū)分。
-
總而言之,溫度參數(shù)T起到的作用:溫度參數(shù)會(huì)將模型更新的重點(diǎn),聚焦到有難度的負(fù)例,并對(duì)他們做相應(yīng)的懲罰,難度越大,也即與x越接近,分配到的懲罰系數(shù)越多。所謂懲罰就是,就是在模型優(yōu)化的過程中,需要將這些負(fù)例從x身上推開明時(shí)期的距離越遠(yuǎn),是一種斥力。也就是,距離越近的負(fù)例護(hù)膚易更多的權(quán)重,會(huì)具有更大的斥力,需要將其推開的力越大。
-
如果溫度超參數(shù)設(shè)置過小,會(huì)導(dǎo)致?lián)p失函數(shù)分配的懲罰項(xiàng)范圍越窄,更加聚焦在比較近的范圍之內(nèi)負(fù)例之中。同時(shí),如果這些被覆蓋的負(fù)例,因?yàn)閿?shù)量減少了,會(huì)導(dǎo)致分配到的每個(gè)負(fù)例上的權(quán)重更大,斥力會(huì)更大。在極端的情況下,如果溫度系數(shù)接近于0,會(huì)導(dǎo)致infoNCE退化為Triplet(facenet人臉識(shí)別中的損失函數(shù))。一般情況下,有效的負(fù)例智慧聚焦在距離最近的一到兩個(gè)最難的實(shí)例。從上述分析可知:溫度參數(shù)越小,那么超球面上的密集數(shù)據(jù)將會(huì)被打散,數(shù)據(jù)將會(huì)越來越均勻。
-
但是,溫度參數(shù)也不是越小越好。由于在進(jìn)行數(shù)據(jù)學(xué)習(xí)時(shí),我們使用的是無監(jiān)督,負(fù)例中有可能會(huì)存在一些潛在的正例,如果參數(shù)太小會(huì)導(dǎo)致比較近的潛在正例被推開,這樣是不正確的。
因此,我們希望能夠在溫度參數(shù)能夠在alginment和unifoemity之間找一個(gè)平衡點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的对比学习(二)-模型坍塌-infoNCE损失函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt界面控件的翻译
- 下一篇: java斗地主发牌教学,QQ游戏“斗地主