Circle Loss 成对相似度优化的统一视角

0. Abstract

本文提供了在deep feature learning的成对相似度优化的视角,(是去找对么?)旨在最大化类内相似性 s p s_p sp并且最小化类间相似性 s n s_n sn。 让同一类的更紧凑,让不同类的更分开。这和我们之前的描述换个说法而已,本质都一样。

但是,他们说大多数loss functions,就好比如:

the softmax cross entropy lossthe triplet loss是把正样本和负样本嵌入成相似对,(怎么还能把正负样本放到一起形成相似对?)然后寻求去减少两者的距离。不太对啊感觉应该让 s n − s p s_n-s_p snsp越来越大才好

作者怎么得出这个结论的,数学依据是啥? 应该先去弄懂单个 s n 或 者 s p s_n或者s_p snsp

在这里插入图片描述
之前the softmax cross entropy loss(在Introduction里面还写到了他的variants)the triplet loss的问题在于这种优化方式不够灵活,因为在every single similarity score的惩罚强度都被限制为是等同的。完全没懂这话说了个什么意思

这种优化方式是不灵活的,因为每个相似度得分的惩罚强度
限制为相等.

在这里插入图片描述
我们的直觉是,如果相似性评分偏离最佳值,则应予以强调。什么样子算是偏离最佳值。最后,我们简单re weight调整权重每个相似性each similarity to 突出这欠优的相似性分数。

为此,我们只需将每个相似度重新加权即可突出显示未优化的相似性得分。
数学上怎么表示相似性得分,另外,啥样算是欠优。给我的感觉就是更有针对性了,因为未优化的得到强调。
在这里插入图片描述
为啥叫Circle loss呢? 因为是圆形的决策边界。

在这里插入图片描述

对两个基本的深度特征学习paradigms范式有着统一的公式,即

  • learning with class-level labels 使用类级别标签
  • pair-wise labels 使用成对标签 这种监督我还不太熟悉

Circle loss具有两个基本的深度特征学习范例的统一公式,即使用类级标签和成对标签进行学习。 从分析上来说, 我们表明,圆损失为实现更明确的收敛目标提供了一种更灵活的优化方法,与优化 s n − s p s_n-s_p snsp的损失函数相比。

1. Introduction

holds a similarity optimization view(什么意思?)

能解决两种范式

  • learning from data with class-level labels.
  • from data with pair-wise labels.

在这里插入图片描述
对于前者,是在优化样本和权重向量之间的相似性,也就是优化

x i x_i xi W W W之间的相似性

对于后者,是用一个metric loss function(去刻画去度量),也就是衡量样本之间。

在这里插入图片描述
代表着,代表着,代表着, s p s_p sp代表属于同一类的样本之间的相似性,也就是说是多于一个个体的一种距离,而不是单个个体。

从他们要去优化相似性的角度分析,

在这里插入图片描述
下面这段文字的描述很不清晰,容易把相似性和样本的符号相互混淆。

在这里插入图片描述
为啥有这么个公式 s n − s p s_n-s_p snsp?

不就是应该直接让 s n s_n sn越小, s p s_p sp越大就好了么?

为了同时,为了让数学上更简洁合理,所以,去让 s n − s p s_n-s_p snsp越小。应该是相似性都是正数的前提下,因为只有 s n s_n sn越小, s p s_p sp越大才能使得 s n − s p s_n-s_p snsp越小。所以,说白了就是达到的目地一样,只是数学上的写法不一样而已。这也是为啥上面写到增加后者就是相当于在减少前者。

这就是为啥有了这么个公式? s n − s p s_n-s_p snsp 这种形式的优化公式叫做对称优化

但这种简单改写还存在问题,作者自己提到了:

We argue that this symmetric optimization manner is prone to the following two problems 我们认为这种对称优化方式容易出现以下两个问题

  • lack of flexibility for optimization
  • Ambiguous convergence status

1.1 lack of flexibility for optimization

在这里插入图片描述
说的感觉是,因为只是让 s n s_n sn变小, s p s_p sp变大,但是,但是,但是,没有给出程度,都是以系数1变大变小的感觉。说白了,就是幅度相同,给定具体的loss function, 对 s n s_n sn s p s_p sp的梯度具有相同的幅度。这是我的解读。

