【联邦学习(Federated Learning)】- 横向联邦学习与联邦平均FedAvg

横向联邦学习允许数据集有相同特征但不同样本的机构合作训练模型,常采用客户-服务器或对等网络架构。联邦平均算法是用于在分布式环境中合并模型更新的方法,关注通信效率和数据隐私保护。对等网络架构中,模型参数在参与者间安全交换,通过循环或随机传输策略更新。联邦学习旨在减少通信开销,如通过压缩模型参数和优化参与方选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

横向联邦学习的定义

横向联邦学习也称为按样本划分的联邦学习,可以应用于联邦学习的各个参与方的数据集有相同的特征空间和不同的样本空间的场景,类似于在表格视图中对数据进行水平划分的情况。
在这里插入图片描述

例如,两个地区的城市商业银行可能在各自的地区拥有非常不同的客户群体,所以他们的客户交集非常小,他们的数据集有不同的样本ID。然而,他们的业务模型非常相似,因此他们的数据集的特征空间是相同的。这两家银行可以联合起来进行横向联邦学习以构建更好的风控模型。

横向联邦学习架构

客户-服务器架构

具有K个参与方(客户端)在服务器的帮助下,协作地训练一个机器学习模型。
横向联邦学习系统的训练过程通常由如下四步组成:

  1. 各参与方在本地计算模型梯度,并使用同态加密、差分隐私或秘密共享等加密技术,对梯度信息进行掩饰,并将掩饰后的结果(加密梯度)发送给聚合服务器。
  2. 服务器进行安全聚合操作,如使用基于同态加密的加权平均。
  3. 服务器将聚合后的结果发送给各参与方。
  4. 各参与方对收到的梯度进行解密,并使用解密后的梯度结果更新各自的模型参数。

在这里插入图片描述
然后迭代执行上述步骤,直到损失函数收敛或者达到允许的迭代次数的上限或允许的训练时间。这种架构独立于特定的机器学习算法,并且所有参与方将会共享最终的模型参数。

对等网络架构

在这种架构中,横向联邦学习系统的K个参与方也被称为训练方(trainer)或分布式训练方。每一个训练方负责只使用。此外,训练方们使用安全链路在相互之间传输模型参数信息。为了保证任意两方之间的通信安全,需要使用例如基于公共密钥的加密方法等安全措施。
在这里插入图片描述

由于对等网络架构中不存在中央服务器,训练方们必须提前商定发送和接收模型参数信息的顺序,主要有两种方法可以达到这个目的:

  1. 循环传输:训练方们被组织成一条链。第一个训练方(即链首)将当前的模型参数发送给它的下一个训练方。该训练方接收来自上游的模型参数后,将使用来自本地数据集的小批量数据更新收到的模型参数。之后,它将更新后的模型参数传输给下一个训练方。这一过程将被持续重复,直到模型参数收敛或达到允许的最大训练时间。
  2. 随机传输: 随机传输模式中 ,第k个训练方从 {1 ,···,L}中选取i,并将模型参数发送给训练方i。当第i个训练方收到来自第k个训练方的模型参数后,它将使用来自本地数据集的数据的mini-batch更新收到的模型参数。之后,第i个训练方也从{1,···,L}中等概率地随机选取一个数字j,并将自己的模型参数发送给训练方j。这一过程将会重复,直到K个训练方同意模型参数收敛或达到允许的最大训练时间。

联邦平均算法

联邦平均算法(Federal Average Algorithm)是一种用于计算加权平均值的算法,的基本思想将数据点按照某个权重进行加权平均,从而得到一个加权平均值。
在这里插入图片描述

H. B. McMahan, E. Moore, D. Ramage, S. Hampson, and B. A. Y. Arcas, “Communication-efficient learning of deep networks from decentralized data,” in Proc. AISTATS, 2016, pp. 1273–1282.

在原文中对联邦平均算法的描述如下:
在这里插入图片描述

  1. 假定在多轮通信中的一个同步更新方案,有一组K个客户端组成的固定集合,每个客户端都有一个固定的本地数据。

  2. 在每一轮开始,随机的一小部分比例 的客户端被选定,并且服务端把当前全局算法状态(当前的模型参数)发送给被选中的每一个客户端。【为了提高效率我们只选中一小部分客户端,因为我们的实验表明超过某一点继续增加客户端的数量回报就会持续衰减。】

  3. 基于全局模型参数以及本地数据集,每一个被选中的客户端开始执行本地计算,并再把更新发送到服务端。

  4. 而后服务端再把收到的这批更新应用给全局参数,然后就是不断重复执行这个过程。

这里给出它的伪代码描述:

# local_w 表示每个客户端训练得到的权重列表
weights_avg = local_w[0]
for k in weights_avg.keys():
    for i in range(1, len(local_w)):
        # weights_avg[k] += local_w[i][k] * weight
        weights_avg[k] = weights_avg[k] + local_w[i][k]
    weights_avg[k] = weights_avg[k] / len(local_w)
global_weights = weights_avg
model.load_state_dict(global_weights)

