差异特征学习中的损失函数简单综述
差异特征学习指如何获取差异最小的类内和差异最大的类间特征,这里的差异特征学习可应用的场景包含并不仅限于人脸识别,行人重识别和细粒度识别等。
由于这方面涉及太广和自身能力有限,只结合自己使用经验对关键差异的阐述,且略去基本算法描述。
-
softmaxloss
softmaxloss作为最基本的identity loss能解决绝大部分场景分类问题,提取的特征也有较好的表达,只是它的特征分布呈射线簇,在分类中使用还好,在检索中就涉及样本间距离(相似度)的计算,射线簇无论是欧式距离还是与余弦距离均有弊端。可以参考此篇(https://zhuanlan.zhihu.com/p/34404607),总结的很好。
-
双损失(identity loss + verification loss)
verification loss能度量样本间的关系,结合identity loss,相当于一种多任务,获取差异特征表达。
双损失迅速占据了主流,且性能很好。典型的代表是softmaxloss+contrastiveloss和softmaxloss+tripletloss。
contrastiveloss的对象是二元组,同类拉近,异类大于margin。但实验显示,同类拉近这点极易导致过拟合。
tripletloss的对象是三元组,异类大于同类margin的距离,triplet是一个很好的约束损失,但是难点在于三元组的组合挖掘,HardTri是一个改进方向。
还有center loss,想法很好,但多了一个类心收敛过程(训练很慢),且当类别较大,内存维护这样所以类心,消耗较大。
-
基于角度的softmax改进
一系列论文包括,L-softmax->A-softmax->Feature Normalization->AM-Softmax
L-softmax首次提出基于角度的softmax优化,关注特征向量和对应权值向量的角度缩小,从而获得差异特征。
A-softmax在L-softmax基础上归一化了权值,让训练更集中在优化特征和向量角度上。L和A均采用退火算法训练。
Feature Normalization提出了归一化特征(让特征分布在圆上不再呈射箭簇),且添加尺度因子(抵消归一化带来的特征空间压缩)。
AM-Softmax,在前面的基础上,将乘性margin优化为加性margin,使得训练更易收敛。