文章目录
- 第三章 联邦学习分类
-
- 3.1 横向联邦学习
- 3.2 纵向联邦学习
- 3.3 联邦迁移学习
- 第四章 联邦学习框架
-
- 4.1 介绍开源框架
- 4.2 FATE——企业级框架
- 第五章 未来的研究方向
-
- 5.1 安全性
- 5.2 激励机制
- 5.3 有效性和效率
第三章 联邦学习分类
前两章对联邦学习的定义没有讨论如何具体设计联邦学习的实施方案。实际上,孤岛数据具有不同的分布特征。根据这些特点,我们可以提出相应的联邦学习计划。接下来,我们将根据孤岛数据的分布特征对联邦学习进行分类。 考虑到每个数据所有者持有的数据集有多个数据所有者 它可以用矩阵来表示。矩阵的每一行代表一个用户,每一列代表一个用户特征。同时,一些数据集也可能包含标签数据。要建立用户行为预测模型,必须有标签数据。我们可以称用户特征为 ,称为标签特征 。例如,在金融领域,用户的信用是需要预测的标签;在营销领域,标签是用户的购买愿望Y;在教育领域,是学生掌握知识的程度。用户特征 加标签构成完整的训练数据**(X,Y)**。然而,在现实中,这种情况经常发生∶每个数据集的用户不完全相同,或者用户特征不完全相同。具体来说,以两个数据所有者的联邦学习为例,数据分布可分为以下三种情况∶
- 两个数据集的用户特征(X1,X2,…)重叠部分较大,用户(U1,U2…)重叠部分较小;
- 用户有两个数据集(U1,U2…)重叠部分较大,用户特征较大(X1,X2,.)重叠部分较小;
- 用户有两个数据集(U1,U2…)与用户特征重叠(X1,X2,…)部分比较小。
为了应对上述三种数据分布,我们将联邦学习分为。
3.1 横向联邦学习
当两个数据集的用户特征重叠较多,用户重叠较少时,我们根据水平(即用户维度)对数据集进行划分,并取出具有相同用户特征和用户不完全相同的数据进行培训。这种方法被称为水平联邦学习。例如,有两家不同地区的银行,它们的用户群来自各自的地区,相互交集很小。但是,它们的业务非常相似,所以记录的用户特征是相同的。横向联邦学习可用于构建联合模型。Google2017年,提出了Android手机水平更新的数据联合建模方案;当单个用户使用Android手机时,他们不断更新本地模型参数,并将参数上传到Android云上,具有相同特征维度的数据所有者建立联合模型。
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)
等,由于将占用较多的资源,将直接降低通信和计算效率,无法直接在联邦学习中应用。在有限资源下的超参数调节是一个极具挑战和有意义的研究方向 有限的通信带宽及设备的不可靠性 通过无线网络接入,或者互联网中靠近终端的端方用户,相比数据中心或者数据中心链路上的核心节点,通常拥有较低的网络带宽及通信效率,同时这种网络连接可能有较高的花费,或者无法保证完全稳定在线。例如,一个终端手机可能仅在电量充足并连接至无线网络的情况下,接入联邦学习训练。这引发了学者对减少联邦学习的通信带宽的研究。在梯度,模型传播,局部计算等部分均有数据压缩的空间。将联邦平均与稀疏化,或者和量 化模型更新结合的方法,已经证明在对训练精度影响较小的情况下显著降低了通信成本。然而,目前还不清楚是否可以进一步降低通信成本,以及这些方法或它们的组合是否能够在联邦学习中提供通信效率和模型准确性之间的最佳平衡。