论文题目:《Circle Loss: A Unified Perspective of Pair Similarity Optimization》
前言:两大门派的恩怨
派系一:基于分类的学习 (Classification-based)
- :Softmax, SphereFace, CosFace, ArcFace。
Circle Loss 提出了一种统一的相似度优化视角,将基于分类的学习(如 Softmax)与基于度量的学习(如 Triplet)统一在一个框架下。通过引入动态权重机制,根据样本难度自适应调整梯度,解决了传统损失函数优化不够灵活的问题。其决策边界从直线演变为圆弧,能更有效地处理正负样本对的优化,提升模型收敛效率。
公式特征:
$$ x \cdot W $$
。
训练目标:学生(样本 $x$)必须尽可能靠近自己的班主任( $W_{y_i}$ ),远离别人的班主任。
逻辑:模型预先设立了 10,000 个'教室'(类别),每个教室有一个'班主任'( $W$ )。
权重 $W$:被看作是类中心(Class Center)或者代理(Proxy)。
公式特征:
$$ x_1 \cdot x_2 $$
。没有 $W$:这里没有固定的'教室'和'班主任'。
在 Circle Loss 之前,大家觉得这是两套完全不同的逻辑:
Circle Loss 的伟大之处在于它说了一句:
'别吵了,其实你们俩在数学本质上是一回事!'
Circle Loss 认为:
Triplet:其实就是把另一个样本 $x_j$ 当作临时的'中心'。
Softmax/ArcFace:其实就是把 $W$ 当作一种特殊的'样本'(只有一个样本的类)。
它们的目标都是:最大化类内相似度 ( $s_p$ ),最小化类间相似度 ( $s_n$ )。
Circle Loss 的第一步贡献,是建立了一个统一的 Loss 框架。作者敏锐地发现,无论是分类还是配对,本质目标都是:**最大化正样本分数** $s_p$ **,最小化负样本分数** $s_n$ **。
作者首先推导出了一个通用公式 $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)。
$s_n^j$:第 $j$ 个负样本对的相似度。
$s_p^i$:第 $i$ 个正样本对的相似度。
这个公式的直观含义很简单:要在 $Loss$ 最小化过程中,迫使 $(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 那样进行繁重的样本挖掘。
为了证明 $L_{uni}$ 是真正的大一统,我们看看它是如何退化成我们熟悉的 Loss 的。
如果我们设定只有一个正样本( $K=1$ ,即当前样本 $x$ 和它的类中心 $W$ ),忽略常数 1,公式就变成了:
$$ L_{am} = - \log \frac{\exp(\gamma(s_p - m))}{\exp(\gamma(s_p - m)) + \sum_{j=1}^{N-1} \exp(\gamma s_n^j)} $$
解读: 这正是我们熟悉的 CosFace / AM-Softmax!
这意味着:分类 Loss 只是 Circle Loss 在 $K=1$ 时的特例。
如果我们把 $\gamma$ 设为无穷大( $\gamma \to +\infty$ ),根据 LogSumExp 的极限性质,公式变成了:
$$ L_{tri} = \lim_{\gamma \to +\infty} \frac{1}{\gamma} L_{uni} = \max [ s_n^j - s_p^i ]_+ $$
解读: 这正是 Triplet Loss 的核心逻辑(Hard Mining)!
这意味着:Triplet Loss 只是 Circle Loss 在 $\gamma$ 趋于无穷大时的极限情况。
既然统一了江湖,为什么还需要 Circle Loss?
因为作者发现,之前的 CosFace/ArcFace 存在一个致命的'不够灵活'的问题。
在 $L_{uni}$ 中,我们是在优化 $(s_n - s_p)$。当我们对它求导时,梯度是常数(或者说是 1)。
这意味着什么?
这就好比老师辅导学生,对考 30 分的学生和考 99 分的学生布置一样的作业。这显然浪费了算力,且效率低下。
为了让模型懂得'因材施教',作者引入了动态权重 $\alpha$:
$$ L_{circle} = \log \left[ 1 + \sum_{j=1}^L \exp(\gamma \alpha_n^j s_n^j) \cdot \sum_{i=1}^K \exp(-\gamma \alpha_p^i s_p^i) \right] $$
其中,权重 $\alpha$ 的定义是'自我配速'(Self-paced):
$$ \alpha_p^i = [O_p - s_p^i]+, \quad \alpha_n^j = [s_n^j - O_n]+ $$
如果样本简单( $s_p$ 接近目标 $O_p$ ), $\alpha_p$ 变小 $ ightarrow$ 几乎不练。
如果样本很难( $s_p$ 远小于目标 $O_p$ ), $\alpha_p$ 变大 $ ightarrow$ 加权猛练!
将动态权重 $\alpha$ 和 Margin 结合,我们就得到了最终公式:
$$ L_{circle} = \log \left[ 1 + \sum_{j=1}^L \exp(\gamma \alpha_n (s_n - \Delta_n)) \cdot \sum_{i=1}^K \exp(-\gamma \alpha_p (s_p - \Delta_p)) \right] $$
这是论文最精彩的几何视角。
Circle Loss: 由于引入了与 $s$ 相关的权重 $\alpha$,优化项变成了关于 $s$ 的二次项 ($s^2$)。其决策边界方程演变为:
Softmax/CosFace: 优化目标是 $s_p - s_n = m$。在坐标系中,这是一条直线。
$$ (s_n - \frac{O_n + \Delta_n}{2})^2 + (s_p - \frac{O_p + \Delta_p}{2})^2 = C $$
在特定参数下,它简化为:
$$ (s_n - 0)^2 + (s_p - 1)^2 = 2m^2 $$
从直线变成圆弧,不仅仅是好看。
这意味着模型在优化 $s_p$ 和 $s_n$ 时,不再是僵硬的 1:1 兑换,而是根据它们各自离'完美状态' $(0, 1)$ 的距离来动态调整梯度方向。这就赋予了 Loss 更大的灵活性。
最后,为了证明'动态权重'真的有效,作者直接给出了梯度公式:
$$ \frac{\partial L}{\partial s_n} \propto \alpha_n = (s_n - O_n) $$
$$ \frac{\partial L}{\partial s_p} \propto \alpha_p = (O_p - s_p) $$
一句话总结:梯度的强弱,正比于样本的难度。
这彻底解决了传统 Loss 在简单样本上浪费梯度的问题,让模型能够全神贯注地攻克那些'死活分不开'的 Hard Cases。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online