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 X1,X2 ,EBM输出能量值 E W ( X 1 , X 2 ) E_W(X_1,X_2) EW(X1,X2) 来评估 X 1 , X 2 X_1,X_2 X1,X2 之间的相似度。我们希望 E W ( X 1 , X 2 ) E_W(X_1,X_2) EW(X1,X2) 在 X 1 , X 2 X_1,X_2 X1,X2 属于相同的人脸时尽可能小,不同时尽可能大。在训练时,如果我们只在 X 1 , X 2 X_1,X_2 X1,X2 为相同的人脸对上训练参数 W W W,那么可能特征提取函数 G W ( X ) G_W(X) GW(X) 会学到一个固定的输出。因此EBM还需要在属于不同人脸的数据对上训练。而对于概率模型,这个问题不存在,这是因为让特定对的概率值高,在正则化的情况下自动让其他组合的概率值低。
人脸识别使用的孪生神经网络与前一篇blog中的结构基本上一样,除了换成CNN
其中
X
1
,
X
2
X_1,X_2
X1,X2 为孪生神经网络的两个输入,
Y
Y
Y 表示
X
1
,
X
2
X_1,X_2
X1,X2 是否属于同一张人脸,
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) EW(X1,X2) 衡量了 X 1 , X 2 X_1,X_2 X1,X2 之间的相容性,定义如下
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)|| EW(X1,X2)=∣∣GW(X1)−GW(X2)∣∣
使用 X 1 , X 2 X_1,X_2 X1,X2 表示任一 Y = 0 Y=0 Y=0 的数据对,使用 X 1 , X 2 ′ X_1,X_2' X1,X2′ 表示任一 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,EW(X1,X2)+m<EW(X1,X2′)
为了简化表示,令 E W G = E W ( X 1 , X 2 ) E_W^G = E_W(X_1,X_2) EWG=EW(X1,X2) , E W I = E W ( X 1 , X 2 ′ ) E_W^I = E_W(X_1,X_2') EWI=EW(X1,X2′)
作者为了实现条件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,X1,X2)i)L(W,(Y,X1,X2)i)=(1−Yi)LG(EW(X1,X2)i)+YiLI(EW(X1,X2)i)
其中 L G , L I \mathcal L_G,\mathcal L_I LG,LI 分别是将 Genuine 和 Impostor 的数据对构成的能量值 E W … … G , E W I E_W……G,E_W^I EW……G,EWI 映射到相同损失坐标下的损失函数。一种简单的方式是将 L G L_G LG 设计成单调上升 L I L_I LI 设计成单调下降的函数。考虑 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(EWG,EWI)=LG(EWG)+LI(EWI)
我们做出两个假设: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 EWG,EWI 都成立:
- H ( E W G , E W I ) H(E_W^G,E_W^I) H(EWG,EWI) 的最小值落在 E W G + m < E W I E_W^G+m<E_W^I EWG+m<EWI 的半平面内。
这保证了当我们最小化
H
H
H 的时候,参数会被优化到满足条件1的位置上。对于
H
H
H 的最小值落在无穷远的情况,如下图所示
以下条件3是充分的。
- H ( E W G , E W I ) H(E_W^G,E_W^I) H(EWG,EWI) 在边界 E W G + m = E W I E_W^G+m = E_W^I EWG+m=EWI 上梯度的负数与 [ − 1 , 1 ] [-1,1] [−1,1] 的点乘是正数。
条件3如果成立的情况下,我们可以证明定理1
- 假设 H ( E W G , E W I ) H(E_W^G,E_W^I) H(EWG,EWI) 在坐标系 E W G , E W I E_W^G,E_W^I EWG,EWI 上是凸面的,在无穷远处有最小值,假定存在 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 EWG,EWI 组成的第一象限,边界 H W G + m = E W I H_W^G+m = E_W^I HWG+m=EWI 的两个半平面分别用 H P 1 , H P 2 HP_1,HP_2 HP1,HP2 来表示,使用 R R R 表示对于所有可能的 W W W 的取值, E W G , E W I E_W^G,E_W^I EWG,EWI 的对应区域,根据假定,存在至少一点 W W W 满足条件1,因此区域 R R R 与 H P 1 HP_1 HP1 存在交集,为了证明定理,我们需要证明 R R R 与 H P 1 HP_1 HP1 的交集中至少存在一点损失值要小于 R R R 与 H P 2 HP_2 HP2 的交集。
假设在分界线
E
W
G
+
m
=
E
W
I
E_W^G+m = E_W^I
EWG+m=EWI 上,
E
G
∗
E_G^*
EG∗ 满足
E G ∗ = arg min H ( E W G , E W G + m ) E_G^* = \arg\min H(E_W^G,E_W^G+m) EG∗=argminH(EWG,EWG+m)
根据条件3,所有边界线上梯度的负数都指向 H P 1 HP_1 HP1 内,根据凸面性质,因此有
∀ 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) ∀EWG+m>EWI,H(EG∗,EG∗+m)≤H(EWG,EWG+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(EG∗−ϵ,EG∗+m+ϵ)≤H(EG∗,EG∗+m)
因此,定理得证。
当 L G L_G LG 是一个单调上升的函数, L I L_I LI 是一个单调下降的函数时,条件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,X1,X2)=(1−Y)Q2(EW)2+Y⋅2Qe−Q2.77EW
其中,常数 Q Q Q 被定为 E W E_W EW 的上界。
这种损失函数的定义符合单增单降和凸性,因此使用该损失函数可以是计算机找到满足条件1的 W W W。算法中的常数是为了保证在边界线上的梯度的相反方向总是指向区域 R R R 的内部,避免陷入 梯度指向 R R R 外部的边界点上的局部最优情况。还有一点,不要使用 L 2 L_2 L2 正则代替能量定义中的 L 1 L_1 L1 正则,避免在能量接近于0时候的梯度消失问题。
测试
使用与之前的一篇文章 blog 相同的处理方法来衡量一张人脸与召回集中的一张人脸是同一张人脸的概率。模型在3个数据集上进行训练,并在其中的两个数据集上进行了测试。模型的表现使用据真率和受伪率同时衡量。
总结
论文中的证明部分还是非常有意思的,但是个人感觉存在两个问题
- 构造的损失函数的复杂形势的过程没有写出来,尽管符合损失的假设条件但是不知道意义何在
- 面向开头提出的两个问题,论文中没有过多的去强调模型的优势,在实验部分只是简单说了一下我们在小的训练集上得到了较好的结果