目录
联邦学习的定义
联邦学习是利用分散在各参与方的数据集,通过隐私保护技术融合多方数据信息,协同构建全局模型的一种分布式训练方式。
在Federated Learning中概述的、关于联邦学习描述的一些共同特征,可以概括为:
- 有两个(或以上)的联邦学习参与方协作构建一个共享的机器学习模型。 每一个参与方都拥有若干各自希望能够用来训练模型的训练数据。
- 在联邦学习模型训练过程中,每一个参与方拥有的数据都不会离开该参与方,即数据不离开数据拥有者。
- 与模型相关的信息(如模型参数、模型结构、参数梯度等)能够以加密方式在各方之间传输和交换,并且需要任何一个参与方在接收到这些信息时都不能推测出其本地的原始数据。
- 联邦学习模型的性能要能够充分逼近理想模型(理想模型是指通过将所有训练数据集中在一起并训练获得的机器学习模型)的性能。
- 联邦学习模型的构建不影响客户端设备的正常使用,即客户端在本地训练的过程中,应能够保证该设备其他进程的正常运行(如控制CPU占用率、内存使用率等)。
下面给出联邦学习的定义。设当前有N位数据拥有者共同参与训练,记为,他们各自拥有的数据集分为。传统的训练方法是将所有参与方的数据收集起来,存储在中心服务器中,并在该服务器上使用集中后的数据集训练一个机器学习模型。这种训练范式也被称为集中式训练(又称为中心化训练)。联邦学习是不需要收集各数据方所拥有的数据便能协作地训练一个模型的机器学习过程。
设和分别为集中型模型和联邦学习模型的性能度量(与具体业务类型有关)。下面定义狭义状态下的联邦学习性能损失概念。
定义1 狭义联邦学习性能损失 设为任意一个非负实数,我们认为,在满足以下条件时,联邦学习模型具有性能损失:
但联邦学习的模型性能不一定比集中式模型性能差。例如,如果数据分布极度不平衡,当前有多个参与方进行联邦训练,其中部分客户端的数据质量都非常差(比如这些客户端的数据采集设备出现硬件故障导致数据质量不佳),这种由于客户端硬件设备故障导致的数据问题,在现实场景中是比较常见的问题。那么,如果采用集中式训练的方法,我们就会需要将这些参与方的数据都上传到中心数据库进行训练,而由于存在低质量的训练数据,将全部数据融合后进行集中训练的效果可能会非常糟糕。因此,对定义1进行扩展,可得到如下的广义联邦学习性能损失的定义。
定义2 广义联邦学习性能损失 设为任意一个非负实数,我们认为,在满足以下条件时,联邦学习模型具有性能损失:
定义2和定义1的区别在于是否需要绝对值,其导致的差异见下图。
在实际的落地应用中,性能的损失容忍度的值以及性能度量指标需要根据业务类型设置不同的值。
联邦学习的设计模式带来了许多益处:
- 它不需要各参与方直接进行数据交换,将模型的训练计算交给了边缘设备,从而最大化地保障了用户的隐私和数据安全。
- 在通常情况下,全局模型的效果比基于本地数据训练的本地模型效果更好。
联邦学习的分类
按照数据样本空间以及特征空间的关系
按照数据样本空间以及特征空间的关系,联邦学习可以分为三类:横向联邦学习,纵向联邦学习和联邦迁移学习。
如下图所示,横向联邦学习是用与联邦学习参与方的数据有重叠的数据特征的情况,即数据特征在参与方之间是对齐的,但是参与方拥有的数据样本是不同的。
纵向联邦学习适用于参与方之间的数据样本是对齐的,但是它们在数据特征上有所不同。
联邦迁移学习适用于参与方的数据样本和数据特征都很少重叠的情况。联邦迁移学习特别适合处理异构数据的联邦问题。例如,一家公司有丰富的图片信息。另一家公司有文字等自然语言信息,图片和问题属于不同的特性维度空间。利用联邦学习,可以在数据不出本地的前提下,提升模型的性能效果。
根据协调方式
此外,根据协调方式的不同,我们可以将它分为集中式拓扑架构和对等网络拓扑架构。
- 集中式拓扑。存在一个中心计算方,该中心计算方承担收集其他各方传递的模型参数信息并经过相应算法更新后返回各方的任务。它的优势在于易于设计和实现。
- 对等网络拓扑。不存在中心计算节点,由于不用考虑中心计算方是否泄露隐私,所以更安全。但设计难度较大,必须平等对待各参与方并且能够对于所有参与方有效更新模型并提升性能。
本读书笔记系列针对2021年5月出版的《联邦学习实战》(见下图),后续部分将逐步更新
Enable Ginger Cannot connect to Ginger Check your internet connectionor reload the browserDisable in this text fieldRephraseRephrase current sentence Log in to edit with Ginger×