Circle Loss:统一 Softmax 与 Triplet 的圆形优化视角
背景:Softmax 与度量学习的分野
在人脸识别和向量检索领域,损失函数的选择往往决定了模型的上限。长期以来,社区主要分为两大阵营:
基于分类的学习 (Classification-based)
- 代表:Softmax, SphereFace, CosFace, ArcFace。
- 核心逻辑:优化样本特征 $x$ 与权重向量(类中心)$W_{y_i}$ 之间的相似性。
- 通俗理解:就像学生必须靠近自己的班主任,远离别人的班主任。这里的权重 $W$ 被视为类中心或代理(Proxy)。
基于度量的学习 (Metric Learning / Pairwise Learning)
- 代表:Triplet Loss, Contrastive Loss。
- 核心逻辑:直接优化样本对之间的相似性,不依赖固定的类中心。
- 通俗理解:从数据中随机抓两个人,如果是同一个人就拉近,不同人就推开。这里没有固定的'教室'和'班主任',只有样本间的相对距离。
动机:为何需要统一视角?
过去,这两派互有攻讦。用 Softmax 的人觉得 Triplet 收敛慢、采样难;用 Triplet 的人觉得 Softmax 只能处理闭集,不够灵活。
Circle Loss 的核心贡献在于指出:它们在数学本质上是一回事。
- Triplet:本质是将另一个样本 $x_j$ 当作临时的'中心'。
- Softmax/ArcFace:本质是将 $W$ 当作一种特殊的'样本'(单样本类)。
两者的终极目标一致:最大化正样本相似度 ($s_p$),最小化负样本相似度 ($s_n$)。
1. 统一视角:万物归一
作者首先推导出了一个通用损失框架 $L_{uni}$,将上述两种范式纳入同一公式。
统一 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)。
- $s_n^j$:第 $j$ 个负样本对的相似度。
- $s_p^i$:第 $i$ 个正样本对的相似度。
直观来看,这个公式的目标是在最小化过程中,迫使 $(s_n - s_p)$ 越小越好。
计算量的'降维打击'
原始的双重求和 $\sum \sum$ 意味着要计算所有正负样本的配对,复杂度高达 $O(K \times L)$。利用指数运算法则 $e^{a-b} = e^a \cdot e^{-b}$,作者进行了关键的数学变换:
$$ L_{uni} = \log \left[ 1 + \underbrace{\sum_{j=1}^L \exp(\gamma(s_n^j + m))}{\text{负样本集合}} \cdot \underbrace{\sum{i=1}^K \exp(\gamma(-s_p^i))}_{\text{正样本集合}} \right] $$
这一步至关重要。它将复杂的'成对比较'解耦成了独立的'正样本组'和'负样本组'计算。这也解释了为什么 Circle Loss 能够像 Softmax 一样高效训练,而不需要像 Triplet Loss 那样进行繁重的样本挖掘。
2. 证明 Softmax 和 Triplet 都是'特例'
为了验证 $L_{uni}$ 的大一统地位,我们看看它是如何退化成我们熟悉的 Loss 的。
退化为 Softmax
如果我们设定只有一个正样本($K=1$),忽略常数 1,公式简化为:

