(一)联邦学习概述
作者:互联网
一、联邦学习定义
联邦学习是利用分散在各个参与协作方的数据集,通过隐私保护技术融合多方数据信息,协同构建全局模型的一种分布式训练方式。模型的相关信息(模型参数,结构,参数梯度等)能够在各参与方之间(可以明文、加密、
添加噪声等)交换,但是本地训练数据集不会移动。即数据不动模型动,数据可用不可见。
设当前有N位数据拥有者参与训练,记为\({\{F_i\}}_{i=1}^{N}\),各自拥有的训练数据集记为\({\{D_i\}}_{i=1}^{N}\)。
- 集中式训练vs联邦学习
集中式训练是将所有参与方的数据收集起来,存储在中心服务器上,然后训练一个机器学习模型\(M_{SUM}\),这个过程中各个参与方数据相互可见,且所有数据的控制权都交给了服务器。联邦学习则不收集各参与方的数据集,协作训练一个模型\(M_{FED}\)。 - 狭义/广义联邦学习性能损失
设\(V_{SUM}\)和\(V_{FED}\)分别是集中式模型\(M_{SUM}\)和联邦模型\(M_{FED}\)的性能度量。
设\(\delta\)为任意非负实数。
狭义联邦学习性能损失:|\(V_{SUM}-V_{FED}\)|<\(\delta\)
广义联邦学习性能损失:\(V_{SUM}-V_{FED}\)<\(\delta\)
两种损失可视化图如下:
狭义联邦学习损失是让联邦模型的性能尽可能逼近集中式模型,这很容易理解,一般认为联邦学习模型的性能要弱于集中式模型。但是广义的联邦学习损失中联邦学习模型的性能可以显著超过集中式模型,这里的一个典型案例是如果某个参与协作方的数据集质量很差(客户端硬件设备故障导致),则集中式训练也会用到这些低质量数据,从而影响性能。而联邦学习系统在开始训练时会先把一个检测出异常的客户端剔除,然后在剩余的客户端设备上进行联邦训练。
二、联邦学习的分类
- 横向联邦学习(HFL)
横向联邦也被称为是样本划分的联邦学习,适用于各参与方数据特征重叠的情况,即数据特征在参与方之间是对齐的。比如两家不同地区的银行,虽然客户不同,但是每个客户对应的特征是相同的。 - 纵向联邦学习(VFL)
纵向联邦也被称为特征划分的联邦学习,适用于各参与方数据样本重叠的情况,即参与方之间的数据样本是对齐的,但是特征不一样。比如一家银行和一家电商公司,他们的客户可能是同一群人,但是同一个客户在银行和在电商对应的特征显然不同。 - 联邦迁移学习(FTL)
适用于各参与方的数据样本和数据特征都很少重叠的情况。以两个参与方为例,其中一方代表源域,另一方代表目标域,在源域中学习特征的分布,将源域的特征信息迁移到目标域中,迁移过程中不移动本地数据。联邦学习特别适用于异构数据(比如图像和文字)的联邦学习问题。
三、联邦学习架构
- 集中式拓扑架构
设计一个中心计算方,用于收集各方模型参数信息并经过相应算法更新后返回各方的任务。需要考虑中心计算方泄露隐私或受到攻击的问题。 - 对等网络拓扑架构
不存在中心计算节点,各参与方在联邦学习框架中地位平等。
四、联邦学习算法现状
- 横向联邦学习,常用于跨设备端的场景。
- 纵向联邦学习,常用于跨机构的场景。
- 联邦迁移学习,在保护数据隐私的前提下,强调即使在异构特征分布的多方场景下,也能协同并提升模型性能。
标签:参与方,模型,学习,集中式,概述,联邦,数据 来源: https://www.cnblogs.com/chkplusplus/p/15972950.html