个人阅读笔记,如有错误欢迎指出!
期刊:2021 TDSC Shielding Collaborative Learning: Mitigating Poisoning Attacks Through Client-Side Detection | IEEE Journals & Magazine | IEEE Xplore
问题:
服务器对生成更新的过程没有可见性,使联邦训练容易受到中毒攻击。现有的防御方法在non-iid环境下表现不佳
创新:
实现客户端的交叉验证,每个更新都会根据其他客户端的本地数据进行评估
聚合时,服务器根据评估结果调整更新权重
为了适应non-iid,设计动态客户端分配机制,将检测任务分配给最合适的客户端
方法:
如果服务器上的测试集足够大的话能够捕获异常,将真实输入输入模型并比较最终输出结果。但在FL中,服务器不能访问客户端的数据。insight:将检测过程委托给能够执行此任务的客户端,服务器将模型发送到一组客户端,每个客户端根据其本地数据集上的预定义规则来评估模型的准确性,服务器根据评估结果调整权重
在IID环境下
验证所有更新计算量大、难度高,因此随机选择一小部分客户端来评估模型
分配策略需满足:
1、任何更新都不能分配给其所有者,以避免攻击者伪造结果逃避检测
2、分配给同一客户端的模型数量不应超过阈值,避免延迟
3、通信成本应尽可能小
前两条可以通过增加约束实现,第三条可以将一批更新聚合到一个子模型中进行评估,即对于个更新随机将其划分为个部分,将每个部分聚合到一个子模型中,每个子模型分配给个客户端
聚合过程:
采用多数投票策略,客户端提交二进制矩阵来说明相应类别的数据样本是否正确分类
服务器根据报告为潜在恶意计数。为了调整更新的权重,根据计数为每个更新添加惩罚系数:
(1)随着异常报告的增加,当报告具有更高的置信度时,系数应该急剧降低;
(2)如果超过一半的客户报告了同一子模型的异常,则应该在聚合中丢弃;
(3)如果只有一个客户报告了异常,惩罚系数不应该太大,因为结果可能不准确。
是第轮报告第更新为恶意客户端的数量,是只有一个报告异常更新时的初始惩罚系数(即),实验中将该值设为0.5
该公式旨在对异常行为进行惩罚,并鼓励客户端提供准确的本地模型更新
文中并未解释上述公式的具体含义,个人分析:
第一部分与异常数量 成二次关系,并且有一个负号,意味着异常数量增加时,惩罚因子会增加,随着异常数量的增加而加剧惩罚。
第二部分这部分与异常数量成一次关系,有一个正号,也是为了对异常情况进行额外的惩罚,但是相对于第一部分的影响较小。该项含义与第一项重复,可能是为了简化计算而设计的
第三部分这是一个常数项,用于在没有异常情况下提供一个基准值。如果没有异常报告,这一部分将提供一个恒定的惩罚值。前面的系数也是为了简化计算而设计的
最终聚合公式
在non-IID环境下:
与在IID环境下相比,只需更改客户端选择策略,模型聚合设计不变
将sub-model分配给合适的客户端进行评估,客户端只评估其数据类上的子模型。每个客户端首先告诉服务器每个标签的数据样本数量是否大于阈值,以便服务器可以将模型分配给具有足够同类样本的客户端。
为了解决评估器数量不足以检测所有的子模型,服务器先对从客户端接收的二进制向量求和,并按降序对结果进行排序,然后将设置为结果向量中的最小值,最后将个更新聚合为个子模型
总结:
优点:
对恶意客户端的数量没有限制
在non-iid上表现良好
局限性:
增加额外的通信成本与计算成本