[ICML'22] Federated Learning with Label Distribution Skew via Logits Calibration

假设已知当前用来训练的样本集合对于样本全集有偏差(且全集所有样本接近均匀分布),可以用当前样本标签数量之间的相对大小,来调整模型logits(softmax前的layer输出)的大小,从而使得模型学习不在少数类标签中过拟合,以及对于缺失标签有更好的泛化能力。

背景:联邦学习中,不同客户拥有不同的数据子集(可能有overlap),而最终目标是使用一个统一的模型来在样本全集上拥有相对更好的效果。

问题:不同用户的数据子集分布是有差异的,差异体现在两方面:特征分布差异与标签分布差异,本文主要聚焦于标签分布的差异。

公式描述:

其中 $Cal$ 表示校准后的交叉熵损失函数,$y$ 是样本 $x$ 的真实标签, $f(x)$ 表示logits分布。右侧是一个非常类似交叉熵损失函数的式子,唯一不同的是,对于真实标签 $y$ 的logits值 $f_y(x)$ ,将其logits减去了一个基于该标签数量 $n_y$ 的正则项 $\tau n_y^{-1/4}$ ,其中 $\tau$ 是一个超参数,用来控制平滑程度。

简单理解这个公式起到的作用:如果某个标签 $y$ 是少数类,即该标签的样本数量很少,那么对应的 $\tau n_y^{-1/4}$ 就会比较大,该标签的logits值会被减去一个相对更大的数目,而其它非真实标签的logits会被减去一个相对较小的值,使得 $\log$ 函数内的分式总值变大,最终计算出来的损失值 $\mathcal{L}_{Cal}$ 会比校正前更小。

从结果上来讲,只要一个类是少数类,它的样本所计算出来的损失值会被变相地缩小,具体的缩小幅度是由超参数 $\tau$ 控制的, $\tau$ 越大表示越不重视少数类的权重。

可以想象,如果不在意自己样本子集内的少数类,那么在子集少数类上的过拟合就会减小。联邦学习到最后统一的模型中,各自模型都聚焦于自己样本较多、训练较为充分的那部分,最终的效果就会更好。

实验:

  • 2种标签偏离情况:quantity-based, distribution-based (后者更接近真实的分布),以及两者的组合
  • 数据集-真实:SVHN, CIFAR-10, CIFAR-100, ImageNet,
  • 数据集-模拟:人工合成的数据集, FEMNIST

本文的优点:和原文几乎等量的附录,用于证明文中提出的公式的有效性。


多想一步,这个函数能不能使用在更加普适的场景里,比如标签不平衡的数据集?

直觉上应该是不行的,因为这里的设定是,原分布标签是均匀或接近均匀的,而样本子集的标签是有偏的,为了使得样本子集不在少数类上过拟合,从而降低了少数类的权重;而目前在数据(标签)分布不均匀的问题上,都是采用采样或者调整loss的方式让少数类的权重更高(使模型更focus在少数类问题的分类准确度上),所以解决问题的初衷是不一致的。

那广义来讲,这个损失函数能用在什么场景里呢?

假设我们已知标签的分布是基本均匀的,但因为某些原因我们的训练数据里的标签不均匀,此时可以用这个方式来调整训练数据的标签权重。

1
TODO:阅读附录,确认loss所造成的影响和理解的是否一致