【ICCV2021】PaCo:將對比學習用在長尾識別上
原文
motivation
之前工作有人將對比學習loss擴充套件到利用標籤資訊的有監督對比學習loss,利用該loss進行預訓練backbone,之後fix住backbone,訓練後續的線性分類層來進行第二階段的訓練。但作者透過理論分析發現對於頻率高的類別(head)會比低頻率類別(tail)有更高的lower bound,因此模型會更偏向head類別(即head類別能夠更有效的最佳化)
上述結論作者也經過了實驗證明,簡要說一下這個實驗,首先作者在MoCo模型的基礎上進行的實驗,給定一個具有兩個view的資料batch
和label
,其中
為query網路的輸入得到
,
為key網路的輸入得到
(key網路採取動量更新,
會被用於更新momentum queue),針對樣本
的對比學習損失定義如下:
其中,
為在
中的影象
的特徵表示,
為transform層,也屬於query網路,並且
,即包含queue和query,key網路所有的輸出,但不包括query網路輸出的
自身,
,即
中所有label與
相同的部分。則實際實現時對所有樣本的對比學習損失求和並用
進行歸一化,並且和對比學習一樣加上了超引數
則實驗結果如下,其中第二行為上述損失函式的結果,第一行則是傳統的CE損失,最後一行是本文提出的損失函式結果(先不管)
則作者透過理論分析得出
第一個結論1
:當supervised contrastive loss(即上述loss)收斂時,隨機兩個樣本是以 label 為
的正樣本對的機率的最優值為
,其中
,其中
為整個資料集上 label 為
的機率
作者認為上述結論說明,高頻率類別(head類別)可以提供higher lower bound(即更好的lower bound),因此訓練過程會偏向這些類別,而為了解決這個問題,作者提出了新的損失函式
Rebalance in Contrastive Learning : Parametric Contrastive Learning (PaCo)
整個loss的流程如上圖所示,首先作者構建一個class-wise的可學習變數集合
,並且將上述有監督對比學習loss函式更改為如下形式
其中
其中
是兩層的mlp,
,
為超引數。實際實現是對所有
求和並用
歸一化,並且仍新增超引數
經過作者理論分析,又
得到一個結論2
:當 parametric contrastive loss(PaCo)收斂時,隨機兩個樣本是以 label 為
的正樣本對的機率的最優值為
,並且一個樣本距離
中與自己對應的中心
最近的機率的最優值為
,其中
,其中
為整個資料集上 label 為
的機率
假設最頻繁的類別
與最不頻繁的類別
,有
,
,則根據上面提到的兩個結論1,2,兩個樣本是正樣本對的機率最優值從head類到tail類的變化由結論1中的
被rebalance成結論2中的
,而
數值越小(分母中
項佔主導),head類和tail類的機率越相似,越對tail類別友好
但當
數值越低,樣本之間的對比強度會減小,而樣本和中心簇的對比強度會增大,則整個loss越趨向於有監督的交叉熵,因此作者設定
PaCo under balanced setting
作者之後分析了資料是均衡的情況下,該loss的變化
首先當資料是均衡情況下,對於任何
都有
,
,而PaCo loss則變為一個基於CE和supervised contrastive loss 加權和的改進版本,具體推導如下
其中
上述推導部分解釋:首先很顯然我們為了書寫方便定義了
:在
上的
操作之和。第二個等號為按照之前的 PaCo loss的定義將其按照
在
和
上展開。第三個等號中因為
為可學習變數,其表示類別
的中心簇,即相當於fc層關於類別
的權重,因此第二個等號的第一項
裡面可以看作一個 softmax 操作,因此整體第一項可以看作是一個交叉熵
,後面應該就是變形能得到的了(後面我也沒太推出來,有時間再更完整)
Analysis of PaCo under balanced setting
由於相比於正常的多工學習損失,PaCo損失函式後面還帶了一項額外的損失
則針對該額外 loss 項作者又給出了進一步的分析,有時間再補~~~~
上一篇:理線器推薦:理線神器有用嗎?
下一篇:四大?券商投行?企業財務?