简单理解什么叫联邦学习(全)

本篇博文以一篇综述为例,讲述什么叫联邦学习!!

《Federated Machine Learning:Concept and Applications》

该篇综述是杨强教授在2019年发表在ACM Transactions on Intelligent Systems and Technology (TIST)上的一篇综述论文,比较全面和系统的介绍了联邦学习的基本概念、分类和一些安全隐私问题等。下面是我个人结合本篇综述理解的一些笔记记录,比较精简,只保留了比较关键的内容或一点点理解,若想更全的理解本文,还得看原文,作者水平高!若想基本理解什么叫联邦学习,好好的读完这篇综述就够了,进一步理解可再读其他文章!

长文警告:大约1.3w字,请坐稳扶好!!!(已经精简了)

先附原文下载连接:查阅or下载

摘要

背景:如今人工智能仍然存在两个重大挑战:

  • 1)数据以孤岛的形式存在;
  • 2)数据隐私和安全问题。

引出:本文提出了可能的解决方案:一个更全面的安全联邦学习框架。该框架包括Horizontal(水平or横向)联邦学习、Vertical(垂直or纵向)联邦学习,以及联邦Transfer(迁移)学习。本文提供了联邦学习框架的定义、架构和应用程序,以及建立了基于联邦机制的组织之间建立数据网络,作为一种可以在不损害用户隐私的情况下共享知识知识指参数、梯度等 )的有效解决方案。

一、引言

大数据能驱动人工智能快速实现我们生活的各个方面,但现实世界的情况有些令人失望。除了少数行业,大多数领域只有有限的数据或劣质数据,使得人工智能技术的实现比我们想象中更困难。通过跨组织传输数据,是否能将数据融合到一个公共站点中?事实上,在许多情况下,打破数据源之间的障碍是非常困难的,甚至是不可能的。在大多数行业中,数据以古岛的 形式存在。由于行业竞争、隐私安全和复杂的管理程序,即使同一个公司不同部门之间的数据整合也面临巨大压力。将分散在全国各地和机构的数据整合起来几乎是不可能的。

同时,大公司对数据安全和用户隐私妥协的意识日益增强,对数据隐私和安全的重视已经成为世界范围内的重大问题。公共数据泄露消息如,最近facebook的数据泄露引起了广泛的抗议 [70] 。作为回应,世界各国都在加强保护数据安全和隐私的法律。

  • 中国在17年颁布了《网络安全法》和《民法通则》要求互联网企业不得泄露或篡改其收集的个人信息,在与第三方进行数据交易时,需确保协议的合同遵守法律数据保护义务。
  • 18年,欧盟实施了通用数据保护条例(GDPR) [19] ,它要求保护用户的个人隐私和数据安全,并给予用户的“被遗忘权”,即用户可以删除或撤回个人数据。

具体来说,人工智能中的传统数据处理模型往往涉及简单的数据交易模型,一方收集数据并将数据传输给另一方,另一方负责清理和融合数据。最后,第三方将获取集成数据并构建模型供其他方使用。模型通常是作为服务出售的最终产品。这种传统程序面临上述新数据法规和法律的挑战。因此,我们面临的困境是,数据是孤岛形式,但在多种情况下,我们被禁止收集、融合使用数据到不同的地方进行AI处理。如何合法解决数据碎片化的隔离问题,是当今人工智能研究人员和从业者面临的一大挑战。

二、联邦学习概述(重点章节)

2016年,联邦学习的概念由谷歌提出 [36, 37,41] ,其主要思想是基于分布在多个设备上的数据集构建机器学习模型,同时防止数据泄露。此外,数据按用户ID或设备ID的数据空间中是水平区分的。为扩展联邦学习概念以覆盖组织之间的协作学习场景,我们将原“联邦学习”扩展到所有保护隐私的分散式协作机器学习技术的一般概念。在本节中,提供了一个更全面的联邦学习定义,它考虑了数据分区、安全性和应用程序,还描述了联邦学习系统的工作流程系统架构

2.1 联邦学习定义

定义N个数据拥有者 { F 1 , . . . , F N } \{F_1,..., F_N\} { F1,...,FN} ,他们希望通过合并各自的数据 { D 1 , . . . , D N } \{D_1,..., D_N\} { D1,...,DN} 来训练机器学习模型。传统的方法是将所有数据放在一起并使用 D = D 1 ∪ D 2 . . . D N D=D_1\cup D_2 ...D_N D=D1D2...DN 训练模型 M S U M M_{SUM} MSUM。联邦学习系统是数据拥有者协同训练模型 M F E D M_{FED} MFED的一个学习过程,该过程中任何数据拥有者 F i F_i Fi都不会暴露其数据 D i D_i Di给其他人。另外, M F E D M_{FED} MFED的精度值表示为 V F E D V_{FED} VFED,应该非常接近 M S U M M_{SUM} MSUM的精度值 V S U M V_{SUM} VSUM。形式上, δ \delta δ是一个非负实数,如果满足
∣ V F E D − V S U M ∣ < δ |V_{FED}-V_{SUM}|<\delta VFEDVSUM<δ
我们说联邦学习算法是 δ \delta δ精度值损失。