在这里插入图片描述
意思是图1(a)中的A已经在负样本相似性 s n s_n sn上很小了,但是,还保持以很大梯度对 s n s_n sn进行惩罚。这是不充分的,也是不合理的。

在这里插入图片描述
这段没看懂。他们说之前的不灵活,怎么不灵活了,因为A,B,C都对 s n s_n sn s p s_p sp有着相等的梯度。。。怎么在下图看出来的?

在这里插入图片描述
看箭头的话,感觉就好像是这种情形下红色的点都在直线上(而且是正对的位置),所以距离都相等。而后者是到圆形的顶点,所以,距离不相等。收敛状态也是模糊的,T和T撇都能被认为收敛了(模糊的,歧义的)。

1.2 Ambiguous convergence status

优化那个对称优化 s n − s p s_n-s_p snsp会lead一个决策边界。然后这个决策边界会allows模糊,也就是T和T撇.

在这里插入图片描述
这种模糊吧,会使得特征空间的可分性得到折扣。

综上,他们觉得:different similarity scores should have different penalty strength.

在这里插入图片描述
偏得多惩罚就多,偏得少越靠近惩罚得就少。怎么看出来啥样偏得多,啥样偏得少?

于是,他们引入了两个加权因子,得到

α n s n − α p s p \alpha_ns_n-\alpha_ps_p αnsnαpsp 这样的话就允许 s n s_n sn s p s_p sp以不同的节奏来学习。

我们然后实现 α n \alpha_n αn, α p \alpha_p αp作为线性函数,w.r.t. s n s_n sn s p s_p sp 从而make the learning pace 自适应 to the optimization status.

The farther a similarity score deviates from the optimum, the larger the weighting factor will be.

相似性评分偏离最佳值的距离越远,加权因子将越大。

在这里插入图片描述

这种优化导致decision boundary α n s n − α p s p = m \alpha_ns_n-\alpha_ps_p=m αnsnαpsp=m , 从而产生一个圆形空间。为什么这么弄的话,就会产生一个圆形呢,

这就是为啥他们管这个叫Circle loss的原因。

intrinsically 本质地reshapes the characteristics
在这里插入图片描述

Circle loss重塑特征,重塑了深度特征学习:

  • A unified loss function 怎么和之前的softmax系列统一 From the unified perspective
  • flexible optimization 灵活的优化
  • definite convergence status 有限的收敛状态

similarity pair optimization

1.3 贡献

1.3.1 a unified loss function

两个基本的学习范式提供统一的loss function.

  • learning with class-level labels 基于cross-entropy那些
  • learning with pair-wise labels 基于多元组那些

1.3.2 flexible optimization

在这里插入图片描述
在训练中,反向传播的梯度将会被放大,被添加的加权因子放大。那些欠优化的similarity scores将会有更大的weighting factors, 然后consequentially(结果,结果的)就会得到更大的梯度。看图,然后说A,B,C上的优化各自不相同。

1.3.3 definite convergence status 确定的收敛状态

在这个圆形的决策边界上,Circle loss偏爱一个特定的收敛状态,也就是T,而不再和T撇混淆。它设定了明确的优化目标并有利于可分离性

在这里插入图片描述
在这里插入图片描述
以上面的图为例子的话,我们推测,A,B,C三者的加权因子就应该不同,离得远的加权多。

2. A unified Perspective 一个统一的视角

应该是讲如何把softmax, 以及基于softmax的改进和triplet这种多元组的都统一到一块。

在这里插入图片描述
然后的话,告诉我们如果是用余弦相似性去度量的,那么就是希望相同类别样本的余弦相似度趋向于1,然后不同类别样本的余弦相似度趋向于0。

他们把用标签的叫做基于代理(proxy), 把不用标签的叫做non-proxypair-wise. 怎么在数学上面改写的啊?

举例子,比如说,给定一个样本 x x x, 那么针对他而言,在特征空间里就有跟他同类的很多样本,相应就有很多positive相似性分数, 同理, 也有很多negative相似性分数。有了上述理论,然后他们提出一个新的公式:

