S. Xiujin, S. Naiwen, G. Jiawei and Y. Shoujian, "FedGSDW:Enhancing Federated Learning Robustness against Model Poisoning Attack," 2024 IEEE International Conference on Big Data (BigData), Washington, DC, USA, 2024, pp. 1593-1598, doi: 10.1109/BigData62323.2024.10825224.

核心思想一句话概括

这篇文章提出了一种新方法(FedGSDW),其​​核心目的就像是在一群学生(客户端)中,找出那些可能交假作业(恶意客户端)的“捣蛋鬼”,然后让好学生(良性客户端)的作业对最终成绩(全局模型)有更大的影响,同时减少“捣蛋鬼”的破坏性​​。


分步详解

1. 背景:联邦学习中的“投毒攻击”
  • ​联邦学习是什么?​​ 可以想象成一种“协作学习”。很多设备(比如手机)各自在本地用自己数据训练模型,只把模型的“学习心得”(梯度更新)上传到一个中央服务器。服务器汇总大家的“学习心得”来改进一个总的模型。​​这样做的好处是保护了个人数据隐私​​,因为原始数据不用上传。

  • ​问题(投毒攻击)​​:有些设备可能是恶意的(比如被黑客控制),它们会故意上交错误的、甚至有害的“学习心得”,企图破坏最终的总模型。这就叫“投毒攻击”。

2. FedGSDW 的解决方案:抓出“捣蛋鬼”并削弱它

这个方法主要做了两件事:

  1. ​识别可疑客户端​​(找出谁可能是捣蛋鬼)

  2. ​差异化分配权重​​(让好学生的话语权更重,捣蛋鬼的话语权更轻)

而它实现这一切的​​秘密武器​​就是:​​梯度分割​​。

3. 关键创新:梯度分割(Gradient Splitting)

图片中那段数学公式和文字就是在描述这一步,这是最难懂也是最重要的部分。

  • ​“展平为一维向量”​​:每个客户端上交的“学习心得”(梯度更新)本身是一个复杂的、多层次的结构(比如矩阵、张量)。为了便于处理,先把它“拍扁”,拉成一个很长很长的“一维购物清单”。这个清单的长度就是 |d|

  • ​“随机划分为p个子集”​​:服务器收到所有客户端的“购物清单”后,​​不打乱单个客户的清单​​,而是把清单上的所有“商品项”(参数)随机地分成 p个组。

    • ​举个例子​​:假设清单长度是1000 (|d| = 1000),p=5。那么就把这1000个项,随机地分成5个小组(J1, J2, ..., J5),每个小组大约200项。​​第i个客户端的梯度就被拆分成了5个更短的子向量​​:ΔGroupLM_i(1,t), ΔGroupLM_i(2,t)... ΔGroupLM_i(5,t)

​为什么要大费周章地做分割?​

这是方法的精妙之处。通过分割,服务器可以​​从更精细的维度(子向量级别)去分析每个客户端的梯度​​,而不是把它当成一个整体。这样更容易发现局部的不一致和异常模式,从而提高识别恶意客户端的准确性。

4. 如何识别“捣蛋鬼”?(基于分割后的子向量)

服务器有了每个客户端的 p个子向量后,就开始分析:

  • ​翻转分数(Flip Score)​​:大概意思是看一个客户端的子向量方向(是正向更新还是反向更新)与其他大多数客户端是否一致。如果老是不一致(老是“唱反调”),就很可疑。

  • ​余弦相似度(Cosine Similarity)​​:这是衡量两个向量方向是否一致的指标。方向越接近,值越接近1。服务器会计算每个客户端子向量与一个参考向量(比如所有向量的平均值)的相似度。​​相似度越低,说明这个客户端越“格格不入”,越可疑​​。

通过综合计算每个客户端在所有轮次、所有子向量上的这些指标,服务器就能为每个客户端计算出一个 ​​“历史可疑分数”​​。

