人脸识别中常见的损失函数

人脸识别中常见的损失函数

在早期的人脸识别方法(DeepfaceDeepID)中,采用的是基于交叉熵的softmax损失来进行特征学习。后来,研究者们逐渐意识到softmax损失不足以学习到具有鉴别力的特征,并开始探索新的损失函数以加强泛化能力。

在2017年以前,Euclidean-distance-based loss(基于欧氏距离的损失)在人脸识别中扮演了重要的角色。

Euclidean-distance-based Loss

Euclidean-distance-based Loss是一种度量学习的缺失,它将图像编码到欧氏空间,并使得类内图像特征的方差减小,类间图像的方差增大。Contrastive loss(对比损失)和Triplet loss(三元组损失)是常用的基于欧氏距离的损失。

Contrastive Loss

对比损失在在DeepID2DeepID2+DeepID3等经典人脸识别网络中都有用到。它需要一个图像对,将正图像对(相同的人)拉近,将负图像对(不同的人)推远。它的公式如下:

其中$y_{ij}=1$意味着$x_i$和$x_j$是匹配的样本(同一个人),$y_{ij}=0$意思是他们是不匹配的样本(不同的人)。$f(\cdot)$为特征提取器。$\epsilon^{+}$和$\epsilon^{-}$控制匹配和不匹配样本的间距。

Contrastive loss的主要缺点在于参数$\epsilon^{+}$和$\epsilon^{-}$难以选择。

有时,Contrastive loss也有如下表达形式:

其中$d=||f\left(x_i\right)-f\left(x_j\right)||_2$。

Triplet Loss

随着Google提出的FaceNet,Triplet loss在人脸识别中使用得越来越多。它需要一个图像的三元组,包括一张锚(anchor)样本,一张正(positive)样本和一张负(negtive)样本,即$(x_i^a,x_i^p,x_i^n)$,以及一个距离参数$\alpha$,使得:

即,使锚样本特征$f(x_i^a)$与负样本特征$f(x_i^n)$的距离$d_{ap}=|f(x_i^a)-f(x_i^p)|^2$大于锚样本特征$f(x_i^a)$与正样本特征$f(x_i^p)$的距离$d_{an}|f(x_i^a)-f(x_i^n)|^2$,并且$d_{ap}$和$d_{an}$的间距至少为$\alpha$。

由于Triplet loss在训练中不稳定,一些文章开始探索其他选择。

Center Loss

Center loss(中心损失)通过减小每一个图像的特征$\boldsymbol{x}_{i}$与该图像所属类的中心$\boldsymbol{c}_{y_i}$的距离,从而减小类内样本特征的方差。公式如下:

其中$\boldsymbol{x}_i$表示属于第$y_i$类的样本,$\boldsymbol{c}_{y_i}$表示第$y_i$类样本的中心特征。由Center loss还衍生出其他变体,如Range loss等。

作者

Jianjun Zhong

发布于

2022-11-03

更新于

2023-08-31

许可协议

评论