centerloss系列文章笔记——人脸识别:A Discriminative Feature Learning Approach forDeep Face Recognition

人脸识别:A Discriminative Feature Learning Approach forDeep Face RecognitionYandong Wen, Kaipeng Zhang, Zhifeng Li*, Yu QiaoShenzhen Institutes of Advanced Technology, CAS, ChinaThe Chinese University of Hong Kong, Hong Kong, China

人脸识别通常用的损失函数有softmax loss,CONTRASTIVE loss,triplet loss,分别利用类间、pair间、类内外的监督信息来训练模型,这篇paper主要是和softmax loss对比,在softmax基础上增加一个center loss。softmax loss和center loss的区别如下:

centerloss系列文章笔记——人脸识别:A Discriminative Feature Learning Approach forDeep Face Recognition_第1张图片

意思就是centerloss除了把feature变得可分之外,还会让同类feature变得更聚拢,因此可以对没有见过的样本有更好的泛化能力具体的公式如下:

由于与欧式距离,BP也很简单:


一切看上去都很美好,但是类的中心是个统计量,没有什么深度学习算法能一次性involve全部的样本来计算,

这也是很少有统计意义的loss出现的原因(softmax、pairwise和triplet都只需随机采样即可计算),这里作者做了个近似和超参数来实现类中心的计算:

1. 只在mini-batch内的样本范围内做类中心的计算(所以理论上如何采样还是影响这个算法的效果)

2. update中心时加一个类似学习率的参数alpha,用来处理采样太少或者有outlier的情况:下面这个公式,

如果mini-batch里没有对应类别则增量为0,


一旦有了超参数,那么必然会关注这个超参数对效果的影响如何:感觉这个参数的设置会跟采样策略和实际样本clean的程度有关,

对于训练较慢的任务来说想遍历参数成本会很高。

centerloss系列文章笔记——人脸识别:A Discriminative Feature Learning Approach forDeep Face Recognition_第2张图片

实验的一些细节:webface 70万数据,1.7万人,2块titanx 训softmax和softmax+centerloss 要14小时,28K轮*256mini batch;训softmax+contrastive要42K轮*256minibatch,22小时。由于数据量不多都还是很快的,平均每个人40张图片已经有比较明显的效果:

centerloss系列文章笔记——人脸识别:A Discriminative Feature Learning Approach forDeep Face Recognition_第3张图片

延展讨论:

1. 其他统计型loss应该也可以被考虑加入训练中获得更好的效果

2. 到类中心的距离最小化使得特征分布趋向一个球体,是否也可以考虑把欧式距离改成cosine距离

3. 类中心还是会受到采样的影响,这一点似乎没怎么做细化的分析

4. 对于其他的分类任务理论上加了之后也会变好,比如样本不是很充分的二分类,遇到一些没见过的扰动可能会预测结果变差

你可能感兴趣的:(centerloss系列文章笔记——人脸识别:A Discriminative Feature Learning Approach forDeep Face Recognition)