在这里插入图片描述
别看这个公式复杂,其实也就是在It iterates through every similarity pair to reduce 对称优化

在这里插入图片描述
迭代着去reduce那个对称优化,固定一个遍历剩下另外的,怎么避免重复,在于每次固定的都是前者,然后后者都换都被遍历,这样就没有重复。而他们意思有了上面这个公式的话,加以很小的modification我们就可以把两种范式统一。

在这里插入图片描述
2为底的对数的单调性如下:

单调递增的。所以如果是要让对称优化越小,那就是去最小化上面式子中的 L L L. 所以,相当于作者的贡献是提出一种新的LOSS函数从而实现对对称优化的实现。核心依据在于以2为底的对数是单调递增的

2.1 Given class-level labels

在这里插入图片描述
论文里写的啊这可是,we calculate the similarity scores between x x x and weight vector, 我们计算余弦相似性分数:为啥说是 x x x和权重向量,因为:

l o g i t = w T ∗ x = s ∗ c o s ( θ ) logit=w^T*x=s*cos(\theta) logit=wTx=scos(θ)

当s成为常数的时候, c o s ( θ ) = w T ∗ x cos(\theta)=w^T*x cos(θ)=wTx. 这就是为啥去计算样本和权重矩阵中权重向量的相似性。这是因为logit就是这个。这也是为啥作者说we calculate the similarity scores between x and weight vector w in the classification layer.

在这里插入图片描述
这是什么意思? 为什么特别的以后,negative 样本相似性和positive样本相似性就直接是数值除以模,因为严格意义上讲,余弦相似度就是这么回事的。

在这里插入图片描述
而论文中 N − 1 N-1 N1 N N N的意思就是:那个样本 x x x只属于某一类啊,那么剩下的 N − 1 N-1 N1都是别的类的权重向量或者标签,因此,有了下面的描述:

在这里插入图片描述
在这里插入图片描述
上面这两个公式没有什么特别的,只是说,similarity是得点积除以向量长度(模)。 有了上述的写法以后,公式1可以变形(退化为,degenerate)为AM-softmax, 而这个AM-softmax刚好是softmax cross-entropy loss的一个很重要的变种:

在这里插入图片描述

写到这里就能看出来,这越来越和softmax-based长相的函数接近了。

在这里插入图片描述
然后如果用内积替换余弦相似度,就能把这个式子,退化为softmax cross-entropy loss

在这里插入图片描述

2.2 Given pair-wise labels

我们同样遵循上面的思路和理念,得到下面两个式子:

在这里插入图片描述

在这里插入图片描述
这有啥的,之前是和权重向量去比较,现在是样本向量之间直接比较,同样采用余弦相似度去比较。然后居然公式1就能退化为triplet loss with hard mining. 还借助了极限的思想:

在这里插入图片描述

如果是让 L u n i L_{uni} Luni最小,那么,就是让对称优化对最小,因此, l o g 2 e x p ( 那 一 串 ) log_2^{exp(那一串)} log2exp()中exp(那一串)就得小,怎么突然变成max开头了,我以为应该是min开头。还有就是会对这块这个加号感到困惑。此外就是我们知道了,不光有triplet loss的hard mining还有别的loss的soft mining.

  • Lifted-Structure loss
  • N-pair loss
  • Multi-Similarity loss

上面这些loss是去:

conduct soft hard mining among samples

在这里插入图片描述

22 就是Facenet.

2.3 Gradient Analysis

就是说公式2和3公式1在某些时候的特列,而这公式2公式3就是证实确实softmax,triplet loss, softmax-based的这些情况可以被公式1框架所统一。

列举了1,2,3点,然后,还再次强调了,之前的对称优化方式不好,还是说了一些关于inflexibilityambiguous convergence的证据。

在这里插入图片描述
然后又说了,怎么在第三节给出一个更好的优化mannerfacilitate higher flexibility.

3. A New Loss Function

3.1 Self-paced Weighting

不同程度的Weighting, 也就是允许each similarity score以他的自己的pace来学习,取决于他当前的优化状态。先把公式1里面的m忽视掉,然后把公式1提出的统一的loss function转化为提出的Circle loss.

在这里插入图片描述
得知道怎么从公式1写成这个的。就是利用了不同程度权重的对称优化对替换了下而已。也就是利用下面这个玩意:

