Circle Loss:一统 Softmax 与 Triplet,从'线性'到'圆形'的优化视角
前言:两大门派的恩怨
派系一:基于分类的学习 (Classification-based)
- 代表:Softmax, SphereFace, CosFace, ArcFace。
- 原文描述:'优化样本和权重向量之间的相似性' (optimize the similarity between samples and weight vectors)。
- 通俗解释(找老师):
公式特征:
$ x \cdot W $
训练目标:学生(样本 $x$)必须尽可能靠近自己的班主任($W_{y_i}$),远离别人的班主任。
逻辑:模型预先设立了 10,000 个'教室'(类别),每个教室有一个'班主任'($W$)。
权重 $W$:被看作是类中心(Class Center)或者代理(Proxy)。
派系二:基于度量的学习 (Metric Learning / Pairwise Learning)
- 代表:Triplet Loss, Contrastive Loss。
- 原文描述:'优化样本之间的相似性' (optimize the similarity between samples)。
- 通俗解释(找朋友):
- 逻辑:模型从数据堆里随便抓两个人。
- 训练目标:如果这两个人是同一个人(Positive Pair),就拉近他们;如果是不同人(Negative Pair),就推开他们。
公式特征:
$ x_1 \cdot x_2 $
没有 $W$:这里没有固定的'教室'和'班主任'。
为什么要提这个?(Circle Loss 的动机)
在 Circle Loss 之前,大家觉得这是两套完全不同的逻辑:
- 用 Softmax (ArcFace) 的人觉得 Triplet Loss 收敛太慢,采样太麻烦(组合爆炸)。
- 用 Triplet Loss 的人觉得 Softmax 只能处理闭集(Closed-set),不灵活。
Circle Loss 的伟大之处在于它说了一句:
'别吵了,其实你们俩在数学本质上是一回事!'
Circle Loss 认为:
Triplet:其实就是把另一个样本 $x_j$ 当作临时的'中心'。
Softmax/ArcFace:其实就是把 $W$ 当作一种特殊的'样本'(只有一个样本的类)。
它们的目标都是:最大化类内相似度 ($s_p$),最小化类间相似度 ($s_n$)。
1. 万物归一 —— 统一视角 ($L_{uni}$)
Circle Loss 的第一步贡献,是建立了一个统一的 Loss 框架。作者敏锐地发现,无论是分类还是配对,本质目标都是:最大化正样本分数 $s_p$,最小化负样本分数 $s_n$。
1.1 统一 Loss 公式
作者首先推导出了一个通用公式 $L_{uni}$ (Unified Loss):
$ L_{uni} = \log \left[ 1 + \sum_{i=1}^K \sum_{j=1}^L \exp(\gamma(s_n^j - s_p^i + m)) \right] $
$m$:间隔(Margin)。
$\gamma$:缩放因子(Scale Factor)。

