Paper : Learning a Similarity Metric Discriminatively, with Application to Face Verification
Code :
摘要
Yann LeCun 提出的使用CNN進行孿生網絡中子網絡的特徵提取,進行人臉識別的任務。作者認爲,相比於其他的算法,Contrastive Loss+CNN的結構適合以下幾種任務
類別較多,單一類別下訓練樣本較少的任務
訓練時不知道具體的類別數,只知道總類別的某個子集
個人認爲,這篇文章主要貢獻有以下幾點
對Contrastive Loss的理論分析,證明使用Contrastive Loss得到的解符合任務優化目標
將CNN引入到孿生神經網絡中,利用CNN的幾何不變性進行特徵提取
本文將重點放在證明的部分。
Energy-based model
相比於概率模型,EBM使用未正則化過的能量值進行評估。EBM的優勢在於不使用正則化可以節省使我們遠離概率模型中難以處理的partition function,並且EBM也可以讓我們在設計網絡結構時更加的自由。不過相對於概率模型,對於人臉識別任務,EBM需要考慮的更多一點。形式化的說,對於樣本對 X 1 , X 2 X_1,X_2 X 1 , X 2 ,EBM輸出能量值 E W ( X 1 , X 2 ) E_W(X_1,X_2) E W ( X 1 , X 2 ) 來評估 X 1 , X 2 X_1,X_2 X 1 , X 2 之間的相似度。我們希望 E W ( X 1 , X 2 ) E_W(X_1,X_2) E W ( X 1 , X 2 ) 在 X 1 , X 2 X_1,X_2 X 1 , X 2 屬於相同的人臉時儘可能小,不同時儘可能大。在訓練時,如果我們只在 X 1 , X 2 X_1,X_2 X 1 , X 2 爲相同的人臉對上訓練參數 W W W ,那麼可能特徵提取函數 G W ( X ) G_W(X) G W ( X ) 會學到一個固定的輸出。因此EBM還需要在屬於不同人臉的數據對上訓練。而對於概率模型,這個問題不存在,這是因爲讓特定對的概率值高,在正則化的情況下自動讓其他組合的概率值低。
人臉識別使用的孿生神經網絡與前一篇blog 中的結構基本上一樣,除了換成CNN
其中 X 1 , X 2 X_1,X_2 X 1 , X 2 爲孿生神經網絡的兩個輸入,Y Y Y 表示 X 1 , X 2 X_1,X_2 X 1 , X 2 是否屬於同一張人臉,Y = 0 Y=0 Y = 0 表示相同,Y = 1 Y=1 Y = 1 表示不同。
Contrastive Loss & Desirable Condition
E W ( X 1 , X 2 ) E_W(X_1,X_2) E W ( X 1 , X 2 ) 衡量了 X 1 , X 2 X_1,X_2 X 1 , X 2 之間的相容性,定義如下
E W ( X 1 , X 2 ) = ∣ ∣ G W ( X 1 ) − G W ( X 2 ) ∣ ∣
E_W(X_1,X_2) = ||G_W(X_1)-G_W(X_2)||
E W ( X 1 , X 2 ) = ∣ ∣ G W ( X 1 ) − G W ( X 2 ) ∣ ∣
使用 X 1 , X 2 X_1,X_2 X 1 , X 2 表示任一 Y = 0 Y=0 Y = 0 的數據對,使用 X 1 , X 2 ′ X_1,X_2' X 1 , X 2 ′ 表示任一 Y = 1 Y=1 Y = 1 的數據對,我們希望模型滿足條件1
∃ m > 0 , E W ( X 1 , X 2 ) + m < E W ( X 1 , X 2 ′ )
\exist m>0, E_W(X_1,X_2)+m<E_W(X_1,X_2')
∃ m > 0 , E W ( X 1 , X 2 ) + m < E W ( X 1 , X 2 ′ )
爲了簡化表示,令 E W G = E W ( X 1 , X 2 ) E_W^G = E_W(X_1,X_2) E W G = E W ( X 1 , X 2 ) ,E W I = E W ( X 1 , X 2 ′ ) E_W^I = E_W(X_1,X_2') E W I = E W ( X 1 , X 2 ′ )
作者爲了實現條件1,設計瞭如下的損失函數形式
L ( W ) = ∑ L ( W , ( Y , X 1 , X 2 ) i ) L ( W , ( Y , X 1 , X 2 ) i ) = ( 1 − Y i ) L G ( E W ( X 1 , X 2 ) i ) + Y i L I ( E W ( X 1 , X 2 ) i )
\\\mathcal L(W) = \sum \mathcal L(W,(Y,X_1,X_2)^i)
\\\mathcal L(W,(Y,X_1,X_2)^i) = (1-Y_i) \mathcal L_G(E_W(X_1,X_2)^i) + Y_i \mathcal L_I(E_W(X_1,X_2)^i)
L ( W ) = ∑ L ( W , ( Y , X 1 , X 2 ) i ) L ( W , ( Y , X 1 , X 2 ) i ) = ( 1 − Y i ) L G ( E W ( X 1 , X 2 ) i ) + Y i L I ( E W ( X 1 , X 2 ) i )
其中 L G , L I \mathcal L_G,\mathcal L_I L G , L I 分別是將 Genuine 和 Impostor 的數據對構成的能量值 E W … … G , E W I E_W……G,E_W^I E W … … G , E W I 映射到相同損失座標下的損失函數。一種簡單的方式是將 L G L_G L G 設計成單調上升 L I L_I L I 設計成單調下降的函數。考慮 L ( W ) \mathcal L(W) L ( W ) 的簡化形式,即只有一個相同人臉的數據對和一個不同人臉的數據對的情況
H ( E W G , E W I ) = L G ( E W G ) + L I ( E W I )
H(E_W^G,E_W^I) = L_G(E_W^G) + L_I(E_W^I)
H ( E W G , E W I ) = L G ( E W G ) + L I ( E W I )
我們做出兩個假設:1)H ( x , y ) H(x,y) H ( x , y ) 是凸的,2)存在 W W W 滿足條件1。那麼以下關於 H H H 的條件2 對於所有 E W G , E W I E_W^G,E_W^I E W G , E W I 都成立:
H ( E W G , E W I ) H(E_W^G,E_W^I) H ( E W G , E W I ) 的最小值落在 E W G + m < E W I E_W^G+m<E_W^I E W G + m < E W I 的半平面內。
這保證了當我們最小化 H H H 的時候,參數會被優化到滿足條件1的位置上。對於 H H H 的最小值落在無窮遠的情況,如下圖所示
以下條件3 是充分的。
H ( E W G , E W I ) H(E_W^G,E_W^I) H ( E W G , E W I ) 在邊界 E W G + m = E W I E_W^G+m = E_W^I E W G + m = E W I 上梯度的負數與 [ − 1 , 1 ] [-1,1] [ − 1 , 1 ] 的點乘是正數。
條件3如果成立的情況下,我們可以證明定理1
假設 H ( E W G , E W I ) H(E_W^G,E_W^I) H ( E W G , E W I ) 在座標系 E W G , E W I E_W^G,E_W^I E W G , E W I 上是凸面的,在無窮遠處有最小值,假定存在 W W W 滿足條件1,如果條件3成立,那麼相對於 W W W 最小化 H H H 可以找到 W W W 滿足條件1
考慮 E W G , E W I E_W^G,E_W^I E W G , E W I 組成的第一象限,邊界 H W G + m = E W I H_W^G+m = E_W^I H W G + m = E W I 的兩個半平面分別用 H P 1 , H P 2 HP_1,HP_2 H P 1 , H P 2 來表示,使用 R R R 表示對於所有可能的 W W W 的取值,E W G , E W I E_W^G,E_W^I E W G , E W I 的對應區域,根據假定,存在至少一點 W W W 滿足條件1,因此區域 R R R 與 H P 1 HP_1 H P 1 存在交集,爲了證明定理,我們需要證明 R R R 與 H P 1 HP_1 H P 1 的交集中至少存在一點損失值要小於 R R R 與 H P 2 HP_2 H P 2 的交集。
假設在分界線 E W G + m = E W I E_W^G+m = E_W^I E W G + m = E W I 上,E G ∗ E_G^* E G ∗ 滿足
E G ∗ = arg min H ( E W G , E W G + m )
E_G^* = \arg\min H(E_W^G,E_W^G+m)
E G ∗ = arg min H ( E W G , E W G + m )
根據條件3,所有邊界線上梯度的負數都指向 H P 1 HP_1 H P 1 內,根據凸面性質,因此有
∀ E W G + m > E W I , H ( E G ∗ , E G ∗ + m ) ≤ H ( E W G , E W G + m )
\forall E_W^G + m >E_W^I, H(E_G^*,E_G^*+m) \leq H(E_W^G,E_W^G+m)
∀ E W G + m > E W I , H ( E G ∗ , E G ∗ + m ) ≤ H ( E W G , E W G + m )
同時,使用泰勒公式的一階展開形式進行估計,存在小量 ϵ \epsilon ϵ ,有
H ( E G ∗ − ϵ , E G ∗ + m + ϵ ) ≤ H ( E G ∗ , E G ∗ + m )
H(E_G^*-\epsilon,E_G^*+m+\epsilon) \leq H(E_G^*,E_G^*+m)
H ( E G ∗ − ϵ , E G ∗ + m + ϵ ) ≤ H ( E G ∗ , E G ∗ + m )
因此,定理得證。
當 L G L_G L G 是一個單調上升的函數, L I L_I L I 是一個單調下降的函數時,條件3成立。因此損失函數設計如下
L ( W , Y , X 1 , X 2 ) = ( 1 − Y ) 2 Q ( E W ) 2 + Y ⋅ 2 Q e − 2.77 Q E W
\mathcal L(W,Y,X_1,X_2) = (1-Y)\frac{2}{Q}(E_W)^2 + Y\cdot 2Q e^{-\frac{2.77}{Q}E_W}
L ( W , Y , X 1 , X 2 ) = ( 1 − Y ) Q 2 ( E W ) 2 + Y ⋅ 2 Q e − Q 2 . 7 7 E W
其中,常數 Q Q Q 被定爲 E W E_W E W 的上界。
這種損失函數的定義符合單增單降和凸性,因此使用該損失函數可以是計算機找到滿足條件1的 W W W 。算法中的常數是爲了保證在邊界線上的梯度的相反方向總是指向區域 R R R 的內部,避免陷入 梯度指向 R R R 外部的邊界點上的局部最優情況。還有一點,不要使用 L 2 L_2 L 2 正則代替能量定義中的 L 1 L_1 L 1 正則,避免在能量接近於0時候的梯度消失問題。
測試
使用與之前的一篇文章 blog 相同的處理方法來衡量一張人臉與召回集中的一張人臉是同一張人臉的概率。模型在3個數據集上進行訓練,並在其中的兩個數據集上進行了測試。模型的表現使用據真率和受僞率同時衡量。
總結
論文中的證明部分還是非常有意思的,但是個人感覺存在兩個問題
構造的損失函數的複雜形勢的過程沒有寫出來,儘管符合損失的假設條件但是不知道意義何在
面向開頭提出的兩個問題,論文中沒有過多的去強調模型的優勢,在實驗部分只是簡單說了一下我們在小的訓練集上得到了較好的結果