联邦学习——突破隐私障碍,释放数据价值

人工智能 机器学习
联邦学习是一种带有隐私保护、安全加密技术的分布式机器学习框架,旨在让分散的各参与方在不向其他参与者披露隐私数据的前提下,协作进行模型训练。

一、联邦学习产生的背景

传统的机器学习方法需要将数据集中在一个机器或数据中心进行训练,但随着移动互联网、大数据等科技的崛起,个人数据分布在各种机构,包括政府机构、医疗机构、保险机构以及各个互联网巨头的平台等。数据在不同的管理机构之间流通往往充满泄漏的风险,另外,近年来数据的隐私权越来越受重视,涉及个人隐私的数据很难有效共享,要将所需要的数据集中在一起训练非常困难,导致许多领域存在着数据孤岛问题。

其实在国外大数据应用也同样面临这个挑战。早在2016年,Google就提出了联邦学习(Federated Learning)的概念,是指多源数据不需要离开自己的设备,而是分别在自己的设备训练模型,并通过特定的加密机制在云上建立一个共享模型的机制更新模型,通过联邦学习,所有的训练数据都仍然保留在各自的设备上,而最终训练出来的模型又能够达到想要的效果。

二、什么是联邦学习?

假设要训练某种疾病的辅助诊断模型,为了诊断更加准确,我们需要有更大的样本,因此需要用到三家医院A、B和C的数据,这些医院有不同的患者,有相同类型的患者数据(例如:CT、症状描述、病史等),医院为了保护患者隐私和他们各自的病例数据安全,没办法全部共享。在数据准备不充分的状态下其实很难建立一个效果良好的模型。

而联邦学习的目的,就是希望实现各个医院用自己的数据来训练模型,并通过加密的机制建立一个共享的模型,并进行模型的更新,这样做不仅保护了院方数据安全和患者隐私,还降低大量集中数据传输的成本。

联邦学习是一种带有隐私保护、安全加密技术的分布式机器学习框架,旨在让分散的各参与方在不向其他参与者披露隐私数据的前提下,协作进行模型训练。

三、联邦学习训练过程

经典联邦学习框架的训练过程可以简单概括为以下几个步骤:

  • 协调方建立基本模型;
  • 将模型的基本结构与参数发送各参与方;
  • 各参与方利用本地数据进行模型训练
  • 各方将模型参数结果发给协调方;
  • 协调方汇总各参与方的模型,构建更精准的全局模型;
  • 将全局参数发给各参与方以提升模型性能和效果。

四、联邦学习核心技术

联邦学习框架包含多方面的技术,比如:

  • 机器学习与模型训练;
  • 参数整合的算法;
  • 各方数据传输通信技术;
  • 隐私保护技术;

此外,在一些联邦学习框架中还借鉴了区块链思路,使用激励机制,数据持有方均可参与,收益具有普遍性。

值得一提的是隐私保护技术,如何在数据传输中保护数据的隐私安全,一直是密码学领域的一大研究热点。

五、联邦学习隐私保护

联邦学习当中增强隐私保护和减少威胁的方法,主要包含以下四种:

  • Secure multi-party computation(MPC多方安全计算);
  • Differential privacy(差分隐私);
  • VerifyNet;
  • Adversarial training(对抗训练);

1.多方安全计算

多方安全计算(Secure Multi-Party Computation,SMPC)用于解决一组互不信任的参与方各自持有秘密数据,协同计算一个既定函数的问题。安全多方计算在保证参与方获得正确计算结果的同时,无法获得计算结果之外的任何信息。在整个计算过程中,参与方对其所拥有的数据始终拥有绝对的控制权。

例如,在一个分布式网络中,有n个互不信任的参与方P1,P2,…,Pn,每个参与方Pi持有秘密数据Xi(i=1,2,3,…,n)。这n个参与方协同执行既定函数,f(x1,x2,…,xn) -> (y1,y2,…,yn),其中yi为参与方Pi得到的输出结果。任意参与方Pi除yi之外无法获得关于其他参与方Pj(i !=j)的任何输入信息。如果y1= y2 = … =yn,则可以简单表示为f:(x1,x2,…,xn) -> y。如下图所示:

2.差分隐私

差分隐私是为了对抗差分攻击而引入的一种隐私保护的方案。通过添加噪声来扰动原本特征清晰的数据,使得单条数据失去其独特性,隐藏在大量数据当中,防止敏感数据泄漏,DP仍能够使得数据具备原有的分布式特点。联邦学习当中,为了避免数据的反向检索,对客户端上传的参数进行差分隐私,这样可能会给上传的参数带来不确定性,影响模型的训练效果。

例如:有一个包含“非典”疾病信息的数据库。我们要研究分析这种疾病,但是又怕泄漏个人隐私,有一个方法是把姓名、身份证号从数据库中脱敏,但是如果这个城市只有少数这种疾病的病人,如果有人知道一个人在数据库中,这可能会泄漏这个人有“非典”和他的治理情况。我们可以增加一些具有类似该疾病信息的噪音样本书籍,以防止个人信息被识别出来。

