人脸识别“NormFace: L 2 Hypersphere Embedding for Face Verification”

源码地址: https://github.com/happynear/NormFace

研究了特征归一化方法用于增强人脸验证性能,同时提出了两种适应于归一化特征训练的两种策略:基于优化余弦相似度改进的softmax损失,改进的度量学习方法。

在人脸验证中,余弦距离或者L2归一化的欧式距离通常用来衡量特征间的相似度,余弦距离相当于归一化的两个向量的内积。但在CNN的训练中,内积运算通常不进行归一化,目前还没严格的解释为什么在测试阶段计算相似度时特征需要归一化。但归一化之后效果确实变好了,作者的目的是将特征归一化的操作嵌入到CNN的训练中。

但直接的归一化特征和最后一层全连接层的权重,然后搭建一个余弦层,网络不会收敛,论文找到了解决方法。

**L2 Norm层**

回答了两个问题:为什么损失函数是softmax时需要归一化特征,为什么直接将softmax损失用于归一化的特征网络不能收敛?

softmax损失倾向于建立径向的特征分布,原因是softmax扮演max算子的soft版本,在MNIST数据库上使用softmax损失训练的2维特征分布如图:

Proposition 1.对于将无偏内积相似度作为度量的softmax损失,使用表示x被分类的类别i的概率,对于任意给定的尺度s>1,如果i=arg maxj(Wjf),则Pi(sf)≥Pi(f)恒成立。

命题1表示softmax损失通常鼓励分离的好的特征具有较大的幅度,这是softmax的特征分布是径向的原因。但是使用余弦距离时通常不需要这个特性。

归一化层定义

输入向量x,L2归一化层输出归一化的向量,x可以是特征向量,也可以是权值矩阵Wi的一列:

后向传播是,x的梯度为:

可以认为是在单位球体上tangent空间的投影。

改进softtmax损失

Proposition 2.假设每一类样本数量相同,样本分布合理,即,每个样本的特征与对应类的权值相同。如果将特征及权值的每一列都归一化,具有范数l,则softmax损失的最小值为,其中n是类别数目。

这个边界表示,如果将特征及权重归一化到1,则softmax损失将在比较高的值处徘徊,如果将这两者归一化到大于1的值,softmax损失就会继续下降。实际中是在cosine层之后增加一个scale层,scale层仅有一个可学习的参数s=l2。根据下图中的损失与l2的关系,可以将l2固定一个值,如20~30,此时具有较小的损失。

这个尺度在训练中学习更好,具有cosine距离的softmax损失为:

改进度量学习

将度量学习改变一下,用来做分类任务,同时保持它与归一化特征的兼容度。最常用的度量学习方法为对比损失和三元损失。在归一化后,改进的softmax损失可以认为是优化归一化的欧式距离,

这是由于

由这个启发,可以将特征改为权值矩阵的一列,将Wi称为第i类的‘agent’,对比损失的分类形式为:

三元损失的分类形式

改进后困难的样本将具有更大的梯度,文中图6所示,改进后需要更大的margin使得更多的特征得到优化。

Proposition3是设置margin的理论指导,改进的对比及三元损失的margin分别为1,0.8。

实验结果

相似度阈值选取,先将相似度值直方图化,作为特征,使用SVM分类,获得相同id及不同id的阈值:

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值