RankSim: Ranking Similarity Regularization for Deep Imbalanced Regression
文章信息
题目:RankSim: Ranking Similarity Regularization for Deep Imbalanced Regression
发表:ICML,2022
作者:Y Gong, G Mori, F Tung
前言
这篇论文也是解决不平衡回归问题的,可以看作是follow ICML-2021-Delving into deep imbalanced regression这篇论文,实验部分采用的数据集,Baseline与提到的这篇类似。
动机
与分类中离散的标签符号不同,回归中目标值的连续、有序的特性实际上提供了额外的信息,有必要提出新的方法来利用这些信息。 顺着这个思路, 之前文章提出的Feature Distribution Smoothing (FDS)实际上相当于给模型施加了一种归纳偏置—目标值紧邻的样本的特征表示也应该尽可能相似。
作者认为这还不够(因为仅仅利用了紧邻样本的目标之间的序关系),因此作者提出了一种新的正则化器RankSim, 该正则化器可以保证特征空间完全保持目标值之间的序关系,换句话说,不仅紧邻样本,目标值相距较远样本之间的序关系也被利用起来。因此RankSim实际上施加了一种更强的归纳偏置。
RankSim作用的示意图如下:
方法
在介绍RankSim之前先来声明一些概念与定义。
假设
a
∈
R
n
a \in R^{n}
a∈Rn,
r
k
rk
rk表示排序函数,则
r
k
(
a
)
rk(a)
rk(a)中的第
i
i
i个元素定义如下:
RankSim
为了计算特征空间特征表示的序关系与对应的目标序列的序关系的一致性, 首先要获得样本集的特征表示向量,以及对应的目标向量,然后在各自应用 r k rk rk函数即可。
假设数据集
M
=
{
(
x
i
,
y
i
)
,
i
=
1
,
.
.
.
,
M
}
M=\{(x_{i}, y_{i}), i=1,...,M\}
M={(xi,yi),i=1,...,M}, 先来看特征表示的相似性计算。
记
S
z
∈
R
M
×
M
S^{z} \in R^{M \times M}
Sz∈RM×M为样本在特征空间的成对相似度矩阵, 假设样本
x
i
x_{i}
xi经过特征学习网络后的特征表示为
z
i
=
f
(
x
i
,
θ
)
z_{i}=f(x_{i}, \theta)
zi=f(xi,θ), 则
S
z
S^{z}
Sz的定义如下:
其中
σ
z
\sigma^{z}
σz为特征的相似度函数,可以是Cosine similarity。
接下来看目标的相似性计算。
其中
σ
y
\sigma^{y}
σy为目标相似度函数,可以是-MAE。
接下来,就可以定义RankSim了,其正式定义如下:
可以看到RankSim是逐样本进行计算的,对每个样本,分别计算其与其他样本的特征表示和目标之前的相似性,再通过
r
k
rk
rk进而得到特征序列相似性的rank和目标序列相似性的rank, 最后再通过函数
l
l
l来计算这二者之间的差异。
RankSim的优化
RankSim的定义很简单,但是其优化比较难,因为函数 r k rk rk是不可微的, 其Loss实际上是关于其输入的分段常数函数,并且其梯度几乎处处为0.
**如何优化该Loss项需要一些技巧。**作者首先将函数
r
k
rk
rk表示成了线性组合的最小化问题:
(很显然,序列a与其rank的内积最小, 实际上就是从[n]的所有置换中找到这样一个置换,使其与自身a的内积最小)
这允许我们利用一种优雅的方法,通过黑盒组合解算器进行有效的反向传播。为了从分段常数损失中获得信息梯度,有人隐式构造了一系列分段仿射连续插值函数,这些函数由单个超参数λ>0参数化,该超参数用原始函数的保真度来权衡梯度的信息性。在反向过程中,我们计算并返回连续插值的梯度,而不是返回真实梯度(几乎所有地方为零):
其中
a
λ
a_{\lambda}
aλ基于传入的梯度信息定义如下:
这样一来,
r
k
rk
rk的梯度计算问题解决了,可以通过反向传播来更新网络。
代码实现中的一些问题
由于 r k rk rk操作i本身不能通过反向传播进行优化,上面的优化方案获得的并不是真正的梯度, 因此在实现的时候与一般的实现方式不同。 这里需要 扩展torch.autograd来自定义 r k rk rk的求导方式。
虽然pytorch可以自动求导,但是有时候一些操作是不可导的,这时候你需要自定义求导方式。也就是所谓的 “Extending torch.autograd”。
下面是
r
k
rk
rk操作的官方实现,供参考:
思考
-
文章的主要目的是给特征层施加约束,使其保持对应目标之间的序关系, 这实际上是一种归纳偏置。所提出的RankSim的作用与FDS有些类似,感觉应该是向前推进了一步。实验中可以发现,RankSim的效果甚至与LDS+FDS的效果相当,这更加说明了学习合适特征的重要性。后续的研究应该主要关注特征层面的问题。
-
RankSim的优化是一个亮点, TankSim作为一个独立的损失项,可以与其他经典的损失函数进行结合,非常方便。
References
1.Gong, Yu & Mori, Greg & Tung, Frederick. (2022). RankSim: Ranking Similarity Regularization for Deep Imbalanced Regression. 10.48550/arXiv.2205.15236.;
2.Pytorch通过torch.autograd自定义操作,https://zhuanlan.zhihu.com/p/344802526