【论文笔记】SphereFace: Deep Hypersphere Embed
: Deep for Face
源码
本文讨论了open-set 下的深度人脸识别(FR)问题,在适当选择的度量空间下,理想人脸特征的最大类内距离比最小类间距离要小。然而,很少现有的算法可以有效地达到这个标准。为此,我们提出了 (A-)损失,使卷积神经网络(CNN)能够学习 。几何上,a-损失可以看作是对超球面流形施加判别约束,它本质上与流形上所面临的先验条件相匹配。此外,角余量的大小可以通过参数m进行定量调整。我们进一步推导出具体的M来近似理想的特征准则。 在 Face in the Wild(LFW)、 Faces(YTF)和 的广泛分析和实验表明了A-损失在FR任务中的优越性。
loss
假设一个二分类问题,那么下面的公式1和2分别表示样本x属于类别1和类别2的概率。
( 公 式 1 ) p 1 = e x p ( W 1 T × x + b 1 ) e x p ( W 1 T × x + b 1 ) + e x p ( W 2 T × x + b 2 ) (公式1) p1=\frac{exp(W_{1}^T\times\ x+b_1)}{exp(W_{1}^T\times x+b_1)+exp(W_{2}^T\times x+b_2)} (公式1)p1=exp(W1T×x+b1)+exp(W2T×x+b2)exp(W1T×x+b1)
( 公 式 2 ) p 2 = e x p ( W 2 T × x + b 2 ) e x p ( W 1 T × x + b 1 ) + e x p ( W 2 T × x + b 2 ) (公式2)p2=\frac{exp(W_{2}^T\times\ x+b_2)}{exp(W_{1}^T\times x+b_1)+exp(W_{2}^T\times x+b_2)} (公式2)p2=exp(W1T×x+b1)+exp(W2T×x+b2)exp(W2T×x+b2)
Wi and bi are and bias of last fully layer to class i, .
当p1=p2的情况,此时W1x+b1=W2x+b2。如果p1>p2,从p1和p2的公式可以看出二者的分母是一样的,分子都是以e为底的指数函数,是递增的,因此就相当于W1x+b1>W2x+b2。所以的 为: ( W 1 − W 2 ) x + b 1 − b 2 (W_1-W_2)x+b_1-b_2 (W1−W2)x+b1−b2
loss的公式如下:
这里 f j f_j fj表示向量f的第j个元素(1cos(θ2) ,这样就会约束θ1变得更小,也就是类内更加紧凑。
在这两个限制条件的基础上,作者又添加了和large loss一样的角度参数,使得公式5变成如下的公式6:
显然m值越大,优化的难度也越大,但类别之间的 也越大,也就是类间距离越大,同时类内距离越小,因此模型效果越好。本文中参数m默认取4。
这里需要注意的是,如果实际优化的时候仅仅使用cos,那么需要对 Θ \Theta Θ的范围(θy的范围为[0,π/m])进行约束以保证cos单调递减,而为了摆脱这一约束实现cnn的直接优化,实际使用的是cos的近似函数:单调递减的一个函数.
公式7也就是作者文中最终使用的loss公式。因此A- loss可以看成是large loss的改进版,也就是在large loss的基础上添加了两个限制条件。
关于这个 ψ \psi ψ: 参考博客
在代码中引入了超参数 λ \ λ,
λ = m a x ( λ m i n , λ m a x 1 + 0.1 × i t e r a t o r ) \=max(\{min},\frac{\{max}}{1+0.1×}) λ=max(λmin,1+0.1×λmax)其中 λ m i n = 5 , λ m a x = 1500 \{min}=5,\{max}=1500 λmin=5,λmax=1500是为程序预先设定的值,所以实际上 ψ ( θ y i ) = ( − 1 ) k c o s ( m θ y i ) − 2 k + λ c o s ( θ y i ) 1 + λ = c o s ( θ y i ) − c o s ( θ y i ) 1 + λ + ψ ( θ y i ) 1 + λ \psi(\{yi})=\frac{(-1)^k cos(m\{yi})-2k+\ cos(\{yi})}{1+\}=cos(\{yi})-\frac{cos(\{yi})}{1+\}+\frac{\psi(\{yi})}{1+\} ψ(θyi)=1+λ(−1)kcos(mθyi)−2k+λcos(θyi)=cos(θyi)−1+λcos(θyi)+1+λψ(θyi)
综上我们在代码中实现如下:
是关于本文提到的3个loss的分类界限( )对比,可以看出 loss的优化是对W和x的内积进行的; loss(也就是限制Wi的模为1,bi为0)的优化是对角度θi进行的;A- loss的优化也是对θi进行,而且优化目标更加难(引入m参数,优化后在类别之间会得到 )
以上信息参考的博客1, 博客2
其中我们设置m=4;=128; rate从0.1开始,在迭代到16K,24K时除以10,训练在迭代到28K的时候结束。
** data:**我们使用公开提供的网络收集的培训数据集Casia-(排除测试集中出现的标识图像后)来训练我们的CNN模型。
**:**我们从FC1层的输出中提取深度特征。the final of a face是通过将 face 和其 连接()起来得到的。分数(度量)由两个特征的余弦距离计算。(最近邻分类器和阈值分别用于人脸识别和验证。)
4.2. (探究性)
对m值设定的研究:
对cnn最佳层数的研究:
4.3 on LFW and YTF FAR
误识率(FAR):假定由于指纹识别算法性能的原因,把本应该匹配失败的判为匹配成功,若假定这种错误次数为1000次。理论情况下,来自同一个指纹的图像都成功匹配,次数为78110=6160次,匹配的总次数,即880×(880-1)=次。匹配失败次数应为-6160=次。则误识率FAR为1000/*100%=0.13%。