Pytorch损失函数的最优化目标是loss越小越好,损失为平方时,最小为0,因此最优化目标为0
在脸部识别中使用欧式距离时,正样本的距离越小越好。 距离的平方就可以了。
负样本这是欧式距离,目标是距离大,损耗小都可以。 距离乘以-1,确实会变小,但损耗会无限接近负。 加样品的损耗很小,感觉被水淹没而被忽视了。
所以我觉得在脸部识别中使用距离损失函数不太合适。
从以下内容转载:
人脸识别灵巧鱼距离——余弦距离_猫和橙子博客-CSDN博客
最近对人脸识别模型进行了训练,在测试集中的效果比以前的模型(lfw、cfp_fp、agedb_30 )、accucay有所提高,但在自己的测试集中效果特别差。 然后仔细研究了相应的测试代码,首先贴上了训练工序的代码:
进行diff=NP.subtract (嵌入式S1,嵌入式S2 ) #减法运算
dist=NP.sum(NP.square(diff ),1 ) #计算各元素的平方并相加
InsightFace码使用灵巧鱼的距离,利用网络结构提取的特征进行欧式距离计算,计算两个特征的相似度
我的测试代码使用的是余弦距离,测试代码:
regmat=NP.Array(regfeat ) #regfeat特征
CAPMat=NP.Array(capfeat ) )。