「隐语小课」联邦学习之基本方法

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 「隐语小课」联邦学习之基本方法


一、引言

联邦学习是最近两年比较热门的技术,结合隐语项目的开源,我们团队最近主要做联邦学习的研究和落地,将在「隐语小剧场」陆续分享出我们对联邦学习技术的思考、解决实际应问题的方法等内容,如:“联邦学习之通信优化” “联邦学习之Non-IID问题”“隐私保护图神经网络”敬请期待!本篇主要介绍联邦学习之基本方法。

二、基本方法

自Google于2016年提出了联邦学习的概念【1】,最初的联邦学习指水平联邦学习,即client的数据为水平切分数据(特征空间相同,样本空间不同),如图1所示;此外还有垂直联邦学习,即client的数据为垂直切分数据(样本空间相同,特征空间不同),与水平联邦学习的方法就较大差异【2】。一般来说,如无特殊说明,联邦学习(例如FedAVG)均指水平联邦学习。

 1水平联邦学习和垂直联邦学习

2.1 原理

联邦机器学习的数据分布在各个client中。以非凸神经网络模型为例,假设模型为w,损失函数为f,样本总量为n,在中心化模型中,求解模型参数即为:

相应的,在联邦学习中,假设共有k个client,每个client的数据集为Pk,基于client之间数据分布为独立同分布(IID)的假设可得【3】:EPk[Fk(w)]=f(w),即:

因此:

进而可得:


综上可得,联邦学习中,对分布式数据进行训练而得到的聚合模型等价于对聚合数据进行训练所得到的中心化模型。


2.2 FedAVG算法

2联邦学习算法示意图

FedAVG是联邦学习中最基本的算法之一【1】,clients在服务器server的协助下进行训练,所有的clients和server具有相同的模型结构,如图2所示。如Algorithm1所示,假设联邦训练中共有K个clients,B为client本地训练的batchsize,C为参与联邦聚合时clients的比例,E为两次联邦聚合之间client本地训练的次数,具体过程如下:

(1)在训练开始前server首先进行模型初始化得到初始模型,client将本地数据按照batch_size=B进行数据划分。

(2)联邦训练开始之后,(2)在第t+1次联邦训练迭代过程中,clientk从server获取最新的模型参数,利用划分好的数据集和SGD优化器训练E个epoch,得到更新后的本地模型

(3)Clientk将更新后的模型权重上传至server,server对K个clients采样C*K个,得到采样集合,并对中的client模型权重进行加权平均得到server模型:

4)重复上述步骤(2)和(3),直到完成相应的迭代次数。

三、分析和讨论

3.1 FedSGD VS FedAVG

在Google的论文中还介绍了一种FedAVG的特殊形式——FedSGD。在FedSGD算法中,client将本地的训练集整体作为一个batch进行训练,且client每进行一次模型更新就将模型上传至服务器进行一次模型聚合。综上所述,当C=E=1,B=∞时的FedAVG算法即为FedSGD。

3.2 模型聚合VS梯度聚合

在原始的FedAVG算法中,client与server之间传输的为模型参数,如果传输模型梯度,也可以得到相似的效果。clientk本地训练得到模型梯度(SGDoptimizer),并上传至server端进行加权聚合得到整体梯度:

更新server端模型

下传至各个client端。

对于FedSGD来说,模型聚合与梯度聚合的结果完全相同;对于FedAVG来说,C、E有一个不为1时,模型聚合与梯度聚合的结果会有一定的差别,具体分析如下:

假设client上传间隔ΔT=C∗E,对于FedAVG_Weight模型(模型聚合),在T+ΔT迭代中,server端更新后的模型为

公式1:

对于FedAVG_Gradient模型(梯度聚合),在T+ΔT迭代中,server端更新后的模型:

公式2:

比较公式(1)和(2)可得:

3.3 隐私泄漏

在client上传模型参数或者梯度时,直接上传明文的方式会造成数据隐私泄漏,server可以根据明文的模型参数或者梯度对原始数据进行攻击【4】。对此可以采用同态加密、秘密分享、差分隐私、TEE等方法对明文数据进行加密,从而实现一定程度上的数据安全聚合,具体方法「隐语的小剧场」公众号将在后续陆续发布相关文章,敬请关注!


四、Reference