2.2 联邦学习隐私

隐私=是联邦学习的基本属性之一,这需要安全模型和分析来提供有意义的隐私保证。在本节中,我们简要回顾和比较联邦学习的不同隐私技术,并确定防止间接泄露的方法和潜在挑战。

  • 安全多方计算(SMC):安全模型涉及多方,并在定义良好的模型框架中提供证明,以确保完全零知识,即每一方除了输入和输出之外一无所知。零知识是非常可取的,但是这种期望的特性通常需要复杂的计算协议并且可能无法有效实现。在某些情况下,如果提供安全保证,部分知识披露可能被认为是可以接受的。可以在较低的安全要求下使用SMC构建安全模型以换取效率 [16] 。最近,研究 [46] 使用SMC框架来训练具有两个服务器和半城实假设的机器学习模型。参考文献 [33] 使用MPC协议进行模型训练和验证,而无需用户透露敏感数据。Sharemind [8] 是最先进的SMC框架之一。文献 [44] 提供了一个具有诚实多方的3-PC模型[5,21,45] ,并在半城实和恶意假设中考虑安全性。这些工作要求参与者的数据在非共谋服务器之间秘密共享。
  • 差分隐私:另一种工作使用差分隐私 [18] 或k-匿名 [63] 技术来保护数据隐私 [1,12,42,61]。差分隐私、k-匿名和多样化 [3] 的方法涉及在数据中加入噪声,或使用泛化方法来掩盖某些敏感属性,直到第三方无法区分个体,从而使数据无法恢复到保护用户隐私。但是,这些方法的根源仍然要求将数据传输到其他地方,并这些工作通常涉及准确性和隐私之间的权衡。在 [23] 中,作者为联邦学习引入了一种差分隐私方法,以便通过在训练期间隐藏客户端的贡献来增强对客户端数据的保护。
  • 同态加密:机器学习过程中还采用同态加密 [53] ,通过加密机制下的参数交换来保护用户数据隐私 [24,26,48] 。与差分隐私保护不同,数据和模型本身不会传输,也不会被对方的数据猜到。因此,在原始数据层面泄露的可能性很小。最近的工作采用同态加密来集中和训练云上的数据[75,76] 。在实践中,加法同态加密 [2] 广泛使用,并且需要进行多项式近似来评估机器学习算法中的非线性函数,从而导致准确性和隐私性之间的权衡[4,35]
2.2.1 间接信息泄露

先前联邦学习的工作暴露了中间结果, 例如来自优化算法,如随机梯度下降(SGD) [41,58]的参数更新,但没有提供安全保证,当这些梯度与数据结构(如像素图)一起暴露时,实际上可能会泄漏重要的数据信息 [51] 。研究人员考虑了一种情况,即联邦学习系统的一个成员通过允许插入后门来学习他人数据,从而恶意攻击他人。在 [6] 中,作者证明了在联合全局模型中插入隐藏后门是可能的,并提出了一种新的“约束-规模”模型中毒方法来减少数据中毒。在 [43] 中,研究人员发现了协作机器学习系统中潜在的漏洞,即协作学习中各方使用的训练数据很容易受到推理攻击。他们表明,敌对的参与者可以推断出成员以及与训练数据子集相关的属性。他们还讨论了可能的防御措施。在 [62] 中,作者暴露了一个潜在的安全问题,与不同方之间的梯度交换有关,并提出了梯度下降方法的一个安全变体,并表明它可以容忍恒定分数的拜占庭工人。

研究人员也开始将区块链视为促进联邦学习的平台。在 [34] 中,研究人员考虑了一种区块链联邦学习(BlockFL)架构,其中移动设备的本地学习模型更新通过利用区块链进行交换和验证。他们考虑了最佳区块生成、网络可扩展性和健壮性问题。

2.3 联邦学习的分类

