加余边界softmax损失的人脸验证
Additive Margin Sotfmax for Face Verification论文解读
1、贡献与不足
贡献:
它提出了一种更为直观,简单的分类损失函数相比于A-softmax,并且效果比
A-softmax更好。
不足:
提出AM-softmax的决策边界 相比于arcface 的决策边界稍微逊色一点;
2、AM-softmax 损失函数
首先将权重w 与特征y进行归一化为模为1的值所有wy=||w||||y||*cos=cos
(4)中这里再减去我们定义惩罚m,这就表示我们最后一层网络输出的值代入softmax表达式中得(6)
这里分母为啥分两部分了,因为这里是对yi对应的类进行惩罚,(减m操作),其他的yi并没有惩罚。同时这里有两个超参数一个s,m;s=30而m在0.3到0.45最佳
3、三种损失下的特征分布
1、softmax 下的特征分布,softmax能对类间具有较好的分离学习,而对类内紧凑不太理想。
2、 NormFace这正是本论文基于的算法,减小了类内距离。
3、SphereFace在最佳超参数下特征分布
4和5都是本轮的算法对应特征分布。
AM-softmax m取比0.2更大的值会有类内距离会更小,而sphereFace如果>0.5,性能会下降。
4、 A-Softemax与AM-Softmax比较
4.1、公式上:
A-Softemax损失函数:
AM-Softemax损失函数:
A-softmax 1比AM-softmax 2更复杂,其中1特征y没有做归一化模为1处理,而2做了。然后1还使用了分界函数来限制取值。
4.2、角度距离与余弦距离比较
Asoftmax是用m乘以θ,而AMSoftmax是用cosθ减去m,这是两者的最大不同之处:一个是角度距离,一个是余弦距离。
使用传统的Softmax的时候,角度距离和余弦距离是等价的,即
但是当我们试图要推动决策边界的时候,角度距离和余弦距离就有所不同了。
最终的决策边界是和余弦相关的,根据cos的性质,优化角度距离比优化余弦距离更有效果,因为余弦距离相对更密集
之所以选择cosθ-m而不是cos(θ-m),这是因为我们从网络中得到的是W和f的内积,如果要优化cos(θ-m)那么会涉及到arccos操作,计算量过大
这部分摘抄自 这里
4.3、有无特征归一化操作比较
2、到底要不要特征归一化处理?
论文提到在这基于你处理图像质量,特征归一化会影响特征的反向传播操作,在处理低质量图像(及特征范数很小的图像)如MegaFace数据集,特征归一化操作具有一定提高参更新作用;在高质量图像LFW中,特征归一化参数更新效果不佳,具体见下图:
5、实验
人脸检测模型使用了目前最先进的MTCNN检测,而网络使用了Resnet20,相应实验设置参照了A-softmax实验具体如下:
首先使用MTCNN检测人脸,在将人脸裁剪为112*96大小;减去128再除以128做归一化操作;没有使用预训练模型,从头开始训练网络权重衰减为:0.0005;batch=256
学习率r=0.1开始,在16K,24k和28k除以10.训练3万次停止变化。使用图像镜像进行数据增强,将将镜像和正面人脸特征加在一起作为人脸图像的表示;比较面部图像时,将用余弦相似度作为度量。
实验数据如下 (w/o FN表示为无特征归一化):