论文简介
- 论文名称:FedCor: Correlation-Based Active Client Selection Strategy for Heterogeneous Federated Learning
- 作者:Minxue Tang, 杜克大学
- 论文链接:https://arxiv.org/abs/2103.13822
- 论文来源:CVPR2022
论文贡献
这篇论文旨在针对为降低联邦学习的communication cost, 减少联邦学习的训练轮数,提高模型的收敛速度,对联邦学习的客户端选择策略进行改进。
论文动机
作者首先指出,在联邦学习的训练过程中,客户端的贡献有两大特点:
- 每个客户端的贡献并不相同。如果客户端具有优质数据,类别分类均衡,则能显著降低模型的损失;反之,若模型含有脏数据,且类别不均衡,则可能反而会提高模型的损失。
- 客户端对模型的贡献并不是独立的。因为所有客户端都会在服务器上聚合,所以客户端之间是存在相关性的。
这里作者还进行了一个小实验:为了通过多个客户端联邦学习训练一个简单的二分类器,有如下三种客户端选择策略:
- 独立的选择2个在本地损失最高的客户端(蓝色三角);
- 使得全局损失降的最低的客户端(绿色圆圈);
- 充分考虑客户端之间的相关性,选择两个关联起来能降低最多损失的客户端(黄色方块);
从图中可以看到,黄色分类器的分类效果是最好的。

因此,考虑客户端之间的关联性是非常有必要的。
相关工作
针对数据异构问题,改进FedAvg
[8,10,18,20,26],这些论文都是通过改进局部训练损失,添加正则化项来稳定训练结果。
[24,32],通过修改聚合方法来减少方差。
针对收敛速度问题,改进FL客户端选择策略
在客户端的选择策略上做文章,以提高模型的收敛速度,这一idea也基本上成为了一种流派。论文的综述里也有提到一些这一流派的文章:
[6],根据客户端局部损失的大小来选择客户端,局部损失大的客户被选择的概率就大;
[4],通过某种策略来选出客户端集合的一个子集,然后在子集里选择损失最大的客户端。
以上论文都没有考虑客户端之间的相关性。
优化前的先验论证
在贝叶斯优化中,通常需要假设高斯过程先验于未知函数。
这里作者做了一个实验:对1000个客户端随机进行抽样后,每组客户端的损失是服从高斯分布的。

客户端选择策略
算法伪代码:

每次迭代选择客户端的流程如下:
- 对于每个客户端计算若选择该客户端能给模型带来的损失变化
- 计算损失变化的后验均值
然后每次迭代选择出能使损失变化总体损失减少最多的客户端。
相关性选择策略
- 在1次迭代选择1个客户端的时候,会选择与其他客户有大量关联的客户。
- 在1次迭代选择多个客户端的时候,会选择相互之间相关性小的客户,以此来避免选择出冗余的数据。
实验验证
假设每个数据集都是有100个客户端,并且模拟了3种异构数据分区:
- 每个客户端2个碎片 2SPC
模拟了论文[23]中的non-IID数据。把数据集分成200个碎片,每个客户端2个碎片。数据分区是均衡的,每个客户端都具有相同的数据集大小。 - 每个客户端1个碎片 1SPC
把数据集分成100个碎片,每个客户端1个碎片。比2SPC的数据异构性还要强。他的数据分区也是平衡的。 - $\alpha=0.2$的狄利克雷分布
该情况的数据分区是不均衡的。
实验结果
关于模型收敛速度的实验:

从图中可以看到,FedCor能获得更快的收敛速度,大大降低Communication cost。
关于退火系数$\beta$的影响:
作者引入了退火系数$\beta$来控制客户选择的集中程度。

$\beta$比较大的时候,客户端被选择的频率差距很悬殊或者说方差非常大。而随着$\beta$减小,客户端被选择的评率也会集中一些,方差会减小。作者认为这是他的框架FedCor不仅考虑了单个Client对模型的影响,还考虑了Client之间的相关性,以选择最佳的客户端组。
关于客户端相关性的可视化展示
作者为了展示模型学习到的客户端之间的相关性,展示了1SPC情况(即每个客户端只有一种类别的样本)下所有客户端的嵌入。

可以看到相同标签的客户端的嵌入都聚在了一起,表明,FedCor的确学习到了客户端之间的相关性。
论文总结
作者在论文中一直强调“based on the intuition”,所以作者的这个idea是不是真的是凭直觉想出来的,觉得客户端之间的相关性是可以探索的。。。
优点:实验证明了这个框架在客户端数据高度异构的情况下,是可以有效加速训练,节省Communication cost的。而且根据对比,他所节省的训练轮数还不少。
缺点:
- 第一个问题,FL在数据异构的情况下是有可能不收敛的,这个模型有没有可能使Random采样客户端不收敛的情况变成收敛,又有没有可能使本来能收敛的时候变得没法收敛?
- 第二个问题,他论文里提到了另外两个研究“优化客户端采样方案以加快模型收敛速度”的论文[4,6],但他只是说“其他人没有考虑到客户端之间的相关性”,但他在实验部分只是拿自己的方法跟Random采样这一baseline进行了对比,却并没有跟其他人提的方案作对比。是因为没有统一的benchmark吗?
Comments | NOTHING