Subclass-balancing Contrastive Learning for Long-tailed Recognition
- 核心公式解析
- 温度参数 τ \tau τ的作用
- 公式5解析
核心公式解析
L S B C L = − ∑ i = 1 N ( 1 ∣ M ~ i ∣ ∑ z p ∈ M ~ i log exp ( z i ⋅ z p ⊤ / τ 1 ) ∑ z a ∈ V ~ i exp ( z i ⋅ z a ⊤ / τ 1 ) + β 1 ∣ P ~ i ∣ − ∣ M i ∣ ∑ z p ∈ P ~ i / M i log exp ( z i ⋅ z p ⊤ / τ 2 ) ∑ z a ∈ V ~ i / M i exp ( z i ⋅ z a ⊤ / τ 2 ) ) \begin{align*} & \mathcal{L}_{S B C L}=-\sum_{i=1}^{N}\left(\frac{1}{\left|\tilde{M}_{i}\right|} \sum_{z_{p} \in \tilde{M}_{i}} \log \frac{\exp \left(z_{i} \cdot z_{p}^{\top} / \tau_{1}\right)}{\sum_{z_{a} \in \tilde{V}_{i}} \exp \left(z_{i} \cdot z_{a}^{\top} / \tau_{1}\right)}\right. \\ & \left.+\beta \frac{1}{\left|\tilde{P}_{i}\right|-\left|M_{i}\right|} \sum_{z_{p} \in \tilde{P}_{i} / M_{i}} \log \frac{\exp \left(z_{i} \cdot z_{p}^{\top} / \tau_{2}\right)}{\sum_{z_{a} \in \tilde{V}_{i} / M_{i}} \exp \left(z_{i} \cdot z_{a}^{\top} / \tau_{2}\right)}\right) \tag{4} \end{align*} LSBCL=−i=1∑N M~i 1zp∈M~i∑log∑za∈V~iexp(zi⋅za⊤/τ1)exp(zi⋅zp⊤/τ1)+β P~i −∣Mi∣1zp∈P~i/Mi∑log∑za∈V~i/Miexp(zi⋅za⊤/τ2)exp(zi⋅zp⊤/τ2) (4)
公式4里面的负号是针对里面的两项的
所以,它有两个意思:
-
term1: 针对相同簇标签的实例之间的对比损失。这部分损失函数在计算时,比较了当前实例 x i x_i xi和同一簇中的正样本 z p z_p zp之间的相关性。具体而言,它通过计算它们的内积,并初一一个温度参数 τ 1 \tau_1 τ1来衡量它们的相似度,然后利用softmax函数来计算它们之间的相对概率。整个损失函数的目标是使同一簇中的实例在特征空间中更加接近。
-
term2: 针对不同簇中的相同类别标签实例之间的对比损失。这部分损失函数考虑了当前实例 x i x_i xi和其他不在同一簇中的同一类别标签的正样本 z p z_p zp之间的相关性。与第一部分不同的是,这里通过将同一类别标签的实例从损失计算中排除来确保实例的多样性。同样,这部分也利用内积和softmax函数来计算相对概率
-
超参数 b e t a beta beta在公式中用于平衡这两部分损失。它可以调整两种损失对模型训练的影响程度,以便更好地优化特征空间。第二部分的损失函数的目的是促使不同簇中的同一类别标签实例之间在特征空间中更加相似,以帮助模型更好地学习到数据的结构和特征。
综上所述,这个公式的目的是通过结合簇标签和类别标签的对比损失来优化模型的特征表示,使得相同簇内的实例更加相似,同时确保不同簇中的同一类别标签实例之间也能保持一定的相似度。
在公式4的第二部分中,通过将同一类别标签的实例从损失计算中排除,即只考虑不在同一簇中的同一类别标签的正样本,从而促使模型在学习时注重实例的多样性。具体来说,这种设计可以确保模型不会过于集中在同一簇内的实例之间的相似性,而是更加关注不同簇中的同一类别标签实例之间的相似性。
通过排除同一簇中的实例,模型被迫在学习时关注不同簇中的实例之间的关系,从而更好地学习到数据的全局结构和特征。这种方法有助于提高模型的泛化能力,使其能够更好地区分不同类别的实例,并增强对数据的表征能力。因此,通过排除同一簇中的实例,可以确保模型在学习时考虑到不同类别标签之间的多样性,从而提高模型的性能和表现。
也就是说“通过将同一类别标签的实例从损失计算中排除,即只考虑不在同一簇中的同一类别标签的正样本,”这样可以使得模型更加关注同一class的不同层次结构,而不是同一簇。把关注重心放在同一类,不同簇的层级结构上去。
是的,您理解的非常正确。通过将同一类别标签的实例从损失计算中排除,即只考虑不在同一簇中的同一类别标签的正样本,有助于使模型更加关注同一类别的不同层次结构,而不是仅限于同一簇内的实例。这样的设计可以帮助模型更好地理解和学习类别之间的层级结构和关系,从而提高模型对数据的表征能力和泛化能力。
通过重点关注同一类别标签的不同簇中的实例之间的关系,模型可以更好地捕捉类别之间的多样性和差异性,从而更好地区分不同类别。这种方法有助于模型学习到更加丰富和全面的数据特征,提高模型的性能和泛化能力。因此,将关注重心放在同一类别的不同层次结构上,而不仅限于同一簇内的实例,可以帮助模型更好地理解数据的类别结构和特征,从而提高模型的训练效果。
温度参数 τ \tau τ的作用
对于监督对比学习,温度参数 τ \tau τ的大小会影响特征分布的惩罚程度。具体来说,当温度较低时,对特征分布的惩罚较高,这实际上鼓励特征更加集中分布在一起。随着温度的增加,相对惩罚趋向更加均匀,这会使得特征的分布更加均匀。
温度参数 τ \tau τ在对比损失函数中的作用是控制样本之间的相似性度量。较低的温度值会增加样本之间的差异性,导致特征更加集中在一起,因为相似的样本对会更加突出,而不相似的样本对会有更大的惩罚。这会导致特征分布更加尖锐,即特征更加集中在一些特定的区域。
相反,较高的温度值会减少对样本之间差异性的强调,导致更加均匀的特征分布。这是因为相似性度量相对均匀,不同样本对之间的差异性减少,特征分布更加均匀。
因此,当温度较小时,对比损失函数更加强调样本之间的差异性,导致特征更加集中;而当温度较大时,对比损失函数更加均匀化样本之间的相似性度量,导致特征分布更加均匀。
温度越低,feature distribution越紧致。为了使得同一subclass越紧致,那就让 τ 1 < τ 2 \tau_1 < \tau_2 τ1<τ2
公式5解析
根据引用的参考文献[40],对于类别 c c c,我们定义 ϕ ( c ) \phi(c) ϕ(c)如下所示:
ϕ ( c ) = ∑ i = 1 n c ∣ z i − t c ∣ 2 n c log ( n c + α ) (5) \phi(c)=\frac{\sum_{i=1}^{n_{c}}\left|z_{i}-t_{c}\right|{2}}{n{c} \log \left(n_{c}+\alpha\right)} \tag{5} ϕ(c)=nclog(nc+α)∑i=1nc∣zi−tc∣2(5)
ϕ ( c ) \phi(c) ϕ(c)是用来衡量类别 c c c内实例与类别中心点之间的平均距离的度量。具体来说, ϕ ( c ) \phi(c) ϕ(c)的计算方式是将类别内每个实例与类别中心点的欧氏距离求和,然后除以类别中实例数量 n c n_c nc和一个对数项,以此来表示平均距离。在公式中, t c t_c tc代表类别 c c c的中心点, z i z_i zi代表类别 c c c的实例, α \alpha α是一个超参数用于调节公式的缩放,确保 ϕ ( c ) \phi(c) ϕ(c)不会过大。
通过计算 ϕ ( c ) \phi(c) ϕ(c),我们可以了解类别 c c c内实例与类别中心点的平均距离,从而衡量类别内实例的聚集程度。如果 ϕ ( c ) \phi(c) ϕ(c)较小,则表示类别内实例更加紧密地聚集在一起;而如果 ϕ ( c ) \phi(c) ϕ(c)较大,则表示类别内实例分布较散,距离类别中心点较远。
ϕ ( c ) \phi(c) ϕ(c)的值被用来计算类别 c c c的温度 τ 2 ( c ) \tau_{2}(c) τ2(c),以便根据类别内实例的聚集程度调整温度值,从而影响特征的分布,使得类别内实例的特征形成比子类别更松散的聚类。因此, ϕ ( c ) \phi(c) ϕ(c)在这里起到了指导调整温度值以控制特征分布的作用。
其中, t c t_{c} tc是类别 c c c的中心点(centroid), α \alpha α是一个超参数,用于确保 ϕ ( c ) \phi(c) ϕ(c)不会过大,而 z i z_{i} zi对应于属于类别 c c c的实例。从这个公式可以看出,如果当前到类别中心的平均距离较大,或者类别包含的数据较少,那么温度将会被设置为较大的值,以便在训练过程中采用类别 c c c的特征分布。接着,我们定义类别 c c c的温度为:
τ 2 ( c ) = τ 1 ⋅ exp ( ϕ ( c ) 1 C ∑ i = 1 C ϕ ( i ) ) (6) \tau_{2}(c)=\tau_{1} \cdot \exp \left(\frac{\phi(c)}{\frac{1}{C} \sum_{i=1}^{C} \phi(i)}\right) \tag{6} τ2(c)=τ1⋅exp(C1∑i=1Cϕ(i)ϕ(c))(6)
这样, τ 2 ( c ) \tau_{2}(c) τ2(c)对于类别标签始终大于 τ 1 \tau_{1} τ1对于簇标签(因为 ϕ ( c ) > 0 \phi(c)>0 ϕ(c)>0),并且能反映类别中实例集中程度的当前水平。具体来说,提出的 τ 2 ( c ) \tau_{2}(c) τ2(c)鼓励类别 c c c中实例的特征形成比子类别更松散的聚类(通过 τ 2 ( c ) > τ 1 \tau_{2}(c)>\tau_{1} τ2(c)>τ1),同时自适应地调整温度以避免过度松散或过度密集的聚类。