Circle loss 主要有以下亮点可以做相关的详细描述。
首先第一点circle loss是基于triplet loss,改进而来的一种新型的loss定义。它的改进点在于,原本triplet loss对于正负样本采用平均用力的方式进行优化。使得在模型收敛的时候,对于正负样本的区分力度不够。Circle loss 在正负样本对加入了一个权重,控制正负样本对各自的梯度贡献,最后就可以得到一个更有区分力度的模型。
随后第二点,circle loss 在实现的过程中,同样借鉴了arc face 定义的夹角margin。增大了模型对于各个分类也就是人脸id在训练过程的难度. 最终体现出来其模型有更强的区分力度。
接下来第三点,虽然circle loss是基于triplet loss的一种升级版的 loss 定义。在实现的过程中,如果数据不是成对的pairs ,根据作者的定义,也可以将这些基于分类的数据转化为正负样本对的Pairs. 因此circle loss。也可以叫做是一种提出来新型的Unified loss.
推荐一个开源实现地址:https://github.com/leoluopy/circle-loss-demonstration