在联邦平均算法的实现中,在每一个全局模型训练轮次中,每一个参与方都需要给服务器发送完整的模型参数更新。由于现代的DNN模型通常有数百万个参数,给协调方发送如此多的数值将会导致巨大的通信开销,并且这样的通信开销会随着参与方数量和迭代轮次的增加而增加。当存在大量参与方时,从参与方上传模型参数至协调方将成为联邦学习的瓶颈。可以从以下两个方面对联邦平均算法进行改进:

  • 压缩的模型参数更新:参与方正常计算模型更新,之后进行本地压缩。压缩的模型参数更新通常是真正更新的无偏估计值。(提出了一种执行模型参数压缩的三层流水线。首先,通过去除冗余来删除DNN内的某些连接,只保留最重要的连接部分。其次,量化权重,从而使得多个连接共享同一个权重值,只保留有效权重。最后,使用哈夫曼编码以利用有效权重的偏倚分布。)
  • 参与方选择:第一步是资源检查,即向随机筛选出来的参与方发送资源查询消息,询问它们的本地资源以及与训练任务相关的数据规模。第二步是协调方使用这些信息估计每一个参与方计算本地模型更新所需的时间,以及上传更新所需的时间。之后,协调方将基于这些估计决定选择哪一个参与方。在给定一个全局迭代轮次所需的具体时间预算的情况下,协调方希望选择尽可能多的参与方。
<think>好的,用户想了解联邦学习的概念、实现方法、框架以及应用场景。首先,我需要先回忆一下联邦学习的基本定义,确保概念准确。联邦学习的核心是在不共享数据的情况下协同训练模型,这样可以保护隐私。根据用户提供的引用[3],联邦学习结合了分布式机器学习、密码学等技术,解决数据分散的问题。 接下来,实现方法部分需要涵盖横向、纵向联邦学习以及迁移联邦学习。横向适用于特征重叠多但样本重叠少的情况,比如不同地区的用户数据。纵向则是样本重叠多而特征少,比如同一地区不同机构的合作。迁移联邦学习可能应用在两者都少的情况,可能需要迁移学习的技术。这部分需要结合引用[3]和[4]提到的数据隐私问题,说明为什么需要这些方法。 然后是框架部分,用户提到了FATE,这是工业级的开源框架,支持同态加密和多方计算。此外,还有TensorFlow Federated、PySyft等,每个框架的特点需要简要说明,如TF Federated适合集成到现有TensorFlow项目,PySyft基于PyTorch。引用[2]提到不同框架的技术侧重点,这里需要强调用户根据需求选择。 应用场景方面,金融风控、医疗健康和智能推荐都是常见领域。金融领域可以跨机构建模,医疗保护患者隐私,推荐系统则在不收集用户数据的情况下优化模型。这些场景需要结合引用[3]中的例子,比如欧盟的隐私保护法规,说明联邦学习的必要性。 最后,生成相关问题需要考虑用户可能进一步想了解的内容,比如如何保证安全性,联邦学习传统方法的差异,实际部署中的挑战等。需要确保问题覆盖概念、技术细节和应用,帮助用户深入理解。 检查是否所有数学公式都正确使用了$...$和$$...$$格式,例如横向联邦学习的数学表达式是否正确。另外,引用标识要自然添加在相关段落末尾,确保符合格式要求。需要避免使用Markdown,保持回答的中文口语化,结构清晰,分步骤解释。</think>### 联邦学习的概念、实现方法框架 #### **一、联邦学习基本概念** 联邦学习Federated Learning)是一种分布式机器学习范式,其核心目标是**在保证数据隐私和安全的前提下,实现多方数据的协同建模**[^3]。通过将模型训练过程分散到本地数据节点,仅交换模型参数或中间结果(而非原始数据),解决了传统集中式机器学习中数据隐私泄露的问题[^4]。 #### **二、实现方法** 1. **横向联邦学习(Horizontal FL)** 适用于参方的数据特征重叠多、样本重叠少的场景。例如:不同地区的手机用户数据。 数学表达: 设参方为$k$个,本地模型参数为$w_i$,全局聚合公式为: $$ w_{global} = \frac{1}{k} \sum_{i=1}^{k} w_i $$ 此方法常用于图像分类、推荐系统等场景[^3]。 2. **纵向联邦学习(Vertical FL)** 适用于样本重叠多、特征重叠少的场景。例如:同一地区银行电商平台的用户数据联合建模。 核心技术:通过**加密对齐技术(如PSI)**实现样本ID匹配,结合同态加密进行梯度交换。 3. **迁移联邦学习(Transfer FL)** 针对特征和样本均重叠少的场景,利用迁移学习技术将知识迁移到目标领域。 #### **三、主流框架** | 框架名称 | 技术特点 | |----------------|--------------------------------------------------------------------------| | **FATE** | 支持同态加密、多方计算,提供LR/XGBoost/NN等联邦算法实现,工业级开源方案 | | **TF Federated** | 基于TensorFlow,适合联邦学习现有TF生态集成 | | **PySyft** | 基于PyTorch,支持安全多方计算和差分隐私 | #### **四、应用场景** 1. **金融风控** 银行间联合反欺诈建模,无需共享客户敏感交易数据[^4]。 2. **医疗健康** 医院协作训练疾病预测模型,保护患者隐私(如电子病历、影像数据)[^3]。 3. **智能推荐** 跨平台用户行为建模(如手机厂商APP开发商合作优化推荐算法)[^2]。 ---
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1 + 1=王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值