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