【1】KonečnýJ, McMahan H B, Yu F X, et al. Federated learning: Strategies forimproving communication efficiency[J]. arXiv preprintarXiv:1610.05492, 2016.
【2】YangQ, Liu Y, Chen T, et al. Federated machine learning: Concept andapplications[J]. ACM Transactions on Intelligent Systems andTechnology (TIST), 2019, 10(2): 1-19.
【3】ZhaoY, Li M, Lai L, et al. Federated learning with non-iid data[J]. arXivpreprint arXiv:1806.00582, 2018.
【4】KairouzP, McMahan H B, Avent B, et al. Advances and open problems infederated learning[J]. arXiv preprint arXiv:1912.04977, 2019.


相关文章
|
6月前
|
存储 安全 数据处理
【需求:GDPR合规下做地域定向】解决方案:仅用IP离线库输出国家码,不存原始IP?
在GDPR合规要求下,技术部通过IP离线库实现“仅输出国家码、不存原始IP”的地域定向方案。该方案确保IP仅作瞬时输入,本地解析后不留存,符合数据最小化原则。相比在线API,离线库避免第三方数据共享,边界清晰,合规可解释性强,且性能稳定,适合高并发场景。结合严格日志管控与工程实践,此方案在保障业务需求的同时,有效降低合规风险,为海外业务提供安全可控的基础支持。
|
7月前
|
SQL 存储 人工智能
3.1 数据库设计
本文介绍基于三范式与DDD的数据库设计流程,结合AI工具辅助分析页面原型,通过部门、员工及工作经历模块演示表结构设计与优化,强调人工校验与调整的重要性,并完成MySQL建表与数据初始化。
|
机器学习/深度学习 数据库 索引
Transformer 学习笔记 | Encoder
本文记录了学习Transformer模型过程中对Encoder部分的理解,包括多头自注意力机制(Multi-Head Self-Attention)和前馈网络(Feed-Forward Network)的工作原理。每个Encoder Layer包含残差连接(Residual Connection)和层归一化(Layer Normalization),以缓解梯度消失问题并稳定训练过程。文中详细解释了Q、K、V的含义及缩放点积注意力机制(Scaled Dot-Product Attention),并通过图解展示了各组件的工作流程。欢迎指正。
|
程序员 API 开发者
实战阿里qwen2.5-coder 32B,如何配置Cline的Ollama API接口。
阿里Qwen2.5大模型开源免费,适合编程应用。在Ollama平台下载时,推荐选择带有“cline”字样的Qwen2.5-Coder版本,仅需额外下载适配文件,无需重复下载模型文件。Ollama环境永久免费,配置简单,效果出色,适合开发者使用。
6148 77
|
机器学习/深度学习 边缘计算 安全
Federated Learning
联邦学习(FL)是分布式机器学习框架,允许多方在数据本地化前提下协同构建全局模型,通过迭代聚合各客户端的本地更新,解决数据孤岛问题。它在医疗、物联网等隐私敏感领域有重要应用价值。然而,去中心化架构使其面临安全挑战,如后门攻击,恶意参与者上传含特定后门模式的参数,导致模型对触发样本产生异常响应,威胁系统可靠性和安全性。
|
SQL NoSQL Unix
MongoDB聚合操作总结
这篇文章总结了MongoDB中聚合操作的作用、方法、常见聚合表达式以及聚合管道的概念和常用操作符,以及SQL与MongoDB聚合操作的对应关系。
1327 2
MongoDB聚合操作总结
|
并行计算 PyTorch 算法框架/工具
【Pytorch】查看GPU是否可用
本文提供了使用PyTorch检查GPU是否可用的方法,包括查看PyTorch版本、编译时使用的CUDA版本以及当前CUDA是否可用于PyTorch。
3434 2
|
机器学习/深度学习 存储 监控
利用机器学习技术优化数据中心能效
【7月更文挑战第36天】在数据中心管理和运营中,能源效率已成为关键性能指标之一。随着能源成本的不断上升以及环境保护意识的增强,开发智能化、自动化的解决方案以降低能耗和提高能源利用率变得尤为重要。本文探讨了如何应用机器学习技术对数据中心的能源消耗进行建模、预测和优化,提出了一个基于机器学习的框架来动态调整资源分配和工作负载管理,以达到节能的目的。通过实验验证,该框架能够有效减少数据中心的能耗,同时保持服务质量。
|
机器学习/深度学习 算法 PyTorch
使用Pytorch实现对比学习SimCLR 进行自监督预训练
SimCLR(Simple Framework for Contrastive Learning of Representations)是一种学习图像表示的自监督技术。 与传统的监督学习方法不同,SimCLR 不依赖标记数据来学习有用的表示。 它利用对比学习框架来学习一组有用的特征,这些特征可以从未标记的图像中捕获高级语义信息。
1915 1