论文信息
论文标题:CosFace: Large Margin Cosine Loss for Deep Face Recognition 论文作者:H. Wang, Yitong Wang, Zheng Zhou, Xing Ji, Zhifeng Li, Dihong Gong, Jin Zhou, Wei Liu 论文来源:2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition 论文地址:download 论文代码:download 引用次数:1594
1 介绍
当前提出的损失函数缺乏良好的鉴别能力,所以本文基于 “最大化类间方差和最小化类内方差” 的思想提出了 大边际余弦损失(LMCL)。
2 方法
2.1 引入
Softmax " role="presentation">Softmax Softmax 损失函数【指交叉熵损失函数】:
L s = 1 N ∑ i = 1 N − log p i = 1 N ∑ i = 1 N − log e f y i ∑ j = 1 C e f j ( 1 ) " role="presentation">L s = 1 N ∑ N i = 1 − log p i = 1 N ∑ N i = 1 − log e f y i ∑ C j = 1 e f j ( 1 ) L s = 1 N ∑ i = 1 N − log p i = 1 N ∑ i = 1 N − log e f y i ∑ j = 1 C e f j ( 1 )
其中,
f j = W j T x = ‖ W j ‖ ‖ x ‖ cos θ j " role="presentation">f j = W T j x = ∥ W j ∥ ∥ x ∥ cos θ j f j = W j T x = ‖ W j ‖ ‖ x ‖ cos θ j
Note :θ j " role="presentation">θ j θ j 代表了 权重向量 W j " role="presentation">W j W j 和 x " role="presentation">x x 之间的夹角;
分类任务的期望,是使得各个类别的数据均匀分布在超球面上。
NSL 损失 :【 固定权重向量 W " role="presentation">W W 的模长 ‖ W ‖ = s " role="presentation">∥ W ∥ = s ‖ W ‖ = s 和特征向量 x " role="presentation">x x 的模长 ‖ x ‖ = s " role="presentation">∥ x ∥ = s ‖ x ‖ = s 】
L n s = 1 N ∑ i − log e s cos ( θ y i , i ) ∑ j e s cos ( θ j , i ) ( 3 ) " role="presentation">L n s = 1 N ∑ i − log e s cos ( θ y i , i ) ∑ j e s cos ( θ j , i ) ( 3 ) L n s = 1 N ∑ i − log e s cos ( θ y i , i ) ∑ j e s cos ( θ j , i ) ( 3 )
通过固定 ‖ x ‖ = s " role="presentation">∥ x ∥ = s ‖ x ‖ = s 消除径向的变化,使得模型在角空间中学习可分离的特征。
例如,考虑二分类的情况,设 θ i " role="presentation">θ i θ i 表示特征向量与类 C i " role="presentation">C i C i (i = 1 , 2 " role="presentation">i = 1 , 2 i = 1 , 2 )权重向量之间的夹角。NSL 强制 C 1 " role="presentation">C 1 C 1 的 cos ( θ 1 ) > cos ( θ 2 ) " role="presentation">cos ( θ 1 ) > cos ( θ 2 ) cos ( θ 1 ) > cos ( θ 2 ) ,C 2 " role="presentation">C 2 C 2 也是如此,因此来自不同类的特性被正确地分类。
由于 NSL 学习到的特征没有足够的可区分性,只强调正确的分类。所以,本文在分类边界中引入余弦间隔,纳入 Softmax 的余弦公式中。
为开发一个大间隔分类器,进一步需要 cos ( θ 1 ) − m > cos ( θ 2 ) " role="presentation">cos ( θ 1 ) − m > cos ( θ 2 ) cos ( θ 1 ) − m > cos ( θ 2 ) 及 cos ( θ 2 ) − m > cos ( θ 1 ) " role="presentation">cos ( θ 2 ) − m > cos ( θ 1 ) cos ( θ 2 ) − m > cos ( θ 1 ) ,其中 m ≥ 0 " role="presentation">m ≥ 0 m ≥ 0 是一个固定参数来控制余弦间隔的大小。由于cos ( θ i ) − m " role="presentation">cos ( θ i ) − m cos ( θ i ) − m 低于 cos ( θ i ) " role="presentation">cos ( θ i ) cos ( θ i ) ,因此对分类的约束更加严格,推广到多类:
L l m c = 1 N ∑ i − log e s ( cos ( θ y i , i ) − m ) e s ( cos ( θ y i , i ) − m ) + ∑ j ≠ y i e s cos ( θ j , i ) ( 4 ) " role="presentation">L l m c = 1 N ∑ i − log e s ( cos ( θ y i , i ) − m ) e s ( cos ( θ y i , i ) − m ) + ∑ j ≠ y i e s cos ( θ j , i ) ( 4 ) L l m c = 1 N ∑ i − log e s ( cos ( θ y i , i ) − m ) e s ( cos ( θ y i , i ) − m ) + ∑ j ≠ y i e s cos ( θ j , i ) ( 4 )
其中,
W = W ∗ ‖ W ∗ ‖ x = x ∗ ‖ x ∗ ‖ cos ( θ j , i ) = W j T x i ( 5 ) " role="presentation">W = W ∗ ∥ W ∗ ∥ x = x ∗ ∥ x ∗ ∥ cos ( θ j , i ) = W T j x i ( 5 ) W = W ∗ ‖ W ∗ ‖ x = x ∗ ‖ x ∗ ‖ cos ( θ j , i ) = W j T x i ( 5 )
2.2 方法对比
Softmax " role="presentation">Softmax Softmax 的决策边界:【m a g i n < 0 " role="presentation">m a g i n < 0 m a g i n < 0 】
‖ W 1 ‖ cos ( θ 1 ) = ‖ W 2 ‖ cos ( θ 2 ) " role="presentation">∥ W 1 ∥ cos ( θ 1 ) = ∥ W 2 ∥ cos ( θ 2 ) ‖ W 1 ‖ cos ( θ 1 ) = ‖ W 2 ‖ cos ( θ 2 )
边界依赖于权重向量的大小和角度的余弦,这导致在余弦空间中存在一个重叠的决策区域。
NSL " role="presentation">NSL NSL 的决策边界:【m a g i n = 0 " role="presentation">m a g i n = 0 m a g i n = 0 】
cos ( θ 1 ) = cos ( θ 2 ) " role="presentation">cos ( θ 1 ) = cos ( θ 2 ) cos ( θ 1 ) = cos ( θ 2 )
通过去除径向变化,NSL 能够在余弦空间中完美地分类测试样本。然而,由于没有决策边际,它对噪声的鲁棒性并不大:决策边界周围的任何小的扰动都可以改变决策。
A-Softmax " role="presentation">A-Softmax A-Softmax 的决策边界:
C 1 : cos ( m θ 1 ) ≥ cos ( θ 2 ) C 2 : cos ( m θ 2 ) ≥ cos ( θ 1 ) " role="presentation">C 1 : cos ( m θ 1 ) ≥ cos ( θ 2 ) C 2 : cos ( m θ 2 ) ≥ cos ( θ 1 ) C 1 : cos ( m θ 1 ) ≥ cos ( θ 2 ) C 2 : cos ( m θ 2 ) ≥ cos ( θ 1 )
对于 C 1 " role="presentation">C 1 C 1 ,需要 θ 1 ≤ θ 2 m " role="presentation">θ 1 ≤ θ 2 m θ 1 ≤ θ 2 m 。然而问题是 Margin " role="presentation">Margin Margin 随着 W 1 " role="presentation">W 1 W 1 和 W 2 " role="presentation">W 2 W 2 之间的夹角发生变化,如果两个类的样本区分难度很大,导致 W 1 " role="presentation">W 1 W 1 和 W 2 " role="presentation">W 2 W 2 夹角很小,可能会出现 Margin " role="presentation">Margin Margin 很小的情况。
LMCL " role="presentation">LMCL LMCL 的决策边界:
C 1 : cos ( θ 1 ) ≥ cos ( θ 2 ) + m C 2 : cos ( θ 2 ) ≥ cos ( θ 1 ) + m " role="presentation">C 1 : cos ( θ 1 ) ≥ cos ( θ 2 ) + m C 2 : cos ( θ 2 ) ≥ cos ( θ 1 ) + m C 1 : cos ( θ 1 ) ≥ cos ( θ 2 ) + m C 2 : cos ( θ 2 ) ≥ cos ( θ 1 ) + m
因此,cos ( θ 1 ) " role="presentation">cos ( θ 1 ) cos ( θ 1 ) 被最大化,而 cos ( θ 2 ) " role="presentation">cos ( θ 2 ) cos ( θ 2 ) 被最小化,使得 C 1 " role="presentation">C 1 C 1 执行大边际分类。Figure 2 " role="presentation">Figure 2 Figure 2 中 LMCL " role="presentation">LMCL LMCL 的决策边界,可以在角度余弦分布中看到一个清晰的 Margin " role="presentation">Margin Margin ( 2 m " role="presentation">2 – √ m 2 m )。这表明 LMCL 比 NSL 更健壮,因为在决策边界(虚线)周围的一个小的扰动不太可能导致不正确的决策。余弦裕度一致地应用于所有样本,而不考虑它们的权值向量的角度。
2.3 特征归一化
特征归一化的必要性包括两个方面:
没有归一化之前的 Softmax " role="presentation">Softmax Softmax 损失函数会潜在地学习特征向量的 L 2 " role="presentation">L 2 L 2 模长和角度余弦。由于 L 2 " role="presentation">L 2 L 2 模长的增大,会一定程度上降低损失函数的值,这样会削弱余弦约束;
同时希望所有数据的特征向量都具有相同的二范数,以至于取决于余弦角来增强判别性能。在超球面上,来自相同类别的特征向量被聚类在一起,而来自不同类别的特征向量被拉开;
比如假设特征向量为 x " role="presentation">x x ,让 cos ( θ i ) " role="presentation">cos ( θ i ) cos ( θ i ) 和 cos ( θ j ) " role="presentation">cos ( θ j ) cos ( θ j ) 代表特征与两个权重向量的余弦,如果没有归 一化特征,损失函数会促使 ‖ x ‖ ( cos ( θ i ) − m ) > ‖ x ‖ ( cos ( θ j ) ) " role="presentation">∥ x ∥ ( cos ( θ i ) − m ) > ∥ x ∥ ( cos ( θ j ) ) ‖ x ‖ ( cos ( θ i ) − m ) > ‖ x ‖ ( cos ( θ j ) ) ,但是优化过程中如果 ( cos ( θ i ) − m ) < cos ( θ j ) " role="presentation">( cos ( θ i ) − m ) < cos ( θ j ) ( cos ( θ i ) − m ) < cos ( θ j ) ,为了降低损失函数,用 ‖ x ‖ " role="presentation">∥ x ∥ ‖ x ‖ 的增加来换取损失函数的降低也是很可能的,所以会导致优化问题产生次优解。 此外尺度参数 s " role="presentation">s s 应该设置足够大,对于 NSL,太小的 s " role="presentation">s s 会导致收敛困难甚至无法收敛。在 LMCL,我 们需要设置更大的 s " role="presentation">s s 才能保证在预设的 Margin 以及在足够大的超球面空间来学习特征。 接下来分析 s " role="presentation">s s 应该有一个下界来保证获得期望的分类性能。给定归一化的学习特征向量 x " role="presentation">x x 和单位权重向量 W " role="presentation">W W ,用 C " role="presentation">C C 表示类别总数,假设学习到的特征分别位于超平面上,以相应的权重向量为中心。p W " role="presentation">p W p W 表示类里面期望的最小的后验概率(也就是与 W " role="presentation">W W 重合的特征的后验概率), s " role="presentation">s s 下界为:
s ≥ C − 1 C log ( C − 1 ) P W 1 − P W ( 6 ) " role="presentation">s ≥ C − 1 C log ( C − 1 ) P W 1 − P W ( 6 ) s ≥ C − 1 C log ( C − 1 ) P W 1 − P W ( 6 )
可以分析出,如果在类别数保持一定情况下,想要得到最佳的 p W " role="presentation">p W p W , s " role="presentation"> s s 要足够大。此外,如果固定 p W " role="presentation">p W p W ,随着类别数的增加,也需要增大 s " role="presentation">s s 值,因为类别数的增加会提升分类的难度。
2.4 LMCL的理论分析
选择合适的 Margin " role="presentation">Margin Margin 很重要,分析超参数 Margin " role="presentation">Margin Margin 的理论界限很有必要。
考虑二分类问题,类别分别是 C 1 " role="presentation">C 1 C 1 和 C 2 " role="presentation">C 2 C 2 ,归一化特征为 x " role="presentation">x x ,归一化权重向量 W i " role="presentation">W i W i ,W i " role="presentation">W i W i 与 x " role="presentation">x x 之间的夹角为 θ i " role="presentation">θ i θ i ,对于NSL而言,决策边界 cos ( θ 1 ) = cos ( θ 2 ) " role="presentation">cos ( θ 1 ) = cos ( θ 2 ) cos ( θ 1 ) = cos ( θ 2 ) 等同于 W 1 " role="presentation">W 1 W 1 和 W 2 " role="presentation">W 2 W 2 的角平分线。对于 L M C L " role="presentation">L M C L L M C L ,对于 C 1 " role="presentation">C 1 C 1 类样本它会驱使决策边界 cos ( θ 1 ) − m = cos ( θ 2 ) " role="presentation">cos ( θ 1 ) − m = cos ( θ 2 ) cos ( θ 1 ) − m = cos ( θ 2 ) 的形成,这样会导致 θ 1 " role="presentation">θ 1 θ 1 比 θ 2 " role="presentation">θ 2 θ 2 小的多。因此类间差异扩大,类内差异缩小。
我们发现 Margin 与 W 1 " role="presentation">W 1 W 1 和 W 2 " role="presentation">W 2 W 2 之间的角度有关系。当 W 1 " role="presentation">W 1 W 1 和 W 2 " role="presentation">W 2 W 2 都给定的时候,余弦 Margin 具有范围的限制。具体而言,假设一个场景,即属于第 i " role="presentation">i i 类的所有特征向量与第 i " role="presentation">i i 类的相应权重向量 W i " role="presentation">W i W i 完全重叠。 换句话说,每个特征向量都与类 i " role="presentation">i i 的权重向量相同,并且显然,特征空间处于极端情况,其中所有特征向量都位于其类中心,在这种情况下,决策边界的 Margin 已最大化(即,余弦 Margin 的严格上限)。
理论上 m " role="presentation">m m 的范围是: 0 ≤ m ≤ ( 1 − max ( W i T W j ) ) , i ≠ j " role="presentation">0 ≤ m ≤ ( 1 − max ( W T i W j ) ) , i ≠ j 0 ≤ m ≤ ( 1 − max ( W i T W j ) ) , i ≠ j ,softmax " role="presentation">softmax softmax 损失尝试使来自任意两个类的两个权重之间的角度最大化,以执行完美分类。很明显,softmax 损失的最佳解决方案应将权重向量均匀分布在单位超球面上。引入的余弦 Maging 的可变范围可以推断如下:
0 ≤ m ≤ 1 − cos 2 π C , ( K = 2 ) 0 ≤ m ≤ C C − 1 , ( C ≤ K + 1 ) 0 ≤ m ≪ C C − 1 , ( C > K + 1 ) ( 7 ) " role="presentation">0 ≤ m ≤ 1 − cos 2 π C , ( K = 2 ) 0 ≤ m ≤ C C − 1 , ( C ≤ K + 1 ) 0 ≤ m ≪ C C − 1 , ( C > K + 1 ) ( 7 ) 0 ≤ m ≤ 1 − cos 2 π C , ( K = 2 ) 0 ≤ m ≤ C C − 1 , ( C ≤ K + 1 ) 0 ≤ m ≪ C C − 1 , ( C > K + 1 ) ( 7 )
C " role="presentation">C C 是训练类别数,K " role="presentation">K K 是学习特征的维度。这个不等式意味着随着类别数目越多,Margin " role="presentation">Margin Margin 的设置上界相应减少,特别是类别数目超过特征维数,这个上界允许范围变得会更小。在实践中 m " role="presentation">m m 不要取理论上界,理论上界是一种理想的情况(所有特征向量都根据相应类别的权重向量居中在一起),这样当 m " role="presentation">m m 太大模型是不会收敛的,因为余弦约束太严格,无法在现实中满足。其次过于严格的余弦约束对噪声数据非常敏感,影响整体性能。
作者做了一个小实验验证了这些思想,取了 8 个人的人脸数据,用原始的 Softmax " role="presentation">Softmax Softmax 损失和本文提出的 LMCL 损失函数训练样本,然后将特征提取并可视化,m " role="presentation">m m 应该小于 1 − cos ( 2 π 8 ) " role="presentation">1 − cos ( 2 π 8 ) 1 − cos ( 2 π 8 ) ,大约 0.29 " role="presentation">0.29 0.29 ,分 别设置 m = 0 , 0.1 , 0.2 " role="presentation">m = 0 , 0.1 , 0.2 m = 0 , 0.1 , 0.2 三种情况,可以观察到原始的 softmax " role="presentation">softmax softmax 损失在决策边界上产生了混淆,而提出的 LMCL 则表现出更大的优势。随着m " role="presentation">m m 的增加,不同类别之间的角度 Margin " role="presentation">Margin Margin 已被放大。
__EOF__
-
本文作者: Blair 本文链接: https://www.cnblogs.com/BlairGrowing/p/17247447.html 关于博主: I am a good person 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处! 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角【推荐 】 一下。