文章目录
Circle Loss
由旷视研究院孙奕帆发表于CVPR 2020 Oral,赞~~
1. 论文摘要
(1)文章基于相似度优化层面对从class-level label和pair-wise label数据中学习的过程进行分析和优化。
(2)传统的方法,包括Softmax, Triplet Loss等,实际上都是在最小化类间相似度
s
n
s_n
sn,最大化类内相似度
s
p
s_p
sp,即优化目标是最小化
(
s
n
−
s
p
)
(s_n - s_p)
(sn−sp)。传统方法的主要问题如图1所示:首先,优化目标赋予
s
n
s_n
sn和
s
p
s_p
sp幅值相同的梯度值,这样优化过程缺乏灵活性(在某些情况下
s
n
s_n
sn足够小,但还是有跟
s
p
s_p
sp幅值相同的梯度值);其次,由于优化后的
s
n
−
s
p
s_n-s_p
sn−sp决策边界是一条直线,即边界上每个点的
s
n
s_n
sn和
s
p
s_p
sp差值固定(由距离参数margin决定),这样会造成优化状态不明确,影响特征空间的可分性。
(3)基于class-level label和pair-wise label学习过程是完全相同的出发点,文章提出将两种学习过程统一到一个框架内,并且根据当前状态与优化状态间的差距定义
s
n
s_n
sn和
s
p
s_p
sp的不同权重。
(4)文章首先给出了统一在一个框架内的损失函数,公式如式(1)所示:
L
u
n
i
=
log
[
1
+
∑
i
=
1
K
∑
j
=
1
L
exp
(
γ
(
s
n
j
−
s
p
i
+
m
)
)
]
=
log
[
1
+
∑
j
=
1
L
exp
(
γ
(
s
n
j
+
m
)
)
∑
i
=
1
K
exp
(
γ
(
−
s
p
i
)
)
]
(1)
{L_{{\rm{uni}}}} = \log \left[ {1 + \sum\limits_{i = 1}^K {\sum\limits_{j = 1}^L {\exp \left( {\gamma \left( {s_n^j - s_p^i + m} \right)} \right)} } } \right] = \log \left[ {1 + \sum\limits_{j = 1}^L {\exp \left( {\gamma \left( {s_n^j + m} \right)} \right)} \sum\limits_{i = 1}^K {\exp \left( {\gamma \left( { - s_p^i} \right)} \right)} } \right] \tag{1}
Luni=log[1+i=1∑Kj=1∑Lexp(γ(snj−spi+m))]=log[1+j=1∑Lexp(γ(snj+m))i=1∑Kexp(γ(−spi))](1)
该损失函数经过少许变形即可退化成Softmax Loss及Triplet Loss。文章又根据当前优化状态与最优状态之间的差距分别赋予相对于sn和sp线性变化并且相互独立的权重αn和αp。变形后的Loss函数如下式所示:
该Loss函数在
(
s
n
,
s
p
)
(s_n, s_p)
(sn,sp)相似度空间产生的决策曲线
α
n
s
n
−
α
p
s
p
=
m
α_ns_n-α_ps_p=m
αnsn−αpsp=m为圆形,因此称为Circle Loss。
(5)论文提出了一个新型的损失函数可以同时包含两种数据相似度学习过程,在优化过程中自定义的加权系数可以让优化更灵活,优化目标更明确。文中提出的方法在人脸识别,Person ReID及细粒度图像检索任务中都可以得到与SOTA接近甚至更好的性能。
2. 实现方法
传统的Softmax Cross-Entropy Loss形式乘以文中提出的自适应相似性权重后得到如下式的变形形式:
式中的
α
n
α_n
αn和
α
p
α_p
αp分别由最优状态
O
n
O_n
On和
O
p
O_p
Op决定,
α
n
α_n
αn和
α
p
α_p
αp相对于
s
n
s_n
sn和
s
p
s_p
sp呈线性变化,具体公式如式(2):
{
α
p
i
=
[
O
p
−
s
p
i
]
+
α
n
j
=
[
s
n
j
−
O
n
]
+
(2)
\left\{ \begin{array}{l} \alpha _p^i = {\left[ {{O_p} - s_p^i} \right]_ + }\\ \alpha _n^j = {\left[ {s_n^j - {O_n}} \right]_ + } \end{array} \right. \tag{2}
{αpi=[Op−spi]+αnj=[snj−On]+(2)
Circle Loss统一了class-level label数据和pair-level label数据的学习,因此引入距离参数
Δ
p
Δ_p
Δp和
Δ
n
Δ_n
Δn后的Circle Loss损失函数如式(3):
L
c
i
r
c
l
e
=
log
[
1
+
∑
j
=
1
L
exp
(
γ
α
n
j
(
s
n
j
−
Δ
n
)
)
∑
i
=
1
K
exp
(
−
γ
α
p
i
(
s
p
i
−
Δ
p
)
)
]
(3)
{L_{circle}} = \log \left[ {1 + \sum\limits_{j = 1}^L {\exp \left( {\gamma \alpha _n^j\left( {s_n^j - {\Delta _n}} \right)} \right)} \sum\limits_{i = 1}^K {\exp \left( { - \gamma \alpha _p^i\left( {s_p^i - {\Delta _p}} \right)} \right)} } \right] \tag{3}
Lcircle=log[1+j=1∑Lexp(γαnj(snj−Δn))i=1∑Kexp(−γαpi(spi−Δp))](3)
式(2)和式(3)中参数设置为
O
p
=
1
+
m
O_p=1+m
Op=1+m,
O
n
=
−
m
O_n=-m
On=−m,
Δ
p
=
1
−
m
Δ_p=1-m
Δp=1−m,
Δ
n
=
m
Δ_n=m
Δn=m,因此Circle Loss仅引入两个超参数
γ
γ
γ和
m
m
m,决策边界为一个圆形,圆心
(
s
n
,
s
p
)
=
(
0
,
1
)
(s_n, s_p)=(0,1)
(sn,sp)=(0,1),半径由
m
m
m控制:
(
s
n
−
0
)
2
+
(
s
p
−
1
)
2
=
2
m
2
\left(s_n-0\right)^2+\left(s_p-1\right)^2=2m^2
(sn−0)2+(sp−1)2=2m2
3. 实验结果
3.1 Face Recognition
3.2 Person ReID
Market1501 | DukeMTMC | MSMT17 | ||||||
---|---|---|---|---|---|---|---|---|
mAP | Rank-1 | Rank-5 | mAP | Rank-1 | Rank-5 | mAP | Rank-1 | |
VA-reID (AAAI 2020) | 91.70 | 96.23 | 98.69 | 84.51 | 91.61 | 96.23 | -- | -- |
MGN+Circle Loss | 87.4 | 96.1 | -- | -- | -- | -- | 52.1- | 76.9 |
3.3 Fine-grained Image Retrieval
4. 讨论
4.1 梯度平衡性问题
这部分内容主要来自和借鉴了知乎王峰的回答和相关知乎技术贴,如有转载请注明出处。(如何理解和看待CVPR 2020 Circle Loss)
4.1.1 数学背景知识
- LogSumExp函数是max函数的平滑近似
L S E ( x ; γ ) = 1 γ log ∑ i exp ( γ x i ) ≈ max ( x ) (4) LSE(x;\gamma ) = \frac{1}{\gamma }\log \sum\limits_i {\exp (\gamma {x_i})} \approx \max (x) \tag{4} LSE(x;γ)=γ1logi∑exp(γxi)≈max(x)(4)
式中 γ \gamma γ越大,近似效果越好 - 如果式4整体加上负号,LSE也能够近似min函数、
N L S E ( x ; γ ) = − 1 γ log ∑ i exp ( − γ x i ) ≈ min ( x ) NLSE(x;\gamma ) = - \frac{1}{\gamma }\log \sum\limits_i {\exp ( - \gamma {x_i})} \approx \min (x) NLSE(x;γ)=−γ1logi∑exp(−γxi)≈min(x) - Softplus函数是relu函数的近似
S o f t p l u s ( x ) = log ( 1 + e x ) ≈ max ( x , 0 ) = [ x ] + Softplus(x) = \log (1 + {e^x}) \approx \max (x,0) = {\left[ x \right]_ + } Softplus(x)=log(1+ex)≈max(x,0)=[x]+
4.1.2 问题
无论是Triplet Loss或是Softmax CE Loss都是正负平衡的Loss,即Positive Similarity和Negative Similarity拿到的梯度是相等的,而Circle Loss里正样本有K个,负样本有L个,梯度还平衡吗?
答:通过4.1.1的几个近似函数改写式1得式5:
L
u
n
i
≈
[
log
(
∑
j
=
1
L
exp
(
γ
(
s
n
j
+
m
)
)
∑
k
=
1
K
exp
(
γ
(
−
s
p
k
)
)
)
]
+
=
[
log
(
∑
j
=
1
L
exp
(
γ
(
s
n
j
+
m
)
)
)
+
log
(
∑
k
=
1
K
exp
(
γ
(
−
s
p
k
)
)
)
]
+
=
γ
[
L
S
E
(
s
n
)
−
N
S
L
E
(
−
s
p
)
+
m
]
+
≈
γ
[
max
(
s
n
)
−
min
(
s
p
)
+
m
]
+
(5)
\begin{aligned} {L_{uni}} &\approx {\left[ {\log \left( {\sum\limits_{j = 1}^L {\exp \left( {\gamma \left( {s_n^j + m} \right)} \right)} \sum\limits_{k = 1}^K {\exp \left( {\gamma \left( { - s_p^k} \right)} \right)} } \right)} \right]_ + }\\ &= {\left[ {\log \left( {\sum\limits_{j = 1}^L {\exp \left( {\gamma \left( {s_n^j + m} \right)} \right)} } \right) + \log \left( {\sum\limits_{k = 1}^K {\exp \left( {\gamma \left( { - s_p^k} \right)} \right)} } \right)} \right]_ + }\\ &= \gamma {\left[ {LSE({s_n}) - NSLE( - {s_p}) + m} \right]_ + }\\ &\approx \gamma {\left[ {\max ({s_n}) - \min ({s_p}) + m} \right]_ + } \end{aligned} \tag{5}
Luni≈[log(j=1∑Lexp(γ(snj+m))k=1∑Kexp(γ(−spk)))]+=[log(j=1∑Lexp(γ(snj+m)))+log(k=1∑Kexp(γ(−spk)))]+=γ[LSE(sn)−NSLE(−sp)+m]+≈γ[max(sn)−min(sp)+m]+(5)
式中的优化目标为使最小的同类相似度大于最大的异类相似度。
LSE函数的梯度恰好是Softmax函数,也就是说,LSE的梯度是按softmax指数下降来分配的。无论
s
n
s_n
sn拿到多少梯度,
s
p
s_p
sp也都会拿到大小相同方向相反的梯度。所以不管
K
K
K和
L
L
L的差距有多大,同类和异类的相似度都会拿到一样多的梯度,保持了梯度的平衡性。
4.2 Circle Loss与其他几个Loss的关系
4.2.1 N-pair Loss
N-pair Loss的Motivation也是把两种学习过程结合到一个框架下进行的,公式如下:
式中exp中的两项分别对应式(1)中的sn和sp。两者的不同点包括:首先,N-pair Loss与Softmax CE类似,仅考虑了一个positive的样本;其次,N-pair少了控制尺度的温度系数和控制距离的margin超参;最后,N-pair在学习过程中
s
n
s_n
sn和
s
p
s_p
sp的梯度是大小相同,方向相反的(梯度大小均为
∑
j
≠
i
exp
(
s
n
j
)
exp
(
s
p
)
∑
j
≠
i
exp
(
s
n
j
)
+
exp
(
s
p
)
\frac{{\sum\limits_{j \ne i} {\exp \left( {s_n^j} \right)\exp \left( {{s_p}} \right)} }}{{\sum\limits_{j \ne i} {\exp \left( {s_n^j} \right) + \exp \left( {{s_p}} \right)} }}
j=i∑exp(snj)+exp(sp)j=i∑exp(snj)exp(sp))。相同点是公式形式基本相同,N-pair也是可以直接考虑特征归一化之后的余弦距离。
4.2.2 Lifted Loss
Lifted Structured Loss考虑了multi-positive的情况,并且计算的负样本对(negative pairs)比Circle Loss多,但是距离度量是Euclidean Distance,因此没有引入温度系数,也没有平衡正负样本对间的梯度。
4.2.3 Multi-similarity Loss
MS Loss变化后得到公式(6):
L
M
S
=
1
α
log
[
1
+
∑
k
∈
P
i
exp
(
−
α
(
S
i
k
−
λ
)
)
]
+
1
β
log
[
1
+
∑
k
∈
N
i
exp
(
β
(
S
i
k
−
λ
)
)
]
≈
[
1
α
log
[
∑
k
∈
P
i
exp
(
−
α
(
S
i
k
−
λ
)
)
]
]
+
+
[
1
β
log
[
∑
k
∈
N
i
exp
(
β
(
S
i
k
−
λ
)
)
]
]
+
≈
[
max
(
λ
−
S
i
k
)
]
+
+
[
max
(
S
i
k
−
λ
)
]
+
=
[
λ
−
min
(
S
i
k
)
]
+
+
[
max
(
S
i
k
)
−
λ
]
+
(6)
\begin{aligned} {L_{MS}} & = \frac{1}{\alpha }\log \left[ {1 + \sum\limits_{k \in {P_i}} {\exp \left( { - \alpha \left( {{S_{ik}} - \lambda } \right)} \right)} } \right] + \frac{1}{\beta }\log \left[ {1 + \sum\limits_{k \in {N_i}} {\exp \left( {\beta \left( {{S_{ik}} - \lambda } \right)} \right)} } \right]\\ &\approx {\left[ {\frac{1}{\alpha }\log \left[ {\sum\limits_{k \in {P_i}} {\exp \left( { - \alpha \left( {{S_{ik}} - \lambda } \right)} \right)} } \right]} \right]_ + } + {\left[ {\frac{1}{\beta }\log \left[ {\sum\limits_{k \in {N_i}} {\exp \left( {\beta \left( {{S_{ik}} - \lambda } \right)} \right)} } \right]} \right]_ + }\\ &\approx {\left[ {\max \left( {\lambda - {S_{ik}}} \right)} \right]_{\rm{ + }}}{\rm{ + }}{\left[ {\max \left( {{S_{ik}} - \lambda } \right)} \right]_{\rm{ + }}}\\ & = {\left[ {\lambda - \min \left( {{S_{ik}}} \right)} \right]_{\rm{ + }}}{\rm{ + }}{\left[ {\max \left( {{S_{ik}}} \right) - \lambda } \right]_{\rm{ + }}} \end{aligned} \tag{6}
LMS=α1log[1+k∈Pi∑exp(−α(Sik−λ))]+β1log[1+k∈Ni∑exp(β(Sik−λ))]≈[α1log[k∈Pi∑exp(−α(Sik−λ))]]++[β1log[k∈Ni∑exp(β(Sik−λ))]]+≈[max(λ−Sik)]++[max(Sik−λ)]+=[λ−min(Sik)]++[max(Sik)−λ]+(6)
式(6)的优化目标为使同类相似度的最小值大于某个阈值,并且异类相似度的最小值小于该阈值。式(6)和式(5)的区别可以类比Double-margin Contrastive Loss和Batch-hard Triplet Loss,其实二者应该性能差不多。我个人觉得式(6)的约束条件更强一点,因为它要求同类和异类相似度都满足relu条件。在图10所示的(sn, sp)空间内,Circle Loss的决策边界是圆形,那么MS Loss的决策边界是正方形(这块只是我的理解,也许不对,欢迎指正)。另外一个重要的区别是两篇文章的出发点不同,MS Loss的目标是综合不同Loss的难样本挖掘方法(Similarity-N, Similarity-S, and Similarity-P),而Circle Loss是想结合Softmax CE Loss和传统Metric Learning的方法,并且优化决策边界。但是二者最终的最终形式有点殊途同归的意思。
细细分析一下,3.3.3节中表格结果表明Circle Loss和MS Loss的性能差距不大,这个还是有意思的,后续可以做下实验。只凭猜想分析的话,虽然式(6)两项前分别除了两个系数,但其实MS Loss的梯度对于
s
n
s_n
sn和
s
p
s_p
sp的梯度也是不平衡的。由于MS Loss的出发点跟Softmax没有太大的关系(即Loss整体形式不像Circle Loss是LSE形式),所以不存在同类样本梯度和与异类样本梯度和大小相同方向相反一说,原文中给出了MS Loss对正样本和负样本的求导公式:
对所有同类样本和异类样本梯度分别求和得到:
∣
∑
j
∈
P
i
ω
i
j
+
∣
=
∑
j
∈
P
i
exp
(
−
α
(
S
i
j
−
λ
)
)
1
+
∑
j
∈
P
i
exp
(
−
α
(
S
i
j
−
λ
)
)
∣
∑
j
∈
N
i
ω
i
j
−
∣
=
∑
j
∈
N
i
exp
(
β
(
S
i
j
−
λ
)
)
1
+
∑
j
∈
N
i
exp
(
β
(
S
i
j
−
λ
)
)
(7)
\begin{aligned} \left| {\sum\limits_{j \in {P_i}} {\omega _{ij}^ + } } \right| &= \frac{{\sum\limits_{j \in {P_i}} {\exp } \left( { - \alpha \left( {{S_{ij}} - \lambda } \right)} \right)}}{{1 + \sum\limits_{j \in {P_i}} {\exp } \left( { - \alpha \left( {{S_{ij}} - \lambda } \right)} \right)}}\\ \left| {\sum\limits_{j \in {N_i}} {\omega _{ij}^ - } } \right| &= \frac{{\sum\limits_{j \in {N_i}} {\exp } \left( {\beta \left( {{S_{ij}} - \lambda } \right)} \right)}}{{1 + \sum\limits_{j \in {N_i}} {\exp } \left( {\beta \left( {{S_{ij}} - \lambda } \right)} \right)}} \end{aligned} \tag{7}
∣∣∣∣∣∣j∈Pi∑ωij+∣∣∣∣∣∣∣∣∣∣∣∣j∈Ni∑ωij−∣∣∣∣∣∣=1+j∈Pi∑exp(−α(Sij−λ))j∈Pi∑exp(−α(Sij−λ))=1+j∈Ni∑exp(β(Sij−λ))j∈Ni∑exp(β(Sij−λ))(7)
式(7)表明一般二者数值不相等。
5. 启发
- s n s_n sn和 s p s_p sp的梯度可以不平衡,并且仔细对比了MS Loss和Circle Loss,对两篇文章都有了更深的理解。
- 超参设置挺有意思,通过精妙的设计,不仅减小了超参数目,并且还把决策边界从一次曲线变成了二次曲线。我们今年CVPR2020也投了一个相关工作,也是把Softmax和传统Metric Learning的方法统一到一个框架下,但是很遗憾最后结果是344,没有中,有一个审稿人就说我们引入了过多的超参,并且我们的故事确实也没有Circle Loss说的好。
- 经过峰神的指点,细想觉得挺有意思但容易忽略的两个点:首先, s n s_n sn和 s p s_p sp不仅局限于分类出来的logit,也可以是余弦相似度度量;其次,式(1)实际解决的是多个正样本情况下的Softmax CE Loss变形的问题。
6. 下一篇论文计划
拜读下峰神的博士毕业论文。