聚类联邦学习Clustered Federated Learning: Model-Agnostic Distributed Multitask Optimization

聚类联邦学习CFL

Clustered Federated Learning: Model-Agnostic Distributed Multitask Optimization Under Privacy Constraints
附录在arxiv版本上。本文仅仅是一个笔记,需要详细了解请一边打开论文一边仔细看。

Abstract

“does not require the number of clusters to be known a priori“

不需要事先指定聚类数量?

“As clustering is only performed after FL has converged to a stationary point, CFL can be viewed as a postprocessing method that will always achieve greater or equal performance than conventional FL by allowing clients to arrive at more specialized models.”

作为一种 后处理 ,让客户端准确度更高

Intro

简单介绍了FL

“assumption that it is possible for one single model to fit all client’s data generating distributions φi at the same time.”

指出了FL隐式指定一个模型适应全部客户端,而这往往不成立,比如年轻人和老年人的打字行为、人脸吸引力区别等

“Federated Multitask Learning”

给每个客户端一个适合自己数据分布的模型,单独的模型不合适

“Assumption 2 (CFL): There exists a partitioning C =c {1,…,cK }, ̇ K k=1ck ={1,…,M} of the client population, such that every subset of clients c ∈ C satisfies the conventional FL assumption.”

新假设:可以把客户端划分成K类,每一类内部满足联邦学习的假设

贡献:

  1. 指出传统FL的限制:不一致客户端数据分布
  2. 使用客户端梯度更新之间的余弦相似度判断类别
  3. 理清楚合适聚类,并设立了标准保证仅在不一致分布时聚类
  4. 实现了CFL算法
  5. 调查了一些实际中的问题(不同的客户端数量,隐私限制,传送权重变化而非梯度)并且展现CFL可以无缝融合这些限制和条件
  6. 在大规模深度网络上实验并证明方法的性能相比FL提升

“we call a bipartitioning correct if clients with the same data generating distribution end up in the same cluster. It is easy to see that the clustering C ={c1,…,ck} can be obtained after exactly K − 1 correct bipartitions.”

如果客户端都被分派到该分配的地方,那么就是正确的二分类;K-1次二分可以产生K个聚类

在节点二分类的情况下(同时假设类中客户端数据足够多能够代表这一个类上的真实分布情况),当FL到达不动点的时候,两个不同聚类之间的梯度应当有相反的余弦相似度(方向180度)
请添加图片描述请添加图片描述

如果不要求节点数据足够大,那么有定理1:FL总体目标的不动点处的某个类的梯度减去该节点的梯度,其2范数小于该类在不动点上的梯度。这个定理是很直观的,如果该客户端的梯度与该类的梯度之差已经大于该类的梯度,那么它就应该分到另一个类中去了
请添加图片描述

所以二分类的情况下可以给出两个不同类别客户端的相似度上限:
请添加图片描述
同时同类客户端之间的相似度下限就是min H ij

于是可以知道gamma、K和分类正确概率的相关图如下:

请添加图片描述

所以可以知道聚类内部的相似度一定大于跨类的余弦相似度;

我们用一个separation gap来表征客户端和数据分布对应起来时最大的类内相似度减去最大的类间相似度,可以知道这个gap越大,说明分得越开;如果这个值大于0,表明二分类正确。

上述均为最坏情况下的理论分析,实际中这会大很多,特别是参数的量相对较大的情况下。作者将网络dimension设置为100、梯度和梯度差值正态分布、客户端3000的情况下,正确的分类概率仍然接近于1

请添加图片描述

现实中如果分类不正确,显然会导致性能下降,因此仅在1)FL已经到达不动点,即全局损失函数小于某个数 2)单个客户端没到达不动点,即梯度范数大于某个值。这两个值是超参数,在之后会进行推荐;

实际中,由于在到达不动点之后才聚类,因此即使聚类导致效果下降,仍然可以回到FL的不动点,因此是有性能保证的

CFL通过自上而下的方式对客户端进行二分类。首先,在到达FL的不动点之后,我们对所有客户端的梯度进行评估,如果最大的梯度都已经小于某个指标,那么CFL就可以停止了,直接返回FL的结果(FL的结果已经够好了)

