【论文】
ArcFace: Additive Angular Margin Loss for Deep Face Recognition
【思想】
ArcFace loss:Additive Angular Margin Loss(加性角度间隔损失函数),对特征向量和权重归一化,对θ加上角度间隔m,角度间隔比余弦间隔在对角度的影响更加直接。几何上有恒定的线性角度margin。
ArcFace中是直接在角度空间θ中最大化分类界限,而CosFace是在余弦空间cos(θ)中最大化分类界限。
【优点】
(1)性能高,易于编程实现,复杂性低,训练效率高
(2)ArcFace直接优化geodesic distance margin(弧度),因为归一化超球体中的角和弧度的对应。
为了性能的稳定,ArcFace不需要与其他loss函数实现联合监督,可以很容易地收敛于任何训练数据集。
缺点:W模型很大
【各类损失函数】
(1)Softmax loss
(2)Normalized version of Softmax Loss (NSL)
特征向量归一化,权重归一化
(3)A-Softmax Loss
θ乘以决策余量m,进行权重归一化,并将偏置项归零(||W_i||=1,b_i=0)
(4)CosFace Loss
CosFace的LMCL(大间隔余弦损失函数):权重归一化,特征向量归一化到一个固定值s,让cos(θ)加上m(注意是加在了余弦上)。
(5)ArcFace loss
(1)在xi和Wji之间的θ上加上角度间隔m(注意是加在了角θ上),以加法的方式惩罚深度特征与其相应权重之间的角度,从而同时增强了类内紧度和类间差异。
(2)惩罚θ角度的意思就是:训练时加上m就会使θ降低
(3)Margin是如何使类内聚合类间分离的:比如训练时降到某一固定损失值时,有Margin和无Margin的e指数项是相等的,则有Margin的θ_yi就需要相对的减少了。这样来看有 Margin的训练就会把 i 类别的输入特征和权重间的夹角θ_yi缩小了,从一些角度的示图中可以看出,Margin把θ_yi挤得更类内聚合了,θ_yi和其他θ类间也就更分离了。
(4)L2归一化来修正单个权重||W_j||=1,还通过L2归一化来固定嵌入特征||x_i|,并将其重新缩放成s。特征和权重的归一化步骤使预测仅取决于特征和权重之间的角度。因此,所学的嵌入特征分布在半径为s的超球体上。
(5)由于提出的加性角度间隔(additive angular margin)惩罚与测地线距离间隔(geodesic distance margin)惩罚在归一化的超球面上相等,因此我们将该方法命名为ArcFace
【决策边界】
(1)ArcFace:Additive Angular Margin,加法角度间隔
(2)SphereFace:Multiplicative Angular Margin,乘法角度间隔
(3)CosFace:Additive Cosine margin,加法余弦间隔
角度空间特征分步:ArcFace比Softmax的特征分布更紧凑,决策边界更明显,一个弧长代表一个类。
【人脸分类器训练过程】
先将特征向量L2归一化,权重L2归一化,他俩的夹角为θ,计算cos(θj),求反余弦arccos(θyi)得到特征xi与真实权值Wyi之间的夹角θyi,添加角度间隔m,再求余弦cos(θyj+m),将所有的log乘以特征尺度s,然后将log送到softmax函数得到各类别概率。再用Ground Truth和One Hot Vector一起算出交叉熵损失。
即DCNN特征和最后一个完全连接层之间的点积等于特征和权重归一化后的余弦距离。我们利用arc-cosine函数来计算当前特征和目标权重之间的角度。然后,在目标角上加上一个附加的角度间隔,用余弦函数重新计算逻辑回归的反向传播过程。然后,我们用一个固定的特征范数重新缩放所有的逻辑,随后的步骤与Softmax loss 中的步骤完全相同。
【ArcFace与SphereFace、CosFace比较】
(1)数值相似性
在SphereFace、ArcFace和CosFace中,提出了三种不同的margin惩罚,分别是乘法角度间隔m1、加法角度间隔m2、加法余弦间隔m3。从数值分析的角度来看,不同的margen惩罚,无论是加上角度空间还是加在余弦空间,都通过惩罚目标逻辑(target logit),来加强类内紧度和类间多样性。
图4a中ArcFace训练时角度会不断减小,从90到30度。图4b绘制了在其最佳margin设置下的目标逻辑曲线。目标logit曲线中影响性能的因素有三个,即起点、终点和斜率。
(2)联合margin
通过结合所有的margin惩罚(cos(m1*θ+m2)−m3) ,我们可以很容易地得到其他一些同样具有高性能的目标逻辑曲线。如图4b的CM1线。
(3)几何差异
ArcFace的在整个区间内具有恒定的线性角度margen,margen保持不变。注意图5二分类情况下的决策边界的坐标轴是θ,而不是cos(θ)。尽管ArcFace与以往的工作相似,但由于角度与测地距离具有精确的对应关系,提出的加性角度间隔具有较好的几何属性。
CosFace的margen在角度空间上有非线性的角度间隔,但在cos空间上是直线;
SphereFace在θ比较小时margen也比较小;
Softmax没有margen。
【弧矩】
ArcFace是在角度空间分割,ArcFace的angular margin对应着弧距(arc margin)(也叫geodesic测地距离),就是在超球面曲面上的最小距离。而不是两特征点之间直接相连的距离。
【设计组合margin损失函数】
基于中心和特征归一化,所有身份分布在超球面上。为了提高类内密度和类间差异,我们比较了四种测地线距离/弧度/角度约束(Geodesic Distance (GDis) constraint),根据特征和权重向量的角度表示来设计。
(A) 间隔损失(Margin-Loss):在样品和中心之间插入角度margin。角度空间。大量的实验结果表明(A)策略是最有效的。
样本用x表示,中心用W表示。中心就是最终人脸特征表示,如SphereFace中假设最后一个完全连接层中的线性变换矩阵可以表示角度空间中类别的中心。
(B) 类内损失:减少样本与相应真实中心之间的角度/弧来提高类内紧密性。L2时特征向量和权重归一化的NSL函数。内部损失可以有效压缩类内变化,但也会带来较小的类间角度。
(C) 类间损失:增加不同中心之间的角度/弧来增强类间差异。类间损失可以略微增加W(直接)和嵌入网络(间接)上的类间差异,但也会增加类内角度。
(D) 基于角度间隔的三元组损失:在三元样品之间插入测地线距离margin。余弦空间。与ArcFace相比,三元损失具有相似的类内紧度,但类间差较低。ArcFace已经具有很好的类内紧凑性和类间差异性。