Skip to main content

FedRecover: 使用历史信息来恢复被攻击的模型

tip

FedRecover: Recovering from Poisoning Attacks in Federated Learning using Historical Information

初识

这篇文章介绍了一种名为FedRecover的方法,它可以在联邦学习中从 Poisoning Attacks 中恢复一个准确的全局模型,同时为客户端带来较小的计算和通信成本。联邦学习是一种新兴的机器学习范式,它允许许多客户端(例如智能手机、物联网设备和边缘设备)协同学习一个共享的机器学习模型(称为全局模型)。然而,由于其分布式的设置,联邦学习容易受到 Poisoning Attacks,即恶意客户端通过向服务器发送恶意的模型更新来毒化全局模型。现有的防御方法主要集中在防止少数恶意客户端毒化全局模型或检测大量恶意客户端。然而,在检测到恶意客户端后如何从毒化攻击中恢复全局模型仍然是一个开放性挑战。一个简单的解决方案是移除检测到的恶意客户端,并使用剩余的客户端从头开始训练一个新的全局模型。然而,这种从头开始训练的恢复方法会给客户端带来很大的计算和通信成本,这对于资源受限的客户端可能是难以承受的。

FedRecover 的核心思想是,在恢复过程中,服务器使用存储在历史信息中(包括在检测到恶意客户端之前训练被毒化全局模型时收集到的全局模型和客户端模型更新)来估计剩余客户端的模型更新,而不是要求客户端计算和通信它们。具体来说,服务器使用柯西平均值定理和基于 L-BFGS 的算法来高效地估计每个客户端在每一轮中的模型更新。此外,作者还提出了一些优化策略,例如预热、周期校正、异常修复和最终调整策略,在这些策略中,服务器会要求客户端计算和通信他们精确地模型更新以提高恢复过程中全局模型准确性。理论上,作者证明了 FedRecover 恢复得到得全局模型与从头开始训练得到得全局模型相近或相同。实验上,在四个数据集、三种联邦学习方法以及无目标和有目标毒化攻击(例如后门攻击)下评估 FedRecover 的效果,并表明 FedRecover 既准确又高效。

相知

这篇文章的优点是它提出了一个创新的方法来解决联邦学习中的 Poisoning Attacks 问题,它利用了历史信息来减少客户端的开销,并且提出了多种策略来优化恢复过程。文章还给出了理论分析和实验评估,证明了其方法的有效性和效率。

这篇文章的缺点是它假设服务器能够检测到恶意客户端,并且能够存储大量的历史信息。这些假设可能在实际场景中不成立或不可行。文章也没有考虑其他类型的攻击,比如数据污染攻击或模型窃取攻击,它们也可能影响联邦学习的安全性和隐私性。

FedRecover 的工作流程

FedRecover的恢复步骤大致如下:

  • 服务器检测并移除恶意客户端。
  • 服务器重新初始化一个全局模型,并在多个回合中迭代训练它。
  • 在每个回合中,服务器使用历史信息(包括之前训练时的全局模型和客户端的模型更新)来估计剩余客户端的模型更新,而不是要求客户端计算和传输它们。
  • 服务器使用某种聚合规则将估计的客户端模型更新聚合起来,并用聚合后的模型更新来更新全局模型。

此外,FedRecover还采用了一些优化策略,如预热、周期性校正、异常修复和最终调整,以提高恢复后全局模型的准确性。这些策略会要求客户端在某些回合中计算和传输它们的精确模型更新。

Estimating Clients’ Model Updates

FedRecover的关键思想是,服务器在恢复过程中估计客户端的模型更新,而不是要求客户端计算和传输它们。具体来说,服务器在训练被投毒的全局模型之前,存储了包括全局模型和客户端模型更新在内的历史信息。在恢复过程中,服务器利用柯西中值定理和L-BFGS算法来估计每个客户端在每一轮中的模型更新。

作者使用了Cauchy中值定理来推导出一个公式,该公式可以用客户端的历史模型更新和全局模型之间的差异来估计客户端的当前模型更新。 但是,该公式需要知道每个客户端的积分Hessian矩阵,这是难以精确计算的。因此,作者利用了一个基于 L-BFGS 算法的近似方法,该方法只需要存储和计算每个客户端在前几个回合中的模型更新和梯度。

优化策略

FedRecover 还采用了一些优化策略,例如在恢复过程开始时进行预热,在每隔一定轮数时进行周期校正,在检测到异常时进行异常修复,在恢复过程结束时进行最终调整。这些策略都涉及到让客户端计算和传输它们的真实模型更新,以提高恢复后全局模型的准确性。

  • 预热:在恢复过程的前几轮中,服务器要求客户端计算和传输它们的真实模型更新,而不是使用估计值。这样可以为后续的估计提供更准确的历史信息。
  • 周期校正:在恢复过程中,每隔一定轮数(称为校正周期),服务器要求客户端计算和传输它们的真实模型更新,并用它们来校正全局模型。这样可以减少估计误差的累积,并提高全局模型的收敛速度。
  • 异常修复:在恢复过程中,如果服务器检测到某个参与者的估计模型更新与其真实模型更新之间存在较大偏差(称为异常),则服务器要求该参与者重新计算和传输其真实模型更新,并用它来修复全局模型。这样可以避免由于异常而导致的全局模型质量下降。
  • 最终调整:在恢复过程结束时,服务器要求所有客户端计算和传输它们的真实模型更新,并用它们来调整全局模型。这样可以使得恢复后的全局模型尽可能接近于从头开始训练得到的全局模型。

实验结果

理论分析:作者证明了在一些假设下,FedRecover恢复的全局模型与从头开始训练得到的全局模型之间的距离有一个上界,该上界随着恢复轮数的增加而减小。此外,作者还证明了在一些特殊情况下,FedRecover恢复的全局模型与从头开始训练得到的全局模型完全相同。

实验评估:作者在四个数据集(MNIST、CIFAR-10、FEMNIST和Shakespeare)、三种联邦学习方法(FedAvg、FedProx和q-FedAvg)以及两种毒化攻击(无目标攻击和后门攻击)上评估了FedRecover的性能。实验结果表明,FedRecover可以有效地从毒化攻击中恢复出一个准确的全局模型,并且相比于从头开始训练,它可以显著地降低客户端的计算和通信开销。

回顾

FedRecover的局限性有以下几点:

  1. 它需要服务器存储历史信息,包括每一轮的全局模型和客户端的模型更新,这会增加服务器的存储和计算成本。
  2. 它依赖于柯西中值定理来估计客户端的模型更新,但这需要知道每个客户端的积分海森矩阵,而这个矩阵很难精确计算。
  3. 它使用L-BFGS算法来近似积分海森矩阵,但这个算法需要前几轮恢复的全局模型作为输入,而这些全局模型可能存在误差。
  4. 它在恢复过程中只使用了剩余客户端的数据,而没有利用被检测出来的恶意客户端的数据,尽管这些数据可能包含一些有用信息。

文章还提出了一些可以继续延伸的方向:

  1. 探索如何利用被检测出来的恶意客户端的数据来提高恢复效果。
  2. 探索如何在不同类型和规模的攻击下保证FedRecover的鲁棒性和可扩展性。
  3. 探索如何将FedRecover应用到其他类型和场景的联邦学习问题中。