损失函数在人脸识别中的演进

 

       我们通常希望提取到的人脸特征是属于某一个人脸独有的特征,这样我们就可以很容易的使用这些特征去做接下来识别的任务。这些特征是通过我们设计的网络结构去提取的,好的网络和训练方法以及损失函数的设置会使得模型更加的健壮。

       随着,网络结构设计的逐渐完善,简单的通过改变网络的结构来优化模型的识别能力已经基本趋于极限。因此研究人员开始将目光聚焦到了损失函数的修改上。

       我们通常计算损失函数的的反向梯度来实现模型参数的更新,不同的损失函数可以时模型在学习的过程中侧重点出现差异化,这样我们就可以学习到数据的某一方面的特征,如果损失函数设计的好,我们可以正好学习到独有的可以区分与其他人连的特征,那么损失函数的设计就是perfect。

一、Softmax Loss

假设我们的网络输出的结果y1,y2,y3...yn,那么经过softmax激活函数之后的输出为:

这个输出结果,使用交叉熵计算与原始标签的距离:

二、Center Loss

上图是2016年Y.Wen等学者在论文中做的一个基于MNIST的实验,将数据可视化之后的样子,可以看出,类之间确实由清晰的边界划分。但是,我们同样也发现,同类之间的余弦夹角有可能大于它与不同类别之间的夹角(也可以这样看,类内间的距离有可能大于它与不同类别之间的距离),因此,做了如下改进:

这样的话,我们在softmax上加入了一个类内距离计算,这样就可以拉近类内数据,这样在看余弦夹角我们会发现,同类之间的余弦夹角绝大多数小于它与不同类别之间的夹角。

 

三、A-Softmax Loss

之后,研究人员将W和特征f归一化,并去掉偏置b,特征曾输出可以视为cos(thet)。进一步的改进:将thet乘以决策余量m,进行权重归一化,并将偏执归零。

 

四、Consine Margin Loss

这里增加了尺度系数s并且使用cos(thet) - t

 

五、Arcface

Arcface则是在三和四基础上的进一步改进,可以看出结合。如下是ArcFace的输入到输出流程: resnet model输出特征,archead将特征与权重间加上角度间隔后,再输出预测标签,softmax loss求预测标签和实际的误差。

如下图是上述公式的具体实现过程

接下来结合公式和代码对应解释:

Normx_cos = norm_dense

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值