人脸识别损失函数之ArcfaceLoss

一、向量相关性

这里先说向量相关性是因为,在人脸识别时,我们采取的策略是将一个人脸输入进网络后,得到一组特征向量,将这组特征向量与特征向量库中的其他人脸作损失比较,并规定相应的阈值来判断是否为某某。

什么是向量相关性?

一般来说,我们认为向量相关性(差异:可以用距离或相似度衡量)是两个向量间的夹角大小,在同一坐标系中:夹角为90°时,两个向量相乘结果为0,我们认为两个向量是不相关的。当夹角在(0-90°),两个向量相乘有正数的结果,即正相关。夹角在(90-180°)时,向量相乘为负,即负相关。
距离:信息熵、IOU、L1距离、曼哈顿距离、切比雪夫距离、闵可夫斯基距离、标准化欧氏距离、马氏距离、夹角余弦、汉明距离、杰卡德距离& 杰卡德相似系数、相关系数& 相关距离…

欧式距离

二维空间的公式:
二维
3
三维空间的公式:
1
3
多维空间公式:
欧式距离
欧式距离只能衡量在同一量纲下,两向量的绝对距离。
在欧氏距离公式中,取值范围会很大,一般通过如下方式归一化:
sim = 1 / (1 + dist(X,Y))

余弦相似度

公式:
3
两向量的内积除以两向量的L2范数。这相当于做归一化。余弦相似度与欧式距离区别:相似度不能代替距离,不是等价的关系。一个是角度的衡量,一个是距离的衡量。
因为余弦值的范围是 [-1,+1] ,相似度计算时一般需要把值归一化到 [0,1],一般通过如下方式:
 sim = 0.5 + 0.5 * cosθ
 经过归一化处理以后,相似度全部落在了0和1之间,值越大,相似度越高。
4
余弦距离:1-余弦相似度 = (0-2),0为最相似,2为最不相似。
解决欧式距离与余弦相似度的差异
标准化后的两个向量,他们的欧式距离的平方与余弦距离成正比。转一个别人的推导:
2
回顾Softmax Loss
公式:
2
即:
1
L-SoftmaxLoss

论文:http://proceedings.mlr.press/v48/liud16.pdf

重新思考w*x=二范数w,x *cos theta,引入cos theta,认为各类之间的夹角需要有个angular margin。

A-Softmax与L-Softmax的最大区别在于A-Softmax的权重归一化了,而L-Softmax则没的。A-Softmax权重的归一化导致特征上的点映射到单位超球面上,而L-Softmax则不没有这个限制,这个特性使得两者在几何的解释上是不一样的。

公式:
1
A-SoftmaxLoss

论文:https://arxiv.org/pdf/1704.08063.pdf

Angular softmax (A-Softmax)又名:SphereFace 是在CVPR2017中提出的,应用在人脸识别任务中即称为SphereFace。A-Softmax类似于L-softmax,在原始Softmax的基础上不仅对角度添加m倍数的限制,还对A-Softmax上一层全连接层的W和b做出||W||=1和b=0两个限制。由此以来,A-Softmax的分类过程仅依赖于W和x之间的角度。下图为原始Softmax、添加了||W||=1和b=0限制的modified Softmax和添加了角度m限制以及W和b限制的A-Softmax的对比,每种loss的第一个图(a,c,e)是将二分类特征在坐标轴中画出来,第二个图(b,d,f)将特征映射到圆上,并用箭头画出了W。

使得特征上的点映射到单位超球面上,缺点:余弦倍角公式,求导不方便。
12
公式:
2
即:1
AM-SoftmaxLoss

论文:https://arxiv.org/pdf/1801.05599.pdf

AM-Softmax将A-Softmax角度上的倍数关系改为cos值的比较,用直接减小相似度系数来增大向量距离。这是两者的最大不同之处:一个是角度距离,一个是余弦距离。

公式:
1
2
即:2
3
上图中:原本绿色分割线是之前两个类的边界,现在紫色线是两个类的区域边界。即直接增加了向量距离来迫使两个类分开。

Arc-SoftmaxLoss

论文:https://arxiv.org/pdf/1801.07698v3.pdf

Arcface将margin由cos值改为角度值的比较,直接增大角度比减小相似度距离的方式其实对分类影响更大。
360°角=2π弧度,1弧度约为57.3°

公式:
2
2
上述流程图可以解释为:对归一化后输入的x(特征)和归一化后的w(权重)通过叉乘得到一个arccos的值,这个值对应的角度为θ,然后将m加在这个θ上后,将新的cos(θ+m)与的s(特征缩放)相乘后log一下,再经过softmax输出。

在MNIST上跑出来的分类效果:

3

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值