想象一下这所学校的场景:每个班级的课代表都会把自己班最近总结的学习心得(梯度)交给教研组长,教研组长把所有人的心得揉成一份新的年级版统一教材(全局模型)。可是突然有一天,有几个班集体使坏,他们的课代表交上来的不是“心得”,而是故意写错的重点、倒着教的解题步骤。如果组长不加分辨,把这些毒情报也揉进教材里,那整本教材就会被越带越偏,好学生也遭殃。 这个故事其实就是联邦学习的日常。在现实中,医院、银行、手机厂商各自在本地用数据训练模型,只把模型更新的“心得”传给参数服务器;服务器汇总后再分发给各方。可一旦有参与方遭到黑客劫持,或者本身就是恶意的,它就能上传精心篡改的梯度,把全局模型引向灾难。如何在这种“有人使坏”的前提下,仍然从一堆良莠不齐的心得里选出真知灼见?这就是我们要聊的联邦学习拜占庭容错机制。
学习联邦学习拜占庭容错,能让你在设计分布式AI系统时不再“裸奔”——面对参与节点被攻破、数据被投毒的真实威胁,你会拥有数学建模、鲁棒聚合算法与防御评估的完整工具箱,这是联邦学习平台架构师与安全研究者的核心生存技能。
可视化演示
展示拜占庭攻击威胁建模、Krum与中位数鲁棒聚合算法对比及防御效果评估,切换模式观察联邦学习如何抵御恶意客户端梯度投毒攻击。
本节配有交互动效(进入视口后自动加载,约 3KB)。
拜占庭攻击威胁建模 恶意客户端篡改梯度方向,向服务器发送投毒梯度使全局模型偏离最优解 拜占庭攻击在联邦学习中尤为危险,因服务器无法直接审计客户端本地训练过程 Attack: g_malicious = g_true + δ×noise 当恶意客户端比例超过阈值时,简单平均聚合将完全失效
拜占庭问题
中世纪,东罗马帝国的将军们攻打一座坚城,四面围困的军队必须同时发起进攻才可能取胜。可坏消息是:传令兵可能被敌军截获、被调包,甚至某位将军早已叛变。每个人都不确定隔壁的将领会按时冲锋,还是临阵倒戈。这就是著名“拜占庭将军问题”的原始画面——在一个存在叛徒的系统里,成员之间如何达成可信的一致行动。
把城墙换成参数服务器,把将军换成参与联邦学习的客户端,同一个难题就迎面而来。1982年,Lamport 等学者正式给这个问题定了名,并指出:在存在叛徒的分布式系统中,仅靠常规通信协商几乎无法达成一致。联邦学习恰恰就是这样一个分布式系统——成千上万的手机、机构节点各自为政,任何一台设备都可能被黑客劫持,或者本身就是恶意方。
恶意客户端最常见的破坏手段叫作梯度投毒:它把自己本地算出的真实梯度丢弃,转而上传精心构造的假梯度。服务器若照单全收这份毒情报,全局模型就会沿着错误方向越走越偏。更麻烦的是,恶意参与者表面上与普通客户端毫无区别,服务器无法通过身份或者日志直接分辨谁是叛徒。防御必须转移到数学与统计层面,而不是靠身份认证。
所以教研组长遇到的不只是“有人交了烂心得”,还有“心得看起来挺像回事,实则是毒药”。要让年级教材不被带歪,唯一的办法就是升级汇总心得的方式——这正是后面各章要讨论的鲁棒聚合算法。
联邦学习基础
每一轮训练开始前,教研组长会把上一版教材发给各班课代表。各班同学在自己教室里,用本地数据琢磨这些重点,得出一点独家心得,也就是模型更新的梯度。这些心得只存在课代表脑子里,不会泄露到校外——这正是联邦学习保护隐私的巧妙之处。
假设总共有 $K$ 个班级,第 $k$ 个班级有 $n_k$ 位同学。课代表计算出梯度 $\Delta w_k$ 上传给组长;组长把 $K$ 份心得按班级人数加权平均,再沿着平均后的更新方向调整教材。这一标准流程叫作 FedAvg(联邦平均),它是联邦学习最基础的聚合算法。
FedAvg 的更新公式如下:
在“全班都诚实”的理想世界里,取平均无可厚非:人多声音大,意见自然向真理靠拢。可一旦混入谎报军情的课代表,平均就等于把毒药也喝了下去。组长开始意识到:需要一些特别的手段来辨别真假心得。
- $w_{t+1}$更新后的全局模型,即教研组长修订出的“新一版年级教材”。
- $w_t$当前轮的全局模型,也就是上一版教材。
- $\eta$学习率,相当于组长采纳心得时打的折扣——一次只吸收一点点,避免步子迈太大。
- $\sum_{k=1}^{K}$对全部 $K$ 个班级逐一求和,每个班的心得都要算进来。
- $\dfrac{n_k}{n}$第 $k$ 个班级人数占总人数的比例。班级人多,说话的权重就大。
- $\Delta w_k$第 $k$ 个课代表上传的梯度,也就是他这份心得里的“修改意见”。
攻击建模
毒笔记也有不同型号。有的课代表把自己的心得原样反着写,把解题步骤倒过来;有的干脆乱写一气,画满不知所云的符号;还有的只针对某一类例题埋雷,平时看不出来,用到时候才爆炸。
学术界把恶意客户端的行为建模为拜占庭攻击。设第 $k$ 个客户端本应上传真实更新 $\Delta w_k$,但它实际上传的是 $g_k$。最简单的一种策略是梯度翻转:把真实梯度反转方向,再加上噪声干扰:
翻转攻击之外还有后门投毒:恶意客户端只在含有特殊触发器的本地样本上做手脚,使模型对特定输入产生错误判断,平时模型表现依然正常。这些攻击的共同点是:恶意梯度与合法梯度在向量空间中显著偏离,却又没有唯一特征能被一眼识破。因此防御算法必须在“最坏情况下有 $f$ 个客户端叛变”的假设下设计。
教研组长不知道毒笔记长什么样,但心里有数:最多可能有多少份是假的。这个数字 $f$,将成为后续所有防作弊策略的出发点。
- $g_k$恶意客户端 $k$ 真正上传给服务器的梯度值,也就是服务器实际收到的那份毒笔记。
- $-\Delta w_k$真实梯度的相反数。方向翻转了 180 度,原本让模型往好的方向走,现在往相反方向带。
- $\xi$随机噪声向量,用于掩盖恶意行为的规律性,避免被一眼识破。
- $k \in S$下标 $k$ 属于恶意客户端集合 $S$,表示这招只对叛徒生效。
鲁棒聚合入门
假如组长面对的 11 份心得里有 3 份毒情报,直接平均肯定不行。普通人的第一反应是:把最夸张的几份抽出来扔掉。但扔多少?怎么判断哪份是“真夸张”?这就需要专门的统计工具箱。
FedAvg 的脆弱性其实可以量化:一个极端大的梯度值就能把平均值拉离真实方向。换句话说,“平均”这个操作对单点污染毫无免疫——统计学上称为均值缺乏稳健性。鲁棒聚合算法的目标,就是在不知道哪些客户端是坏人的前提下,从全部梯度中估计出一个接近真实更新的方向。
目前常用的鲁棒聚合算法大致分为三族:基于选择的算法(如 Krum),在一堆梯度里挑一个最可信的;基于排序的统计算法(如 Median),逐坐标取中位数;基于裁剪的算法(如 Trimmed Mean),排序后丢弃首尾极端值再平均。三族算法的共同哲学是:不轻易相信任何一个数值,而是通过相互比较与统计规律筛除异常。
教研组长手上从此有了三套防忽悠工具:一套是只听最像样的课代表,一套是每个问题都对答案取中间,一套是扔掉最离谱的答卷再批改。接下来三节分别拆解。
Krum 算法
Krum 的思路很像组长听汇报:他相信,真正在认真备课的课代表,彼此的心得会比较接近;混进来的叛徒,即便伪装,也总会和大家格格不入。于是组长决定:只采纳“和其他人气质最接近”的那份心得。
Krum 为每个客户端定义一个评分:它到其他梯度之间距离平方之和。距离越近的一组点越可信,最终选出的梯度满足:
Krum 的输出是评分最小的那个梯度本身,再乘学习率更新全局模型。它不要求知道攻击者的具体身份,只需要攻击者数量上界的估计。缺点是只使用一个梯度,合法信息利用不足,且需要计算两两距离,复杂度约为 $O(n^2 d)$。
只信最像样的那位课代表,好处是干净利落,坏处是万一叛徒彼此串通,伪装成一个小团体,组长可能会挑中团体中央的“伪装大师”。
- $s_i$第 $i$ 个客户端获得的“合拍评分”,数值越小越可信。
- $\Delta w_i$第 $i$ 个客户端上传的梯度,也就是他交来的那份心得。
- $\| \Delta w_i - \Delta w_j \|^2$两份梯度之间的欧氏距离平方,用来量化“这两份心得差多远”。
- $\text{Top}_m(i)$与第 $i$ 个客户端最接近的 $m$ 个客户端集合。
- $m = n - f - 2$最近邻数量由客户端总数 $n$ 减去最大恶意数 $f$ 再减 2,保证至少留出安全余量。
Median 算法
另一条思路更像批改选择题:每个问题把所有课代表的答案罗列在桌上,按大小排成一排,取正中间的那个答案作为标准答案。一个故意填错答案的人,最多只能把自己的答卷歪到两端,却无法移动中间的位置。
Median 算法同样简单而优雅:不再看整个梯度向量做整体比较,而是把向量拆开,对每一个维度(也就是模型参数的一个分量)独立地取中位数。于是恶意客户端即使在某个维度上给出极端值,也会被中位数天然过滤掉。
中位数是统计意义上最稳健的位置估计:只要恶意客户端的数量不超过 $n/2$,中位数就不会被推离真实值的中心。它的计算复杂度只有 $O(nd \log n)$,比 Krum 快得多。代价是每个维度独立处理,可能破坏维度之间的相关性,在梯度分量高度耦合时收敛稍慢。
组长逐题取中间答案的做法,稳妥高效,不怕个别极端答卷。但若两个维度是联动的,“逐题判断”可能会忽略题目之间的内在联系。
- $\hat{w}_j$最终被服务器采纳的第 $j$ 个参数值,即这一道题的“标准答案”。
- $\operatorname{median}$取中位数的运算,对应“排队后正中间的那个人”。
- $\Delta w_{i,j}$第 $i$ 个客户端上传梯度在第 $j$ 个维度上的分量。
- $\{ \Delta w_{1,j}, \ldots, \Delta w_{n,j} \}$全部 $n$ 个客户端在第 $j$ 个维度上的取值集合。
Trimmed Mean
Trimmed Mean 的做法则最有“批改潜规则”味道:老师把某道题的所有答案排序,先划掉最离谱的最高分和最低分,剩下的再取平均。它比 Median 更温和——不是只留中间一个,而是把两端剪掉一截。
参数是 $r$,即每个维度需要裁剪掉的极端值个数。把第 $j$ 个维度上的全部 $n$ 个值按大小排序,得到序列 $\Delta w_{(1),j} \leq \dots \leq \Delta w_{(n),j}$,然后丢弃前 $r$ 个和后 $r$ 个,用中间 $n - 2r$ 个值求平均:
从公式可以看出,$r=0$ 时 Trimmed Mean 退化为 FedAvg,毫无防御;$r$ 接近 $n/2$ 时只剩中间的少数几个值,行为逐渐接近 Median。为了保证防御效果,通常要求 $r$ 至少不小于恶意客户端数量 $f$。它比 Median 多利用了中间样本的信息,收敛通常更快,但多了一个需要人工设定的超参数 $r$——这正是它比前两者更依赖调参经验的地方。
组长的批卷方法有了弹性:扔多少份离谱答卷,取决于他心里估计的“坏孩子数量”。扔少了防不住毒情报,扔多了又把好学生的心得浪费了。这一刀切在哪里,就是 Trimmed Mean 的灵魂所在。
- $\hat{w}_j$第 $j$ 维最终采纳的参数值,也就是这道题批改后的得分。
- $\Delta w_{(i),j}$第 $j$ 维上从小到大排序后的第 $i$ 个值,$(i)$ 下标表示已经排序过。
- $r$每端裁剪掉的极端值个数,是算法最重要的超参数。
- $n - 2r$裁剪后剩余值的数量,作为平均的分母。
- $\sum_{i=r+1}^{n-r}$从第 $r+1$ 个值一直加到第 $n-r$ 个值,正好跳过两端被划掉的部分。
防御评估
工具备齐,教材成稿,教研组长还要回答一个问题:这套防作弊手册真的把教材编好了吗?评判标准不是看谁信誓旦旦,而是看期末考试——模型的准确率能不能保住,训练流程能不能准时收敛。
评估拜占庭容错机制一般从三个维度入手:一是攻击下模型精度,即加入 $f$ 个恶意客户端后,全局模型仍能达到的准确率;二是收敛速度,即模型到达目标精度所需的训练轮数;三是攻击容忍上限,即恶意客户端占比超过多少时算法彻底失效。经典结论是:在独立同分布数据下,当 $f < n/2$ 时,Median 与 Trimmed Mean 等算法可证明收敛;Krum 则需要更宽松的 $f + 2 < n$ 条件。
实际对比中,还应关注恶意梯度的仿真方法。梯度翻转攻击下,Krum 和 Median 表现接近;在协同投毒下,Trimmed Mean 因为裁剪了更多端点信息,往往更稳定。算法选型没有银弹:客户端数量多、算力充足时可用 Krum;要求高吞吐时用 Median;想要平衡精度与稳健性时用 Trimmed Mean,并用验证集提前扫描 $r$ 的取值。
教研组长最终做成了一本“防忽悠手册”:先摸清毒笔记的最坏数量,再选择手头分寸最适合的汇总策略,拿到验收报告后持续调参。联邦学习的安全,从来不是某一次聚合的运气,而是一整套可评估、可取舍的机制设计。
---
AI 应用场景
银行联盟反欺诈模型
阶段:联邦训练的聚合与安全加固
解决的问题:几十家中小银行结成联盟,在不共享原始交易流水的前提下联合训练反欺诈模型。过去采用 FedAvg,某家银行若被黑客攻破并注入恶意梯度,整个联盟的模型会快速失灵。引入 Trimmed Mean 后,即使少数节点被攻破,恶意梯度也会在排序裁剪中被过滤,其他成员仍能维持较高的欺诈识别率。
具体案例:某省级银行联盟有 12 家成员行,每轮训练时假设最多 2 家节点可能异常。平台将聚合层从 FedAvg 切换为 $r=2$ 的 Trimmed Mean 后,在模拟梯度翻转攻击下,模型 AUC 从掉到 0.62 回升并稳定在 0.91。
海量设备联邦学习
阶段:边缘设备上传更新后的鲁棒聚合
解决的问题:手机厂商向海量用户设备分发模型,设备端用本地数据微调后再上传更新。攻击者可能通过恶意 App 控制部分设备,用“后门攻击”让模型在特定图案出现时产生错误预测。采用 Median 聚合后,单台设备的极端更新很难影响全局,设备生态的大盘保持稳定。
具体案例:某智能输入法厂商在 100 万台设备上训练下一词预测模型,其中约 3% 设备被注入恶意后门。使用逐维 Median 后,后门触发成功率从 87% 降至 4% 以下,正常输入准确率几乎不受影响。
多中心医疗影像协同
阶段:分布式训练中的异常节点防御
解决的问题:多家医院协作训练肺部 CT 诊断模型,某个机构的设备因校准异常,产出的梯度等价于一个无意的“拜占庭节点”。鲁棒聚合能同时防御恶意攻击与无意的数据退化问题。
具体案例:某多中心医学影像项目中,5 家医院中 1 家因扫描仪参数错误导致梯度分布偏移。改用 Krum 聚合后,其余 4 家机构的协作模型敏感度保持在 0.88,避免了因单点异常导致的整体模型崩溃。
Python 演示
import numpy as np TRUE_UPDATE = np.array([1.0, -0.5, 0.8, 1.2]) def generate_updates(n=8, f=2, seed=0): rng = np.random.default_rng(seed) updates = [] for _ in range(n - f): noise = rng.normal(0, 0.2, size=TRUE_UPDATE.size) updates.append(TRUE_UPDATE + noise) for _ in range(f): flip = -TRUE_UPDATE + rng.normal(0, 0.3, size=TRUE_UPDATE.size) updates.append(flip) return np.array(updates) def fed_avg(updates): return updates.mean(axis=0) def krum(updates, f): n = len(updates) m = n - f - 2 scores = [] for i, g_i in enumerate(updates): dists = np.sort(np.linalg.norm(updates - g_i, axis=1)) scores.append(dists[:m].sum()) return updates[int(np.argmin(scores))] def median(updates): return np.median(updates, axis=0) def trim_mean(updates, r): sorted_u = np.sort(updates, axis=0) return sorted_u[r:-r].mean(axis=0) def cos_sim(a, b): return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b) + 1e-12) updates = generate_updates(n=8, f=2, seed=42)for name, grad in [ ("FedAvg", fed_avg(updates)), ("Krum", krum(updates, f=2)), ("Median", median(updates)), ("TrimmedMean", trim_mean(updates, r=2)),]: sim = cos_sim(grad, TRUE_UPDATE) print(f"{name:12s} 与真实更新的余弦相似度: {sim:.4f}")
rng = np.random.default_rng(seed)固定随机种子,保证每次运行可复现,方便不同算法公平对比。noise = rng.normal(0, 0.2, size=TRUE_UPDATE.size)为合法客户端的梯度添加小幅噪声,模拟真实的本地数据差异。flip = -TRUE_UPDATE + rng.normal(0, 0.3, size=TRUE_UPDATE.size)恶意客户端把真实更新方向翻转 180 度并加噪声,对应梯度翻转攻击。updates.mean(axis=0)FedAvg 对全部客户端梯度直接取平均,未做任何防御。dists = np.sort(np.linalg.norm(updates - g_i, axis=1))计算当前梯度到所有其他梯度的欧氏距离并排序。scores.append(dists[:m].sum())取最近的m个距离之和作为 Krum 评分。np.median(updates, axis=0)对每个参数维度独立取中位数,实现 Median 聚合。sorted_u[r:-r].mean(axis=0)排序后裁剪首尾各r个极端值,再对剩余值取平均。cos_sim(grad, TRUE_UPDATE)用余弦相似度衡量聚合结果与真实更新方向的一致程度,越接近 1 越好。
常见误区
误区人家都说联邦学习保护隐私,数据都不出本地,恶意客户端能搞什么破坏?所以直接用 FedAvg 就安全了。
正解联邦学习防御的是“数据泄露”,但模型更新(梯度)本身就是富含信息的载体。恶意客户端可以把本地梯度篡改后发给服务器,这直接破坏全局模型。FedAvg 对单份极端梯度毫无招架之力,隐私保护与拜占庭容错是两个独立的问题。
为何常见:把“隐私保护”与“安全健壮性”混为一谈。隐私解决的是“不泄露原始数据”,鲁棒性解决的是“不被恶意输入破坏”,二者是联邦学习安全的不同层面。
误区中位数就是排序后中间那个数,跟平均数差不了多少,随便用一个就行。
正解在无异常数据时二者接近,但出现恶意极端值时,一个极大值就能任意拉伸均值,而中位数几乎不动。以 11 个客户端为例,5 个恶意客户端把值取到极大,均值可能偏到外太空,而中位数仍是第 6 个(合法区域)的值。
为何常见:平时数据集干净时两者差异不大,只有极端值出现才显现差别,而拜占庭攻击恰好就是制造极端值。
误区Krum 也算了所有梯度的距离和,所以它本质上是对所有梯度做了加权平均,是 FedAvg 的高级版。
正解Krum 不做加权平均。它先对每个梯度计算与其余梯度的距离和,然后选择得分最小的那一个梯度,直接用这个梯度更新模型。除了这一个被选中的梯度,其余梯度全部被丢弃。
为何常见:看到 Krum 中计算“距离和”就把“和”误解为“平均”,忽略了最终返回的是一个单点,而不是所有点的加权求和。
误区Trimmed Mean 把两端裁掉,r 越大裁剪越多,毒情报肯定越难混进来,那就把 r 设大一点,最好裁掉一半。
正解r 要配合恶意客户端数量 f 来设定,通常要求 r ≥ f 才能保证基本安全。但 r 过大会误删大量合法信息,模型精度和收敛速度都会显著下降。r 接近 n/2 时,算法退化为只保留中间一两个值,合法梯度信息几乎被浪费殆尽。
为何常见:直观上“多扔点垃圾总没坏处”,忽视了合法信息也被一起扔掉,这是防御与信息利用之间的经典权衡。
面试题
Q1. 拜占庭将军问题最早描述的是哪种分布式场景?
- A.多个将军围城时协调作战← 正确答案
- B.银行间共享交易流水
- C.手机厂商训练语音模型
- D.搜索引擎抓取网页内容
答案:A。拜占庭将军问题源自军事通信场景:将军们需要通过信使协调进攻时间,而信使可能被截获、将军可能叛变。问题核心是如何在存在内部叛徒时达成一致行动。联邦学习中的恶意客户端就是现代版的“叛变将军”,其余选项都是 AI 应用场景而非问题起源。
Q2. 联邦学习默认的 FedAvg 聚合算法在存在拜占庭攻击时表现如何?
- A.依然保持模型稳定
- B.可以被单份恶意梯度拉偏← 正确答案
- C.自动忽略异常客户端
- D.需要客户端互相通信核对
答案:B。FedAvg 对全部客户端梯度取平均,一个极端大的恶意值就能把平均值拉离真实方向,就像教研组长把毒笔记也揉进教材。它既不会自动忽略异常,也不要求客户端互相通信,因此 B 正确。
Q3. Krum 算法最终选取的梯度是哪个?
- A.所有梯度的加权平均
- B.距离和最小的单个梯度← 正确答案
- C.数值最大的那个梯度
- D.顺序排列后的中间梯度
答案:B。Krum 为每个梯度计算到其他梯度的距离平方和,选择该距离和最小的那一个梯度作为全局更新,其余全部丢弃。它不是加权平均,也不取中间或最大值,而是选“与所有人最合拍”的单个梯度。
Q4. Median 聚合算法对每个参数维度采用什么统计量?
- A.该维度的平均值
- B.该维度的中位数← 正确答案
- C.该维度的众数值
- D.该维度的最大值
答案:B。Median 算法把梯度向量拆成多个维度,对每个维度独立排序并取中位数。中位数的稳健性保证了只要恶意客户端少于一半,极端值就无法移动中心位置,因此选中位数。
Q5. 客户端总数 n=10,恶意客户端数 f=3 时,Krum 的最近邻数量 m 应为多少?
- A.m 等于 3 个
- B.m 等于 5 个← 正确答案
- C.m 等于 7 个
- D.m 等于 8 个
答案:B。Krum 的最近邻数量公式为 m = n − f − 2,代入 n=10、f=3 得到 m=5。减 2 是为攻击者数量估计留出安全余量,保证评分不会被恶意梯度主导。
Q6. 设定 Trimmed Mean 的裁剪量 r 时应注意什么?
- A.r 应不少于恶意数量← 正确答案
- B.r 总是越大效果越好
- C.r 过大会损失合法信息← 正确答案
- D.r 与恶意数量不相关
答案:AC。为了保证防御效果,r 至少要等于恶意客户端数 f,否则极端值会漏进平均;但 r 也不是越大越好,过大时会裁掉大量合法信息,导致精度和收敛速度下降。r 与恶意数量强相关。
Q7. 梯度翻转攻击的恶意客户端会如何操作?
- A.上传反方向的梯度← 正确答案
- B.上传与真实相同的梯度
- C.随机丢弃本地数据
- D.拒绝参与任何训练
答案:A。梯度翻转攻击是把真实梯度取相反方向再上传,服务器若采纳这份梯度,模型更新就会朝目标相反方向移动。选项 B 是诚实行为,C 和 D 属于不参与或数据问题,不属于翻转攻击。
Q8. 深入理解 Krum 算法时,正确的说法包括哪些?
- A.计算复杂度随客户端增多上升← 正确答案
- B.本质上是对所有梯度加权平均
- C.最近邻数量依赖恶意上限← 正确答案
- D.需要客户端之间直接通信
答案:AC。Krum 需要计算所有客户端之间的两两距离,复杂度约 O(n²d),随客户端数上升。最近邻数量 m = n − f − 2 直接依赖恶意上限 f。它返回单个梯度而非加权平均,且所有通信都通过服务器,客户端之间不直接通信。
Q9. 与 FedAvg 相比,鲁棒聚合算法的核心改进是什么?
- A.增加本地训练轮次
- B.在聚合阶段过滤恶意梯度← 正确答案
- C.提高服务器通信频率
- D.扩大模型的参数量
答案:B。FedAvg 的弱点在聚合阶段——对全部梯度一视同仁。鲁棒聚合算法(Krum、Median、Trimmed Mean)都在聚合时加入筛选或修正机制,降低恶意梯度对全局模型的破坏。本地轮次、通信频率、参数量都不是核心差异。
Q10. 评估拜占庭容错防御效果时,合理的指标包括哪些?
- A.攻击下的模型精度← 正确答案
- B.全局模型的收敛速度← 正确答案
- C.客户端本地的数据量
- D.恶意梯度的偏离程度← 正确答案
答案:ABD。防御评估关注攻击下精度能否保持、模型能否按时收敛,以及恶意梯度与合法梯度的偏离程度(用于仿真与分析攻击强度)。客户端本地数据量是隐私与算力指标,与防御效果好坏无直接关系。