续(一)
上节讲到了Arcface的从Softmax损失函数改进后的损失函数的公式3部分
这个图详细介绍了用Arcface损失函数训练时网络后端的组成与原理,从最左侧的||W|| 与||X||的归一化,到在余弦角度增加m,然后进行feature的rescale,统一变换到64,最后经过softmax得到预测的probability,与GT计算交叉熵的损失
原文解释:图2,用Arcface损失函数监督训练一个DCNN。 基于特征xi和权重W归一化,我们将每个类别的cosθj(logit)作为WTj xi。 计算arccosθyi并得到特征xi与真实权重Wyi之间的夹角。 实际上,Wj为每个班级提供了一种中心。 然后,在目标(真实)角度θyi上增加一个角余量罚分m。 之后,计算cos(θyi+ m)并将所有对数乘以特征标度s。 然后,对数通过softmax函数并导致交叉熵损失。
来看下它的伪代码:
还是比较容易懂得,就不啰嗦了。
再来看论文中的图3
作者用两个圆来解释用Arcface与Softmax损失之间的区别。因为了加了m,所以能分得开。
原文解释:从包含足够样本(约1,500张图像/类)的8个不同身份中选择人脸图像,以分别训练具有softmax和ArcFace损失的二维特征嵌入网络。 如图3所示,Softmax损失提供了大致可分离的特征嵌入,但是在决策边界中产生了明显的歧义,而ArcFace损失显然可以相近类别之间的间隙更加明显。
对比完了Softmax Loss,接下来就要对比SphereFace 与 CosFace的损失函数了
从两个角度来分析,第一个是数值相似性,第二个是几何差异性,图4
Google翻译的还过得去,就不改了。数值相似性。 在SphereFace [18,19],ArcFace和CosFace [37,35]中,提出了三种不同的余量惩罚,例如 乘法角余量m1,加法角余量m2和加余弦余量m3。 从数值分析的角度来看,无论是在角度[18]上还是余弦空间[37]上增加不同的边际惩罚,都将通过惩罚目标logit来强制实现类内部的紧凑性和类间的多样性[26]。 在图4(b)中,我们绘制了SphereFace,ArcFace和CosFace在其最佳边距设置下的目标logit曲线。 我们仅在[20°,100°]内显示这些目标logit曲线,因为在ArcFace训练期间,Wyi和xi之间的角度从90°左右(随机初始化)开始,在30°左右结束,如图4(a)所示。 直观地,目标对数曲线中有三个影响性能的因素,即起点,终点和斜率。
通过结合所有边际罚分,我们在以m1,m2和m3为超参数的统一框架中实现SphereFace,ArcFace和CosFace。得到了公式4.
如图4(b)所示,通过组合所有上述余量的因子(cos(m1θ+ m2)- m3),我们可以轻松地获得一些其他目标Logit曲线,它们也具有很高的性能。图4(b)的CM1和CM2就是组合损失了。
接下来看看几何差异性。
尽管ArcFace与以前的工作在数值上相似,但是建议的附加角裕度具有更好的几何属性,因为该角裕度与测地距离具有精确的对应关系。
如图5所示,我们比较了二进制分类情况下的决策边界。 拟议的ArcFace在整个间隔内具有恒定的线性角裕度。 相比之下,SphereFace和CosFace仅具有非线性角度余量。,这句话的意思我理解为Arcface相比于SphereFace不会存在两个类的某些样本会十分接近,这里可以看向SphereFace的原点位置。其次是相比于CosFace拥有较大的类内区域,不知道这是不是一个优点,平行一定比余弦好吗?或者说线性比非线性好?
角和余量设计上的细微差别可能会对模型训练产生“蝴蝶效应”。 例如,原始的SphereFace [18]采用了退火优化策略。 为了避免在训练开始时出现分歧,在SphereFace中使用了来自softmax的联合监督来减弱乘法边际罚分。 我们通过使用反余弦函数而不是使用复杂的双角度公式来实现新版本的SphereFace,而对边距没有整数要求。 在我们的实现中,我们发现与原始SphereFace相比,m = 1.35可以获得类似的性能,而没有任何收敛困难。Diss SphereFace。。。
对比完了Softmax Loss,SphereFace 与 CosFace损失函数,接下来要对比 Intra-loss, inter-loss与triblet-loss了
可以基于特征和权重向量的角度表示来设计其他损失函数。 例如,我们可以设计一种损失,以在超球面上强制实现类内紧凑性和类间差异。 如图1所示,我们将本文中的其他三个损失进行了比较。 这句话很啰嗦,有凑字数嫌疑。图一在第一篇Arcface的笔记中已经介绍过了。
Intra-loss的设计旨在通过减小样本与真实标签中心之间的角度/弧度来提高类内紧凑性,公式如5。之前说过了,感觉这一小节都有凑字数嫌疑。
Inter-loss 的目标是通过增加不同中心之间的角度/弧度来增强阶级间的差异,公式如6。简单来说一个缩小类内,一个增大类间.
Inter-loss在这里是最小超球形能量(MHE)方法的一种特殊情况[17]。 在[17]中,隐藏层和输出层都由MHE进行了正则化。 在MHE论文中,通过将SphereFace损失与网络最后一层的MHE损失相结合,还提出了损失函数的一种特殊情况。
triplet-loss 旨在扩大三重态样本之间的角度/弧度余量。 在FaceNet [29]中,欧几里得边距应用于归一化特征。 在这里,我们通过特征的角度表示为来使用三重态损失。
本节完。。。