5. 如何实现“差异化权重”?
  • 得到“可疑分数”后,服务器会使用一个叫做 ​​Softmax​​ 的函数(文中提到的)将所有分数转换成一组权重值。

  • ​这个权重的特点是:可疑分数低的(良性客户端),权重值大;可疑分数高的(恶意客户端),权重值小。​

  • 最后,在汇总所有客户端的“学习心得”(聚合步骤)时,​​不是简单地求平均​​,而是做一个​​加权平均​​:最终模型更新 = (客户端1的梯度 x 权重1) + (客户端2的梯度 x 权重2) + ...

这样一来,好客户端的贡献被放大,坏客户端的破坏力被减弱,从而保证了最终总模型的质量和安全性。


举个例子 🌰

假设有三个客户端:A(良性)、B(良性)、C(恶意)。

  1. ​没有FedGSDW(普通联邦学习)​​:

    • 服务器简单平均三者的梯度:最终更新 = (A + B + C) / 3

    • 恶意客户端C的破坏性被完整地保留了1/3。

  2. ​有FedGSDW​​:

    • 服务器通过梯度分割和计算,发现A和B很相似,C和它俩差别很大。

    • 于是分配权重:A: 0.4, B: 0.4, C: 0.2 (注意:权重之和为1)

    • 服务器进行加权平均:最终更新 = (A * 0.4) + (B * 0.4) + (C * 0.2)

    • 可以看到,C的破坏性影响从1/3 (≈33%) 被降低到了 20%。模型更加安全。

缺点

1. 计算和通信开销较大

  • ​原因​​:该方法需要将每个客户端的梯度向量展平后,再随机分割成 p个子集(如公式(1)所示),并在每个通信轮次中对这些子向量进行​​余弦相似度​​和​​翻转分数​​的计算。

  • ​影响​​:这会显著增加服务器端的计算负担。同时,如果需要客户端传输更多中间信息(而不仅仅是梯度更新),也可能增加通信开销。联邦学习本身对通信效率要求很高,额外的开销是一个重要缺点。

2. 超参数 p(分割数量)难以设定

  • ​原因​​:方法中需要预先设定将梯度分割成多少份(即 p的值)。p的大小会直接影响检测效果:

    • p太大(分割得太细):每个子向量包含的信息过少,可能导致相似度计算不可靠,噪声影响变大。

    • p太小(分割得太粗):分析粒度不够,可能无法有效识别出精心构造的、只在局部参数上做细微手脚的恶意攻击。

  • ​影响​​:找到一个普适的、最优的 p值非常困难,可能需要针对不同的模型和任务进行大量实验和调优,这降低了方法的实用性和便捷性。

3. 对高级或合谋攻击的防御可能不足

  • ​原因​​:该方法的核心是基于“多数良性客户端梯度方向大致相似”的假设。然而,一些高级的恶意攻击(如 ​​合谋攻击​​)可以做到:

    • ​多个恶意客户端相互勾结​​,上交彼此相似且与良性客户端方向也相似的梯度,从而“伪装”成良性客户端,逃避检测。

    • ​针对性地攻击模型中的特定参数​​,其破坏性在粗粒度或平均值上不明显,可能绕过基于子向量相似度的检测。

  • ​影响​​:面对这种有预谋的、复杂的攻击,FedGSDW 的防御效果可能会大打折扣。

4. 可能误伤良性客户端(假阳性)

  • ​原因​​:在现实联邦学习环境中,由于客户端数据的​​非独立同分布​​,良性客户端的本地梯度更新方向本身就可能存在很大差异。例如,用户A的手机主要存猫的图片,用户B的手机主要存狗的图片,他们训练出的图像识别模型梯度方向本来就会不同。

  • ​影响​​:FedGSDW 可能会将这种由于​​数据异构性​​造成的正常梯度差异,误判为“恶意行为”,从而错误地降低这些良性客户端的权重。这反而会损害模型聚合的公平性和最终性能。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