文章目录
- 前言
- 一、联邦学习要解决的问题
- 二、什么是联邦学习
- 2.1 发展历程
- 2.2 分布式学习
- 2.3 联邦学习和分布式学习的区别
- 3. 联邦学习工作原理
- 4. 种类
- 4.1 横向联邦学习
- 4.2 纵向联邦学习
- 4.3 迁移联邦学习
- 5. 技术挑战
- 统计挑战:数据非独立同分布(non-lld)
- 系统挑战:常见于节点较多的情况
- 隐私安全存在的问题
- 总结
前言
联邦机器学习又名联邦学习,联合学习,联盟学习。联邦机器学习是个机器学习框架,能有效帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和机器学习建模。
在本章,我们将了解联邦学习的定义、算法原理、分类、短板挑战。
一、联邦学习要解决的问题
机器学习两大挑战:
- 数据孤岛: 网络安全隔离和行业隐私,不同行业、部门之间存在数据壁垒,导致数据形成“孤岛”无法安全共享。
- 数据隐私安全: 数据安全难以得到保障,隐私数据泄露问题亟待解决。
联邦学习的基本思想是在与其他设备协作运行训练任务时,防止数据离开本地设备。具体来说,通过将机器学习的数据存储和模型训练阶段转移至本地用户,仅与中心服务器交互模型更新的方式有效保障了用户的隐私安全。
二、什么是联邦学习
2.1 发展历程
联邦学习作为机器学习领域的一种分布式数据处理方法,可以在实现分布式模型训练的同时解决隐私泄露问题。2017年, 联邦学习的概念由谷歌提出,其主要思想是基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。杨强教授在2019年发表在ACM Transactions on Intelligent Systems and Technology (TIST)上的一篇综述论文,该文章比较全面和系统的介绍了联邦学习的基本概念、分类和一些安全隐私问题等,论文名为《Federated Machine Learning:Concept and Applications》。
2.2 分布式学习
联邦学习的前身就是分布式学习,我们可以把联邦学习可以理解为分布式学习的一种,带约束的分布式学习。
分布式学习:就是你有一个模型要训练,而你手头上有多个CPU或GPU,这时你就想在多个计算节点上同时训练这个模型,来加快训练,这就是分布式学习。一般这些节点有一个老大哥,叫server;一群小弟,叫worker。那么很直观的有两招,同步(多个worker训练完模型的一部分,同时与server通信。),异步(每个worker训练完模型的一部分后就立刻可以与server通信,从而进入下一轮计算。)
同步的情况下,缺点是算力强的节点会被算力弱的节点拖住。异步情况下,如果一个算力强的节点已经算了7、8轮,一个算力弱的节点才计算完1轮,这时这个比较迟更新的梯度基于的是老参数,对模型有可能是有害的,即需要设备算力比较均匀。
2.3 联邦学习和分布式学习的区别
两种学习最大的区别是 “中心服务器”对其他“计算节点”的控制权不同。具体来说:
-
中心服务器对数据和计算节点的控制权不同。
联邦:计算节点对数据具有绝对的控制权。中心服务器无法直接或间接操作计算节点上的数据;计算节点可以随时停止计算和通信,退出学习过程。
分布:中心服务器对计算节点以及其中的数据具有较高的控制权,计算节点完全受中心服务器的控制,接收来自中心服务器的指令。例如,在 MapReduce 这种分布式计算模型中,中心服务器可以下发一个指令,让计算节点互相交换数据。 -
计算节点上数据分布类型不同。
联邦:并不能简单假设数据是独立同分布(Independent Identity Distributed, IID),由于数据是由不同用户端独立产生的,他们往往表现出不同的分布特征(非独立同分布,non-IID)。
分布:不同计算节点上的数据的划分通常是均匀、随机打乱的,它们具有独立同分布的特点,这样的特性非常适合设计高效的训练算法。 -
计算节点上数据量级不同。
联邦:每个计算节点拥有的数据量与设备自身有关,很难保证不同计算节点拥有相近的数据量。
分布:分布式学习为了提高训练效率,通常都会把训练数据均匀分布在每个计算节点上,实现负载均衡。 -
计算节点稳定性不同。
联邦:参与联邦学习的计算节点可能是手机、平板等移动设备,这些设备因为用户的使用习惯,其所处的网络环境并不稳定,随时都可能与中心服务器断开连接。
分布:分布式学习场景下的计算节点,通常都位于专用的机房中,用高速宽带进行互联,网络、运行环境都非常稳定。 -
通信代价不同。
联邦学习中的计算节点可能分布在不同的地理位置,与中心服务器一般处于远程连接的状态,同时受不同设备网络带宽的影响,其通信代价要更高。
分布式学习中的计算节点与中心服务器通常处于同一地理位置,而且有专用的通信条件,所以通信代价往往较小。
3. 联邦学习工作原理
多个客户端设备(如平板电脑、手机、物联网设备)和中心服务器(如服务提供商)的协调下,共同训练一个模型。在这一过程中,客户端负责利用本地数据进行模型训练,得到本地模型(local model),而中心服务器则负责将各客户端训练得到的本地模型进行加权聚合,从而形成全局模型(global model)。通过多轮迭代,这一过程最终得到一个效果接近于传统集中式机器学习的模型,从而有效降低了传统机器学习中由于数据集中带来的隐私风险。
注意:联邦学习的目的是在保证数据隐私的前提下,通过多个客户端设备协作训练一个全局模型 w。在这种方法中,数据存储和处理都是在本地客户端设备上完成的,只有模型更新的梯度信息需要上传至中心服务器。
4. 种类
横向联邦学习、纵向联邦学习、联邦迁移学习分类的依据是各个参与方数据相似情况,而联邦强化学习的重点是基于各方环境进行决策(take action)。
4.1 横向联邦学习
需求场景:两家公司拥有不同的用户,但是都有建模需要的所有数据量(X, Y),如果单靠任何一家的数据建模,样本都不够多,需要联合两家数据建模,同时不透露各自的样本内容。
模型搭建(Fedavg):各终端进行梯度计算,本地进行梯度下降形成新参数,本地重复epoch,中心服务器对参数进行收集,并进行参数平均,然后生成最新模型参数,分别发送给各终端,终端进行多次迭代,可减少通信次数。
4.2 纵向联邦学习
需求场景:公司A和B拥有相同的用户(相同ID),但是分别拥有同一用户的不同数据参数,需要结合两家公司的数据一起建模,同时两家公司双方不透露各自的数据内容。
模型搭建: 需要第三方帮助进行AB公司的加密过程,传输的是加密后的梯度结果。
4.3 迁移联邦学习
联邦迁移学习的特点是数据集特征 X、标签信息 Y 和样本 ID 信息都不同。该学习被用于解决标签样本少和数据集不足的问题,如中国的电商平台与其他国家银行之间的数据迁移,由于跨部门跨国的数据交流很难实现,通过联邦迁移学习可以很好地解决这类痛点问题。
5. 技术挑战
统计挑战:数据非独立同分布(non-lld)
数量不平衡:用户量分布不均匀。
数据漂移:测试集和训练集不同。
数据非独立:数据是由不同用户端独立产生的,他们往往表现出不同的分布特征。
系统挑战:常见于节点较多的情况
通信带宽:在联邦学习网络中,服务器与各个远程客户端之间需要频繁地进行模型更新的通信。这种通信要求大量的带宽,尤其是在客户端数量达到万计时,网络负担显著增加。通常,联邦学习的全局模型训练时间包括数据处理时间和通信传输时间。随着计算机设备算力的提升,数据处理时间在不断降低,而通信传输时间却成为了训练速度的主要瓶颈。
隐私保护:下文详细介绍。
系统防御:需要抵御不正确的模型干扰。
隐私安全存在的问题
-
模型反演攻击:
研究表明,梯度信息会泄露用户的隐私数据。攻击者可以通过客户端上传的梯度信息间接推出标签信息和数据集的成员信息。Carlini等从训练用户语言数据的递归神经网络中提取出了用户的敏感数据,如特定的银行卡号。Fredrikson等研究了如何从模型信息中窃取数据隐私,并通过药量预测实验实现了对线性回归模型的反演攻击,获得了患者的敏感信息。 -
成员推理攻击:
恶意客户端或服务器通过分析模型更新信息,推测源数据的隐私信息。Hitaj等用生成对抗网络(GAN)对模型聚合发起攻击,实验结果表明,恶意客户端能够通过产生相似的本地模型更新来窃取用户数据隐私。 -
模型推理攻击:
恶意服务器企图获得客户端的源数据。Gei等证明了从梯度信息重建输入数据的可行性,并将一批输入图像用余弦相似度和对抗攻击的方法恢复出来。
联邦学习主要存在三种威胁:
- 恶意客户端修改模型更新,破坏全局模型聚合。
- 恶意分析者通过对模型更新信息的分析推测源数据隐私信息。
- 恶意服务器企图获得客户端的源数据。
总结
” 如果我看得更远,那是因为我站在巨人的肩膀上。“
——艾萨克·牛顿爵士(Sir Isaac Newton)
在这里总结一些本博文参考的资料,也分享给大家一起学习:
- 联邦学习是什么?
- 联邦学习研究综述
- 讲解杨强老师的综述论文
- 分布式学习的定义