3.VerifyNet

VerifyNet是一个隐私保护和可信验证的联邦学习框架。VerifyNet的双隐蔽协议保证用户在联邦学习过程中局部梯度的机密性,另外,中心服务器需要向每个用户提供关于聚合结果的正确性证明。在VerifyNet中,攻击者很难伪造证据来欺骗其他用户。此外VerifyNet还支持用户在训练过程中退出,发现威胁迅速回退,多方面保护用户的隐私安全。

4.对抗训练

对抗训练是增强神经网络鲁棒性的重要方式,是一种主动防御技术。在联邦学习对抗训练过程中,样本当中会混合一些微小的扰动(可能导致误分类),然后使得神经网络适应这种变换,因此,最终生成的联邦学习的全局模型对已知的对抗样本具有鲁棒性。

六、联邦学习的种类

联邦学习根据数据的类型可以划分横向联邦学习(horizontal federated Learning)、纵向联邦学习(vertical federated Learning)、联邦迁移学习(federatedtransfer Learning)。

1.横向联邦学习

横向联邦学习适用于数据特征重叠性高且样本重叠少的场景,比如:不同地区的医院,他们的诊疗内容相似,但病人不同。

首先,每个参与方都会得到相同的模型定义,并且统一模型的初始化参数。不断迭代以下步骤训练模型:

  • 每个参与方利用自己的数据训练模型,分别计算梯度,再将加密过的梯度、参数上传至协调方服务器。
  • 由协调方服务器整合各参与方的梯度参数并更新模型。
  • 协调方更新模型将更新后的梯度回传给各个参与方。
  • 参与方更新各自的模型。

目前横行联邦学习技术架构相对简单,落地可行性较高。

2.纵向联邦学习

纵向联邦学习适用于样本重叠多,但是特征重叠少的场景。比如同一地区的医院、药店或者保险机构,他们服务的患者大部分居住在该地区,因此样本相同,但药店和医院的业务不同,它们有不同的数据特征。

由于隐私保护法规问题,不能直接公开交换数据进行训练。因此,如上图所示,A与B需要利用加密对齐技术加密样本,以确认双方共享的客户存在重叠,之后再利用这些数据进行加密。

A:参与方 ;B:参与方;C:协调方

① C 将公钥发给 A 和 B(用来加密);

② A 和 B 分别计算和自己相关的特征中间结果,并交换结果,用来求得各自的最小值和损失值(loss)。

③ A和B分别将计算后且加密的最小值参数传送给C,同时B根据标签计算损失值并将结果汇整给C。

④ C将解密后的参数分别回传给A和B,更新双方的模型。

在整个过程中参与方都不知道对方的数据和特征,且训练结束后参与方也只能得到自己估计的模型参数。

纵向联邦学习虽然解决了特征重叠少的问题,但是只要参与方越多,计算架构就会越加复杂难以执行,落地难度较大。

3.联邦迁移学习

当参与方拥有的数据的特征和样本重叠的情况都很少时,可以利用联邦迁移学习(transfer Learning)来克服数据与标签短缺的状况。

七、联邦学习、分布式学习、多智能体

1.分布式机器学习

分布式机器学习(distributed machine learning),是指利用多个计算/任务节点(Worker)协同训练一个全局的机器学习/深度学习模型(由主节点(Master)调度)。需要注意的是,分布式机器学习和传统的HPC领域不太一样。传统的HPC领域主要是计算密集型,以提高加速比为主要目标。而分布式机器学习还兼具数据密集型特性,会面临训练数据大(单机存不下)、模型规模大的问题。此外,在分布式机器学习也需要更多地关注通信问题。

当我们利用多个计算节点并行化训练模型时,工作负载被划分到多个处理器或工作器上,以加快训练过程。并行化主要有两种类型。数据并行是指我们将训练数据分配给可用的worker,并在每个worker上运行模型的副本。然后,每个worker在同一个模型上运行不同的数据片段。相比之下,模型(或网络)并行是指我们将模型划分为不同的工作者,每个工作者在模型的不同部分上运行相同的数据。

2.多智能体

多智能体系统(multi-agent system) 是一组自主的,相互作用的实体,它们共享一个共同的环境(environment),利用传感器感知,并利用执行器作动。多智能体系统提供了用分布式来看待问题的方式,可以将控制权限分布在各个智能体上。

3.联邦学习、分布式学习和多智能体的区别


分布式机器学习

联邦学习

多智能体

解决的问题

针对运算量大、数据量大等问题使用计算机集群来训练大规模机器学习模型。

针对保护用户隐私保护,数据安全等问题,通过高效的算法、加密算法等进行机器学习建模,打破数据孤岛。

主要在多机器人、多无人机协同编队以及多目标跟踪与监控中发挥作用。

数据处理方案

数据并行:先将训练数据划分为多个子集(切片),然后将各子集置于多个计算实体中,并行训练同一个模型。

联邦建模各方,本地数据不出库,先在本地训练模型参数(或梯度),然后通过同态加密技术交互其参数,更新模型。

可以预先收集好环境数据然后采用经验回放技术进行训练,也可以直接采用在线学习的形式,即多个智能体在环境中进行交互学习。

训练方案

工业应用中,大部分还是以数据并行为主:各个节点取不同的数据,然后各自完成前向和后向的计算得到梯度用以更新共有的参数,然后把update后的模型再传回各个节点。

各方在本地初始化模型参数,经过训练获得梯度(或参数),交由可信第三方进行模型的更新,然后分发到各方本地进行更新,如此反复,获得做种的模型。

每个智能体独立与环境交互,利用环境反馈的奖励改进自己的策略,以获得更高的回报(即累计奖励)。此外多个智能体是相互影响的,一个智能体的策略不能简单依赖于自身的观测、动作,还需要考虑到其他智能体的观测、动作。常采用中心化训练+去中心化执行[7][8]这一训练模式。

通信方式

MPI(常用于超算,底层基于高速网络如IB网)、NCCL、gRPC(常用于廉价集群,底层基于TCP和以太网)

gRPC(大部分)

高速网络

数据

IID(独立同分布)数据,数据均衡

非IID数据,数据不均衡甚至异构

多智能体处于统一环境,数据满足IID

成本

有专用的通信条件,所以通信代价往往较小

通信的代价远高于计算的代价

智能体之间常由传感器高速网络连接,通信代价小

容错性

很少考虑容错问题

容错性问题非常重要

基本不考虑容错性

八、联邦学习架构

联邦学习的架构分为两种,一种是中心化联邦(客户端/服务器)架构,一种是去中心化联邦(对等计算)架构。

1.中心化联邦学习架构

中心化联邦学习架构主要用于需要联合多方用户进行联邦学习场景,协调方机构作为中央服务器,起着协调全局模型的作用。

2.去中心化联邦学习架构

在多家参与机构面临数据孤岛,又难以从多家机构中选出协调方的场景,一般可以采用去中心化的联邦学习架构(对等架构)。

九、总结

虽然联邦学习解决了分布在不同机构的数据在不泄漏隐私的情况下得以应用,突破数据隐私障碍,提升了数据价值。但联邦学习距离落地仍然存在许多技术难点:

  • 通信开销问题:联邦学习中的通信开销问题是影响联邦学习效率的主要瓶颈之一。
  • 数据的非独立同分布: 通常情况下,机器学习的数据集是独立同分布的,而联邦学习的数据集却常常以非独立同分 布(Non-Independent Identically Distribution,Non-IID)的方式存在,这就对联邦学习的实际落地形成了挑战。
  • 系统和数据的异质性:联邦学习网络中的客户端系统通常会有多种类别,系统的异质性以及来自设备的数据的不平衡、不一致分布会显著影响联邦学习模型的性能。并且客户端的庞大数量和不一致性可能会使模型的可靠性下降。经典的 FedAvg 对系统异构性不够健壮。

另外,除了技术难点之外,参与方的合作机制也需要探索,例如:

  • 如何打破同类机构之间的数据竞争?
  • 如何说服拥有敏感数据的一方加入?
  • 如何维持参与方的稳定,同时,若中途若有参与方退出,如何维持模型的稳定?

总体来说,在数字化不断发展的今天,可预见未来联邦学习仍将是一个重要的研究领域。但目前联邦学习还有待进一步提升相关技术并增加成功落地案例。

责任编辑:赵宁宁 来源: andflow
相关推荐

2022-09-12 20:31:54

隐私计算AI数据

2022-05-19 12:04:07

隐私保护攻击威胁

2023-08-24 07:33:28

2020-04-30 13:45:56

隐私框架深度学习

2021-05-20 11:20:52

数据隐私安全

2014-10-13 18:14:49

XTools CRM

2021-06-04 15:38:18

联邦学习人工智能数据

2021-10-29 15:24:48

洞见科技

2013-03-13 16:14:19

虚拟化大数据

2021-04-29 14:40:11

数据安全隐私

2017-07-13 10:14:20

大数据动向数据价值

2014-11-19 09:59:26

隐私控制

2020-09-14 13:59:24

数据

2021-03-24 16:10:58

智慧城市物联网大数据

2013-01-10 10:18:59

云BI云分析大数据

2013-09-23 09:18:16

云网络延迟云网络内容交付网络

2019-06-06 10:06:07

华为智能数据解决方案FusionData

2020-12-25 16:30:17

机器学习/隐私保护

2023-02-26 14:17:44

点赞
收藏

51CTO技术栈公众号