α n s n − α p s p \alpha_ns_n-\alpha_ps_p αnsnαpsp 这样的话就允许 s n s_n sn s p s_p sp以不同的节奏来学习。

确实是,论文里也如下陈述到了:

在这里插入图片描述
这样做的好处在于:

在训练的过程中,对于后者的梯度,会被非负的加权因子作用,然后再反向传播给之前的余弦相似性。这样一来的话,就能起到一个作用,那就是:当一个相似性分数偏离他的最优值( O n O_n On或者 O p O_p Op)太远的时候,他就会get a large weighting factor so as to get effective update with large gradient.

最后,to this end, 告诉你两个加权因子怎么定义的:

在这里插入图片描述
原来这个加号是cut-off at zero的操作啊。

Discussion

Re-scaling the cosine similarity under supervision is a common practice in modern classification losses.意思是,像之前的cosface啥的也都会re-scale余弦相似性。也就是下面式子里面的 s s s进行的操作:

l o g i t = w T ∗ x = s ∗ c o s ( θ ) logit=w^T*x=s*cos(\theta) logit=wTx=scos(θ)

通常情况,all the similarity scores share an equal scale factor. 当然了,当我们在一个classsification loss function里考虑the softmax value as the probability of a sample beloning to a certain class时候这种equal re-scaling是自然而然的。 相反地,Circle loss是在re-scaling之前用一个独立的加权因子来乘以每个each similarity score. 然后就是又说了一下,allows more flexible optimization. 此外,就是

Besizes the benefits of better optimization, another significance of such a re-weighting(or re-scaling) strategy is involved with the underlying interpretation.

在这里插入图片描述

这也说明了,之前的那些loss的原理解释就是:以一个大的概率把一个样本分到他的target class, 在Circle loss里呢,取而代之的是,

it holds a similarity pair optimization perpective, which is compatible with two learning paradigms.

3.2 Within-class and Between-class Margins

这个好像和之前的那些loss路子不太一样,之前没见过给Margins分门别类啊。在之前的SphereFaceCosFace,都是adding a margin来强迫优化。 S n S_n Sn − S p -S_p Sp在对称位置,如果这么正负分着看的话,就是让他们两个都小,负的 S p S_p Sp小的话,同样还是 S p S_p Sp大。

在这里插入图片描述
因为他们在对称位置,那么作用给 S n S_n Sn的正的margin和作用给 S p S_p Sp的负的margin在给的margin大小上,数值大小上是相等的。因此,就只是需要一个a single margin m. 而在Circle loss里, S n S_n Sn S p S_p Sp在非对称的位置,自然地,他们需要各自的margin:

在这里插入图片描述

上面式子是在公式4的基础上引入margin后改写得到的。

在这里插入图片描述

在这里插入图片描述

上面两个数学符号是各自的margin,是这是和之前的那些loss不同的地方,这个分为within-class和between-class的margin. 接下来就是分析下这两个margin和各自余弦相似度的大小关系。

意思是在公式6里面expects 所有的positive余弦相似度都大于正margin, 所有的negative余弦相似度都小于负margin. 也就是让 S n S_n Sn小,让 S p S_p Sp大。

在这里插入图片描述

在这里插入图片描述

此外就是还有结合二分类情形来更详细说明decision boundary在哪里。

在这里插入图片描述
然后就是在结合公式5以后,改写后得到了决策边界如下:

在这里插入图片描述
此外,还说了公式7表明that the decision boundary is the arc of a circle. 圆形的arc是什么鬼。然后告诉了圆心的位置和圆的半径:

在这里插入图片描述
在这里插入图片描述
对于Circle loss而言,具有5个超参数,但通过建立间接的数学关系,可以把超参数的数量减少:

在这里插入图片描述
相继地,公式7里面的决策边界也会变成:

在这里插入图片描述
有了公式8, 我们就有了另外一种intuitive的对Circle Loss的解释和理解。它旨在将 S n S_n Sn向0优化,将 S p S_p Sp向1优化,然后m控制着决策边界的弧度,然后可以被看作是一个relaxation factor. 换句话说,Circle loss 期待:

在这里插入图片描述
到这里就把超参数又简化成只有两个:一个m和一个尺度缩放的因子。Section 4.5里面会分析两个超参数对实验结果的影响。

3.3 The Advantages of Circle Loss

先给出了Circle loss S n S_n Sn S p S_p Sp的梯度表达,之前的softmax-based 是对哪个变量求的梯度啊?

with respect to which variable? Circle loss这块是with respect to S n S_n Sn S p S_p Sp.

无非又是重复复述了能更好更灵活的优化,明确的收敛目标什么的。

  • Balanced optimization 简单概括为:动态惩罚项强度,分配更大梯度。
  • Gradually-attenuated gradients 逐渐衰减的梯度,刚开始时候相似性离最优解偏得远,然后此时梯度也大。随着训练,梯度变小了,elaborating 柔和的优化。这就是为啥叫自动衰减的梯度。
  • A more definite convergence target
    Circle loss是圆形的决策边界,而且是T时候收敛,而不是T撇时候收敛。更明确,然而,之前的呢,every point on the decision boundary is of the same difficulty to reach.

程序部分

别人的程序

在这里插入图片描述
这个就相当于我自己的label_list

在这里插入图片描述
不对不对,严谨地说应该是相当于经过convert_to_tensor转化的labels(而且是eager张量)而不是label_list.

在这里插入图片描述
感觉最奇怪的就是这个,不知道为啥有这个,也不知道这个和我自己的哪个对应。

在这里插入图片描述
在这里插入图片描述
给我的感觉是:

因为一共有8个样本。为啥这块有个25维度,因为这是个25分类问题。25分类问题,

以都是都是2个,而且2类的列子,去看这个y_pred是不是整体加起来等于1或者某些维度上等于1

在这里插入图片描述
严谨去计算,0.9487579+0.4314134+0.8212745+0.54438496也确实不等于1啊。

在这里插入图片描述
难道是在确定一个样本后,然后这个样本在25类的概率和加起来是1?

在这里插入图片描述
参考文献

https://blog.csdn.net/bitcarmanlee/article/details/82320853

在这里插入图片描述
在这里插入图片描述
如果是软分类中的,取到每个类别的概率的话,那应该每个数值都是大于0的啊。

在这里插入图片描述
这么来看的话,y_pred或者说至少这里的y_pred不是经过softmax layer的输出层。

在这里插入图片描述
验证了,就算是多分类(10分类),这某个样本属于10类的概率加和也不是1。足以说明,这可能压根就不是概率。

在这里插入图片描述


[[0,8],
 [1,1],
 [2,3],
 [3,3],
 [4,2],
 [5,9],
 [6,5],
 [7,1],
 [8,2]]
就是给出一个batch里每个样本和类别(类别真实标签)的良好对应。

我以为他给的y_pred是和我之前CE的prediction一样呢,

在这里插入图片描述
然而,我自己本来的prediction也不是(batch_size,类别数)啊。那他们这个y_pred到底对应的啥?

在这里插入图片描述
这是scatter的结果。

在这里插入图片描述
没弄清楚的就是为啥上面这个就是positive的膜,再往下看看,把Negative也看了然后再说:

通过检查posneg 的对角线以上的部分,我们知道确实两者互为0和1互换。

Qianjinhao的labels.expand和下面TinyZeaMays的最后得到的结果是一样的,说明只是殊途同归。
在这里插入图片描述
我们可以把意义相同的但是变量名不同的从头捋一下然后就知道label矩阵怎么形成的了。

自己的程序

综上,我怀疑的那个zhen8838

合作者的代码:

在这里插入图片描述
这块这个相似矩阵是(None,512)也就是, 进而看看sn和sp是啥?

相似矩阵都是(batchsize内部类别数,batchsize内类别数)

注意:batch_size内类别数目是区别于总类别数目的。

然后zhen8838的呢?没有相似矩阵,而是直接拿出sn和sp

one_hot对应用的circle loss, 里面进而用到的是:

tf.nn.softmax_cross_entropy_with_logits(labels=y_true, logits=y_pred)

但是之前的utils的CE用的跟这个不完全一样,而是

tf.nn.sparse_softmax_cross_entropy_with_logits

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值