联邦学习论文研究(基于卷积神经网络的联邦学习算法研究)


  • 联邦学习综述

三大研究方向:联邦优化算法、通信开销和隐私保护。

联邦优化算法:非独立同分布且不平衡的隐私性数据,数据集分布在不同的客户端上且不可以直接获取,客户端本身特征导致数据非独立同分布性。客户数量的分布,在联邦优化算法中可能需要面对成千上百的客户端参与。

通信效率:在实际的场景应用中,客户端往往会受到通信带宽以及能量资源等的限制。这种场景中,联邦学习算法设计应该考虑到在有效的带宽资源下实现更加高效的数据传输。

隐私保护:无论在任何联邦学习的算法中,隐私保护往往是最核心的要求。在整个联邦学习算法过程中要在有效联合学习的前提下,保证用户数据不会被泄露。(机器学习系列--差分隐私 - 知乎 (zhihu.com)

 

联邦学习分类:

1. 按样本特征维度分类:

 一般情况下都是默认数据是按样本的维度进行划分的,也就是一个客户端持有一部分样本,另一个客户端持有另一部分样本。在特征维度,这两部分样本特征的属性应该是相同的,这种类型可以叫做横向联邦学习。另一类在特征维度进行划分,这种情况下,同一个样本的一部分特征可能存在一个客户端上,而另一部分的特征可能存在其他的客户端上,该样本在多个客户端上的特征集合能更加全面的表征这个样本,这种类型也被叫做纵向联邦学习

2. 按学习场景分类:

联邦学习的一个分类依据是联邦学习场景中相关要素,可以将联邦学习分为两类:跨设备 (cross-device) 联邦学习,跨孤岛 (cross-silo) 联邦学习

在跨孤岛 (cross-silo) 联邦学习中,模型是训练在一种多数据孤岛的场景下,每个客户端就是一个数据孤岛,其可以一个独立的组织或者数据中心。跨设备 (cross-device) 联邦学习类似于跨孤岛 (cross-silo) 联邦学习,这里设备一般指手机或者物联网设备,因此客户端是数量是非常巨大的。

在分布式学习和跨孤岛 (cross-silo) 联邦学习中所有的客户端都是一直有效的。在跨设备 (cross-device) 联邦学习中每个时间节点只有小部分客户端是有效的,剩余客户端会由于某种原因则处于离线的状态,比如手机设备关机。

在分布式和跨孤岛 (cross-silo) 联邦学习中客户端在整个连接的过程中是相对可靠的,而在跨设备 (cross-device) 联邦学习中客户端是高度不可靠的,在通信过程中客户端会以一定的概率失败或者掉线。

结果应用目的的不同,可以将联邦学习分为全局联邦学习和个性化联邦学习。一种为联合全局模型学习,该模型为每个客户端提供相同的服务,常见的应用场景为多个银行联合各自私有的用户数据联合学习用户风控模型。另一种为联合个性化模型学习,对每个客户端都会学习一个对应的个性化模型,实现个性化的服务,一种常见的应用场景为手机设备上根据用户习惯的推荐等算法。

 

 联邦学习训练过程:

 

 

 联邦模型压缩算法:

当联邦学习中使用更加复杂模型或者接入客户端过多之后就会导致联邦学习的性能变差,为了解决这个问题引入联邦模型压缩算法。

表征压缩:表征压缩结果是原始数据的无偏估计,不同的是存储压缩之后的参数会需要更加少的比特数,从而实现了参数压缩的目的。

表征压缩算法的基本流程为:首先优化算法需要更新所有的参数,然后再对参数进行压缩。假设模型的原始参数是 w,表征压缩之后的参数为 ˆw。无偏估计意味着表征压缩参数的期望等于原始参数。在表征压缩算法中,一般有稀疏掩码和概率量化两种方法。

一般而言,只有少部分特征对模型有贡献,大部分特征对模型没有贡献或者贡献很小,稀疏参数的引入,使得一些特征对应的参数是0,所以就可以剔除可以将那些没有用的特征,从而实现特征选择,提高模型的泛化能力,降低过拟合的可能。

在稀疏掩码中可以假设每次更新的参数是稀疏的,这样每个客户端上只需要更新部分参数,在通信过程中由于更新参数是原始参数的一个子集,故传输参数的数量也会减少,从而达到减少通信开销的目的。在实现中,在客户端上每次会基于一个随机种子生成一个稀疏掩码,该稀疏掩码服从伯努利分布,概率参数为p。该稀疏掩码的维度和模型参数的维度是相同的,只有稀疏掩码为 1 的部分参数才会被客户端发送到服务器端。

概率量化的方法是通过减少每个模型参数存储比特数来实现的。当然概率量化的方法也是属于表征压缩的方法,所以其也需要首先完成参数的更新的计算,然后对所有更新的参数进行压缩,每个参数的量化是相互独立的。

结构压缩:对于结构压缩的方法,算法会将压缩的步骤和整个优化的过程结合起来,也就是在模型优化的过程中已经实现了参数压缩的目的。

在结构压缩中,在参数优化的过程中会结合压缩的步骤和参数更新的步骤,优化的过程中和传统的算法并没有区别,优化器只需要通过最小化损失函数更新参数即可。一般而言网络轻量化设计就是一种结构压缩的方法。

 

  • 基于子类个性化的联邦学习算法

在客户端,融合了原学习算法MAML(一文入门元学习(Meta-Learning)(附代码) - 知乎 (zhihu.com)),对初始化模型进行学习;

元学习:在机器学习中,训练单位是一条数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集。在元学习中,训练单位分层级了,第一层训练单位是任务,也就是说,元学习中要准备许多任务来进行学习,第二层训练单位才是每个任务对应的数据。

在服务器端,针对需向客户端下发多个个性化模型的情况,基于模型学习中的梯度相似性,建立客户端之间的相关性;

 

个性化联邦数据集:

假设原始的数据集为 D,该数据集上含有的类别的数目为 k,对于每个类别所含有的数据记作 Dk。对于客户端,假设参与个性化联邦学习的客户端数量为 N。对于每个客户端,其拥有的实际类别数量为 kc, 2 ≤ kc≤ k。假设非独立同分布的数据类型为数据偏移类型,即每个客户端上特征数据 P(X) 分布不同,但是条件概率的分布 P(Y|X) 是相同的。

首先将原始数据集D的每个类别根据客户端的数量划分为相等数量的数据集,例如将D1划分为四个部分,然后根据客户端数据集是否为独立同分布,进行不同策略的采样。如果是独立同分布,就首先确定每个客户端共同服从的分布,具体而言是从K个类别中选取Kc个类别作为总体分布,再从每个类别当中随机抽取一个划分好的数据(上图中 Dk的小方块)。如果是非独立同分布的,则在非独立同分布采样中每个客户端都会独立采样 K 个类别,作为该客户端服从的数据类别的分布。然后再从每个类别对应的数据划分中选取一个小的划分,任意两个客户端都不会被分配到同一个划分。

 

个性化联邦学习算法:

在独立同分布下的联邦平均算法的梯度相似性接近于1,而在非独立同分布下的联邦平均算法的梯度相似性在不同客户端下的差异较大。

不同位置网络层上相似性均值变化。在非独立同分布中,对于底层特征,其相关性的均值会较高层的特征高一些。这个现象表明,也许在神经网络中不同层和本身任务的相关性是不一致的,底层更加关注于一些共同的特征,高层更加关注于一些任务相关特征。

基于上述两点,实现个性化联邦学习算法可以从一下几点考虑:

下发模型的时候能否具有更好的个性化属性,即相比于联邦学习算法能否更快更好的收敛到每个客户端特定的任务上。

由于每个客户端上的数据及任务的差异,每个客户端应该有更加个性化的融合策略,而不是平均聚合的方式。对于卷积神经网络来说,其权重参数对于个性化的贡献是不相等的。不同层或许可以有不同的融合策略。

个性化应当同时关注客户端和服务器。

 

MAML算法与联邦学习算法:

 

在联邦学习的客户端更新中采用MAML的内层更新就可以实现基于MAML联邦平均算法

 

子类个性化联邦学习算法:

引入了一个相关性的关系矩阵 R,用于建模不同客户端之间的关系。R(i, j) 表示客户端 i 和客户端 j 之间的相关性。相关性矩阵其应该具有这样一种属性:如果两个客户端上的数据分布相似的时候,相关性的值是比较高的,相反相关性是比较低的。通过在聚合各个客户端上下发模型参数的时候加入相关性的信息,这样对于每个客户端其接收的下发模型参数都是和其本身的特征是紧密相关的,不同的客户端接收的是可能完全不相同的模型参数,这样就解决了个性化的问题。

 

加入相关性参数直观的解释,对于一个客户端,在那些具有和自己有着相似分布的客户端具有更高的相关性系数,在模型聚合的时候也能够更大程度的利用相似客户端提供的信息。另一方面,在那些不同分布的客户端上就会更低的相关性系数,对于自身更新参数而言,会引入更加少的负增益,这样就做到了更好的个性化。

由于梯度本身对于方向性是极其敏感的,当相似性处于负值的时候,和原始的梯度相乘就会导致梯度的反向。这里基于 softmax 对于 sim 矩阵进行归一化,最终客户端的相似性关系计算如下

 由于相关性矩阵是基于梯度计算得到的,随着训练的不断进行每个客户端上参数发生变化,基于梯度计算的相关性也可能会发生变化。因此对相关性矩阵,在训练的过程中需要定时进行更新,定义定时更新的周期为 Γ。每次更新的时候,会将所有的客户端的参数做一次平均聚合,基于该共同的参数,计算相关性矩阵。算法以每次聚合的点来看,还是类似于联邦平均算法,但是每次聚合中间的训练轮次,每个客户端都是根据其相关性矩阵得到个性化模型。

 

 

 

 

 

 实验结果:

 

 

 当数据集为 N.I.I.D.情况下,SPFL 的结果是最好的,而且比起其他的方法具有比较明显的优势,证明了本文提出的个性化算法的有效性。

  • 基于参数量化和参数分解的联邦学习通信压缩算法(待补充)

梯度压缩:减少客户端和服务器之间通信开销

模型压缩:减小客户端上模型的大小

计算压缩:模型在客户端上的训练更加高效

 

一种基于量化分解的模型参数压缩算法:

基于自然压缩算子的参数压缩法:

 

 

 

 

 

 

 自适应偏移量化算子的参数压缩算法:

定义量化损失的方差为 E[|Cnat(t) − t|2]。可以发现当 a 为整数时有最小的量化方差 0,这个时候是没有精度损失的。当处于中间区间时候,量化误差的值会从小变大然后从大变小。中间的区域总是有着比较大的量化误差。

直接对原始的输入 t 进行量化,对于每个参数会引入一个偏移因子 s,对 t/s 进行量化,令 α = log(|t/s|)。这里我们引入了一个偏移因子的集合 S, s ∈ S。在这个集合中包括一些特定的偏移因子,假设这个偏移因子集合中包含的偏移因子的数量为 |S|,那么对于每个偏移因子只需要 log(|S|)长度 bit 的编码。只要保证原始自然压缩编码的长度和偏移因子的长度小于 32 比特的长度,仍然能达到参数压缩的目的。

通过合适的偏移 s,可以将本来处于中间的区间偏移到处于端点的区间,达到降低压缩分布的方差目的。当被量化的点刚好处于中间点的时候,原始量化的情况下是有着比较大的量化误差,通过引入偏移值就可以将量化误差变为 0。当需要从量化后的变量中恢复原始数据的时候,除了需要量化后的值,还需要加入偏移值 s 的相关信息。对于长度为 |S| 的划分区间,对于步长的编码需要的码位长度为 log(|S|)。在使用上述算法的时候,初始的客户端和服务器上根据预先的实验设计提前计算好每个偏移对应的 s 值。在服务器和客户端通信的过程中只需要传输最佳的 s 值对应的编码。

基于参数分解的参数压缩方法:

卷积层与全连接层参数分解:相比于原始的深度可分离卷积,将卷积核也在空间维度上进行了分解。相当于融合了空间可分离卷积(空间可分离卷积简单地将卷积核划分为两个较小的卷积核。)和深度可分离卷积。

深度可分离卷积 - 知乎 (zhihu.com)

重建误差最小策略的优化算法:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM