联邦学习Per_FedAvg复现第一部分——FedAvg与Per_FedAvg

2021/06/26

Per_FedAvg复现——FedAvg相关

参考文章
  1. 机器学习相关知识粗读:万字解析。
  2. 联邦学习相关知识粗读:论文粗读
  3. 联邦学习原始论文通道:原始论文
  4. FedAvg代码实现详解: 代码实现

 以上为主要使用的参考文章,其余就不一一赘述

联邦学习

特点:允许多个设备或计算节点在不共享原始数据的情况下进行模型训练。

原理:核心在于模型的训练是在本地设备上进行的,只有模型的更新参数被汇总到中央服务器进行聚合。

过程:本地训练——云端训练——迭代;直到训练过程收敛。

分类:横向联邦学习、纵向联邦学习、联邦迁移学习。

  • 横向:参与者的数据特征重叠较多,而样本ID重叠较少的情况。通过联合多个参与者的具有相同特征的多行样本进行联邦学习。
  • 纵向:参与者的训练样本是对齐的,但数据特征不完全相同的情况。通过联合多个参与者的共同样本的不同数据特征进行联邦学习。
  • 迁移:参与者间特征和样本重叠都很少时,可以使用联邦迁移学习。它利用数据、任务或模型之间的相似性,将在源领域学习过的模型应用于目标领域。

优势:数据隔离、模型质量无损、信息交换。

  • 数据隔离:数据不会泄露到外部,满足用户隐私保护和数据安全的需求。
  • 模型质量无损:联邦模型比割裂的独立模型效果好,不会出现负迁移。
  • 信息交换:参与各方在保持独立性的情况下,进行信息与模型参数的加密交换,并同时获得成长。

应用:在解决数据隐私、数据安全和法规遵从性问题方面展现出巨大潜力。

FedAvg

特点:是一种常用的联邦学习算法,它通过参与者之间的通信和模型聚合来实现全局模型的训练。

原理:FedAvg的基本原理是通过加权平均来聚合不同参与者的模型参数。

工作流程:

  1. 初始化全局模型:在训练开始之前,服务器会初始化一个全局模型。这个模型可以是任何类型的机器学习模型,如神经网络。
  2. 选择参与者:在每个训练轮次中,服务器从所有可用的参与者中随机选择一部分参与者。被选中的参与者将用于训练局部模型。
  3. 分发全局模型:服务器将当前的全局模型分发给所有被选中的参与者。
  4. 更新局部模型:每个参与者在自己的本地数据集上训练接收到的全局模型,并更新模型的参数。这个过程是独立的,每个参与者都使用自己的数据和计算资源。
  5. 聚合局部模型:所有参与者完成本地训练后,将更新后的模型参数发送回服务器。服务器对所有的局部模型参数进行加权平均,以计算新的全局模型参数。这个加权平均的过程考虑了不同参与者数据量的大小,通常通过数据量的比例来确定每个参与者的权重。
  6. 迭代:服务器将新的全局模型再次分发给参与者,并进入下一轮训练。这个过程不断重复,直到满足预设的停止条件,如达到预设的轮次或满足收敛条件。

优势:低通信开销、支持异质性数据、保护数据隐私、提高模型泛化能力。

  • 低通信开销:由于FedAvg只需要上传模型参数而不是原始数据,因此通信开销较低。

  • 支持异质性数据:由于不同的参与者可以使用不同的数据集进行训练,FedAvg能够处理异质性数据。

  • 保护数据隐私:FedAvg通过分布式训练的方式,避免了原始数据的集中存储和传输,从而保护了参与者的数据隐私。

  • 提高模型泛化能力:由于FedAvg利用所有参与者的本地数据进行训练,模型的多样性和泛化能力得到了提高。

Per_FedAvg

特点:是一种联邦元学习方法,旨在解决联邦学习中的个性化问题。

原理:首先,利用所有客户端的数据得到一个初始模型然后,各个客户端使用该初始模型在本地进行少数几轮(如一次)梯度下降,以得到适应于各自数据的个性化模型。

工作流程:

  1. 服务器初始化模型。
  2. 服务器选择一部分客户端发送模型。
  3. 被选中的客户端进行本地更新:
    • 首先选择一批数据计算损失函数的梯度。
    • 然后进行一步梯度下降得到元函数。
    • 再选择一批数据对元函数进行梯度下降得到更新后的元函数。
  4. 客户端将更新好的元函数上传到服务器进行聚合。
  5. 服务器将更新后的模型发往被选中的客户端
  6. 重复上述步骤1-5,直到满足条件。

优点:个性化、高效化、元学习

  • 个性化:Per_FedAvg通过让客户端在本地进行梯度下降来适应其数据,从而生成个性化的模型。
  • 高效性:与在本地从头开始训练模型相比,使用Per_FedAvg的初始模型进行少量迭代可以更快地收敛到较好的模型。
  • 元学习:Per_FedAvg借鉴了元学习的思想,即学会如何学习。它设计了一个新的优化函数,该函数是所有客户端元函数的平均,而元函数则是本地损失函数进行一步梯度下降后得到的。

缺点:计算成本、影响因素多。

  • 计算成本:在计算梯度时,Per_FedAvg需要计算参数的Hessian矩阵,这可能会带来较大的计算成本。因此,在实际应用中可能需要采用近似计算或其他优化方法。
  • 影响因素:Per_FedAvg的性能受到多种因素的影响,包括客户端数据的分布、本地更新的轮数、学习率等。因此,在实际应用中需要进行适当的参数调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值