softmax增强: A-SoftMax. SphereFace: Deep Hypersphere Embedding for Face Recognition

本文转载自:https://blog.csdn.net/shaoxiaohu1/article/details/78885080

参考文献: Liu W, Wen Y, Yu Z, et al. SphereFace: Deep Hypersphere Embedding for Face Recognition[J]. arXiv preprint arXiv:1704.08063, 2017.

摘要

之前写过一篇large-marin softmax (L-Softmax) 的介绍,与Softmax Loss 相比,它能够学习区分度更高的特征。基于L-Softmax的改进,这篇paper提出Angular-Softmax(A-Softmax)去学习判别特征,它在超球面流形上强加了一个判别约束,而这个超球面流形本质上与人脸的先验知识位于同一个流形上。A-Softmax在人脸数据库LFW/YTF/MegaFace上的识别结果均优化其它loss函数。与L-Softmax类似,angular margin 同样可以由一个参数 m 来调整。

算法源码

算法介绍

1. Softmax Loss

在介绍A-Softmax之前,我们先来回顾softmax loss。当定义第 ii 个输入特征 xixi 以及它的标签 yiyi时,softmax loss 记为: 

L=1N∑iLi=1N∑i−log(efyi∑jefj)L=1N∑iLi=1N∑i−log(efyi∑jefj)


其中 fjfj 表示最终全连接层的类别输出向量 ff 的第 jj 个元素, NN 为训练样本的个数。由于 ff 是全连接层的激活函数 WW 的输出,所以 fyifyi 可以表示为 fyi=WTyixi+byifyi=WyiTxi+byi, 最终的损失函数又可以写为: 

Li=−log(e‖Wyi‖‖xi‖cos(θyi,i)+byi∑je‖Wj‖‖xi‖cos(θj,i)+bj)Li=−log(e‖Wyi‖‖xi‖cos(θyi,i)+byi∑je‖Wj‖‖xi‖cos(θj,i)+bj)


其中 θ(j,iθ(j,i0≤θj,i≤π0≤θj,i≤π)是WjWj和xixi之间的夹角。 当Wj=1Wj=1,bj=0bj=0 时,我们可以得到一个修改的softmax loss: 

Lmodified=−log(e‖xi‖cos(θyi,i)∑je‖xi‖cos(θj,i))Lmodified=−log(e‖xi‖cos(θyi,i)∑je‖xi‖cos(θj,i))

 

PS: 与L-Softmax不同的是,作者除了假设bj=0bj=0,还将‖Wj‖‖Wj‖设为1。

2. 引入Angular margin

为了便于说明,作者以二分类作为示例。为了将属于类1特征xx正确分类,修改后的softmax损失函数要求cos(θ1)>cos(θ2)cos(θ1)>cos(θ2),即θ1<θ2θ1<θ2。本文在此基础上增加一个参数m(m≥2)m(m≥2),此时要正确分类,需使cos(mθ1)>cos(θ2)cos(mθ1)>cos(θ2),即θ1<θ2/mθ1<θ2/m,θ2<θ1/mθ2<θ1/m。这样就增强了判决的约束,使得学习出的特征的区分更强。根据这种思想修改的softmax loss函数为: 

Lang=−log(e‖xi‖cos(mθyi,i)e‖xi‖cos(mθyi,i)+∑j≠yie‖xi‖cos(θj,i))Lang=−log(e‖xi‖cos(mθyi,i)e‖xi‖cos(mθyi,i)+∑j≠yie‖xi‖cos(θj,i))


其中0≤θyi,i≤πm0≤θyi,i≤πm。与L-Softmax论文中相同,为了保证上式能在CNN中进行前/后向反馈,上式变换为: 

Lang=−log(e‖xi‖ψ(θyi,i)e‖xi‖ψ(θyi,i)+∑j≠yie‖xi‖cos(θj,i))Lang=−log(e‖xi‖ψ(θyi,i)e‖xi‖ψ(θyi,i)+∑j≠yie‖xi‖cos(θj,i))


在这里,ψ(θ)ψ(θ) 可以表示为: 

ψ(θ)=(−1)kcos(mθ)−2k,ψ(θ)=(−1)kcos(mθ)−2k,


其中θ∈[kπm,(k+1)πm]θ∈[kπm,(k+1)πm], kk 是一个整数且 k∈[0,m−1]k∈[0,m−1]。

 

我们可以看出,mm的值越大,angular magin也就越大,那么mm的最小值是多少呢?作者证明了,要使最小的类间距大于最大的类内距,对于二分类问题,需m≥2+3‾√m≥2+3,对于多分类问题,m≥3m≥3。在实验中,mm通常设为4。

下表为不同的Loss函数的决策边界对比:

这里写图片描述

直观分析

为了分析A-Softmax Loss的有效性,作者将初始的Softmax,修改后的Softmax以及A-Softmax在二分类的结果首先用一个简单的二维空间几何表示:

这里写图片描述

可以看到,与前两者相比,A-Softmax在类别的角度维度上的分类更加分明,决策边界明显扩大。同时,从图中我们也可以看出,Softmax 在内在的角度分布特性,这也是作者提到基于Euclidean margin和Softmax融合不能取得较好效果的原因。

各个Loss函数在2D、3D超球面流形的表示如下图所示,对于更高维度的超球面,不好描述,但大家可以脑补下。 
这里写图片描述

实验结果

为了证明A-Softmax的有效性, 作者构建了Sphere Face的网络,实验在人脸识别数据上进行。训练集采用CASIA-WebFace,测试集分别在LFW/YTF上进行。

mm的影响

可以看出,随着mm的增大,特征的类别的区分性也就越高。(普遍反应这个图画得非常好,值得学习) 
这里写图片描述

人脸识别测试

在LFW/YTF上,A-Softmax均得了最好好的结果,只比FaceNet略差(采用了更多的训练集);在MegaFace的数据集上的1:1开集比对和开集1:N搜索,Sphere Face均取得了最佳的结果。 
LFW/YTF测试结果

MegaFace测试结果

总结

本文通过增加angular margin的约束,在Softmax的基础上提出了A-Softmax,以此来学习区分力更强的人脸特征Sphereface,并且证明了增强参数mm的下界。各个人脸识别测试集的实验证明了该方法的有效性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值