联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译
Posted Jude00000
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译相关的知识,希望对你有一定的参考价值。
联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译个人笔记
摘要
联邦学习已经被广泛研究并应用于各种场景。在移动计算场景中,联邦学习保护用户不暴露他们的私有数据,同时为各种实际应用合作训练全局模型。然而,由于恶意客户端或中央服务器不断攻击全局模型或用户隐私数据,联邦学习的安全性受到越来越多的质疑。为了解决这些安全问题,我们提出了一个基于区块链的去中心化联邦学习框架,即基于区块链的委员会共识联邦学习框架(BFLC)。框架使用区块链进行全局模型存储和本地模型更新交换。为了实现所提出的BFLC,我们还设计了一个创新的委员会共识机制,可以有效地减少共识计算量,减少恶意攻击。然后我们讨论了BFLC的可扩展性,包括理论安全性、存储优化和激励。最后,我们使用真实数据集进行实验,验证了该框架的有效性。
关键词:区块链,联邦学习,验证共识,健壮性
一、引言
随着GDPR的引入,产业界和学术界开始更加关注机器学习的隐私保护问题。用户生成的私有数据不应公开或上传到中央服务器。谷歌在2016年提出联邦学习(FL),以解决协同培训隐私保护的问题。FL提出了一种分布式培训模型,它具有两个角色:参与设备和中心服务器。节点不是上传私有数据,而是本地更新全局模型,然后上传模型更新(即本地梯度)。中央服务器收集这些更新并集成它们以形成一个更新的模型。由于这种隐私性,FL近年来受到越来越多研究者的关注。
在FL设置中,服务器执行更新聚合、客户端选择、全局模型维护等中央操作。服务器需要从众多客户机收集更新来完成聚合操作,还需要向这些客户机广播新的全局模型,这对网络带宽有很高的要求。此外,基于云的服务器也会受到云服务提供商[1]的稳定性的影响。集中式服务器可能会偏向某些客户端,从而扭曲全局模型。此外,一些恶意的中央服务器可以破坏模型,甚至从更新中收集客户的隐私数据。 因此,中央服务器的稳定性、公平性和安全性对FL至关重要。
一个直接的想法是删除服务器并在分布式客户机节点上执行中心任务。区块链被看作是分散存储,可以作为FL维护的基础。详细地,我们可以设计在客户端上执行聚合任务的协议。挡板[2]提到使用区块链存储和共享全局模型,并使用智能合约的执行聚合。移除中央服务器后,就不需要考虑上述问题了。但是,该任务的计算量和网络传输压力都转移到节点上。特别是,当所有节点都必须处理共识任务时,每轮的计算开销是巨大的。
一个直接的想法是移除服务器并在分布式客户端节点上执行中心任务。 被视为去中心化存储的区块链可以作为维护 FL 的基础。 具体来说,我们可以设计协议在客户端上执行聚合任务。 BAFFLE [2] 提到使用区块链来存储和共享全局模型,并使用智能合约执行聚合。 随着中央服务器的移除,上述挑战无需考虑。 但是,这个任务的计算和网络传输压力都转移到了节点上。 特别是当所有节点都必须处理共识任务时,每轮的计算开销是巨大的。
周等人[3] 提议使用区块链在社区内维护全局模型并达成共识,并利用allreduce协议在多个社区之间传输和更新模型。 全局模型不断更新,并受到各个社区的推动。 切内特[4] 建议利用区块链来记录来自节点的更新以及对这些更新的评估。 作为对恶意设备的防御,不达标的节点可能会被踢出社区。 但是同时维护多个区块链 [3] 不利于模型共享,不同社区的节点很难获得其他社区的模型或更新记录。 如果一个社区作为一个整体是恶意的,其他诚实的社区很难检测和抵制,那么可能需要一个可信的全局检测。
通过文献综述,区块链作为有效的去中心化存储,替代中央FL服务器将是一种有效的方式。 但是,共识的效率急需提高。 虽然在区块链中存储模型和模型更新带来了很多安全优势,但同时也对区块链节点的存储容量造成了巨大的负担。 因此,如何降低基于区块链的 FL 的消耗也是一个关键挑战。
在本文中,我们提出了一种分散的、基于区块链的自治FL架构来解决这些挑战(如图1所示)。对于FL节点的管理,基于联盟链的架构确保了节点的权限控制。在存储方面,我们在模型和更新链上设计存储模式,通过该模式,节点可以快速获取最新的模型。每个经过验证的更新都被记录在区块链上,并保持原样。考虑到区块链上巨大的存储消耗,部分节点可以放弃历史块来释放存储空间。在块共识机制方面,提出了一种新颖的委员会共识机制,该机制仅能增加少量的验证消耗,在恶意攻击下获得更大的稳定性。在每一轮FL中,更新都由一小部分节点(即委员会)进行验证和打包。委员会共识机制让最诚实的节点相互加强,不断完善全局模式。少量错误或恶意的节点更新将被忽略,以避免破坏全局模型。同时,BFLC训练社区具有灵活性,节点可以随时加入或离开,而不会破坏训练过程。结合有效的激励机制,贡献的节点能够获得实际的回报,从而促进整个培训社区的良性发展。
图1所示。提出的BFLC框架的训练过程。(1)训练节点获取最新的全局模型,进行局部训练。(2)训练节点将本地更新信息发送给委员会(3)委员会对更新信息进行验证,并将新型号或更新信息记录到区块链上。
我们的贡献总结如下。
- 我们提出了一个基于区块链的FL框架BFLC,详细定义了模型存储模式、训练过程和新的委员会共识。
- 从技术上讨论了BFLC的可扩展性,包括社区节点管理、恶意节点攻击分析和存储优化。
- 我们通过在真实FL数据集上的实验证明了BFLC的有效性。通过对恶意攻击的模拟,验证了BFLC的安全性。
二、相关工作
提出的联邦学习的目标是训练一个高质量的集中模型,而训练数据仍然分布在大量的客户端[1]。FL的网络情况不可靠,速度相对较慢,客户端并不总是在线。近年来,FL在保证个人数据敏感性的同时,应用于视频分析、信息检查和分类、信用卡欺诈检测等诸多场景。此外,对FL的收敛性、网络延迟和恶意攻击等方面的理论研究也是较为活跃的领域。
这些年来,集中式联邦服务器受到越来越多的挑战和质疑。 将服务器的概念保持在最低限度甚至完全避免它是很自然的想法。 [5] 的研究假设数据保留在边缘设备上,但它不需要聚合服务器或任何中央组件。 Huet al.[6] 提出了一种分段gossip方法,充分利用了节点到节点的带宽,从而可以有效地实现收敛。
同时,去中心化可能是避免上述风险的最直接方式。 区块链是一种分布式账本技术,可以存储历史操作并使其防篡改。 以区块链为目标,协作机器学习方法可以摆脱中心化服务器并提高安全性。 Blazet 等人[7] 提出了一种基于机器学习的方法来加快交易签名过程,同时还包括对异常交易的个性化识别。 深度强化学习也应用于基于区块链的场景,如工业物联网、移动边缘计算、认知无线电网络和车联网。
近年来,FL 是区块链系统的新兴研究热点。可以合理地假设 FL 中的客户端可能是恶意的。 因此,所有客户端的本地更新都应记录在基于区块链的 FL 设置下。 Youet al.[8] 专注于 FL 的稳定性和收敛速度,并提出了一种基于区块链的方法来解决这些挑战。 Umeret 等[9] 提出一种基于区块链的架构,可以对多个全局模型进行并行学习。 鲍等人[10] 提出了一种基于公共区块链的 FL 架构,该架构基于节点的数据量和历史性能提供可信赖的共识。
这些基于区块链的学习方法可以有效记录节点的性能以减少恶意攻击。 但是,仍然存在三个主要挑战:
- 共识的效率。基于区块链的方法对每个打包块达成共识是一个必然的过程。考虑到FL设置中大量的学习节点,广播共识是非常耗时的。因此,减少共识成本是非常有意义的。一个[10]的相关工作选择一个领导人来执行共识。然而,这个标准依赖于许多外部数据。
- 安全模型。框架应该防止全局模型暴露给未经授权的设备和中毒。在基于区块链的FL设置下,系统的安全性研究很少。
- 框架可伸缩性。在将这些培训框架应用于实际应用程序时,我们总是需要添加细节规则以适应不同的场景。因此,框架的可伸缩性决定了它们的应用范围
在下面的章节中,我们将描述我们提出的解决这些挑战的方法。
三、框架
联邦学习(Federated Learning, FL)允许机器学习算法跨多个分布式客户机进行训练,而无需交换它们的数据样本。在最初的FL设置中,一个集中的服务器控制培训过程,包括客户端管理、全局模型维护和梯度聚合。在每一轮训练中,服务器将当前模型广播给一些参与节点。在接收到模型后,节点使用其本地数据本地更新模型,并将更新梯度提交给服务器。然后,服务器聚合并将局部梯度应用到模型中,用于下一轮。
区块链的去中心化特性可以取代中央服务器的位置。正如前面提到的,集中式服务器的功能可以由智能合约(SC)来实现,并由区块链上的事务来激活。为了实现这一愿景,我们提出BFLC,这是一个基于区块链的联邦学习框架,并获得了委员会的共识。没有集中式服务器,参与节点通过区块链执行FL,区块链维护全局模型和本地更新。考虑到FL的通信成本,我们利用了一种新的委托共识机制来解决梯度选择和块生成的任务。在下面的小节中,我们将详细介绍该框架的各个组件。
3.1 区块链存储
为了实现权限控制,BFLC的存储采用联盟区块链系统,只有经过授权的设备才能访问FL训练内容。在区块链上,我们设计了两个不同的块来存储全局模型和本地更新(如图2所示),它们合起来被称为学习信息。为了简单起见,我们假设在一个块中只放置了一个学习信息。
图2所示。介绍了区块链系统的FL存储结构及其提供的功能。
开始时,将一个随机初始化的模型放入#0块中,然后开始第0轮训练。节点访问当前模型并执行局部训练,并将经过验证的局部梯度放置到新的更新块中。当持续有足够的更新块时,智能合约触发聚合,并生成下一轮的新模型并放置在链上。我们应该注意的是,FL训练只依赖于最新的模型块,而存储历史块用于故障回退和块验证。
我们表示每轮询问所需的更新次数,并表示轮数 ast= 0,1, … 那么我们有:#t×(k+1)块包含第 t 轮的模型,其中 称为模型块,#[t×(k+1)+1,(t+1)×(k+1)−1]块包含第t轮的更新,称为更新块。 从实现的角度来看,一个模型块应该包括:块头、轮数和全局模型,而一个更新块包括:块头、轮数、本地更新梯度、上传者地址和更新分数。
3.2 委员会共识机制
区块链的链式结构保证了不可篡改。 因此,将正确的区块附加到链上是共识机制的关键组成部分。 基于竞争的共识机制首先在链上追加区块,然后达成共识。 相反,基于通信的生成机制在附加块之前达成一致。
考虑到共识的计算和通信成本,我们提出了一种高效且安全的委员会共识机制 (CCM),以在将其附加到链之前验证局部梯度。在这种设置下,一些诚实的节点将组成一个委员会,负责验证局部梯度和块生成。同时,其余节点执行本地训练并将本地更新发送给委员会。然后委员会验证更新并为其分配分数。只有符合条件的更新才会被打包到区块链上。下一轮开始时,根据上一轮节点的得分选出新的委员会,即不再连选连任。值得注意的是,更新验证是 CCM 的一个关键组成部分,因此,我们描述了一种可行的方法:委员会成员通过将其数据视为验证集来验证本地更新,验证准确性成为分数。这是最小化的方法,不需要委员会的进一步操作,只需要运行学习模型的基本能力。综合各委员的分数后,中位数将成为本次更新的分数。
利用这一机制,BFLC可以实现以下优势:
- 高效率:只有少数节点验证更新,而不是广播到每个节点并达成协议。
- K-fold交叉验证:委员会成员不参加本次本地培训。因此,我们将委员会的本地数据作为验证集。随着每一轮委员会成员的交替,验证集也会发生变化。在此设置下,实现了对FL的k-fold交叉验证。
- 反恶意:根据验证分数,智能合约将选出相应性能较好的节点,组成下一轮培训的新委员会。这意味着所选的本地数据分布是群居的,节点不是恶意的。
3.3 模型训练
委员会以外的节点每轮进行本地培训。在FL中,为了安全和隐私的考虑,原始数据将保存在本地的节点中,这些节点只将梯度上传到区块链。此外,还有两个主要挑战:
- 本地数据分布可能不是独立的和相同分布的(非iid)
- 这些设备并不总是可用的
为了解决第一个挑战,每一轮只需要一定数量的局部更新,委员会共识机制通过委员会成员的数据分布[1]来验证局部更新,从而使全局模型的泛化能力最大化。为了解决第二个问题,我们设计了一个主动的节点局部学习进程。
节点可以随时主动获取当前全局模型并进行局部训练。梯度将被发送给委员会并被验证。当合格的更新被打包到区块链上时,作为奖励,可以将令牌附加到它们上面。我们将在下一节讨论激励机制。
如上所述,每一轮都需要一定数量的有效更新。因此,当委员会验证足够多的本地更新时,聚合过程就会被激活。委员会将这些经过验证的更新汇总成一个新的全球模型。聚合可以在局部梯度[11]或局部模型[12]上进行,这两种方法的网络传输消耗是相等的。在新的全局模式被打包在区块链后,委员会将再次选举,并开始下一轮培训。
四、讨论
4.1 节点管理与奖励
BFLC的培训过程依赖于节点之间的相互促进,节点管理也是BFLC的关键部分。参与节点不仅可以访问全局模型,还可以上传更新以影响全局模型。为了控制权限,我们指定组成培训社区的初始节点负责节点管理,即管理人员。每个设备在加入培训社区之前都必须经过管理人员的验证。此验证是在黑名单模式下进行的:如果设备因为不当行为(例如提交误导性更新,传播私有模型)被踢出社区,设备将被拒绝。
根据提议的区块链存储结构,可以在新节点加入后在链上快速找到最新的全局模型。节点可以立即使用模型完成其本地任务,也可以使用本地数据更新模型,在经过共识委员会验证后获得链上的分数。值得注意的是,每轮聚合只需要一定数量的有效更新,而且也只有部分节点在线参与。因此,只要节点主动提交更新,就有可能参与全局模型更新并获得分数。同时,部分脱机节点不会影响FL的进行。
社区中的节点总是可以在不提交更新的情况下使用模型,因此需要一个有效的激励机制来鼓励节点向全局模型提供更新。为了解决这一问题,我们提出了一种按贡献分配利润的激励机制。
- 许可费:每台设备都需要支付全局模式的访问许可费,这些费用由管理者保管。节点可以无限制地访问社区中的最新模型。
- 利润分享:每一轮汇总后,管理者根据节点提交更新的分数将奖励分配给相应的节点。
因此,频繁提供更新可以获得更多的奖励,而不断更新的全局模型会吸引更多的节点参与。该激励机制具有很高的可扩展性,可以适应不同的实际应用。例如,许可费的配置、利润分担比例或红利模式都值得研究。
4.2 委员会选举
在每一轮结束时,从提供有效更新的机构中选出一个新的委员会。在分散培训设置中,这次选举显著影响全局模型的表现,因为委员会决定将汇总哪些本地更新。委员会的选举方法包括以下类别:
- 随机选举:从验证节点中随机选出新的委员会成员。从机器学习的角度来看,该方法提高了模型的泛化能力,减少了过拟合。但恶意节点伪装成正常节点,对恶意攻击的抵抗力较弱。
- 按分数选举:认证分数最高的供应商组成了新的委员会。这可能会由于委员会缺少部分节点而加剧样本的不均匀分布。然而,对于恶意的节点攻击,这种方法显著增加了攻击成本,带来了更多的安全性和稳定性。
- 多因素优化:这种方法考虑设备的多个因素(即网络传输速率)和最优选择的验证分数。然而,这种优化将带来额外的计算开销。因此,应该根据实际场景和相关需求应用此方法。
4.3 恶意节点
恶意节点定义为提交错误的恶意模型更新的节点。在最初的FL设置中,FedAvg[12]将所有更新聚合到一个新的全局模型中。如果有恶意更新,全局模型将会中毒,并获得较低的性能。如上所述,在CCM下,更新将在汇总之前由委员会验证。在本小节中,我们从理论上分析了恶意攻击的影响因素和成功的可能性。
我们将所有节点的数量表示为N,其中委员会成员的数量为M,其余N-M个节点为训练节点。 显然,当且仅当超过 M÷2 个委员会成员合作时,才接受对聚合的恶意更新。 然而,委员会成员是上一轮表现最好的M个,这意味着这些恶意委员会成员的更新被最后一个委员会的其他M÷2个恶意节点接受。 这是一个无限依赖循环,因此,只要第一委员会中有超过 M÷2 个诚实节点,任何恶意节点都不能进入委员会并损害全局模型。
考虑另一种极端情况:恶意节点通过伪装成正常节点合谋获得委员会席位。当恶意节点占据一半席位时,攻击就开始了。为了分析这种攻击模式,我们将参与节点的数量表示为A,A中恶意节点的百分比为q∈(0,1),委员会的百分比为p∈(0,1)。攻击目标在委员会中拥有超过(A×p)÷2个席位。我们假设每个节点的性能是相似的。因此,攻击成功概率可以计算为这个事件的概率:从A个节点中提取A×p个节点,其中一半以上来自A×q。通过固定A=1000,我们绘制了图3中沿p和q的概率变化。需要注意的是,只有当恶意百分比大于50%时,攻击成功概率才可能显着大于0。这个结论类似于 PoW 区块链系统中的 51% 攻击。换句话说,在一个去中心化的社区中,恶意节点应该持有 51% 的计算资源来攻击系统,成本远远超过收益。此外,历史模型和更新存储在区块链上,因此在攻击发生后,故障恢复始终是一个选项。
图3所示。攻击成功概率随p和q而变化。
4.4 存储优化
在真实的应用程序中,存储开销是决定训练设备的硬件需求的一个重要因素。根据上面提到的区块链存储方案(如图2所示),可以快速找到最新的全局模型。虽然历史模型和更新可以提供灾后恢复功能,但也会占用大量的存储空间。在这里,我们给出了一个简单可行的存储开销降低方案:容量不足的节点可以在本地删除历史块,只保留当前轮的最新模型和更新。这样既解决了部分节点存储空间不足的问题,又保留了核心节点的灾后恢复和块验证能力。然而,这种方法的缺点也很明显。区块链的可信度随着节点的删除而降低。在相互不信任的训练社区中,出于安全考虑,每个节点可能不使用此方案。
因此,可信可靠的第三方存储可能是一个更好的解决方案。区块链只维护每个模型或更新文件所在的网络地址,并记录修改操作。其他节点与中央存储交互以获取最新的模型或上传更新。这种集中存储将负责灾难恢复备份和分布式文件存储服务。
五、实验
5.1 设置和正常训练
为了证明BFLC的有效性,我们在真实世界的联邦数据集FEMNIST[13]上执行它。该数据集包含80,5263个样本和3550个用户,用于手写字符图像分类任务,并包含62个不同的类(10个数字,26个小写字母,26个大写字母)。根据数据集的指示,我们在训练社区中模拟900个设备,其中本地数据集在数量上是不平衡的,在分布上不是独立的。在随机选择活动节点后,通过内存进行局部训练和聚合。我们在Intel Core CPU i9-9900X上使用了一个名为fisco的区块链系统,该系统具有PBFT共识,其时钟速率为3.50 GHz,具有10个核和每个核2个线程。SC层是使用Solidity编程语言开发的。学习模型是用Python 3.7.6和Tensorflow 1.14.0编写的,并在Geforce RTX 2080Ti gpu上执行。
我们将 BFLC 与基本的 FL [12] 框架和作为基线的独立训练框架进行比较。 每个框架执行经典图像分类模型 AlexNet [14] 作为全局模型,并固定一组模型超参数以确保公平性。 在实验设置方面,我们将每轮活跃节点的比例定义为 k%,其中 40% 将被选为下一轮 BFLC 的委员会成员。 基础的FL的训练节点比例也是k%。 同时,独立训练将利用整个数据集。 在不同k值的条件下,我们将它们的性能记录在表I中。
从表I可以看出,随着活动节点比例的增加,BFLC的性能不断接近基本FL框架的效果,与完整数据集的单机训练相比仅略有损失。 值得一提的是,BFLC 可以通过委员会共识机制显着降低共识消耗。 例如,如果训练节点数为 P,委员会规模为 Q,则活动节点为 P+Q。 对于BFLC,每轮共识的计算量可以表示为P×Q,而广播方式为(P+Q)^2。 与独立训练相比,BFLC 还具备联邦学习的隐私数据保护功能,不需要可信的中央服务器进行管理,显着降低了隐私泄露的风险。
表1不同活动节点比例下在feminst数据集上运行的三种方法的精度
5.2 恶意攻击
训练社区中的恶意节点会产生有害的更新,如果被集成将显着降低全局模型的性能。 在本小节中,我们模拟恶意节点攻击,以演示所提出的 BFLC、基础的 FL 和 CwMed [15] 在活动节点之间不同的恶意比例下将如何受到影响。 我们假设恶意节点的攻击模式是带有逐点高斯随机噪声的随机扰动。
基础的FL将不执行任何防御措施,并集成随机选择的活跃节点生成的模型更新。CwMed构造了一个全局梯度,其中每个条目都是具有相同坐标的局部梯度中条目的中值。BFLC依靠上述委员会共识来抵抗攻击。每次更新都会从委员会获得一个评分(即,本地预测准确率的中位数)。
为了提高攻击的有效性,我们假设恶意节点是串通的,即恶意委员会的成员会给恶意更新随机的高分(例如,90% ~ 100%)。活动节点的比例固定为10%,其中20%将在下一轮选举中当选为委员会。如图4所示,BFLC比两种方法能够抵抗更高的恶意节点比例。这说明了在委员会机制的帮助下,BFLC的有效性。
六、结论
联邦学习的安全性正面临越来越大的挑战。 恶意的 FL 训练节点会破坏全局模型,而恶意的中央服务器也会泄露节点的私有数据。 基于可信的区块链系统,我们提出了 BFLC,这是一个利用委员会共识的去中心化、联邦学习框架。 这样的委员会共识可以有效避免恶意中央服务器或恶意节点的影响。 在实验部分,我们通过采用真实世界的数据集验证了BFLC框架的有效性,可以获得类似于联邦学习框架中集中训练的全局模型。 我们还讨论了 BFLC 的可扩展性,它在安全性、数据存储和激励机制方面具有广阔的研究前景。
以上是关于联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译的主要内容,如果未能解决你的问题,请参考以下文章
联邦学习笔记-《A Blockchain-based Decentralized Federated Learning Framework with Committee Consensus》论文翻译