反之,我们开始细粒度地处理,说明各个客户端之间并不一致。之后服务器对每个客户端上传的更新计算 pairwise(每一对)的余弦相似度;下一步服务器把客户端二分划成两个类,类间相似度最小,类中相似度最大。这一步是CFL的核心,使用客户端数量的三次方时间完成,如下算法:

最优二分划:输入相似度矩阵(每个客户端对客户端),输出二分类;第一步把矩阵降序排列;第三步初始化把每个客户端都作为一个单独的类,作为初始起点;第四步进入循环:

第六行其实就是找到这个降序排列的一维数组,第i个对应哪两个客户端。除以M找第几行,模M找第几列。之后对于每个集合,如果这两个客户端有一个在该集合中,则把这个集合取出并合并,回到大集合中。最后如果只剩下两个集合,则得到了二分划。

8-13行的意思其实很简单:把含有i1和i2客户端的集合取出来合并在一起;

排序算法用log M3,之后循环有M2次,再之后每个循环内部还有一个小循环,这个小循环最多是M次,因此总体是M^3复杂度

请添加图片描述

Algo 2就是FL,没啥好说的

请添加图片描述

Algo 3就是CFL总过程了。首先FL得到不动点,之后计算逐对相似度,然后进行二分类。分类完之后,如果这一类里面满足继续的条件,那么在这一类里面继续训练和分类;否则直接使用FL的结果即可。
请添加图片描述

对新加入的客户端进行分类也很简单,顺着参数树(因为每次都会二分类,所以会产生一棵从最原始的模型开始的树)根据自己的更新相似度匹配下去即可。同时也可以用树的层数控制自己的泛化性能或者是越发细分。
请添加图片描述

实验

总算法如下。很长但不难。首先一直学习直到收敛(第4到11行),之后服务器就会开始分类了:对分出来的每个类,计算类中间的参数变化量的平均值。如果这个变化的分歧够小(说明类收敛)但是其中某个客户端的变化都大(说明这个客户端不合群),那么计算这个客户端和其他客户端的余弦相似度,根据相似度进行二分类。需要注意的是二分类结束后还要计算误差gamma,如果误差在允许范围内才会认为二分类正确。

整个算法首先到收敛,之后开始循环。一个类中的客户端总是要计算和其他客户端的相似度,所以是O(N2);之后要进行一个最佳二分类,所以一次要O(M3);总的复杂度估计在O(M^4)级别。虽然作者说代价很小,但是他们还是只用了20个客户端还有MNIST以及CIFAR10.

20个客户端属于4个类别。每个客户端有相同大小的随机数据子集。为了模拟不同意的聚类结构,每个客户端的数据都进行了一些“操作”:标签交换。比如第一类里面所有的标签1都和7进行交换,第二类中3和5进行交换,等等。这可以保证分布基本类似但是条件分布就有区别了。他们发现使用weight update相比gradient可以用更少的数据区分不同的聚类

“of around 500 data points is necessary to achieve correct bi-partitioning” (Sattler 等, 2021, p. 9)

但是对于CIFAR10这种比较困难的问题就需要500个点了。很难想象面对CIFAR100和image net这种任务需要多少个点(这可以改进)

好处是什么呢?好处是效果好。作者从三个方面进行了试验:

  1. 验证了CFL需要什么样的设置才会有比较好的效果;
  2. 验证了在分布一致和不一致的条件下更新的范数变化符合预期;一致的分布的更新范数会越更新越小,反之越大;
  3. 在CIFAR10上实验,发现这种方式确实能通过一次又一次地分类提高效果。在AgNews上实验,语料库按照文章类别分成四类(每个客户端只拥有一类文章),用LSTM预测下一个词,发现显然通过分类效果变得更好。perplexity是困惑度,用来判断语言模型的效果,越小越好。

附录里的证明

