1.3.1 联邦学习的定义
既然要了解联邦学习,那么我们首先要了解联邦学习刚被提出时是如何定义的。联邦学习这个术语是由McMahan等人在2016年提出的[27]:“我们把我们的方法称为联邦学习,因为学习任务是由一个松散的联邦参与设备(我们称之为客户端)来解决的,而这个联邦设备是由一个中央服务器来协调的”。
谷歌和我国的微众银行都采用“Federated Learning”术语来描述这项技术,但是在国外不同的企业、不同的组织有不同的术语,比如UC Berkeley使用“Shared Learning”这一术语。到目前为止,国内外主要使用“Federated Learning”,国内一般翻译为“联邦学习”。本书统一使用“联邦学习”为读者介绍这项有巨大发展潜力的前沿技术。关于联邦学习的定义,在比较权威的论文中主要有三种。在文献[28]中,研究者基于服务器等设备对联邦学习进行更广泛的定义[28]。
定义1-1 联邦学习是一种机器学习设置,在中央服务器或服务提供商的协调下,多个实体(客户端)协作解决机器学习问题。每个客户的原始数据都存储在本地,不进行交换或传输;作为替代,通过特定的中间运算结果的传输和聚合来达到机器学习模型训练的目标。
基于模型训练方式,在文献[29]中,联邦学习的定义如下。
定义1-2 联邦学习是在异构、分布式网络中的隐私保护模型训练。
在国内,比较权威的联邦学习的定义来自微众银行发布的Federated Machine Learning:Concept and Applications。其基于联邦学习技术的实现方法对联邦学习的定义如下[30]。
定义1-3 令N个数据所有者为{F1,…,FN},他们都希望整合各自的数据{D1,…,DN}来训练出一个机器学习模型。传统的方法是把所有的数据放在一起并使用D=D1∪…∪DN来训练一个模型MSUM。联邦学习系统是一个学习过程,数据所有者共同训练一个模型MFED。在此过程中,任何数据所有者Fi都不会向其他人公开其数据Di。此外,MFED的精度表示为VFED,应该非常接近MSUM的精度VSUM。设δ为非负实数,如果|VFED-VSUM|<δ,那么我们可以说联邦学习算法具有δ-accuracy损失。
为了便于大多数读者理解联邦学习的概念,本书对联邦学习的定义如下。
定义1-4 联邦学习是一种具有隐私保护属性的分布式机器学习技术,其应用场景中包括N个参与方及其数据D1,…,DN,该技术通过不可逆的数据变换后,在各个参与方之间交换不包含隐私信息的中间运算结果,用于优化各个参与方相关的模型参数,最终产生联邦模型M,并将M应用于推理。