原文地址:https://zhanghan.xyz/posts/54575/
文章目录
第三章 联邦学习分类
前两章对联邦学习的定义并没有讨论如何具体地设计一种联邦学习的实施方案。在实际中,孤岛数据具有不同分布特点,根据这些特点,我们可以提出相对应的联邦学习方案。下面,我们将以孤岛数据的分布特点为依据对联邦学习进行分类。
考虑有多个数据拥有方,每个数据拥有方各自所持有的数据集 D_i可以用一个矩阵来表示。矩阵的每一行代表一个用户,每一列代表一种用户特征。同时,某些数据集可能还包含标签数据。如果要对用户行为建立预测模型,就必须要有标签数据。我们可以把用户特征叫做 X,把标签特征叫做 Y。比如,在金融领域,用户的信用是需要被预测的标签Y;在营销领域,标签是用户的购买愿望Y;在教育领域,则是学生掌握知识的程度等。用户特征 X 加标签Y构成了完整的训练数据**(X,Y)**。但是,在现实中,往往会遇到这样的情况∶各个数据集的用户不完全相同,或用户特征不完全相同。具体而言,以包含两个数据拥有方的联邦学习为例,数据分布可以分为以下三种情况∶
- 两个数据集的用户特征(X1,X2,…)重叠部分较大,而用户(U1,U2…)重叠部分较小;
- 两个数据集的用户(U1,U2…)重叠部分较大,而用户特征(X1,X2,.)重叠部分较小;
- 两个数据集的用户(U1,U2…)与用户特征重叠(X1,X2,…)部分都比较小。
为了应对以上三种数据分布情况,我们把联邦学习分为横向联邦学习、纵向联邦学习与联邦迁移学习。
3.1 横向联邦学习
在两个数据集的用户特征重叠较多而用户重叠较少的情况下,我们把数据集按照横向(即用户维度)切分,并取出双方用户特征相同而用户不完全相同的那部分数据进行训练。这种方法叫做横向联邦学习。比如有两家不同地区银行,它们的用户群体分别来自各自所在的地区,相互的交集很小。但是,它们的业务很相似,因此,记录的用户特征是相同的。此时,就可以使用横向联邦学习来构建联合模型。Google在2017年提出了一个针对安卓手机横型更新的数据联合建模方案;在单个用户使用安卓手机时,不断在本地更新模型参数并将参数上传到安卓云上,从而使特征维度相同的各数据拥有方建立联合模型的一种联邦学习方案。
3.2 纵向联邦学习
在两个数据集的用户重叠较多而用户特征重叠较少的情况下,我们把数据集按照纵向(即特征维度)切分,并取出双方用户相同而用户特征不完全相同的那部分数据进行训练。这种方法叫做纵向联邦学习。比如有两个不同机构,一家是某地的银行,另一家是同一个地方的电商。它们的用户群体很有可能包含该地的大部分居民,因此用户的交集较大。但是,由于银行记录的都是用户的收支行为与信用评级,而电商则保有用户的浏览与购买历史,因此它们的用户特征交集较小。纵向联邦学习就是将这些不同特征在加密的状态下加以聚合,以增强模型能力的联邦学习。目前,逻辑回归模型,树型结构模型和神经网络模型等众多机器学习模型已经逐渐被证实能够建立在这个联邦体系上
3.3 联邦迁移学习
在两个数据集的用户与用户特征重叠都较少的情况下,我们不对数据进行切分,而可以利用迁移学习来克服数据或标签不足的情况,这种方法叫作联邦迁移学习。
比如有两个不同机构,一家是位于中国的银行,另一家是位于美国的电商。由于受到地域限制,这两家机构的用户群体交集很小。同时,由于机构类型的不同,二者的数据特征也只有小部分重合。在这种情况下,要想进行有效的联邦学习,就必须引入迁移学习,来解决单边数据规模小和标签样本少的问题,从而提升模型的效果。
第四章 联邦学习框架
4.1 开源框架介绍
目前业界中主要的联邦学习框架有FATE,TensorFlow Federated,PaddleFL,Pysyft
等。
2019年2月,微众银行开源FATE开源项目,截止2019年12月发布FATEv1.2
版本,覆盖横向联邦学习,纵向联邦学习,联邦迁移学习,得到了社区内广泛的关注与应用。同时,FATE
提供20多个联邦学习算法组件,涵盖 LR,GBDT,DNN
等主流算法,覆盖常规商业应用场景建模需求。尤其值得注意的是,FATE
提供了一站式联邦模型服务解决方案,涵盖联邦特征工程,联邦机器学习模型训练,联邦模型评估,联邦在线推理,相比其他开源框架,在工业应用上有显著的优势。
OpenMinded
开源的Pysyft
框架,较好地支持横向联邦学习。该框架同时支持 Tensorflow,Keras,Pytorch,为使用人员快速上手提供了较多的选择。Pysyft
提供了安全加密算子,数值运算算子,及联邦学习算法,用户也可以高效搭建自己的联邦学习算法。相比较 FATE,OpenMinded 尚未提供高效的部署方案及 serving 端解决方案,相比工业应用,更适合作为高效的学术研究、原型开发的工具。
谷歌开源的TensorFlow Federated
框架,截止2019年12月已发布至0.11版本,较好地支持横向联邦学习。其中,可以通过 Federated Learning(FL)API
,与 Tensorflow/Keras
交互,完成分类、回归等任务。用户也可以通过其提供的Federated Core(FC)API
,通过在强类型函数编程环境中将 TensorFlow 与分布式通信运算符相结合,简洁地表达新的联合算法。目前 TensorFlow Federated 在安全加密算子上缺少开放实现,同时缺少对线上生产的完善支撑。
2019年11月,百度宣布开源其联邦学习框架PaddleFL
。PaddleFL开源框架中包含了DiffieHellman等安全算子,及 LR 等机器学习算法。由于其开源时间较短,算子丰富程度逊于上述三个框架。PaddleFL的优势在于通过与百度机器学习开源框架PaddlePaddle的交互,吸引相关生态开发者加入开发。
4.2 FATE——企业级框架
2019年2月,微众银行Al 团队对外发布自主研发的开源项目FATE(Federated Al Technology Enabler)
,作为全球首个联邦学习开源框架,FATE为联邦Al生态提供了一种安全计算框架。
FATE 提供了一种基于数据隐私保护的分布式安全计算框架,为机器学习、深度学习、迁移学习算法提供高性能的安全计算支持,支持同态加密、SecretShare、DiffieHellman 等多种多方安全计算协议。同时,FATE 提供了一套友好的跨域交互信息管理方案,解决了联邦学习信息安全审计难的问题。简单易用的开源工具平台能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的前提下,进行多方数据合作。
目前FATE已在信贷风控、客户权益定价、监管科技等领域推动应用落地。
FATE技术框架
FederatedML:
联邦学习算法功能组件,包括了许多常见机器学习算法联邦化实现。所有模块均采用模块化的解耦的方式进行开发,从而增强可扩展性。
主要功能∶:
- 联邦样本对齐∶纵向样本ID对齐,包括基于RSA+哈希等对齐方式:
- 联邦特征工程∶联邦采样,联邦特征分箱,联邦特征选择,联邦相关性,联邦统计等:
- 联邦机器学习∶联邦LogisticRegression,LinearRegression,PossionRegression,联邦SecureBoost,联邦
DNN,联邦迁移学习等 - 多方安全计算协议∶提供多种安全协议,包括同态加密,SecretShare,RSA,DiffieHellman等:
FATE-Flow:
联邦学习建模Pipeline调度和生命周期管理工具,为用户构建端到端的联邦学习pipeline生产服务。
主要功能∶:
- 联邦建模Pipeline DAG Parser:
- 联邦建模任务生命周期管理
- 联邦建模任务多方协同调度
- 联邦多方模型管理、模型版本管理
- 联邦建模过程数据、指标、模型等输入输出实时跟踪
FATE-Board:
联邦学习建模的可视化工具,为终端用户可视化和度量模型训练的全过程。支持对模型训练过程全流程的跟踪、统计和监控等,并为模型运行状态、模型输出、日志追踪等提供了丰富的可视化呈现,帮助用户简单而高效地深入探索模型与理解模型。
主要功能∶:
- 联邦建模任务生命周期过程可视化
- 联邦模型可视化
- 评估报告可视化
FATE-Serving:
高性能可扩展的联邦学习在线模型服务。
主要功能∶:
- 高性能在线联邦模型推理算法
- 在线联邦模型管理
- 联邦学习在线推理pipeline
KubeFATE:
通过把FATE的所有组件用容器的形式封装,实现了使用Docker Compose或Kubernetes(Helm Charts)来部署。现代应用以DevOps方式开发,基于容器部署应用的优势相当明显,应用不仅可以无差别地运行在支持容器的平台上,还可以按需灵活地实现多实例水平扩展。通过KubeFATE项目,开发者可以轻松地在公有云或私有云中部署FATE项目。
第五章 未来研究方向
5.1 安全性
联邦学习中,以下部分可能遭受到攻击∶
客户端∶对客户端设备具有管理员访问权限的人,可以通过控制客户端进行恶意攻击。被恶意操控的客户
端可以在它们参与的迭代中,检查从服务器接收到的所有消息(包括模型),并可以篡改训练过程。中立的客户端可以检查从服务器收到的所有消息,但不会篡改训练过程。
服务端∶被恶意操控的服务器可以在所有迭代中检查发送到服务器的所有消息(包括梯度更新),并可以篡改训练过程。中立的服务器可以检查发送到服务器的所有消息,但不会篡改培训过程。
同时,在模型输出以及部署的过程中,也可能遭受到恶意攻击。在这种情况下如何严格保证隐私,是一个极大的挑战。
从攻击手段上看,主要有模型更新攻击(model update poisoning
),数据攻击(data poisoning attack
)和逃逸攻击 (evasion attack
)。依据在生命周期中的位置,这些攻击也可大致分为训练时间攻击(模型更新攻击,
数据攻击)和推理时间攻击(逃逸攻击)。
模型更新攻击∶恶意攻击者可以直接控制一些客户端,并改变这些客户端的输出,从而使所学习的模型偏向于他们的目标。当恶意攻击者可以控制客户端产生任意输出时,这种攻击称为拜占庭攻击
。该攻击下,受控的客户端可以发送任意值,而不是将本地更新的模型发送到服务器。这可能导致收敛到次优模型,其至导致模型发散。相比拜占庭攻击式的无目标攻击,有目标模型攻击通常需要较低的成本。文献显示,在联邦学习中,当10%的设备被恶意者控制,即有可能通过攻击服务器的模型引入后门。在中心化机器学习中,通过控制训练过程的方法减少模型更新攻击的防护手段,在联邦学习中无法直接应用。
数据攻击∶区别于模型更新攻击,在数据攻击中,恶意攻击方不能直接更改中心节点的模型,但可以通过篡改客户端的数据,特征或者标签达到无目标攻击或者针对特定目标攻击的目的。与模型更新攻击相同,仅靠全局准确率或单客户端训练准确率等指标较难检测恶意的数据攻击的存在。
逃逸攻击∶在模型推理阶段,攻击者可以在不改变机器学习系统的情况下,通过构造特定输入样本以完成欺骗目标系统的攻击。通过增加噪声等方式,产生在人类看来与原始的测试输入几乎没有区别的输入,却可以欺骗经过训练的模型。在图像和音频领域,对抗样本通常是通过在测试样本中加入范数有界的扰动来构建的。对抗性训练(用对抗性样本训练一个健壮的模型)通常对白盒规避攻击具有一定的健壮性,然而对抗性训练通常只会提高对训练中包含的对抗性样本这种特定类型样本的健壮性,训练后的模型依然容易受到其他形式的对抗性噪声的影响。同时,通过对抗训练来减少逃逸攻击的方法,在联邦学习中可能存在以下问题∶对抗性训练主要是针对独立同分布数据开发的,而在非独立同分布环境中它的表现并不清楚;在无法在训练前检查训练数据的联邦学习中,较难设置适当的扰动范数界限。因此,在联合学习设置中可能需要新的鲁棒优化技术来解决逃逸攻击。
差分隐私等技术是减小攻击的一个主要技术。联邦学习系统中的许多挑战可以被看作是确保一定程度的健壮性∶不管是否是恶意的,干净的数据被破坏或以其他方式篡改。差分隐私(DP)从健壮性的角度定义了隐私。简而言之,通过在训练或测试时加入随机噪声,以减少特定数据点的影响。
除了恶意的攻击外,与传统的中心化机器学习相比,联邦学习也可能受到来自服务提供者控制之外的不可靠客户端的非恶意故障的影响。虽然非恶意的失败通常比恶意攻击的破坏性更小,但它们可能更常见,并且与恶意攻击具有共同的根源和复杂性。因此,未来在安全方面的研究,不仅包含防范恶意攻击,也包括减少非恶意的故障带来的隐私安全影响。
5.2 激励机制
联邦学习的价值在于打破数据孤岛,通过鼓励具有相同数据结构(横向联邦学习)或不同数据结构(纵向联邦学习)共同参与训练,提高模型的整体效果。在整个过程中,一个有效的激励机制的设计,可以激励更多终端用户,或者不同企业、组织参与联邦学习。博弈论、契约理论等的引入,可以更好地帮助设计激励机制。同时,
在不同终端或组织参与的过程中,需要有效衡量不同参与方的贡献程度,从而根据贡献程度公平地分配奖励给参与方,进一步提高用户或组织的贡献热情,形成一个良好的正循环。一个联邦学习下的有效的奖惩及分配机制的
设计,也有其重要研究价值。
5.3 有效性和效率
非独立同分布的数据
现实世界中,大量的数据分布是非独立同分布(non-IID)
的,例如∶不同地理区域的人有不同的喜好与倾向;在特殊的时间段下,一个人会做出与平时不同的差异选择;不同的客户端拥有的数据量大小可能有巨大的差异等。
中心化机器学习可以获取全部样本或者过去已产生的全部样本,从而完成全局最优的模型训练。在联邦学习中,由于数据无法出本地的限制,传统的中心化机器学习中大量调参方法,如随机化数据顺序(data shuffle)
无法被直接应用。相比中心化的机器学习训练过程,这种数据分布造成的影响将带来训练模型效果的降低。
通过对目标函数进行改进,或者进行有限假设是减少非独立同分布数据影响的一个研究方向。为了解决数据分布造成的影响,FedProx
算法提出在每个局部目标函数中加入一个近端项,使算法对局部目标的不均匀性更加鲁棒。Ahmed Khaled
假设所有客户端都参与,并对客户端使用批梯度下降,该方法下客户端上的随机梯度收敛得更快。
通过对优化函数进行改进也是解决数据非独立同分布的一个研究方向。在深度学习中,优化函数经历了SGD,Adagrad,Adam
等发展,其中动量概念的引入带来了更快的收敛速度与精度。在联邦学习优化函数中,对于一阶优化方法,动量和方差的引入是提高优化和泛化性能的有效途径。然而,对于如何将动量或方差技术纳入联邦学习相关的局部SGD和联合平均,目前还没有达成共识。SCAFFOLD
使用控制变量显式地对客户端更新中的差异进行建模,以执行方差减少,这可以在不限制客户端数据分布差异的情况下快速收敛。对于动量方案,Yu 等人建议在每个客户端维护一个本地动量缓冲区,并在每个通信回合平均这些本地缓冲区以及本地模型参数。虽然这种方法在实验中提高了本地SGD的精度,但它需要双倍的通信成本。Wang等人提出了SlowMo
的动量方案,它可以在不牺牲吞吐量的情况下显著提高局部SGD的优化和泛化性能。Hsu等人提出类似于SlowMo的动量方案。局部SGD的动量变量可以凭借与同步小批量SGD相同的速度收敛到非凸目标函数的平稳点,但要证明动量加速了联邦学习环境下的收敛速度依然在理论上存在困难。
此外,微调(fine-tuning)
,迁移学习(transfer learning)
,元数据学习(meta learning)
等技术也在不断被引入联邦学习,探索如何解决非独立同分布数据带来的影响。
有限资源下的参数调节
在联邦学习中,除了具有与深度学习或传统机器学习相似的优化函数选择,如学习率,批量大小,正则化等,还需要考虑聚合规则,每一个迭代中选择的客户端数量,本地每轮的迭代数量等参数选择。联邦学习的参与方中,可能是拥有较多计算和存储资源的数据中心服务器,也可能是不定时在线的边缘设备。一些参与方可能仅拥有有限的计算、存储、网络资源。一些在深度学习中帮助调节模型性能的方法,诸如AutoML,NAS(neural architecture Search)
等,由于将占用较多的资源,将直接降低通信和计算效率,无法直接在联邦学习中应用。在有限资源下的超参数调节是一个极具挑战和有意义的研究方向
有限的通信带宽及设备的不可靠性
通过无线网络接入,或者互联网中靠近终端的端方用户,相比数据中心或者数据中心链路上的核心节点,通常拥有较低的网络带宽及通信效率,同时这种网络连接可能有较高的花费,或者无法保证完全稳定在线。例如,一个终端手机可能仅在电量充足并连接至无线网络的情况下,接入联邦学习训练。这引发了学者对减少联邦学习的通信带宽的研究。在梯度,模型传播,局部计算等部分均有数据压缩的空间。将联邦平均与稀疏化,或者和量
化模型更新结合的方法,已经证明在对训练精度影响较小的情况下显著降低了通信成本。然而,目前还不清楚是否可以进一步降低通信成本,以及这些方法或它们的组合是否能够在联邦学习中提供通信效率和模型准确性之间的最佳平衡。