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

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


一、引言

联邦学习是最近两年比较热门的技术,结合隐语项目的开源,我们团队最近主要做联邦学习的研究和落地,将在「隐语小剧场」陆续分享出我们对联邦学习技术的思考、解决实际应问题的方法等内容,如:“联邦学习之通信优化” “联邦学习之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.


相关文章
|
5月前
|
机器学习/深度学习 人工智能 算法
【专家系统】系统地掌握专家系统的基本概念、技术原理、实现方法以及应用实践。
专家系统是一种人工智能程序,它利用专家知识和推理能力来解决特定领域中的复杂问题,系统地掌握专家系统的基本概念、技术原理、实现方法以及应用实践。
466 1
|
5月前
|
机器学习/深度学习 数据采集 算法
Scikit-learn:打破机器学习神秘面纱,带你一路狂飙入门与进阶!
【8月更文挑战第5天】Scikit-learn 是 Python 中广泛使用的机器学习库,提供丰富的工具和算法,助力解决实际问题。对初学者友好,从简单的线性回归开始,到复杂的分类任务如逻辑回归和支持向量机,再到数据预处理如标准化和归一化,逐步展现其强大功能。通过实践,用户可以熟练掌握并应用于房价预测、图像识别等多种场景,创造高价值成果。
59 0
|
6月前
|
运维 安全 数据安全/隐私保护
隐语(SecretFlow)联邦学习实训营第一期笔记
**摘要:** 本文探讨了数据可信流通的概念,强调了数据来源确认、使用范围界定、流程追溯和风险防范的重要性。数据流通分为内循环(安全域内)和外循环(跨域),其中外循环面临黑客攻击、内部泄露和数据滥用等风险。为建立技术信任,提出了身份验证、利益对齐、能力预期和行为审计四点要求,涉及隐私计算、可信计算等技术。隐语作为隐私计算框架,提供服务以支持数据安全流通,通过开源降低接入门槛,并具备统一架构、原生应用、开放拓展、高性能和多轮安全验证等优势。开源隐语助力解决数据权属和信任问题,促进数据要素的安全流通。
|
8月前
|
数据安全/隐私保护
课5-隐私求交和隐语PSI介绍及开发实践
Alice和Bob分别创建了CSV文件`alice_psi_input.csv`和`bob_psi_input.csv`,包含姓名和年龄数据。他们使用SecretFlow库执行隐私保护集合求交(PSI)协议,版本v1和v2,通过ECDH_PSI_2PC或PROTOCOL_ECDH协议,不泄露原始数据。在PSI过程中,双方找出共享的姓名,结果发送给Alice。
|
8月前
|
机器学习/深度学习 算法 安全
2024.3.20隐语训练营第3讲笔记:详解隐私计算框架及技术要点
隐语架构是一个分层设计,支持不同技术路线,确保高内聚、低耦合,增强开放性。它包括产品层(如SecretPad和SecretNote)、算法层(如PSI和PIR协议)、计算层(RayFed和SPU)、资源层(KUSCIA)和互联互通及跨域管控机制。该架构旨在提供高性能、易用的隐私计算解决方案,支持MPC、TEE、SCQL等,并允许不同背景的研究人员参与。
212 0
|
机器学习/深度学习 人工智能 安全
隐语小课丨「论文研究」隐私保护纵向联邦图神经网络
隐语小课丨「论文研究」隐私保护纵向联邦图神经网络
231 0
|
8月前
|
机器学习/深度学习 人工智能 安全
安全多方计算之五:零知识证明(从入门到入土。。)
安全多方计算之五:零知识证明(从入门到入土。。)
|
机器学习/深度学习 算法 数据安全/隐私保护
「隐语小课」联邦学习之基本方法
「隐语小课」联邦学习之基本方法
287 0
|
机器学习/深度学习 数据采集 算法
「隐语小课」联邦学习之Non-IID问题
「隐语小课」联邦学习之Non-IID问题
386 0
|
机器学习/深度学习 算法 安全
「隐语小课」联邦学习之通信优化
「隐语小课」联邦学习之通信优化
389 0