证明的主要思路:

  1. 引理2:从下界约束了两个对同一个向量的近似之间的余弦相似度 αmin_intra。
  2. 引理3:从上界约束了两个不同的向量的近似之间的余弦相似度。
  3. 引理4:说明所有向量之和为零的向量集可以分为两个组,使得不同组中的任何两个向量之间的余弦相似度可以从上界约束。

之后可以用引理3和4得到 α c r o s s m a x \alpha^{max}_{cross} αcrossmax的上界。

54、55定义了v是一类上的梯度,X是某个客户端的梯度减去那一类的梯度。自然而然地,v+X就是某个客户端的具体梯度。

56,57显然从图中可以看出来,最大的类中角肯定要比最小的类间角小(不然分不开),这样的话分类就不会出错。
请添加图片描述

58 lemma 2,说明任意两个客户端的具体梯度之间的相似度的下界。v+X和v+Y的余弦在0到pi之间是单调递减的,同时||X||<||v||,那么这个角度最大的时候可以得到下界。怎么才能最大呢?那就是X和Y还有v在同一个超平面上的时候,X和v+X垂直,y和v+Y垂直,并且X和Y方向相反。从图上可以比较清楚地看出来此时v+X和v+Y他们的夹角是最大的(不在超平面肯定会变小,在超平面不垂直也会变小)

请添加图片描述

60、61根据三角函数的性质,可以得到v和v+X以及v+Y的正弦角,其实我们要求的v+Y和v+X的角度就是前面这两个角相加,因此有62;之后用反正弦可以求这两个角,于是得到了下界63;之后用64定理就证明了lemma2

注意:公式64先把cos按照cos(α + β) = cosαcosβ - sinαsinβ展开成cos(sin-1(x) + sin-1(y)) = cos(sin-1(x))cos(sin-1(y)) - sin(sin-1(x))sin(sin-1(y))。由于sin(sin-1 x)=sin x,后面那部分就是-xy,前面那部分cos x = sqrt(1-sin^2 x)变换就可以得到。

65 lemma 3 任两个X和Y以及对应的v和w,当v和w的相似度小于某个上界66的时候,那么v+X和w+Y的夹角会有一个相关的上界67、68。证明的方法和前面的类似,只这四个向量在同一个超平面内部,X与Y分别和v+X还有w+Y垂直时,这个v+X和w+Y角度才会有最小值,从而让他们相似度最大。这个角度就是v和w之间的角度减去v和v+X还有w+Y和w之后的结果。其实在纸上画个图就能大概明白了,x和y是反方向180度,此时v+x和w+y就是平行的,夹角为0度,基本上就是和之前一样的套路。不过作者应该是有笔误,已经发邮件询问了,有结果更新。

81 lemma4 任两个类之间的角度至少是pi/(k-1)

怎么证明的呢?首先按照和标准向量之间的夹角把向量排列在圆环上。之后找到最大的相邻角度和第二大的相邻角度。图上最大的是v1和v2,第二大的是v6和v0,那么就纷争了两个类。这两个类之间最小的距离至少也是第二大的角的大小。

请添加图片描述

首先各向量加起来是0,这说明最大的角不能超过pi;那么第二大的角最极端情况就和其他所有角平分剩下的pi,而剩下的一共有k-1个角,所以第二大的角至少是pi/(k-1),那么也就说明这两组之间最小也是这么大的角距离。

93接下来考虑高维情况,构造投影矩阵,投影到两组间最小角所在的平面(93-96)。投影保持角度不变,因此可以化简为已经证明的二维情况(原文第95-96行)。这样在任意维度都可以得到角度的下界(原文第97行)。

最后就是很流畅地对应到原来的定理1啦~

总结

文章很好,行文清晰严谨,让人眼前一亮。数学证明严谨,简洁,巧妙。

当然这个工作也是有缺陷的。如下:

  1. 每一类都要维护一个模型(或者说一个分类的树),这个对于服务器有一定要求,算法复杂度有待降低;
  2. 对于比较复杂的任务需要很多的数据点,这一点需要改进,否则不一定能用在实际上。比如对于CIFAR10,20个客户端,4类,每个客户端就得有500个点才能保证分类正确。
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值