联邦学习论文阅读:Addressing Class Imbalance in Federated Learning


论文简介

  • 论文名称:Addressing Class Imbalance in Federated Learning
  • 作者:Lixu Wang, 美国西北大学
  • 论文链接:https://arxiv.org/abs/2008.06217
  • 论文来源:AAAI 2021

阅读收获

这篇论文收获有二:

  • 从技术层面,这篇论文实际上想解决的任务是FL里长尾数据的问题。对待长尾数据,其实有一个很好想的思路(连我都能想到!),那就是增加尾部类的权重。但是自己想不到如何增加权重,在哪里增加权重。这篇论文提供了一个很好的思路,那就是在损失函数上下功夫,给尾部类乘上一个系数,使得尾部类在更新参数时能提供更大的梯度。当然从论文前面的文献综述里可以看到改进损失函数的idea已然多到成为一种流派了hhh
  • 从阅读经验从面,自己读论文的方法还是不对!!自己老想着通篇从上到下读下来,遇到一个公式就必须读懂所有符号的含义,否则就心不安。结果废了好大的劲好不容易把论文啃下来了,发现想读懂论文的思路根本不需要从头读到尾,只需要读一下摘要,理论推导的开头和结尾,看看实验分析和结论就能搞懂个七七八八了。

论文贡献

  • 设计了一种监测方案来监测FL训练中类别不平衡的情况。
  • 设计了一种新的损失函数Ratio Loss,一旦有类别不平衡的情况发生,就将新的损失函数套到少数类上,来减少类别不平衡的影响。
    后期补充:其实他这里的损失函数就是加大了少数类在梯度更新时的权重

类别不平衡情况的监测方案

类别不平衡有2种情况:

  • local imbalance
  • global imbalance

对于每一个客户端$j$,其每一个类别$p$所含有的样本数量记为$N^j_p$。而后定义局部不平衡度$\gamma_j$定义为$j$上多数类的样本数与$j$上少数类的样本数之比,即$\gamma_j = \max_p{N^j_p} / \min_p{N^j_p}$。实际情况存在$\min_p{N^j_p}=0$的可能性,定义这种不平衡为极端不平衡,作者后面考虑了这种情况。

与这篇论文提出的不平衡度很相像: Buda, M.; Maki, A.; and Mazurowski, M. A. 2018. A systematic study of the class imbalance problem in convolutional neural networks. Neural Networks 106: 249–259.

定义$\Gamma$为所有设备上的多数类的总样本数与少数类的总样本数之比,即$\Gamma = \max_p{ \sum_j N^j_p} / \min_p{ \sum_j N^j_p}$。

由于实际情况中local imbalance和global imbalance之间的差异可能会很大,可能会出现类似于“某些设备上的多数类在全局是少数类”的情况,因此作者又引入了余弦相似度(cosine similarity, CS)来表示两者之间的相似性。

作者首先证明了第一个定理,简单来说就是,对于同一类的两个不同样本的特征,如果他们的特征流到最后一层时,他们的参数是相同的,则这两个样本的特征在最后一层和前一层的链接权值的梯度也是相同的。如此一来,在小批量训练中,同一类的数据所产生的梯度也很相似。因此可以设置一个过滤器(Filter),当模型的权值更新的过大时,产生类别不均衡预警。具体操作是:
给输出层的每个神经元都计算一个比率$Ra_{p,i}$,比率为该神经元权重的梯度变化与其他所有神经元的权重梯度变化之比。

而从客户端层面,需要向服务器提供所有类别的全部样本数,即$\sum^Q_{p=1} N^j_p$。


个人疑问

也就是说需要客户端提供样本的数量咯?这个也算隐私吧?作者认为这是用户隐私和系统性能之间的有效权衡,就是说“样本数量”这一隐私能为模型带来很好的效果,因此牺牲一定的隐私是值得的?
这里作者还强调说自己只要样本的总量,比那些需要每个类别的具体样本数的方法要好的多!好像也是...


而后可以通过文章里推导出的公式:




计算所有客户端中每个类的预期样本数$\hat{N_{p,i}}$,所有的类预期总样本数取平均值,就得到了当前轮数每个类数量的预估所占比例的向量$v_{pt}$,以此来监测是否有类别不平衡的情况出现。

使用Ratio Loss降低不平衡比例

提出的Ratio Loss如下:
$$L_{RL} = (\alpha + \beta \Rho) \cdot p \cdotL_{CE}$$
其中$Ra_{p,i}$指的就是前面每个神经元的梯度变化比率。
如此一来,对于少数类,他的$Ra$就会比较大,因此他对全局损失的贡献就会变大。

实验验证




通过实验可以发现,少数类在通过监测器监测出并通过新的损失函数进行优化后,少数类的精度又明显的提升,且不影响FL中多数类的性能(因为没有对多数类的损失函数没有变化)。

声明:奋斗小刘|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 联邦学习论文阅读:Addressing Class Imbalance in Federated Learning


Make Everyday Count