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

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


一、引言

联邦学习是最近两年比较热门的技术,结合隐语项目的开源,我们团队最近主要做联邦学习的研究和落地,将在「隐语小剧场」陆续分享出我们对联邦学习技术的思考、解决实际应问题的方法等内容,如:“联邦学习之通信优化” “联邦学习之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月前
|
算法 数据挖掘 调度
隐语实训营-第3讲:详解隐私计算框架的架构和技术要点
主要介绍隐语的隐私计算架构,并对每个模块进行拆解、分析,以期望不同使用者找到适合自己的模块,快速入手。
121 4
|
3月前
|
存储 人工智能 搜索推荐
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题一
本文详细介绍了第十一届泰迪杯数据挖掘挑战赛C题的解决方案,包括爬取泰迪内推平台的招聘与求职信息、构建企业和求职者画像、开发岗位匹配度与求职者满意度模型以及设计招聘求职双向推荐模型的步骤和Python代码实现。
59 2
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题一
|
3月前
|
机器学习/深度学习 搜索推荐 数据可视化
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题二
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛C题的解决方案,重点讲解了如何构建招聘与求职双向推荐系统的建模过程和Python代码实现,并对招聘信息和求职者信息进行了详细分析和画像构建。
79 1
|
6月前
【软件设计师—基础精讲笔记11】第十一章 标准化和软件知识产权
【软件设计师—基础精讲笔记11】第十一章 标准化和软件知识产权
49 0
|
6月前
|
机器学习/深度学习 算法 安全
2024.3.20隐语训练营第3讲笔记:详解隐私计算框架及技术要点
隐语架构是一个分层设计,支持不同技术路线,确保高内聚、低耦合,增强开放性。它包括产品层(如SecretPad和SecretNote)、算法层(如PSI和PIR协议)、计算层(RayFed和SPU)、资源层(KUSCIA)和互联互通及跨域管控机制。该架构旨在提供高性能、易用的隐私计算解决方案,支持MPC、TEE、SCQL等,并允许不同背景的研究人员参与。
196 0
|
6月前
|
机器学习/深度学习 人工智能 安全
安全多方计算之五:零知识证明(从入门到入土。。)
安全多方计算之五:零知识证明(从入门到入土。。)
|
存储 机器学习/深度学习 算法
一文概述联邦持续学习最新研究进展(3)
一文概述联邦持续学习最新研究进展
502 0
一文概述联邦持续学习最新研究进展(3)
|
机器学习/深度学习 算法 数据安全/隐私保护
「隐语小课」联邦学习之基本方法
「隐语小课」联邦学习之基本方法
110 0
|
机器学习/深度学习 数据采集 算法
「隐语小课」联邦学习之Non-IID问题
「隐语小课」联邦学习之Non-IID问题
356 0
|
机器学习/深度学习 算法 安全
「隐语小课」联邦学习之通信优化
「隐语小课」联邦学习之通信优化
365 0
下一篇
无影云桌面