论文提出了Circle loss,不仅能够对类内优化和类间优化进行单独地处理,还能根据不同的相似度值调整对应的梯度。总体而言,Circle loss更灵活,而且优化目标更明确,在多个实验上都有较好的表现,个人认为是一个很好的工作
来源:晓飞的算法工程笔记 公众号
论文: Circle Loss: A Unified Perspective of Pair Similarity Optimization
Introduction
论文认为两类基础的深度特征学习方法classification learning(比如softmax)和pair-wise learning(比如triplet loss)均是为了最小化类内相似度 s n s_n sn和类间相似度 s p s_p sp,理想是 ( s n = 0 , s p = 1 ) (s_n=0, s_p = 1) (sn=0,sp=1)。而大部分常用的损失函数都是将 s n s_n sn和 s p s_p spembed成相似度对,然后用各自研究的策略最小化 ( s n − s p ) (s_n-s_p) (sn−sp)的值。这种策略提升 s p s_p sp等同于下降 s n s_n sn,但其实这种对称的优化方法很容易存在以下问题:
- 缺乏优化的灵活性。由于基于损失函数同时优化 s n s_n sn和 s p s_p sp,导致 s n s_n sn和 s p s_p sp的梯度的幅值是一样的。当 s n s_n sn和 s p s_p sp均很小时,依然会使用较大的梯度惩罚 s n s_n sn,这是不高效且不合理的。
- 收敛目标不明确。优化 s n − s p s_n-s_p sn−sp通常会遇到决策边界问题 s p − s n = m s_p-s_n=m sp−sn=m。而这个边界目前是不够明确的,首先图1a中的ABC点均到决策边界的距离相等,但其收敛点却不太一样(梯度正交于 s p = s n s_p=s_n sp=sn?)。其次,不同收敛点间的类内和类间相似度差异可能较小,比如样本 { s n , s p } = { 0.2 , 0.5 } \{s_n, s_p\}=\{0.2, 0.5\} {sn,sp}={0.2,0.5}和 { s ′ n , s ′ p } = { 0.4 , 0.7 } \{{s^{'}}_n, {s^{'}}_p\}=\{0.4, 0.7\} {s′n,s′p}={0.4,0.7},虽然边际(margin)均为0.3,但 s ′ n {s^{'}}_n s′n和 s p s_p sp的差距仅为0.1,这样的收敛状态会影响整体样本的区分性。
基于上面的发现,论文认为不同的相似分数应该有不同的惩罚力度,首先将
(
s
n
−
s
p
)
(s_n - s_p)
(sn−sp)转换为
(
α
n
s
n
−
α
p
s
p
)
(\alpha_n s_n - \alpha_p s_p)
(αnsn−αpsp),
α
n
\alpha_n
αn和
α
p
\alpha_p
αp是独立的权重因子,分别与
s
n
s_n
sn和
s
p
s_p
sp线性相关,这样不仅使得
s
n
s_n
sn和
s
p
s_p
sp能以不同的步伐进行学习,还可以更具相似分数调整幅值。这样的优化策略使得
α
n
s
n
−
α
p
s
p
=
m
\alpha_n s_n - \alpha_p s_p=m
αnsn−αpsp=m在
(
s
n
,
s
p
)
(s_n, s_p)
(sn,sp)空间内呈现圆形,故称为Circle loss。
Circle loss主要从以下3个方面入手改变深度特征学习的内在特性:
- 统一损失函数来表示两类基础的深度特征学习方法classification learning(比如softmax)和pair-wise learning(比如triplet loss)。
- 灵活地优化,由于 α n \alpha_n αn和 α p \alpha_p αp会随着对应的相似度分数来改变对应的梯度,如图1b的点ABC的梯度是各不一样的。
- 明确的收敛目标,在圆形的决策边界,circle loss有更倾向的决策状态,如图2b的ABC点,均偏向于更新到点T,原因后面会讲到。
论文的主要贡献如下:
- 提出Circle loss,通过有监督地加权不同相似度分数来进行深度特征学习,能够更灵活地优化,并且有明确的收敛目标。
- Circle loss能够兼容class-level标签和pair-wise标签,通过简单的修改就能变化为triplet loss或softmax loss。
- 在不同的任务(人脸识别,ReID,细粒度图片检索等)上进行实验证明Cirle loss的优势。
A Unified Perspective
给予特征空间的单样本 x x x,假设有 K K K个类内相似分数和 L L L个类间相似分数关联 x x x,定义相似度分数为 { s p i } ( i = 1 , 2 , ⋯ , K ) \{s^i_p\}(i=1,2,\cdots,K) {spi}(i=1,2,⋯,K)和 { s n i } ( i = 1 , 2 , ⋯ , L ) \{s^i_n\}(i=1,2,\cdots,L) {sni}(i=1,2,⋯,L)。
为了最小化每个 s n j s^j_n snj以及最大化每个 s p i s^i_p spi,统一的损失函数如公式1,其中 γ \gamma γ为缩放因子, m m m为边际(margin)。公式1迭代每个相似度对来减小 ( s n j − s p i ) (s^j_n-s^i_p) (snj−spi),通过简单的修改就能变为triplet loss和classification loss。
Given class-level labels
在分类层计算样本 x x x与各类的相似度以及权重向量 w i ( i = 1 , 2 , ⋯ , N ) w_i (i=1,2,\cdots,N) wi(i=1,2,⋯,N),得到 ( N − 1 ) (N-1) (N−1)个类间相似度 s n j = w j T x / ( ∣ ∣ w j ∣ ∣ ∣ ∣ x ∣ ∣ ) s^j_n=w^T_j x/(||w_j||\ ||x||) snj=wjTx/(∣∣wj∣∣ ∣∣x∣∣)以及单个类内相似度 s p = w y T x / ( ∣ ∣ w y ∣ ∣ ∣ ∣ x ∣ ∣ ) s_p = w^T_y x/(||w_y||\ ||x||) sp=wyTx/(∣∣wy∣∣ ∣∣x∣∣)。
结合公式1,得到公式2的softmax变种AM-Softmax,当 m = 0 m=0 m=0时,公式2能够进一步变化为Normface,当将cosine相似度替换为内积以及设置 γ = 1 \gamma=1 γ=1时,则为softmax loss。
Given pair-wise labels
计算mini-batch中样本 x x x与其它样本的相似性,得到类间相似度 s n j = w j T x / ( ∣ ∣ x j ∣ ∣ ∣ ∣ x ∣ ∣ ) s^j_n=w^T_j x/(||x_j||\ ||x||) snj=wjTx/(∣∣xj∣∣ ∣∣x∣∣)以及单个类内相似度 s p i = w y T x / ( ∣ ∣ x i ∣ ∣ ∣ ∣ x ∣ ∣ ) s^i_p = w^T_y x/(||x_i||\ ||x||) spi=wyTx/(∣∣xi∣∣ ∣∣x∣∣)。
结合公式1, K = ∣ P ∣ K=|\mathcal{P}| K=∣P∣, L = ∣ N ∣ L=|\mathcal{N}| L=∣N∣,得到带hard mining的triplet loss, ∑ e x p ( ⋅ ) \sum exp(\cdot) ∑exp(⋅)用于调节mining的程度,当 γ → + ∞ \gamma \to + \infty γ→+∞时,就是绝对的hard mining。
Gradient analysis
公式2和公式3展示了公式1的通用性,目标均是优化 ( s n − s p ) (s_n-s_p) (sn−sp)。论文假设仅存在单个 s p s_p sp和 s n s_n sn,各种损失函数的梯度进行了可视化,如图2所示,观察到了主流损失函数的几点梯度表现:
- 在达到决策边界前, s p s_p sp和 s n s_n sn的梯度是相同的,这缺乏优化的灵活性。
- 梯度在收敛前几乎是不变,而在收敛时则突然下降。比如图2的B点相对于A点是更优的,但是两点的梯度几乎一样,这也表明了优化的不灵活。
- 决策边界平行于 s n − s p = m s_n - s_p=m sn−sp=m(图2的白线),不同的点 A A A B B B会可能以边界上的不同点 T T T或 T ′ T^{'} T′为目标,导致收敛目标不明确,如之前所述的。
A New Loss Function
Self-paced Weighting
为了让每个相似度分数能够根据当前优化状态调整学习的幅度,先忽略公式1的 m m m并调整为Circle loss,如公式4所示, α n j \alpha^j_n αnj和 α p i \alpha^i_p αpi为非负权重因子。
假定
s
p
i
s^i_p
spi的最优值为
O
p
O_p
Op,
s
n
j
s^j_n
snj的最优值为
O
n
(
O
n
<
O
p
)
O_n(O_n < O_p)
On(On<Op),则
α
n
j
\alpha^j_n
αnj和
α
p
i
\alpha^i_p
αpi的计算如公式5,称为self-paced manner,
[
⋅
]
+
[\cdot]_+
[⋅]+为cut-off at zero操作来保证
α
n
j
\alpha^j_n
αnj和
α
p
i
\alpha^i_p
αpi非负。
加权是分类loss中的常见操作,所有的相似度分数共享同一个缩放因子
γ
\gamma
γ,而Circle loss则根据每个相似度分类的值再进行一次独立的加权,允许不同的学习幅度,能够更加地灵活。
Within-class and Between-class Margin
在之前的讨论中,主流损失函数的 ( s n − s p ) (s_n-s_p) (sn−sp)的优化是对称的(减少 s n s_n sn等同于增大 s p s_p sp),仅需一个边际(margin)即可。而在Circle loss中, ( s n − s p ) (s_n-s_p) (sn−sp)的优化是非对称的,因此需要设置独立的边际,如公式6,其中 Δ n \Delta_n Δn和 Δ p \Delta_p Δp为类间边际和类内边际,目标是 s p i > Δ p s^i_p>\Delta_p spi>Δp以及 s n j < Δ n s^j_n<\Delta_n snj<Δn,下面探讨边际的设置问题。
考虑简单的二分类问题,决策边界为 α n ( s n − Δ n ) − α p ( s p − Δ p ) = 0 \alpha_n(s_n - \Delta_n)-\alpha_p(s_p-\Delta_p)=0 αn(sn−Δn)−αp(sp−Δp)=0,结合公式5和6,决策边界可转换为公式7,其中 C = ( ( O n − Δ n ) 2 + ( O p − Δ p ) 2 ) / 4 C=((O_n-\Delta_n)^2+(O_p-\Delta_p)^2)/4 C=((On−Δn)2+(Op−Δp)2)/4,即为Circle loss决策边界为圆的弧,如图1b所示,中心点为 ( s n = ( O n + Δ n ) / 2 , s p = ( O p + Δ p ) / 2 ) (s_n=(O_n+\Delta_n)/2, s_p=(O_p+\Delta_p)/2) (sn=(On+Δn)/2,sp=(Op+Δp)/2),半径为 C \sqrt{C} C。
Circle loss包含5个参数 ( O p , O n , γ , Δ p , Δ n ) (O_p, O_n, \gamma, \Delta_p, \Delta_n) (Op,On,γ,Δp,Δn),论文通过设置 O p = 1 + m O_p=1+m Op=1+m, O n = − m O_n=-m On=−m, Δ p = 1 − m \Delta_p=1-m Δp=1−m, Δ n = m \Delta_n=m Δn=m来减少参数,最终将公式7转换为公式8。基于公式8的决策边界,可以看到其目标为 s n → 0 s_n \to 0 sn→0和 s p → 1 s_p \to 1 sp→1,参数 m m m控制决策边界的半径可以看作是松弛因子,即可将Circle loss目标改为 s p i > 1 − m s^i_p>1-m spi>1−m和 s n i < m s^i_n<m sni<m。
The Advantages of Circle Loss
Circle loss关于 s n j s^j_n snj和 s p i s^i_p spi的梯度分别为公式9和公式10,在简单的二分类问题上,梯度的可视化如图2c所示,可以观察到几点梯度表现:
- Circle loss能够平衡地优化 s n s_n sn和 s p s_p sp,动态地调整惩罚各自的力度。
- 逐渐衰弱的梯度,如图2c所示,在训练初期,远离决策边际将获得较大的梯度,随着逐渐接近收敛,其梯度逐渐衰减,并且对 γ \gamma γ具有鲁棒性。
- 更明确的收敛目标,如图1b所示,Circle loss更倾向于收敛至点 T T T,因为相对于其他点,点 T T T的 s p s_p sp和 s n s_n sn差距最小,加上梯度足够灵活,最容易学习到该状态。因为 s p s_p sp和 s n s_n sn差距越大,需要将数据划分地更开,更难学习。
Experiment
Face Recognition
Person Re-identification
Fine-grained Image Retrieval
Impact of the Hyper-parameters
Investigation of the Characteristics
通过观察图4发现:
- 在初始时,所有的 s n s_n sn和 s p s_p sp都较小,这是由于高维随机特征倾向于彼此分离。而在训练中, s p s_p sp得到了显著的较大权重,占据了训练,使得相似度快速增加,这证明了Circle loss使用更灵活且平衡的优化手段。
- 在训练的最后,Circle loss在 s p s_p sp和 s n s_n sn的收敛上都比AMSoftmax要好。
论文可视化了收敛后的相似度分布,可以看到,Circle loss以更紧密地方式通过了决策边界,而AMSoftmax则较为稀疏地通过了,这表明Circle loss的优化目标较为明确的,特征空间可分离性更好,这种情况在图5c中更为明显。
CONCLUSION
论文将classification learning和pair-wise learning进行了统一的表达,并根据目前的损失函数实际存在问题进行了改进,提出了Circle loss,不仅能够对类内优化和类间优化进行单独地处理,还能根据不同的相似度值调整对应的梯度。总体而言,Circle loss更灵活,而且优化目标更明确,在多个实验上都有较好的表现。
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】