论文题目:《Circle Loss: A Unified Perspective of Pair Similarity Optimization》
目录
派系一:基于分类的学习 (Classification-based)
派系二:基于度量的学习 (Metric Learning / Pairwise Learning)
[为什么要提这个?(Circle Loss 的动机)](#为什么要提这个?(Circle Loss 的动机))
[1. 万物归一 ------ 统一视角 ()](#1. 万物归一 —— 统一视角 ())
[1.1 统一 Loss 公式](#1.1 统一 Loss 公式)
[1.2 计算量的"降维打击"](#1.2 计算量的“降维打击”)
[2. 证明 Softmax 和 Triplet 都是"特例"](#2. 证明 Softmax 和 Triplet 都是“特例”)
[2.1 退化为 Softmax ()](#2.1 退化为 Softmax ())
[2.2 退化为 Triplet ()](#2.2 退化为 Triplet ())
[3. 发现缺陷 ------ 拒绝"死板"的优化](#3. 发现缺陷 —— 拒绝“死板”的优化)
[3.1 什么是"不够灵活"?](#3.1 什么是“不够灵活”?)
[3.2 引入动态权重 ()](#3.2 引入动态权重 ())
[3.3 Circle Loss 最终形态](#3.3 Circle Loss 最终形态)
[4. 几何解释 ------ 为什么叫"Circle"?](#4. 几何解释 —— 为什么叫“Circle”?)
[4.1 决策边界的演变](#4.1 决策边界的演变)
[4.2 圆形的意义](#4.2 圆形的意义)
[5. 梯度验证 ------ 数学上的实锤](#5. 梯度验证 —— 数学上的实锤)
前言:两大门派的恩怨
派系一:基于分类的学习 (Classification-based)
-
代表:Softmax, SphereFace, CosFace, ArcFace。
-
原文描述:"优化样本和权重向量之间的相似性" (optimize the similarity between samples and weight vectors)。
-
通俗解释(找老师):
-
权重
:被看作是类中心(Class Center)或者代理(Proxy)。
-
逻辑 :模型预先设立了 10,000 个"教室"(类别),每个教室有一个"班主任"(
)。
-
训练目标 :学生(样本
)必须尽可能靠近自己的班主任(
),远离别人的班主任。
-
公式特征 :
。
-
派系二:基于度量的学习 (Metric Learning / Pairwise Learning)
-
代表:Triplet Loss, Contrastive Loss。
-
原文描述:"优化样本之间的相似性" (optimize the similarity between samples)。
-
通俗解释(找朋友):
-
没有
:这里没有固定的"教室"和"班主任"。
-
逻辑:模型从数据堆里随便抓两个人。
-
训练目标:如果这两个人是同一个人(Positive Pair),就拉近他们;如果是不同人(Negative Pair),就推开他们。
-
公式特征 :
。
-
为什么要提这个?(Circle Loss 的动机)
在 Circle Loss 之前,大家觉得这是两套完全不同的逻辑:
-
用 Softmax (ArcFace) 的人觉得 Triplet Loss 收敛太慢,采样太麻烦(组合爆炸)。
-
用 Triplet Loss 的人觉得 Softmax 只能处理闭集(Closed-set),不灵活。
Circle Loss 的伟大之处在于它说了一句:
"别吵了,其实你们俩在数学本质上是一回事!"
Circle Loss 认为:
-
Softmax/ArcFace :其实就是把
当作一种特殊的"样本"(只有一个样本的类)。
-
Triplet :其实就是把另一个样本
当作临时的"中心"。
它们的目标都是:最大化类内相似度 ( ),最小化类间相似度 (
)。
1. 万物归一 ------ 统一视角 (
)
Circle Loss 的第一步贡献,是建立了一个统一的 Loss 框架。作者敏锐地发现,无论是分类还是配对,本质目标都是:最大化正样本分数 ,最小化负样本分数
。
1.1 统一 Loss 公式
作者首先推导出了一个通用公式 (Unified Loss):
-
:第
个正样本对的相似度。
-
:第
个负样本对的相似度。
-
:缩放因子(Scale Factor)。
-
:间隔(Margin)。
这个公式的直观含义很简单:要在 最小化过程中,迫使
越小越好。
1.2 计算量的"降维打击"
上面的公式有一个双重求和 ,这意味着要计算所有正负样本的配对,计算量是
。
利用指数运算法则 ,作者做了一个精彩的数学变换:
负样本集合 正样本集合
这一步变换至关重要。它将复杂的 "成对比较" 解耦成了独立的 "正样本组" 和"负样本组" 计算。这解释了为什么 Circle Loss 能够像 Softmax 一样高效训练,而不需要像 Triplet Loss 那样进行繁重的样本挖掘。
2. 证明 Softmax 和 Triplet 都是"特例"
为了证明 是真正的大一统,我们看看它是如何退化成我们熟悉的 Loss 的。
2.1 退化为 Softmax (
)
如果我们设定只有一个正样本(,即当前样本
和它的类中心
),忽略常数 1,公式就变成了:
解读: 这正是我们熟悉的 CosFace / AM-Softmax!
这意味着:分类 Loss 只是 Circle Loss 在 时的特例。
2.2 退化为 Triplet (
)
如果我们把 设为无穷大(
),根据 LogSumExp 的极限性质,公式变成了:
解读: 这正是 Triplet Loss 的核心逻辑(Hard Mining)!
这意味着:Triplet Loss 只是 Circle Loss 在 趋于无穷大时的极限情况。
3. 发现缺陷 ------ 拒绝"死板"的优化
既然统一了江湖,为什么还需要 Circle Loss?
因为作者发现,之前的 CosFace/ArcFace 存在一个致命的"不够灵活"的问题。
3.1 什么是"不够灵活"?
在 中,我们是在优化
。当我们对它求导时,梯度是常数(或者说是 1)。
这意味着什么?
-
困难样本(分错了):模型用 1 的力度去推它。
-
简单样本(分对了):模型依然用 1 的力度去推它。
这就好比老师辅导学生,对考 30 分的学生和考 99 分的学生布置一样的作业。这显然浪费了算力,且效率低下。
3.2 引入动态权重 (
)
为了让模型懂得"因材施教",作者引入了动态权重 :
其中,权重 的定义是"自我配速"(Self-paced):
-
机制详解:
-
如果样本很难(
远小于目标
),
变大
加权猛练!
-
如果样本简单(
接近目标
),
变小
几乎不练。
-
3.3 Circle Loss 最终形态
将动态权重 和 Margin 结合,我们就得到了最终公式:
4. 几何解释 ------ 为什么叫"Circle"?
这是论文最精彩的几何视角。
4.1 决策边界的演变
-
Softmax/CosFace : 优化目标是
。在坐标系中,这是一条直线。
-
Circle Loss : 由于引入了与
相关的权重
,优化项变成了关于
的二次项 (
)。其决策边界方程演变为:
在特定参数下,它简化为:
4.2 圆形的意义
从直线 变成圆弧,不仅仅是好看。
这意味着模型在优化 和
时,不再是僵硬的 1:1 兑换,而是根据它们各自离"完美状态"
的距离来动态调整梯度方向。这就赋予了 Loss 更大的灵活性。
5. 梯度验证 ------ 数学上的实锤
最后,为了证明"动态权重"真的有效,作者直接给出了梯度公式:
一句话总结:梯度的强弱,正比于样本的难度。
这彻底解决了传统 Loss 在简单样本上浪费梯度的问题,让模型能够全神贯注地攻克那些"死活分不开"的 Hard Cases。