• 论文解读(CosFace)《CosFace: Large Margin Cosine Loss for Deep Face Recognition》


    论文信息

    论文标题: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 损失函数【指交叉熵损失函数】:

        Ls=1Ni=1Nlogpi=1Ni=1Nlogefyij=1Cefj(1)" role="presentation">Ls=1Ni=1Nlogpi=1Ni=1Nlogefyij=1Cefj(1)

      其中,  

        fj=WjTx=Wjxcosθj" role="presentation">fj=WjTx=Wjxcosθj

      Noteθj" role="presentation">θj 代表了 权重向量 Wj" role="presentation">Wjx" role="presentation">x 之间的夹角;

      分类任务的期望,是使得各个类别的数据均匀分布在超球面上。

      NSL 损失:【 固定权重向量 W" role="presentation">W 的模长 W=s" role="presentation">W=s 和特征向量 x" role="presentation">x 的模长 x=s" role="presentation">x=s

         Lns=1Nilogescos(θyi,i)jescos(θj,i)(3)" role="presentation">Lns=1Nilogescos(θyi,i)jescos(θj,i)(3)

      通过固定 x=s" role="presentation">x=s 消除径向的变化,使得模型在角空间中学习可分离的特征。

      例如,考虑二分类的情况,设 θi" role="presentation">θi 表示特征向量与类 Ci" role="presentation">Cii=1,2" role="presentation">i=1,2)权重向量之间的夹角。NSL 强制 C1" role="presentation">C1cos(θ1)>cos(θ2)" role="presentation">cos(θ1)>cos(θ2)C2" role="presentation">C2 也是如此,因此来自不同类的特性被正确地分类。

      由于 NSL 学习到的特征没有足够的可区分性,只强调正确的分类。所以,本文在分类边界中引入余弦间隔,纳入 Softmax 的余弦公式中。

      为开发一个大间隔分类器,进一步需要 cos(θ1)m>cos(θ2)" role="presentation">cos(θ1)m>cos(θ2)cos(θ2)m>cos(θ1)" role="presentation">cos(θ2)m>cos(θ1),其中 m0" role="presentation">m0 是一个固定参数来控制余弦间隔的大小。由于cos(θi)m" role="presentation">cos(θi)m 低于 cos(θi)" role="presentation">cos(θi),因此对分类的约束更加严格,推广到多类:

        Llmc=1Niloges(cos(θyi,i)m)es(cos(θyi,i)m)+jyiescos(θj,i)(4)" role="presentation">Llmc=1Niloges(cos(θyi,i)m)es(cos(θyi,i)m)+jyiescos(θj,i)(4)

      其中,

        W=WWx=xxcos(θj,i)=WjTxi(5)" role="presentation">W=WWx=xxcos(θj,i)=WjTxi(5)

    2.2 方法对比

      

    Softmax" role="presentation">Softmax 的决策边界:magin<0" role="presentation">magin<0

        W1cos(θ1)=W2cos(θ2)" role="presentation">W1cos(θ1)=W2cos(θ2)

      边界依赖于权重向量的大小和角度的余弦,这导致在余弦空间中存在一个重叠的决策区域。

    NSL" role="presentation">NSL 的决策边界:magin=0" role="presentation">magin=0

        cos(θ1)=cos(θ2)" role="presentation">cos(θ1)=cos(θ2)

      通过去除径向变化,NSL 能够在余弦空间中完美地分类测试样本。然而,由于没有决策边际,它对噪声的鲁棒性并不大:决策边界周围的任何小的扰动都可以改变决策。

    A-Softmax" role="presentation">A-Softmax 的决策边界:

        C1:cos(mθ1)cos(θ2)C2:cos(mθ2)cos(θ1)" role="presentation">C1:cos(mθ1)cos(θ2)C2:cos(mθ2)cos(θ1)

      对于 C1" role="presentation">C1,需要 θ1θ2m" role="presentation">θ1θ2m。然而问题是 Margin" role="presentation">Margin 随着 W1" role="presentation">W1W2" role="presentation">W2 之间的夹角发生变化,如果两个类的样本区分难度很大,导致 W1" role="presentation">W1W2" role="presentation">W2 夹角很小,可能会出现 Margin" role="presentation">Margin 很小的情况。

    LMCL " role="presentation">LMCL  的决策边界:

       C1:cos(θ1)cos(θ2)+mC2:cos(θ2)cos(θ1)+m" role="presentation">C1:cos(θ1)cos(θ2)+mC2:cos(θ2)cos(θ1)+m

      因此,cos(θ1)" role="presentation">cos(θ1) 被最大化,而 cos(θ2)" role="presentation">cos(θ2) 被最小化,使得 C1" role="presentation">C1 执行大边际分类。Figure 2" role="presentation">Figure 2LMCL" role="presentation">LMCL 的决策边界,可以在角度余弦分布中看到一个清晰的 Margin" role="presentation">Margin( 2m" role="presentation">2m)。这表明 LMCL 比 NSL 更健壮,因为在决策边界(虚线)周围的一个小的扰动不太可能导致不正确的决策。余弦裕度一致地应用于所有样本,而不考虑它们的权值向量的角度。

    2.3 特征归一化

      特征归一化的必要性包括两个方面:

      • 没有归一化之前的 Softmax" role="presentation">Softmax 损失函数会潜在地学习特征向量的 L2" role="presentation">L2 模长和角度余弦。由于 L2" role="presentation">L2 模长的增大,会一定程度上降低损失函数的值,这样会削弱余弦约束;
      • 同时希望所有数据的特征向量都具有相同的二范数,以至于取决于余弦角来增强判别性能。在超球面上,来自相同类别的特征向量被聚类在一起,而来自不同类别的特征向量被拉开;

      比如假设特征向量为 x" role="presentation">x,让 cos(θi)" role="presentation">cos(θi)cos(θj)" role="presentation">cos(θj) 代表特征与两个权重向量的余弦,如果没有归 一化特征,损失函数会促使 x(cos(θi)m)>x(cos(θj))" role="presentation">x(cos(θi)m)>x(cos(θj)) ,但是优化过程中如果 (cos(θi)m)<cos(θj)" role="presentation">(cos(θi)m)<cos(θj) ,为了降低损失函数,用 x" role="presentation">x 的增加来换取损失函数的降低也是很可能的,所以会导致优化问题产生次优解。
      此外尺度参数 s" role="presentation">s 应该设置足够大,对于 NSL,太小的 s" role="presentation">s 会导致收敛困难甚至无法收敛。在 LMCL,我 们需要设置更大的 s" role="presentation">s 才能保证在预设的 Margin 以及在足够大的超球面空间来学习特征。
      接下来分析 s" role="presentation">s 应该有一个下界来保证获得期望的分类性能。给定归一化的学习特征向量 x" role="presentation">x 和单位权重向量 W" role="presentation">W,用 C" role="presentation">C 表示类别总数,假设学习到的特征分别位于超平面上,以相应的权重向量为中心。pW" role="presentation">pW  表示类里面期望的最小的后验概率(也就是与 W" role="presentation">W 重合的特征的后验概率), s" role="presentation">s  下界为:

         sC1Clog(C1)PW1PW(6)" role="presentation">sC1Clog(C1)PW1PW(6)

      可以分析出,如果在类别数保持一定情况下,想要得到最佳的 pW" role="presentation">pW s" role="presentation"> s 要足够大。此外,如果固定 pW" role="presentation">pW,随着类别数的增加,也需要增大 s" role="presentation">s 值,因为类别数的增加会提升分类的难度。

    2.4 LMCL的理论分析

      选择合适的 Margin" role="presentation">Margin 很重要,分析超参数 Margin" role="presentation">Margin 的理论界限很有必要。

      考虑二分类问题,类别分别是 C1" role="presentation">C1  和 C2" role="presentation">C2,归一化特征为 x" role="presentation">x,归一化权重向量 Wi" role="presentation">WiWi" role="presentation">Wix" role="presentation">x 之间的夹角为 θi" role="presentation">θi,对于NSL而言,决策边界 cos(θ1)=cos(θ2)" role="presentation">cos(θ1)=cos(θ2) 等同于 W1" role="presentation">W1W2" role="presentation">W2 的角平分线。对于 LMCL" role="presentation">LMCL,对于 C1" role="presentation">C1 类样本它会驱使决策边界 cos(θ1)m=cos(θ2)" role="presentation">cos(θ1)m=cos(θ2) 的形成,这样会导致  θ1" role="presentation">θ1θ2" role="presentation">θ2 小的多。因此类间差异扩大,类内差异缩小。

      我们发现 Margin 与 W1" role="presentation">W1W2" role="presentation">W2 之间的角度有关系。当 W1" role="presentation">W1W2" role="presentation">W2 都给定的时候,余弦 Margin 具有范围的限制。具体而言,假设一个场景,即属于第 i" role="presentation">i 类的所有特征向量与第 i" role="presentation">i 类的相应权重向量 Wi" role="presentation">Wi 完全重叠。 换句话说,每个特征向量都与类 i" role="presentation">i 的权重向量相同,并且显然,特征空间处于极端情况,其中所有特征向量都位于其类中心,在这种情况下,决策边界的 Margin 已最大化(即,余弦 Margin 的严格上限)。

      理论上 m" role="presentation">m 的范围是: 0m(1max(WiTWj)),ij" role="presentation">0m(1max(WiTWj)),ijsoftmax" role="presentation">softmax 损失尝试使来自任意两个类的两个权重之间的角度最大化,以执行完美分类。很明显,softmax 损失的最佳解决方案应将权重向量均匀分布在单位超球面上。引入的余弦 Maging 的可变范围可以推断如下:

        0m1cos2πC,(K=2)0mCC1,(CK+1)0mCC1,(C>K+1)(7)" role="presentation">0m1cos2πC,(K=2)0mCC1,(CK+1)0mCC1,(C>K+1)(7)

      C" role="presentation">C 是训练类别数,K" role="presentation">K 是学习特征的维度。这个不等式意味着随着类别数目越多,Margin" role="presentation">Margin 的设置上界相应减少,特别是类别数目超过特征维数,这个上界允许范围变得会更小。在实践中 m" role="presentation">m 不要取理论上界,理论上界是一种理想的情况(所有特征向量都根据相应类别的权重向量居中在一起),这样当 m" role="presentation">m 太大模型是不会收敛的,因为余弦约束太严格,无法在现实中满足。其次过于严格的余弦约束对噪声数据非常敏感,影响整体性能。

      作者做了一个小实验验证了这些思想,取了 8 个人的人脸数据,用原始的 Softmax" role="presentation">Softmax 损失和本文提出的 LMCL 损失函数训练样本,然后将特征提取并可视化,m" role="presentation">m 应该小于 1cos(2π8)" role="presentation">1cos(2π8),大约 0.29" role="presentation">0.29 ,分 别设置 m=0,0.1,0.2" role="presentation">m=0,0.1,0.2  三种情况,可以观察到原始的 softmax" role="presentation">softmax 损失在决策边界上产生了混淆,而提出的 LMCL 则表现出更大的优势。随着m" role="presentation">m 的增加,不同类别之间的角度 Margin" role="presentation">Margin 已被放大。 

      


    __EOF__

  • 本文作者: Blair
  • 本文链接: https://www.cnblogs.com/BlairGrowing/p/17247447.html
  • 关于博主: I am a good person
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    【AI】Python 实现朴素贝叶斯算法
    codeblock图形界面编程(六)基于ege库的进阶绘图
    学习笔记——Java入门第一季
    详细分析PBot挖矿病毒家族行为和所利用漏洞原理,提供蓝军详细防护建议
    filebeat新filestream类型是否支持tail_files类似功能探究
    计算机网络 实验五 RIP与OSPF实验(网络层算法)
    【Django毕业设计源码】Python考试题库练习系统
    python计算长方形面积 青少年编程电子学会python编程等级考试一级真题解析2022年6月
    深入理解MySQL索引的数据结构和事务的四大特性、隔离性的四种级别
    【前端面试题5】
  • 原文地址:https://www.cnblogs.com/BlairGrowing/p/17247447.html