(1)
首先是从大的角度来说,度量loss的主要为两种方法。一种是从欧式距离计算,以L2-norm为主,一种是近来的另辟蹊径的转换到角度领域,主要从余弦和夹角这两个在我看来有异曲同工之效的角度。但是,总的Loss改进的出发点从之前的可分到现在的最大化类间最小化类内这个目标。
遍观出现的Loss种类,我觉得可以分为两大类。一类以样本本身为一个优化手段,一类以改进softmax的margin种类为优化方法。
第一类出现的方法基于欧式距离,以centerLoss,contrastiveLoss,tripletLoss为代表,其他的一些还没看过(rangeLoss等)。
CenterLoss ,很明显的以center为中心的一个优化。论文思想较简单,我觉得可以类比于聚类(类别数已知),加入一个正则项的约束。这个正则项的约束以样本到聚类中心的欧式距离为度量。作为二次方平方和,其公式和推导也是简单的。具体的论文和代码见[1]。
contrastiveLoss ,是作为一个降维的方式提出的,本质属于metric learning。Contrastive译为对比,体现在输入样本成对输入,旨在保存邻里关系。起初这个损失函数作为孪生网络的损失函数出现,将相似的样本输入孪生网络之后得到的在降维空间中依旧靠近的关系。以欧式距离来度量样本之间的相似性。论文见[2]。
TripletLoss ,在contrastiveloss的基础上,以三个样本为输入。以一个人的某个图片为标准,作为anchor,同时输入一个正样本p和一个负样本n,以欧式距离为度量。使得所有的样本的正样本离anchor近,负样本离得远。具体论文见[3],但是这样的由样本决定的loss,通常对于输入训练的样本对有要求。
第二类出现的Loss,转换思路从角度空间和余弦空间来考虑。Softmax作为大部分Loss 改进的对象,一开始的出发点应该是将欧式距离转化为条件概率度量,但是不论是欧式平方差和loss还是softmaxLoss,本身都和多层感知机分类一样,目标在于可分,因此错分的可能性和错误样本的影响都比较大。因此,为了完成从多层感知机到SVM的一个转化,加上margin是一个重要的选择。主要来说以下的几类方法为例。
large-margin(简称L-softmax) 作为早期出现的,算是先提出从角度方面考虑的Loss改进。其边界划分以角度来划分。将以的方式改写出来。同时将属于第yi类的余弦改为,以此来增加类间差异缩小类内差异。以二类的决策边界来看,
其主要的论文以[4]为主。
l2-norm 是一个在softmax的基础上对特征X权重W归一化的过程。这个方法的目的可以对照上面large-margin来看。虽说large-margin加入了角度裕量,但是由于和的影响,角度的作用被削弱了,所以为了完全的增强角度在判别中的作用,将这两者归一化为1和S,有利于更好的优化目标。其论文见[5]。论文中还加入了对S的最小边界的猜想和证明。
AM-softmax ,在这个基础上,也就出现了将归一化之后结合L-softmax的modified-loss,以及进一步归一化特征的SephereFace。相关论文为[6]。
CosFace顾名思义与余弦有关,之前的超参数都是以乘的形式来增加裕量。虽然可以增加裕量,但是从计算上来说,不单调,不方便反向传播。因此,从角度空间转化到余弦空间来,加上归一化,二分类决策边界可以写为:
同时在论文中,也提出来了对于特征归一化后S的证明以及m的选取依据。相关论文见[7]。
ArcFace ,很有意思的是又从余弦空间跑到了角度空间,将m移入cos中。其决策边界可以写为:
相关论文见[8]。
最后,以[8]中一张图来表示这几个基于角度的loss之间的差异:
(2)
论文以及相关代码链接:
A Discriminative Feature Learning Approach for Deep FaceRecognition; https://blog.csdn.net/encodets/article/details/54648015
Dimensionality Reduction by Learning an Invariant Mapping。
FaceNet: A Unified Embedding for Face Recognition and Clustering。
Large-Margin Softmax Loss for Convolutional Neural Networks。
L2-constrainedSoftmax Loss for Discriminative Face Verification。
SphereFace: Deep Hypersphere Embedding for Face Recognition。
Large Margin Cosine Loss for Deep Face Recognition。
ArcFace: Additive Angular Margin Loss for Deep Face Recognition。