Page 349 - 《软件学报》2025年第9期
P. 349
4260 软件学报 2025 年第 36 卷第 9 期
不明确训练数据分布的情况下, 利用离散更新空间并引入参与者的贡献实施防御, 同时也保留了 CEFL 的隐私特
性. 此外, 文献 [31] 通过识别良性更新和投毒更新并表示为不同的簇实现防御, 显然, 在未能选择最优决策边界或
面对具有隐身度量的攻击时, 这种方法很容易失败. 最后, 我们还评估了 FedDiscrete 的防御在面对动态的攻击能
力时的效果. 总之, 比较现有的防御机制, 所提方法 FedDiscrete 能够从离散化模型更新的新颖角度来探讨缓解投
毒攻击的防御策略, 同时引入贡献度指标来确保参与 FL 训练任务的客户端之间的公平性, 通过不断削弱攻击者
所做出的贡献, 从而创建一个适用于云边缘计算环境的可行且有效的防御机制.
4 实验评估
为了评估 FedDiscrete 方法的性能, 我们采用 Python 创建虚拟的云边端环境, 并在 CEFL 框架下执行了广泛的
实验. 其中, 对于边缘端, 设置 E (E = 5) 个边缘节点, 且每个边缘节点平均接收 m (m = 2) 个参与者上传的本地模型
更新. 所有实验均在 Python 环境下使用 PyTorch 实现, 具体配置为: 英特尔酷睿 i7-12700H CPU 处理器, 16 GB 内
存, 英伟达 GeForce RTX3070Ti GPU.
4.1 实验设置
数据集: 本文采用了 FL 领域中 3 种经典的数据集, 包括手写数字识别数据集 MNIST [42] , 图像数据集 CIFAR-
10 [43] 和时尚服装分类数据集 Fashion-MNIST [44] , 其广泛使用在现有投毒攻击和防御方法中. MNIST 和 Fashion-
MNIST 分别是由从 0 到 9 的手写数字和服装形成的 28×28 的灰度图像, 且均是由 60 000 张图像组成的训练数据
集和 10 000 张图像组成的测试数据集; CIFAR-10 是由 60 000 张 32×32 的彩色图像构成的 10 个类, 包括 50 000 张
图像用于训练和 10 000 张图像用于测试, 每个类别有 6 000 个图像. 特别地, 本文也采用一种医学图像数据集 Path-
MNIST [45] , 它是由不同病人的病理切片图像形成的 28×28 的彩色图像, 且包含 9 个类别的病理学图像, 每个类别
对应不同的病变类型.
模型设置: 本文实验主要是为了评估防御机制的综合性能, 而不是搜索具有最好的 FL 性能的学习模型. 基于
此, 我们定义了 CEFL 框架下的一些默认设置和学习模型. 对于 MNIST 数据集, 我们采用典型的 LeNet 模型 [46] ,
训练 SGD 的批次大小为 64, 且在 IID 和 non-IID 场景下分别执行全局迭代轮数 R = 50 和 R = 100. 对于 CIFAR-10
数据集, 我们采用卷积神经网络模型 Conv8, 其是由 8 个卷积层和 3 个全连接层构成的学习模型, 训练 SGD 的批
次大小为 32, 全局迭代轮数 R = 50. 对于 Fashion-MNIST 数据集, 我们采用一个包含两个卷积层和一个全连接层
构成的学习模型, 其具有与 MNIST 相同的设置. 不管 IID 还是 non-IID 场景, 我们在每个数据集上均设置学习率
为 0.01, 以实现较小的训练误差并快速收敛, 且客户端本地训练迭代 epoch = 15. 对于 PathMNIST 数据集, 我们同
样采用一个包含两个卷积层和一个全连接层构成的学习模型, 并设置训练 SGD 的批次大小为 32, 本地训练迭代
epoch = 5.
,
攻击设置: 在本文中, 我们设置 N = 100 K = 10. 而且, 我们考虑了不同的攻击能力, 主要表现为每轮参与者中
攻击者的比例 b ( ), 范围为 10%–50%, 即 b = 10%,20%,30%,40% 和 50%, 则对应攻击者的数量为 M = 1,2,3,4 和 5.
注意, b 值是由参与每轮训练的客户端的数量确定, 即 M = b× K, 不同于以往的一些工作是基于所有客户端的数量
选择攻击者, 使得实际参与任务训练的客户端中可能没有或者存在多数攻击者, 导致无法准确探讨攻击者的投毒
N 个客户端中随机选择参与者. 其次, 我们
影响以及防御性能. 为了确保训练的公平性和攻击的不确定性, 我们从
考虑广泛使用的标签翻转投毒的攻击形式, 即每次翻转源标签类为目标标签类, 以对子任务实施投毒, 记为
sc → tc. 具体地, 对于 MNIST 和 Fashion-MNIST 数据集, 我们设置 sc → tc 为 4 → 6, 对于 CIFAR-10 数据集, 设置
sc → tc 为 5 : cars → 3 : frogs, 对于 PathMNIST 数据集, 我们设置 sc → tc 为 1 → 0. 除了攻击者数量和攻击形式外,
我们还将不同的攻击场景作为评估防御性能的重要因素, 包括 IID 和 non-IID 设置. 不管是 MNIST, Fashion-
MNIST, 还是 CIFAR-10, 我们均采用迪利克雷分布 [47] 给 N 个参与者划分训练数据集, 对于 IID 攻击场景, 我们设
α = 1000000, 这样, 良性参与者和恶意攻击者很可能共享同一类样本, 这就给投毒攻击带来了挑战; 对
置超参数
于 non-IID 攻击场景, 我们设置 α = 1, 以生成 non-IID 数据.

