1. 程式人生 > >人臉識別:Contrastive loss和梯度推到

人臉識別:Contrastive loss和梯度推到

Contrastive loss 最初源於 Yann LeCun “Dimensionality Reduction by Learning an Invariant Mapping” CVPR 2016。 
該損失函式主要是用於降維中,即本來相似的樣本,在經過降維(特徵提取)後,在特徵空間中,兩個樣本仍舊相似;而原本不相似的樣本,在經過降維後,在特徵空間中,兩個樣本仍舊不相似。同樣,該損失函式也可以很好的表達成對樣本的匹配程度

Contrastive Loss 定義

在caffe的孿生神經網路(siamese network)中,其採用的損失函式是contrastive loss,這種損失函式可以有效的處理孿生神經網路中的paired data的關係。contrastive loss的表示式如下: 

                                     L(W, (Y, X_1, X_2))=\frac{1}{2N}\sum_{n=1}^NYD_W ^2+(1-Y)max(m-D_W,0)^2


其中\bg_white D_W=||X_1 - X_2||_2 = (\sum^N_i{(X^i_1 - X^i_2)^2})^\frac{1}{2} ,代表兩個樣本特徵X_1X_2的歐氏距離,Y為兩個樣本是否匹配的標籤,Y=1代表兩個樣本相似或者匹配,Y=0則代表不匹配,m為設定的閾值。

觀察上述的contrastive loss的表示式可以發現,這種損失函式可以很好的表達成對樣本的匹配程度,也能夠很好用於訓練提取特徵的模型。

  • 當Y = 1(即樣本相似時),損失函式只剩下L_S = \frac{1}{2N}\sum_{n=1}^NYD_W ^2 ,即原本相似的樣本,如果在特徵空間的歐式距離較大,則說明當前的模型不好,因此加大損失。

  • 當Y = 0(即樣本不相似時),損失函式為L_D = \frac{1}{2N}\sum (1-Y)max(m-D_W,0)^2 ,即當樣本不相似時,其特徵空間的歐式距離反而小的話,損失值會變大,這也正好符號我們的要求。

    [注意這裡設定了一個閾值margin,表示我們只考慮不相似特徵歐式距離在0~margin之間的,當距離超過margin的,則把其loss看做為0(即不相似的特徵離的很遠,其loss應該是很低的;而對於相似的特徵反而離的很近,我們就需要增加其loss,從而不斷更新成對樣本的匹配程度)] 
    這裡寫圖片描述

這張圖表示的就是損失函式值與樣本特徵的歐式距離之間的關係,其中紅色虛線表示的是相似樣本的損失值,藍色實線表示的不相似樣本的損失值。

梯度計算

論文中使用stochastic gradient descent 來不斷更新 D_W,不斷減小loss,更好表達成對樣本的匹配程度。 
(這裡我們先忽略累和操作,後面自己加上即可)

  • Y = 1(即樣本相似時),損失函式為 L_S = \frac{1}{2N}\sum_{n=1}^ND_W ^2,此時計算梯度為: 
  • \frac{\partial L_S}{\partial W} = D_W\frac{\partial D_W}{\partial W} \\

即分別對 X1和X2求偏導,更新梯度 : 

Spring Model Analogy 彈簧模型類比

彈簧模型公式: 

                                                                            F = -KX


(F表示兩點間彈簧的作用力,K是彈簧的勁度係數,X為彈簧拉伸或收縮的長度,彈簧靜止狀態時X=0)

論文中將該contrastive loss損失函式類比於彈簧模型:將成對的樣本特徵,使用該損失函式來表達成對樣本特徵的匹配程度。成對的樣本特徵之間(類比於圖中的一個個點),我們假設這些點之間都有一個彈簧,彈簧靜止時長度為0,點對之間無作用力。①對於樣本相似的特徵,相當於其間的彈簧產生了正位移X(X < m),即彈簧被拉伸了X的長度,此時兩個相似特徵(點)之間存在吸引力。②對於樣本不相似的特徵,相當於其間的彈簧產生的了負位移,即彈簧被壓縮了,此時兩個不相似特徵之間存在排斥力。注意彈簧的特性:當兩點之間彈簧位移超X>m時,此時,彈簧發生形變,此時兩點之間視為沒有吸引力了。具體如下圖所示:

結合上面求梯度的公式也可以很好的理解該損失函式的思想,上面的\frac{\partial L_S}{\partial W}\frac{\partial L_D}{\partial W}代表兩點間彈簧的作用力F,\frac{\partial D_W}{\partial W}對應彈簧的勁度係數,D_W-(m - D_W)代表彈簧的縮放位移。 
這裡寫圖片描述 
上圖顯示了類比的彈簧系統。實心圓表示與中心點相似的點。空心圓圈代表不同的點。彈簧顯示為紅色曲折線。作用在點上的力以藍色箭頭顯示。箭頭的長度近似給出了力的強度。在右側的兩個圖中,x軸是距離D_W,y軸是損失函式的值。(a)中顯示使用僅吸引attractonly彈簧連線到相似點的點。(b)表示相似點對的損失函式及其梯度。(c)表示該點僅與半徑為m的圓內的不同點連線,僅具有m-repulse-only排斥彈簧連線到不相似的點。(d)顯示不相似點對相關的損失函式及其梯度。(e)顯示一個點被不同方向的其他點拉動,形成平衡的情況。