Face recognition-Loss Functions

Face recognition-Loss Functions


softmax

每个人为一类,总共n+1类。收敛后的网络可以用于提取待测试集合的人脸特征,再在该特征基础上训练分类器(SVM、联合贝叶斯、knn等), 缺陷是区分力度不够,受限于close-set,对于open-set的泛化性不够。一般的解决办法如deepid是网络只用作提取特征,后续再接一个特定任务的分类器。

triplet-loss(google-facenet)

构建过程:从训练数据集中随机选一个样本,该样本称为Anchor,然后再随机选取一个和Anchor 
(记为x_a)属于同一类的样本和不同类的样本,这两个样本对应的称为Positive (记为x_p)和Negative 
(记为x_n),由此构成一个(Anchor,PositiveNegative)三元组.
学习的目的即是:在一定的间隔alpha下,保证当前样本与同类样本之间的距离(distance_pos)与alpha之和小于其与非同类样本之间的距离(distance_neg)。
三元组的选择比较困难,如果暴力搜索查找整个集合里面的最近和最远样本,将非常耗时,且网络容易受不好的anchor影响不好训练,解决方式是在mini-batch里面进行选取。

contrasive-loss

类似与triplet的思想,增加类间距离,使得不同人脸更易于区分。

norm-softmax和L2-softmax

认为经过训练和测试所使用的特征不同态,训练的时候用的是embedding来度量距离,而测试的时候用的embeding的L2loss来度量,所以应该在训练的时候将输入softmax的特征L2化。

center-loss

triplet-loss和cotrasive-loss着重于解决类间区分性,center-loss认为类内的聚合性对于特征的映射学习也很重要,所以在embeding后将损失分为两个分支,其一是度量类间距离损失的softmax,其二是度量类内距离损失的center-loss.

sphere-loss

将softmax损失推广到流形空间,不再是在欧式空间度量样本间的距离。使得样本的区分性更强了。

猜你喜欢

转载自blog.csdn.net/mllearnertj/article/details/78180672