人脸损失函数的各种变体

人脸损失函数的各种变体都是基于softmax的交叉熵损失函数进行改进的,因此本文首先介绍基础形式,然后对各种变体进行说明。

  • 基于softmax的交叉熵损失函数

 先放上两者的基本形式

E(x)=-\sum p{_{x}}*log(q{_{x}})   CE形式,其中p{_{x}}为样本真实分布,q{_{x}}为该样本观察分布

\sigma (z_{j})=\frac{e^{z{_{j}}}}{\sum_{k=1}^{K}{e^{z{_{k}}}}}                  Softmax形式

基于softmax的交叉熵损失函数,就是利用softmax的值替代CE中样本的观察分布q{_{x}},真实分布p{_{x}}为one-hot向量。具体计算过程可参考tf损失函数的参数,其中labels传入样本真实分布,logits值传入softmax计算所需要的z{_{k}}值。

  • 人脸其他损失函数变体的由来

针对上述基本形式,真实分布的one-hot向量不会改变,指数和对数计算函数不改变的情况下,影响计算结果的只有标量z{_{j}}的值。而z{_{j}}是通过w{_{j}}*x{_{j}}+b{_{j}}计算获得的,因此针对向量点乘的公式被拔得体无完肤。总的来说都是利用余弦函数在[0,\pi]区间单调递减的特性来达到目标的。

L{_{i}}=-log(\frac{e^{\left \| w{_{y{_{i}}}} \right \|\left \| x{_{i}} \right \|\psi (\theta y{_{i}})}}{e^{\left \| w{_{y{_{i}}}} \right \|\left \| x{_{i}} \right \|\psi (\theta y{_{i}})}+\sum {_{j\neq y{_{i}}}}e^{\left \| w{_{y{_{i}}}} \right \|\left \| x{_{i}} \right \|\cos(\theta{_{j}})}})      其中\psi (\theta )=\left\{\begin{matrix} cos(m\theta ), 0\leqslant \theta \leqslant \frac{\pi }{m} & \\ D(\theta ), \frac{\pi }{m}< \theta \leqslant \pi & \end{matrix}\right.       L-Softmax形式

L{_{ang}}=\frac{1}{N}\sum_{i}-log(\frac{e^{​{\left \| x{_{i}} \right \|}\psi (\theta {_{y{_{i}}}},{_{i}})}}{e^{​{\left \| x{_{i}} \right \|}\psi (\theta {_{y{_{i}}}},{_{i}})}+\sum {_{j\neq y{_{i}}}}e^{​{\left \| x{_{i}} \right \|}cos (\theta {_{j}},{_{i}})}})      其中\psi (\theta {y{_{i}},i})=(-1)^{k}cos(m\theta{y{_{i}}},{_{i}) -2k  A-Softmax形式

上述两个损失函数主要是针对向量夹角进行的改进,即样本与对应权重间的夹角由\theta变为m\theta,由于当m>1时,cos(\theta )>cos(m\theta ),这样以来当样本与权重在较大夹角情况下满足点乘值最大时,类别的泛化能力更好,另一方面使得类内间距更小,类间间距更大。

分别基于Softmax和L-Softmax训练后网络特征的可视化

L{_{lmc}}=\frac{1}{N}\sum_{i}-log\frac{e^{s(cos(\theta {_{y{_{i}}},_{i}})-m)}}{e^{s(cos(\theta {_{y{_{i}}},_{i}})-m) + \sum {_{j \neq y{_{i}} }e^{scos(\theta {_{j,i}})}}}}        CosFace损失函数,m\in [0, \frac{c}{c-1})

L{_{AMS}}=-\frac{1}{n}\sum_{i=1}^{n}log\frac{e^{s\cdot (cos\theta {_{y{_{i}}}-m})}}{e^{s\cdot (cos\theta {_{y{_{i}}}-m})}+\sum _{j=1,j\neq y{_{i}}}^{C}e^{s\cdot cos\theta{_{j}}}}         AM-Softmax 损失函数

两篇论文的损失函数都是通过对余弦距离的结果进行的改进,即在原来余弦距离的基础上增加m的冗余。针对余弦距离的修改比针对角度距离的修改后分类效果更佳明显。至于s的由来,可参考论文CosFace中的说法:\left \| x \right \|对得分函数没有贡献,因此将该值使用s进行替代。

L=-\frac{1}{N}\sum_{i=1}^{N}log\frac{e{^{s(cos(\theta y{_{i}} + m))}}}{e{^{s(cos(\theta y{_{i}} + m))}} + \sum{^{n}}{_{j=1,j\neq y{_{i}}}}e{^{scos\theta{_{j}}}}}   ArcFace的损失函数

论文对向量夹角进行的改进,不同于L-Softmax和A-Softmax成倍增加夹角的是该损失函数在原夹角基础上增加m的冗余。下图直观的反映了不同损失函数的夹角对决策面的影响。

 

参考文献:

  1. 人脸识别:损失函数总结
  2. 人脸识别损失函数简介与Pytorch实现:ArcFace、SphereFace、CosFace

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值