CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数
?作者?|?李想
學校?|?哈爾濱工業(yè)大學(深圳)
研究方向?|?自然語言處理
Foreword
這次的論文筆記的內(nèi)容是 CVPR'21 的一篇論文“Understanding the Behaviour of Contrastive Loss”?[1]。與以前看的很多講模型這類論文不同,這篇論文沒有模型,沒有 SOTA,而是對對比學習的損失函數(shù)中的 temperature 參數(shù)這個點進行深入剖析,更多的是偏數(shù)學理論的內(nèi)容,并做實驗進行驗證,以此來達到題目所說的理解對比學習損失函數(shù)的目的。雖然網(wǎng)上已經(jīng)有了這篇論文的筆記了,我還是決定自己寫一遍,對論文的理解和印象可能更深刻一點。如有錯誤,還望指正。
論文標題:
Understanding the Behaviour of Contrastive Loss
論文鏈接:
https://arxiv.org/abs/2012.09740
Background
在寫這篇論文筆記之前,我想先簡單寫一寫對另一篇 ICML'20 的論文“Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere” [2] 的一點背景 ,因為 CVPR 這篇論文算是一定程度上 Follow 了他們的工作。
ICML 這篇論文提出了兩個對比學習的重要特性:Alignment 和 Uniformity. 定義如下:
Alignment:對于 Positive pair 中的兩個樣本,應該被映射到相鄰近的特征中。(即 Encoder 需要將相似的樣本編碼為相似的特征向量)
Uniformity:所有特征向量應該在超球面空間*(hypersphere)中幾乎均勻地分布,以保留數(shù)據(jù)中盡可能多的信息。(即特征分布需要最大化保留信息)
其實我認為這兩個特性也自然地體現(xiàn)了對比學習的目的 ,即 和與其相似的正樣本 在 編碼后的相似度 ,應該遠大于 和與其不相似的負樣本 編碼后的相似度。而這兩個特性,從對比學習的 loss 也能窺知一二。
其中 。
可以簡單地將二者的公式寫成如下形式 [3]:(這公式看著簡單,要用 LaTex 打出來可學到好幾個命令 \underset, \mathop, \limits, \rm 什么的)
其中, 為 positive pair 的分布, 為 data distribution,即樣本數(shù)據(jù)分布。
作者通過實驗驗證了這兩個特性與模型性能的關(guān)系,即通過以上公式計算出的 Alignmen 和 Uniformity 兩種度量值越小,encoder 能夠得到更好的表示,模型表現(xiàn)越好(Acc 越高)。即下圖中越藍的點,準確率越高,且集中在左下角,兩個度量值都很小的地方。
▲ Alignment和Uniform度量值與模型Performance的關(guān)系
這兩個 metric 代碼也非常簡單,作者直接貼到了論文里。
#?bsz?:?batch?size?(number?of?positive?pairs) #?d?:?latent?dim #?x?:?Tensor,?shape=[bsz,?d] #?latents?for?one?side?of?positive?pairs #?y?:?Tensor,?shape=[bsz,?d] #?latents?for?the?other?side?of?positive?pairs def?align_loss(x,?y,?alpha=2):return?(x?-?y).norm(p=2,?dim=1).pow(alpha).mean()def?uniform_loss(x,?t=2):return?torch.pdist(x,?p=2).pow(2).mul(-t).exp().mean().log()接下來我們回到最初的 CVPR 這篇論文:
Understanding the Behaviour of Contrastive Loss
Introduction
我認為這篇論文就是上一篇的一個遞進,其一個核心思想就是引入樣本之間潛在的語義結(jié)構(gòu)的概念:模型得到的特征表示過于均勻(uniformity)的話,會不能很好地容忍語義相似的樣本(語義相似的樣本表示分離較遠),從而破壞了這種樣本之間潛在的語義結(jié)構(gòu),影響下游任務的表現(xiàn)。
① 從這一個 idea 出發(fā),作者將這種現(xiàn)象定義為一種 uniformity-tolerance 的兩難困境(我們既希望特征表示足夠均勻地分布使其便于分割開,又希望其能容忍語義結(jié)構(gòu)相似的樣本);—>?② 而為什么會出現(xiàn)這種現(xiàn)象,作者用對比學習 loss 中的參數(shù) temperature ?作為切入點,探討了其是如何影響 embedding 的分布;—>?③ 而如何影響這種分布是因為 temperature 的大小控制使得 contrastive loss 有一種 hardness-aware 的特性,即 temperature 越小,對那些更難的負樣本的 Gradient 梯度更大,使得這些樣本的特征表示更加分離,從而得到的整體的特征分布更加均勻。
這里的更難的負樣本,是指那些與錨點 anchor ? 很相似/屬于同一類的樣本(對于 而言,其增強的樣本 才是正樣本,其余都叫做負樣本),所以對于 encoder 來說,要區(qū)分開他們的表示會更難。
雖然我覺得好像我復述的這一段故事好像也說得通,但是這篇論文實際上的結(jié)構(gòu)好像跟我的思路是相反的。作者是 ③ 先提出 contrastive loss 的 hardness-aware 特性,—>?② 再提出這種特性是 temperature 這個參數(shù)導致和控制的,—>?① 最后提出 temperature 與 uniformity 之間的關(guān)系,并以此定義 uniformity-tolerance dilemma 這個現(xiàn)象。
為了更好地理解作者提出的語義結(jié)構(gòu)的影響,作者用下圖作解釋。對于 (a) (b) 兩種 embedding 分布而言,我們將 與 的 embedding 交換,并不會改變其對比學習的 loss,但是,(a) 的這種分布將兩個都是“狗”的樣本 表示集中在一起,兩個都是“車”的樣本 表示集中在一起,比 (b) 這種分布在下游任務中表現(xiàn)更好,因為它能夠體現(xiàn)出樣本間潛在的語義結(jié)構(gòu)。
我覺得這個圖很有意思,當時還以為作者下面要講怎么在 hypershere 上通過不停地交換來使得同類樣本更近了(大霧)。現(xiàn)在回過頭來看,其實這個圖也一定程度上體現(xiàn)出 uniformity-tolerance 的關(guān)系,即這個圖代表著一種理想情況:當 uniformity 保持不變時,特征表示卻能夠更加體現(xiàn)出語義結(jié)構(gòu)(更能容忍語義結(jié)構(gòu)相似的樣本)。這也是作者后面做實驗想要達到的一個效果。
那 temperature 是不是真的會影響 embedding 的分布呢(②)作者用 T-SNE 可視化了 和 兩種情況下的 embedding 分布。可以看到 時分布更加均勻(uniform),而 時分布更加局部集中-全局分離(即相似/同類的樣本更集中,不相似/不同類的樣本相隔更遠)。也就是從這里,作者提出 uniformity-tolerance 困境的(①)。
Hardness-aware Property ③
作者在對比學習原始 loss,即 Eq.(1) 的基礎(chǔ)上,提出一個簡單形式的 loss,也可以滿足拉近 positive pair 和分隔 negative samples 的目的:
作者將 Eq.(1) 的原始 loss 對正例相似度 和負例相似度 求導,得到以下兩個式子:
其中,
通過 (6) 作者發(fā)現(xiàn)對于不同的 negative sample ,其梯度是與 (7) 中的分子 成比例的(對于樣本 的所有負樣本 而言, 的分子不同,分母相同),不同的 的梯度不同( 越大,梯度越大; 越小,則越放大了這個梯度),因此體現(xiàn)出其 Hardness-aware 的特性。這個特性與簡單化的 loss Eq.(4) 不同, 對 求導后只是固定的值 。
觀察 (5) 式,其實 與 (6) 式的 是一樣的( 和 都只是表示一個不同于 的負樣本編號,二者可以互換),兩個梯度的絕對值之比
令
來表示對于負樣本 的相對梯度,則所有負樣本的相對梯度和為 1,即 滿足概率分布,概率和為 1。
根據(jù) Eq.(8),作者畫出了不同的 值下 關(guān)于 的分布,如下圖。橫坐標為 ,縱坐標為 ,不同顏色的線代表不同的 值。可以發(fā)現(xiàn),當 temperature 越小(藍色線), 相似度越大時, 陡增;而 相似度很小時,曲線趨于均勻平滑。也就是說,對于與 越相近的負樣本 ,loss 對其“懲罰”就越大(梯度越大)。當 非常小時,會導致對比 loss 只集中火力在離 最近的那一兩個樣本上,試圖將他們分隔開 ②。
Uniformity-Tolerance Dilemma ①
作者分別用兩小節(jié)介紹了 Uniformity 和 Tolerance 兩個屬性,并繪制了在不同數(shù)據(jù)集下,不同 temperature 與兩個屬性值的關(guān)系。由于 Uniformity 在 Background 那節(jié)里介紹過了,這里主要介紹一下 Tolerance 的定義和計算方式。
Tolernace:指對于屬于同一類的樣本他們的平均相似度,表示語義相關(guān)的樣本的分布集中程度。
其中, 表示 的類別, 是一個指示函數(shù)(indicator function),當 時,其值為 1;當 時,其值為 0。
Figure 4 表示了不同的 temperature(橫軸)在不同的數(shù)據(jù)集上對 的度量值大小(縱軸),隨著 temperature的增大, 在減小,也就是 在增大,根據(jù)其計算方式,說明 embedding 的分布變得更不均勻了。而對于 Figure 5 則可以看到,隨著 temperatrue 的增大,tolerance 這個值也在增大,說明語義相關(guān)的樣本的相似度在變大。
一個理想的模型,應該是局部聚集,全局均勻的,也就是 tolerance 要大的同時,uniformity 要小。但根據(jù)上面兩個圖,tolerance 增大時,uniformity 也在增大;tolerance 減小時,uniformity 也在減小,這便形成了一個作者所定義的 Uniformity-Tolerance Dilemma。所以對于一般的對比學習 loss 而言,如何選擇一個合適的 temporature 來平衡 embedding 的聚集性和均勻性,是需要根據(jù)具體問題來權(quán)衡的。
我覺得這個思想可以說是一定程度上繼承了 Background 那節(jié)里的 ICML 那篇論文的思想,那里的 Alignment 和這里的 Tolerance 很像,但是,也正如我在 Introduction 開頭所寫的,這篇論文主要就是引入了樣本之間語義結(jié)構(gòu)的概念。Alignment 只是考慮了 Positive pair 的聚集程度,而這篇論文進一步,考慮了同一類相似樣本的聚集程度。
Breaking Point
作者利用了之前的一篇研究工作中提出的 Hard contrastive loss 策略 [4],在計算對負樣本的梯度時,只截取相似度大于某個閾值的負樣本計算(如選取 Top K 最近的負樣本)。
這樣的話,相當于放大了負樣本的作用,使得當 temperature 變大時,模型最后形成的 embedding 分布會更均勻一點,而不會像 Figure 4 那樣隨著 temperature 增大 embedding 分布變得更不均勻。
以此緩解 Uniformity-Tolerance Dilemma 中調(diào)節(jié) temperature 對 uniformity 變化的影響。也呼應了Figure 1 中“當 uniformity 保持不變時,特征表示卻能夠更加體現(xiàn)出語義結(jié)構(gòu)“的目的。
Hard Contrastive Loss 定義如下:
其中, 是負樣本與 anchor 的一個相似度分界點,對于相似度在 這個區(qū)間(informative interval)的負樣本被看作是 informative hard negative samples(與 anchor 更相似,更難將他們分隔開),而對于相似度在 這個區(qū)間,則被稱作 uninformative interval。在計算 loss 時, 的這些負樣本,使其 。相當于將原本負樣本的梯度比例分布(如 Figure 3)壓縮到 informative interval 的這個區(qū)間,從而增強模型對在該區(qū)間內(nèi)負樣本的“懲罰”,集中火力把與 相似的負樣本推遠。
采用 得到的不同數(shù)據(jù)集下,不同 temperature 與 Uniformity 和 Tolerance 兩個屬性值的關(guān)系圖如下。將 Figure 6 和 Figure 4 相比可以發(fā)現(xiàn),此時隨著 temperature 增大,Uniformity 保持較穩(wěn)定不變。此時增大 temperature 便可以在保持 uniformity 不增大的情況下,增大 Tolerance,即模型得到的 embedding 既保持均勻,又能局部聚集,從而保留一定潛在語義結(jié)構(gòu),破解上一節(jié)所說的 Uniformity-Tolerance Dilemma 問題。
Conclusion
在本篇論文中,作者從 temperature 這個參數(shù)入手,從理論和實驗的角度指出 Contrastive Loss 是一個 hardness-aware 的損失函數(shù),而 temperature 在控制 embedding 分布中扮演著重要作用,并由此提出一種 Uniformity-Tolerance Dilemma 問題。針對這個問題,未來還有待研究,比如,從 Tolerance 著手(?)。
*注1:超球面空間 hypersphere:當所有類別的樣本很好地各自聚集在一起并在空間中形成一個球面時,他們是線性可分的。而這一特性是歐幾里得空間做不到的。如下圖,用一個線性分類器,可以找到一個角度切割球面將“貓”這一類的樣本與其他樣本分隔開。
▲ Hypersphere
參考文獻
[1]?Understanding the Behaviour of Contrastive Loss?, CVPR 2021
[2]?Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere?ICML 2020
[3]?SimCSE: Simple Contrastive Learning of Sentence Embeddings
[4]?Local aggregation for unsupervised learning of visual embeddings?ICCV 2019
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關(guān)注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學術(shù)熱點剖析、科研心得或競賽經(jīng)驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題
? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競爭力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯(lián)系方式(微信),以便我們在稿件選用的第一時間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現(xiàn)在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關(guān)注」訂閱我們的專欄吧
·
總結(jié)
以上是生活随笔為你收集整理的CVPR 2021 | 从理论和实验角度深入剖析对比损失中的温度超参数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 佛山大沥步行街到黄飞鸿街怎么坐地铁?
- 下一篇: 猫山王榴莲贵还是金枕榴莲贵啊?