赞
踩
softmax是最常见的人脸识别函数,其原理是去掉最后的分类层,作为解特征网络导出特征向量用于人脸识别。softmax训练的时候收敛得很快,但是精确度一般达到0.9左右就不会再上升了,一方面是作为分类网络,softmax不能像metric learning一样显式的优化类间和类内距离,所以性能不会特别好,另外,人脸识别的关键在于得到泛化能力强的feature,与分类能力并不是完全等价的。
公式中N是batch size的大小,n是类别数目。如果训练进行了停滞,可以采用挑选hard sample(即那些预测错误但是预测值较高的样本,也就是比较难分类的样本)的办法进行帮助训练。具体的可以了解OHEM(Online hard example mining)技术, 比如说Focal loss一类的。
Triplet loss属于Metric Learning, 相比起softmax, 它可以方便地训练大规模数据集,不受显存的限制。缺点是过于关注局部,导致难以训练且收敛时间长
这里提一下Metric Learning的概念,它是根据不同的任务来自主学习出针对某个特定任务的度量距离函数。通过计算两张图片之间的相似度,使得输入图片被归入到相似度大的图片类别中去。通常的目标是使同类样本之间的距离尽可能缩小,不同类样本之间的距离尽可能放大。
首先我们看一张图:
可以看到,在separable features中,类内距离有的时候甚至是比内间距离要大的,这也是上问题到softmax效果不好的原因之一,它具备分类能力但是不具备metric learning的特性,没法压缩同一类别。在这个基础上,center loss被提出来,用于压缩同一类别。center loss的核心是,为每一个类别提供一个类别中心,最小化每个样本与该中心的距离:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。