返回顶部

[学习经验] Arcface loss的原理通解

[复制链接]
迪迦奥特曼Lv.7 显示全部楼层 发表于 2023-10-11 14:14:48 |阅读模式 打印 上一主题 下一主题

马上注册,享用更多功能,让你轻松玩转AIHIA梦工厂!

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 迪迦奥特曼 于 2023-10-11 02:17 PM 编辑

作者:刘一手
——————————————————————————————————————————————————————————

【Arcface loss是专门为人脸识别任务设计的损失函数】

1 为什么需要设计Arcface loss?
人脸识别的难点在于不同人脸之间的特征难以分辨,需要我们选择损失函数来增大不同人脸的差异性,一般的损失函数是通过类内紧凑的方法来实现不同特征的分离,但是对于以下的情况效果不好:当两个特征点的中心太接近时,不管怎么进行类内紧凑都无法实现特征分离。

因此我们需要设计其他方法来对特征进行分类,方法有两种:
第一种:减小类间距离,如Center loss;
第二种:增加类间距离。

我们先看常规的softmax loss在分类任务中是怎么做的。在这之前,我们需要了解Softmax loss、Softmax函数、交叉熵之间的关系:



最重要的一个概念,Softmax loss的完整叫法是Cross Entropy loss with softmax,由三部分组成,分别是全连接层(Fully Conneckted Layer)、Softmax函数(Softmax Function)、交叉熵损失(Cross Enrtropy Loss)。因此Softmax Loss的流程是:先使用一个encoder来学习数据的特征,再经过一个全连接层、Softmax函数,最后使用交叉熵计算损失。

下面分别是Softmax函数、交叉熵损失函数和Softmax loss的计算公式,可以看出他们之间的相关性:


在Softmax loss的公式中,N是样本数量,n是类别数量,zi是第i个类别的得分,yi是第i个样本的真实类别。

下面是在一个10分类的模型中加入Softmax loss后,10个类别固定分为10个等分的方向,特征具有指向性,也就是说Softmax loss为特征提供了等分的方向指向。


怎么理解Softmax  loss为特征提供了等分的方向指向这句话?
--可以理解为Softmax loss给决策线W做了限制,限制W在二维空间等分为10个方向,数据会向自己的决策线边界去靠近。

Softmax loss公式中并没有参数用来增加类间距离,在人脸识别这种开集分类任务中效果不是很好。


进一步解释:

Softmax loss的目标是使得真实标签对应的预测概率最大化,而其他类别的预测概率最小化。通过最小化Softmax loss,可以训练模型使得分类结果更加准确。
需要注意的是,Softmax loss 只考虑了类别之间的差异,而没有考虑类内的差异。在一些任务中,类内的差异也是很重要的,因此可以通过改进Softmax loss 来处理类内差异和类间差异,比如使用Arcface loss等。



补充:开集分类任务和闭集分类任务
在闭集分类问题中,测试时所有的样本都是训练时见到过的类,而在开集分类问题中,测试时会出现未见过的类。

2 Arcface loss的理解

首先在明白,Arcface等一系列对于人脸识别损失函数的优化基本上都是在对softmax loss+margin的改进,margin是类间距离,是额外增加的惩罚项参数。增加这个惩罚项的原因在于:人脸识别是一个开集分类任务,在测试时会见到从未在训练集中出现的人脸,因此需要增加一个margin参数使得模型在学习时达到“类间分开、类内聚拢”的目的,也就是要求不仅把各类分开,而且还需要把每一类的特征紧凑的聚集在特征空间的一处。在人脸识别任务中,一般是通过计算不同人脸的特征相似度来判定是否为同一类,如果类间的距离区分度不大,很容易分错类别。


Arcface loss的公式表示为:


其中:
s表示scale参数,一般是个常数,论文中取10;
θ_i表示第i个样本的特征向量与其对应类别的权重向量的夹角;
m表示margin参数,可学习的超参数。

3 Arcface loss与传统的softmax loss在分类上有什么区别

(1)增大类间差距,减小类内差距
Arcface loss是一种改进的目标损失函数,它在softmax loss的基础上引入了角度余弦距离(margin),实现在特征空间上最大化类间的角度差距,最小化类内的角度差距,这样可以使得特征更加鲁棒性。

(2)特征嵌入
Arcface loss通过将特征向量进行归一化,将其映射到单位超平面上,从而更好的表达特征时间的相对关系。传统Softmax loss没有这样的处理。

(3)参数化
Arcface loss引入了一个参数m,即margin,用于控制类间角度差距的大小。当m为0时,Arcface loss退化为传统的Softmax loss,通过调整m的值,可以灵活的控制分类边界的紧密程度。

(4)难样本挖掘
Arcface loss可以结合难样本挖掘的方法,如在线三元组损失,进一步提高分类性能,而Softmax loss则没有考虑难样本挖掘。

【以上文字内容仅代表个人理解,如有其他建议,欢迎在评论区交流】
AIHIA梦工厂,共建AI人脉圈,共享AI时代美好生活!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

AIHIA梦工厂旨在建立涵盖广泛人工智能行业,包括AI芯片、AI工业应用、AI电商、AI自动驾驶、AI智慧城市、智慧农业等人工智能应用领域。梦工厂为每位AI人提供技术交流、需求对接、行业资源、招聘求职、人脉拓展等多个方面交流学习平台促进人工智能的发展和应用。
  • 官方手机版

  • 联盟公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2023, AIHIA梦工厂
  • 苏ICP备2023025400号-1 | 苏公网安备32021402002407 | 电信增值许可证:苏B2-20231396 | 无锡腾云驾数技术服务有限公司 QQ