令矩阵 D i D_i Di表示每个数据拥有者 i i i持有的数据。矩阵的每行代表一个样本,每列代表一个特征。同时,一些数据集也可能包含标签数据,我们将特征空间表示为 X X X,标签空间表示为 Y Y Y,使用 I I I表示样本ID空间。例如,在金融领域标签可能是用户的信用;在营销领域的标签可能是用户的购买欲望;在教育领域, Y Y Y可能是学生的学位。特征 X X X,标签 Y Y Y和样本ID I I I构成了完整的训练数据集 ( I , X , Y ) (I, X, Y) (I,X,Y)。数据方的特征和样本空间可能不完全相同,我们根据数据在特征和样本ID空间中在各方之间的分布情况,将联邦学习分为水平联邦学习、垂直联邦学习和联邦迁移学习。

  • 1)水平(横向)联邦学习:即基于样本的联邦学习,旨在数据集共享相同特征空间但样本不同的场景。例如,两个区域的银行可能各自区域的用户群非常不同,且用户交集非常小。但是,他们的业务非常相似,因此特征空间是相同的。文献 [58] 提出了一种协作深度学习方案,参与者独立训练,并仅共享参数更新的子集。本文还介绍了一种在联邦学习框架下保护聚合用户更新隐私的安全聚合方案 [9] 。文献 [51] 使用加法同态加密进行模型参数聚合,以提供针对中央服务器的安全性。
    在这里插入图片描述
    [60] 中,提出了一种多任务式的联邦学习系统,允许多个站点在共享知识和保证安全的同时完成各自的任务。他们提出的多任务学习模型还可以解决高通信成本、掉队和容错问题。在 [41] 中,作者提出建立一个安全的客户机-服务器结构,其中联邦学习系统根据用户划分数据,并允许在客户机设备上构建的模型在服务器站点上协作,以构建一个全局联邦模型,过程确保了数据不泄露。同样,在 [36] 中,作者提出了提高通信成本的方法,以促进基于分布在移动客户端数据的集中模型的训练。最近,一种被称为深度梯度压缩 [39] 的压缩方法被提出,以大大降低大规模分布式训练的通信带宽。即总结为:
    X i = X j , Y i = Y j , I i ≠ I j , ∀ D i , D j , i ≠ j X_i=X_j, Y_i=Y_j, I_i\neq I_j, \forall D_i, D_j, i\neq j Xi=Xj,Yi=Yj,Ii</

参考资源链接:[Python完去中心化联邦学习源码及文档解析](https://wenku.csdn.net/doc/21mzb022y7?utm_source=wenku_answer2doc_content) 去中心化联邦学习是一种分布式机器学习方法,它允许多个参与方在保持数据隐私的前提下,共同训练一个共享模型。这种方法特别适合于涉及隐私保护的场景,如医疗数据处理,其中各方数据不宜集中处理。在去中心化的联邦学习中,本地模型在每个参与方的节点上独立训练,仅共享模型的更新或参数,而不是原始数据。 要实现一个简单联邦学习模型,你可以参考《Python完去中心化联邦学习源码及文档解析》这本书中的案例。首先,需要设置一个中心化的参数服务器,用于同步和更新所有节点的模型参数。然后,每个节点运行本地数据集上的模型训练过程,并将更新后的模型参数(梯度或权重更新)发送给参数服务器。参数服务器收集所有更新后,计算出一个新的局模型参数,然后再将这个新参数广播给所有节点,以此重复上述过程。 在Python中,可以利用诸如PyTorch或TensorFlow这样的深度学习框架来构建模型,并使用Flask或FastAPI等工具来实现节点间通信。具体步骤可以分为以下几个部分: 1. 定义模型结构:在`model`目录下定义你的机器学习模型,这可以是一个简单的神经网络模型。 2. 数据处理:在`data`目录中编写数据加载和预处理的代码,确保数据能够被模型正确处理,并且符合去中心化学习的要求。 3. 训练脚本:在`train`目录中编写训练脚本,实现模型训练过程中的各种逻辑,如本地模型的训练、梯度计算、模型参数的更新等。 4. 同步机制:设计一个同步机制来确保所有节点可以接收局模型参数,并向参数服务器发送本地更新。这可以使用HTTP请求来完成。 5. 结果记录:将训练结果保存在`train/res`目录下,并在`utils`目录中编写必要的工具函数来辅助整个训练过程,比如日志记录和性能监控。 通过这种方式,你可以创建一个去中心化的联邦学习环境,其中每个节点在本地完成模型训练和参数更新,而不会直接共享数据。这样的系统设计不仅保护了数据隐私,还能够有效地利用分布在不同位置的数据来训练强大的模型。 参考资源链接:[Python完去中心化联邦学习源码及文档解析](https://wenku.csdn.net/doc/21mzb022y7?utm_source=wenku_answer2doc_content)
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值