假设你是一家连锁餐饮集团的研发总监。集团旗下三百家分店散布各地,每家分店的厨房都积累了独家的食材搭配和调味经验——这些“厨房机密”(私有数据)是集团最宝贵的资产,物理上绝不能离开分店。然而总部的菜品研发中心,却想把这些经验汇成一本不断进化的“大师菜谱”(AI 模型)。 传统做法是让分店把食材和配方全部寄到总部——可没人愿意交出核心机密。联邦学习(Federated Learning)给出了另一种架构:总部把基础菜谱分发给各家分店,分店在自己的厨房里试做、改良,只把“调味心得”(模型参数/梯度)寄回总部;总部融合所有心得,更新出下一代菜谱。整个过程,食材从未离开过自家庭院,菜谱却在一代代精进。 这就是联邦学习架构——一场“数据不动、模型动”的协作革命。本文将以这条主线贯穿始终,从基本概念、系统组成、训练流程、聚合算法,一直讲到性能优化、隐私保护、区块链融合与实战挑战。

岗位关联

联邦学习是 AI 隐私合规时代的核心架构能力。掌握它,你才能让数据在“不出域”的红线下释放协作价值,这是当前 AI 工程中极具行业竞争力的技能。

目录
  1. 可视化演示
  2. 基本概念:数据不动,模型动
  3. 系统架构:星型协作网络
  4. 训练流程:试菜—反馈—改谱的循环
  5. 聚合算法:总厨的加权融合手艺
  6. 性能优化:让传菜更快更稳
  7. 隐私保护:给心得加密上锁
  8. 区块链融合:把信任搬到链上
  9. 实践挑战:众口难调暗藏风险
  10. AI 应用场景
  11. Python 演示
  12. 常见误区
  13. 面试题

可视化演示

展示联邦学习五阶段训练流程、横向/纵向/迁移三类联邦架构及数据不出本地的隐私保护机制。

本节配有交互动效(进入视口后自动加载,约 3KB)。

联邦学习五阶段训练流程 服务器调度 客户端训练 FedAvg: w=Σ(nk·wk)/N 参数聚合生成全局模型

基本概念:数据不动,模型动

想象你在运营一家连锁餐饮集团。每家分店的“本地厨房”积累了独一无二的食材与口味,但总部决不能把它们搬进中央厨房——这是店规。联邦学习要解决的,正是“规矩不许动数据,又想让菜谱越改越好”这个两难。它的答案很朴素:数据原地不动,让“菜谱”(模型)轮流去各家厨房巡视改良。

在这个架构里,“菜谱”就是机器学习模型,“分店厨房”就是客户端设备,“总部研发中心”就是中央服务器。总部分发初始模型,分店用本地数据试做、修正,然后把“调味心得”(模型更新)寄回总部。整个过程中,原始数据始终留在分店本地——这正是联邦学习与传统集中式训练最根本的区别:分布式训练共享同一份数据分布、追求加速,联邦学习则尊重数据主权、追求隐私协作。

形式化地看,联邦学习要最小化所有参与方的平均损失。假设有 K 家参与方,第 k 家持有 n_k 条数据,总数据量为 n,其本地损失函数为 f_k(w),则全局优化目标为:

min⁡wf(w)=∑k=1Knknfk(w)\displaystyle \min_{w} f(w) = \sum_{k=1}^{K} \frac{n_k}{n} f_k(w)

1. 全局目标函数:min_w f(w) 表示寻找一组模型参数 w,使所有参与方加权损失之和最小,即让菜谱在众口之中尽量被满意。

min⁡wf(w)\displaystyle \min_{w} f(w)

2. 参与方求和:\sum_{k=1}^{K} 表示把 K 家分店的本地损失逐一相加,得到集团总损失。

∑k=1K\displaystyle \sum_{k=1}^{K}

3. 数据量加权:\frac{n_k}{n} 是第 k 家分店的数据量占比,数据越多,评价意见的权重越大。

nkn\displaystyle \frac{n_k}{n}

4. 本地损失函数:f_k(w) 是第 k 家分店用自家数据评估当前菜谱的“差评程度”。

fk(w)\displaystyle f_k(w)

至此你会发现,联邦学习的本质不是“把数据搬到一起”,而是“把评价带到各处”。菜谱在流动,厨房不搬家。这种架构为隐私合规时代的数据协作提供了底层范式——后面所有内容,都是围绕这本流动的菜谱展开的。

系统架构:星型协作网络

有了“菜谱轮流改良”的思路,还需要一套稳定的协作管道。想象中央厨房与分店之间的“传菜管道”:总部通过管道把基础菜谱发下去,分店改完后把心得装进密封盒寄回。这条管道就是联邦学习的通信链路,它连接起整个系统的骨架。

联邦学习的经典架构是“客户端—服务器”(Client-Server)星型拓扑。中央服务器扮演总部的角色:初始化模型、调度训练轮次、聚合所有更新。大量客户端则是分布在各处的分店:它们持有本地数据并独立完成训练,彼此不直接通信,所有交互都必须经过中央服务器。这种“一切通过总部”的设计,让系统职责清晰、易于管理。

要支撑这套架构,需要三个关键设计。一是模型分发机制:服务器把最新全局参数广播给本轮参与训练的客户端;二是梯度回传通道:客户端通过加密信道传回更新后的参数,而非原始数据;三是同步协议:所有客户端在同一轮起点拿到相同的模型版本,保证聚合时“讨论的是同一道菜谱”。每轮通信中,服务器与单个客户端要交换两次参数——下发全局模型、回传本地更新。若模型参数个数为 |w|,训练 R 轮,则单个客户端的累计通信量为:

S=2∣w∣R\displaystyle S = 2 |w| R

1. 参数规模:|w| 为模型参数的个数,好比菜谱的页数。

∣w∣\displaystyle |w|

2. 双向传输:系数 2 表示每一轮要“下发 + 回传”两趟,菜谱来回各走一趟。

2∣w∣\displaystyle 2 |w|

3. 训练轮次:R 表示联邦学习的通信轮数,相当于总厨改良菜谱的迭代次数。

R\displaystyle R

星型拓扑的好处是简单可控——总部统一调度,分店各管各家。但它把通信压力集中在中央节点,模型越大、轮次越多,传菜管道就越拥堵。这为后文的性能优化埋下了伏笔。

训练流程:试菜—反馈—改谱的循环

具体到每一轮,联邦学习就像一次标准化的“试菜—反馈—改谱”流程。总部把最新菜谱交给各家分店,分店厨房按菜谱做出菜品,根据顾客反应标出“哪里还不够好”,写下改良心得寄回总部。这个过程周而复始,菜谱一代代进化。

一轮联邦训练可分为四个阶段。第一阶段“分发”:服务器将当前全局模型 w^t 发送给本轮参与训练的客户端。第二阶段“本地训练”:每个客户端用本地数据执行若干轮随机梯度下降,把全局模型微调成更适合自家口味的本地模型。第三阶段“回传”:客户端只上传模型更新——参数差值或梯度,而不是数据。第四阶段“聚合”:服务器平均所有更新,得到新的全局模型。

每个客户端的本地更新可以写成如下公式:它从本轮下发的全局模型出发,沿着本地数据给出的“改进方向”迈出一步:

wkt+1=wt−η∇fk(wt)\displaystyle w_k^{t+1} = w^t - \eta \nabla f_k(w^t)

1. 更新后的模型:w_k^{t+1} 表示第 k 家分店在第 t+1 轮改良后的菜谱版本。

wkt+1\displaystyle w_k^{t+1}

2. 本轮初始参数:w^t 是总部在本轮开始时下发的全局菜谱。

wt\displaystyle w^t

3. 学习率:\eta 是步长,决定每次调整的幅度——步子太小学得慢,步子太大容易跑偏。

η\displaystyle \eta

4. 梯度方向:\nabla f_k(w^t) 是第 k 家分店基于本地数据算出的“改进方向”。

∇fk(wt)\displaystyle \nabla f_k(w^t)

这个循环往复运行,菜谱一代代改良,而数据的搬运始终没有发生。集体的智慧就这样沉淀进了每一页菜谱——这正是“数据不动,模型动”的精髓。

聚合算法:总厨的加权融合手艺

各家分店寄回的心得各不相同,有的改动大、有的改动小,总厨该如何把它们融合成一本新菜谱?最简单也最有效的策略,是按客流量加权平均——这就是联邦平均算法 FedAvg 的核心思想。

FedAvg 由 McMahan 等人在 2016 年提出,是联邦学习的奠基算法。它的思想极其朴素:每家分店的本地模型都代表了“在自家数据上更优的方向”,把这些方向按数据量占比加权求平均,就得到了兼顾全局的新方向。它不需要任何原始数据,只需要参数交换,这正是它能成为行业标准的原因。

假设第 k 个客户端在本地训练后得到参数 w_k^{t+1},则服务器端的聚合公式为:

wt+1=∑k=1Knknwkt+1\displaystyle w^{t+1} = \sum_{k=1}^{K} \frac{n_k}{n} w_k^{t+1}

1. 聚合结果参数:w^{t+1} 是融合各家更新后的新一代全局菜谱。

wt+1\displaystyle w^{t+1}

2. 客户端本地参数:w_k^{t+1} 是第 k 家分店本地改良后的菜谱版本。

wkt+1\displaystyle w_k^{t+1}

3. 加权求和:\sum_{k=1}^{K} \frac{n_k}{n} 保证所有客户端的贡献按数据占比归一化相加,权重总和为 1。

∑k=1Knkn\displaystyle \sum_{k=1}^{K} \frac{n_k}{n}

值得强调的是,FedAvg 之后还发展出安全聚合(Secure Aggregation)技术,让服务器只能看到聚合后的结果,而看不到单个客户端的更新——相当于总厨拿到的是“混合后的总心得”,而不是某一家分店的独门秘方。聚合,因此成为联邦学习中连接“各家智慧”与“全局进化”的枢纽。

性能优化:让传菜更快更稳

联邦学习的典型瓶颈不在计算,而在通信。想象几百家分店同时往总部寄心得,每份心得都厚达几百页——管道必然拥堵。为了让传菜更快更稳,业界发展出通信压缩、异步训练、客户端选择等一系列优化手段。

通信压缩的核心是删繁就简:模型参数动辄上百万个,但相邻两轮之间许多梯度数值微小。通过量化和稀疏化,可以只传最重要的那部分梯度。设原始梯度为 g,压缩后为 \tilde{g},则压缩率为:

r=∣g~∣∣g∣\displaystyle r = \frac{|\tilde{g}|}{|g|}

1. 压缩后梯度:\tilde{g} 是经过量化或稀疏化处理后实际传输的梯度。

g~\displaystyle \tilde{g}

2. 原始梯度:g 是压缩前的完整梯度向量。

g\displaystyle g

3. 压缩率比值:r 反映压缩效果,r 越小通信开销越低,但需警惕压缩过度带来的精度损失。

r\displaystyle r

除了压缩,还有两类常见的配套手段。第一是客户端选择:每轮不必等全部分店都交心得,而按数据质量、网络状况挑选一部分参与,大幅降低调度压力。第二是异步训练:允许快的分店先交卷、先融合,缓解“木桶效应”——最慢的节点不再拖慢整体节奏。这些优化就像给传菜管道设计了快速通道:摘要让包裹更薄,选人让队伍更短,异步让总局不再苦等最后一家。

隐私保护:给心得加密上锁

即使在联邦学习中,上传的梯度也并非绝对安全。近年来的研究表明,恶意服务器可以从梯度反推出训练数据的隐私信息——就像有人能从“心得摘要”的字里行间,反推出分店客人的偏好甚至样貌。因此,必须给心得“加密上锁”。

目前主流的隐私保护技术有三类。差分隐私通过在梯度中加入精心设计的噪声,让攻击者无法分辨某个样本是否参与了训练;同态加密允许服务器在密文上直接做聚合运算,全程看不到明文;安全多方计算则让多个客户端联合计算聚合结果,任何一方都无法获得他人的完整信息。三者的组合构成了联邦学习的“三重保险”。

差分隐私的核心是“隐私预算”ϵ。它衡量加入噪声后,某个输出在相邻数据集上的分布差异上界:

ϵ=max⁡D,D′∣ln⁡Pr⁡[M(D)∈S]Pr⁡[M(D′)∈S]∣\displaystyle \epsilon = \max_{D, D'} \left| \ln \frac{\Pr[\mathcal{M}(D) \in S]}{\Pr[\mathcal{M}(D') \in S]} \right|

1. 隐私预算:ϵ 表示隐私保护强度,值越小,保护越强。

ϵ\displaystyle \epsilon

2. 相邻数据集:D 与 D' 是只差一条样本的两个数据集,好比两份只差一位客人的评论记录。

D,D′\displaystyle D, D'

3. 输出概率比:\frac{\Pr[\mathcal{M}(D) \in S]}{\Pr[\mathcal{M}(D') \in S]} 衡量加入该样本前后,输出落在同一范围内的概率变化程度。

Pr⁡[M(D)∈S]Pr⁡[M(D′)∈S]\displaystyle \frac{\Pr[\mathcal{M}(D) \in S]}{\Pr[\mathcal{M}(D') \in S]}

4. 取最大值:\max_{D, D'} 确保任意一条样本的加入,泄露风险都不超过 ϵ。

max⁡D,D′\displaystyle \max_{D, D'}

差分隐私与联邦学习是天然搭档:联邦学习保证“数据不挪窝”,差分隐私保证“心得不泄密”。但噪声也有代价——隐私越强,模型精度越低。如何在这把双刃剑上找到平衡,是工程实践中的必修课。

区块链融合:把信任搬到链上

经典的联邦学习依赖中央服务器,相当于所有分店都信任总部这个“裁判”。但如果总部作恶、被攻破,或者根本不存在呢?这正是区块链与去中心化 AI 结合的契机——把信任从“人治的总部”搬到“代码即规则”的链上。

区块链可以为联邦学习提供三样东西。一是去中心化存储与模型验证:把聚合结果上链,任何人都无法篡改训练记录;二是链上激励机制:用 Token 奖励贡献数据的客户端,解决“数据贡献者分文未取”的公平问题;三是数据确权:将数据使用记录写入链上,实现“谁用了谁的数据、用了多少”全程可追溯,让每一家分店的贡献都看得见。

激励机制通常基于贡献度量化。设第 i 个客户端在本轮的贡献量为 a_i,全体客户端总贡献为 \sum_{j=1}^{K} a_j,本轮奖励池为 R,则该客户端获得的奖励为:

ri=ai∑j=1KajR\displaystyle r_i = \frac{a_i}{\sum_{j=1}^{K} a_j} R

1. 个体奖励:r_i 是第 i 家分店本轮获得的激励金额。

ri\displaystyle r_i

2. 贡献占比:\frac{a_i}{\sum_{j=1}^{K} a_j} 表示该店贡献占全体总贡献的比例,占比越高分红越多。

ai∑j=1Kaj\displaystyle \frac{a_i}{\sum_{j=1}^{K} a_j}

3. 奖励池总额:R 是系统预设的本轮总奖金池。

R\displaystyle R

区块链让联邦学习从“中心化可信”走向“去中心化可信”,但链上聚合也带来新的性能开销。工程中常采用“链下聚合、链上存证”的混合方案:训练和聚合仍在链下高效完成,只把结果摘要和激励记录上链,兼顾效率与信任。

实践挑战:众口难调暗藏风险

现实世界远比理想模型复杂。分店 A 主打川菜、分店 B 主打粤菜,它们的口味数据天差地别——这在联邦学习里叫“非独立同分布”(Non-IID)。当各家本地数据分布差异极大时,本地模型会朝不同方向漂移,聚合出的“大众菜谱”可能两边都不讨好。

另一个典型挑战是通信瓶颈:即便有压缩技术,高频率的模型同步对弱网设备依然是沉重负担。此外,恶意客户端还可能投毒——故意上传恶意修改的梯度,企图污染全局模型。这些挑战要求在工程上做出架构级的防御设计。模型漂移的程度,可以用各客户端本地模型与聚合模型的平均距离来量化:

MD=1K∑k=1K∥wkt+1−wt+1∥2\displaystyle \text{MD} = \frac{1}{K} \sum_{k=1}^{K} \left\| w_k^{t+1} - w^{t+1} \right\|_2

1. 漂移度量:MD(Model Drift)表示整体模型漂移的程度。

MD\displaystyle \text{MD}

2. 平均距离:\frac{1}{K} \sum_{k=1}^{K} 计算所有分店差距的平均值。

1K∑k=1K\displaystyle \frac{1}{K} \sum_{k=1}^{K}

3. 二范数:\left\| \cdot \right\|_2 计算两个参数向量之间的欧氏距离。

∥wkt+1−wt+1∥2\displaystyle \left\| w_k^{t+1} - w^{t+1} \right\|_2

应对这些挑战没有银弹:数据异构需要个性化联邦学习、聚类联邦学习等进阶方案;通信瓶颈需要压缩与异步配合;恶意攻击则需要鲁棒聚合与信誉机制。每个分店的厨房各不相同,但正是这份差异,让共同改良菜谱这件事变得复杂,也正因为复杂,才让联邦学习架构的价值历久弥新。

AI 应用场景

多中心医疗影像联合建模

阶段:模型训练与部署

解决的问题:传统方式下,多家医院的数据因隐私法规无法集中,单一机构数据量不足导致模型泛化能力差。联邦学习让各医院数据不出院,只共享模型更新,既合规又能汇聚多方智慧。

具体案例:某多中心医疗联盟使用联邦学习训练肺结节检测模型。三家三甲医院分别持有上万张影像数据,数据全程不出院,经过 50 轮联邦训练,模型在独立测试集上的 AUC 比任意单院训练的模型提升了 9 个百分点。

银行反欺诈联合模型

阶段:特征工程与模型训练

解决的问题:银行间的黑名单与交易模式数据高度敏感,无法集中共享,导致跨行转账链路中的欺诈行为难以被及时发现。联邦学习让多家银行在各自本地训练,只交换加密的模型更新。

具体案例:多家城商行通过联邦学习共建反欺诈模型:各银行本地部署客户端训练,服务器端聚合梯度并加入差分隐私噪声。上线后跨行欺诈识别率提升 22%,且没有任何原始交易记录离开银行内网。

手机输入法个性化学习

阶段:持续学习与模型更新

解决的问题:输入法个性化词库高度敏感,传统云端训练需要上传全部键入记录,隐私风险大。联邦学习把训练放到用户手机端,服务器只聚合更新。

具体案例:某输入法厂商采用联邦学习架构,在用户手机本地训练个性化语言模型,仅上传加密的模型更新,服务端聚合后下发新版本。用户输入准确率提升的同时,隐私合规压力大幅降低,日活用户留存率明显改善。

Python 演示

python52 行
import numpy as np  def make_synthetic_data(n_samples, w_true):    """生成线性回归模拟数据:特征矩阵 X 和标签 y"""    rng = np.random.default_rng(0)    X = rng.normal(size=(n_samples, len(w_true)))    y = X @ w_true + rng.normal(scale=0.1, size=n_samples)    return X, y  def local_train(w, X, y, lr=0.05, epochs=3):    """客户端本地训练:在本地数据上执行多轮梯度下降"""    for _ in range(epochs):        grad = X.T @ (X @ w - y) / len(y)        w = w - lr * grad    return w  def fed_avg(w_global, local_weights, sizes):    """FedAvg 聚合:按数据量占比加权平均各客户端模型"""    total = sum(sizes)    w_new = np.zeros_like(w_global)    for w_local, n in zip(local_weights, sizes):        w_new = w_new + (n / total) * w_local    return w_new  def federated_round(w_global, clients):    """一轮联邦训练:分发模型 -> 本地训练 -> 回传 -> 聚合"""    local_weights = []    sizes = []    for X, y in clients:        local_weights.append(local_train(w_global.copy(), X, y))        sizes.append(len(y))    return fed_avg(w_global, local_weights, sizes)  if __name__ == "__main__":    np.random.seed(42)    w_true = np.array([3.0, -1.5, 0.8])    # 模拟三家"分店",数据分布略有差异    clients = []    for shift in (0.0, 0.3, -0.3):        X, y = make_synthetic_data(200, w_true + shift)        clients.append((X, y))    # 初始全局模型,相当于总部的"基础菜谱"    w_global = np.zeros(len(w_true))    for r in range(8):        w_global = federated_round(w_global, clients)        loss = float(np.mean((clients[0][0] @ w_global - clients[0][1]) ** 2))        print("Round %d: loss = %.4f, w = %s" % (r + 1, loss, np.round(w_global, 3)))
目的:用 100 行不到的 Python 完整实现 FedAvg 联邦学习流程,模拟三个数据分布略有差异的客户端,迭代八轮观察全局模型收敛。
  1. X = rng.normal(size=(n_samples, len(w_true)))生成高斯分布的特征矩阵,模拟分店各自的“本地客人特征”
  2. grad = X.T @ (X @ w - y) / len(y)用矩阵运算一次算出均方损失对参数 w 的梯度方向
  3. w = w - lr * grad沿着梯度反方向迈一小步,完成一次本地参数更新
  4. local_weights.append(local_train(w_global.copy(), X, y))每个客户端用自家数据独立改良模型,服务器只拿到改良结果
  5. sizes.append(len(y))记录每家分店的数据量,作为后续聚合的加权依据
  6. w_new = w_new + (n / total) * w_local按数据量占比累加各家模型,这正是 FedAvg 的加权平均核心
  7. w_global = federated_round(w_global, clients)完成一轮完整的“分发—训练—聚合”循环

常见误区

误区我以为联邦学习就是把数据分到多台机器上并行训练,训练完再合并模型,和分布式深度学习没什么区别。

正解两者的目标根本不同。分布式训练是为了加速,数据可以集中或分片,通常共享同一份数据分布;联邦学习是为了保护隐私,数据必须保存在本地且分布天然异构。打个比方:分布式训练是“中央厨房把食材分给多位厨师一起炒”,联邦学习是“每家分店在自己厨房里各炒各的,只交流调味心得”。数据是否离开原地,是分水岭。

为何常见:两者都涉及“多机协作 + 参数聚合”,表面流程相似,初学者容易只看到形式,而忽略了数据主权这一本质差异。

误区只要不把照片、文本等原始数据传上去,只传梯度和参数,服务器就什么也看不到,隐私绝对无忧。

正解梯度同样携带数据信息。著名的 Deep Leakage from Gradients(DLG)研究表明,攻击者可以从上传的梯度精确重建出训练样本。好比分店寄出的“心得摘要”虽没写原始配方,但字里行间可能透露关键做法。因此工程上还需要差分隐私、同态加密、安全聚合等机制来进一步加固。

为何常见:人们习惯用“有没有上传原始数据”作为隐私标准,却忽略了统计信息也可以反推个体的现实。

误区联邦学习嘛,参与的分店越多,众口之下的菜谱一定越完善,模型精度必然越高。

正解当数据严重 Non-IID,或大量客户端只贡献噪声时,盲目增加客户端反而加剧模型漂移,甚至拖慢收敛。业界普遍采用客户端选择策略,按数据质量、网络状态筛选参与者,效果往往优于全员参与。好比众口难调时,请几位最具代表性的老饕试菜,比几千个随机路人更有价值。

为何常见:直觉上“人多力量大”,但忽略了数据质量、分布差异和通信开销这些关键约束。

误区区块链这么火,把联邦学习整个搬到链上,效率更高、更安全。

正解区块链解决的是“信任”而非“效率”问题。链上每一步操作都要经过共识、都要记账,开销远大于中心化服务器。工程上普遍采用“链下聚合、链上存证”的混合架构:本地训练与参数聚合仍在链下高效完成,只有结果摘要和激励记录上链。盲目全上链,只会让传菜管道更加拥堵。

为何常见:区块链作为热点概念容易被神化,初学者容易忽略共识机制本身的性能代价。

面试题

Q1. 联邦学习中,参与方(客户端)上传给服务器的内容是什么?

单选题 · easy

  • A.本地原始训练数据
  • B.模型参数或梯度更新← 正确答案
  • C.用户的完整画像数据
  • D.服务器的聚合结果

答案:B。联邦学习的核心是“数据不动、模型动”:客户端只在本地数据上训练,把更新后的模型参数或梯度传给服务器。原始数据、用户画像全程留在本地。聚合结果是服务器端流程,不是客户端上传的内容。

Q2. FedAvg 聚合时,各客户端模型的权重取决于什么?

单选题 · easy

  • A.客户端本地数据量占比← 正确答案
  • B.客户端训练时间长短
  • C.客户端网络带宽大小
  • D.客户端 CPU 核心数量

答案:A。FedAvg 采用数据量加权平均,n_k/n 就是第 k 个客户端的数据量占比。数据越多,代表该客户端在全局目标中的“话语权”越大。训练时长、带宽、CPU 数量都与数据分布无关,不会作为聚合权重。

Q3. 以下哪些属于联邦学习常用的隐私保护手段?

多选题 · easy

  • A.安全多方计算← 正确答案
  • B.同态加密技术← 正确答案
  • C.数据随机删除
  • D.差分隐私机制← 正确答案

答案:ABD。安全多方计算让多方在不泄露各自输入的前提下完成联合计算;同态加密允许在密文上直接聚合;差分隐私通过在输出中加噪声限制信息泄露。数据随机删除只是普通的数据清洗操作,不属于隐私保护机制。

Q4. 下列关于联邦学习架构的说法,正确的是?

单选题 · mid

  • A.必须依赖区块链技术底层
  • B.服务器可见所有原始数据
  • C.数据不出本地即可参与联合训练← 正确答案
  • D.客户端之间可直接交换数据

答案:C。联邦学习的核心约束是原始数据不离开本地,客户端只上传模型更新。区块链是可选增强手段而非必需底层。典型架构中客户端不直接互传数据,所有参数交互都经服务器协调。

Q5. 差分隐私中,ϵ 值越小说明什么?

单选题 · mid

  • A.模型的精度会越来越高
  • B.隐私保护能力就越强← 正确答案
  • C.通信开销会越来越小
  • D.聚合速度就越快

答案:B。ϵ 是隐私预算,度量加入噪声后输出分布与相邻数据集输出的差异上界。ϵ 越小,噪声越大,攻击者越难分辨某条样本是否参与训练,隐私保护越强。代价是精度下降,通信和聚合速度不受影响。

Q6. 非独立同分布(Non-IID)数据会导致什么问题?

单选题 · hard

  • A.聚合效果反而显著变差← 正确答案
  • B.通信带宽会自动增大
  • C.服务器算力显著提升
  • D.训练时间必然缩短

答案:A。Non-IID 指各客户端本地数据分布差异大,本地模型朝不同方向漂移,聚合后的全局模型难以同时拟合各方数据,精度和收敛性都受影响。通信带宽、服务器算力、训练时间与数据分布没有直接因果关系。

Q7. 一轮联邦学习训练流程包含哪些环节?

多选题 · mid

  • A.模型分发环节← 正确答案
  • B.本地训练阶段← 正确答案
  • C.数据库备份任务
  • D.参数聚合过程← 正确答案

答案:ABD。完整流程是:服务器将全局模型分发给客户端(分发)→ 客户端在本地数据上训练(本地训练)→ 客户端回传更新 → 服务器聚合出新模型(参数聚合)。数据库备份不是联邦学习的标准环节。

Q8. 联邦学习工程实践中的常见挑战包括?

多选题 · mid

  • A.非独立同分布数据← 正确答案
  • B.通信带宽瓶颈限制← 正确答案
  • C.恶意节点攻击风险← 正确答案
  • D.云端存储容量不足

答案:ABC。Non-IID 导致模型漂移,通信带宽是训练效率的主要瓶颈,恶意节点可能投毒污染模型,这些都是经典挑战。联邦学习只传输参数、数据留存在客户端,对云端存储的要求很低,“存储容量不足”不是典型挑战。

Q9. 区块链在联邦学习中的核心价值是什么?

单选题 · hard

  • A.显著减少模型的参数量
  • B.记录贡献并激励多方协作← 正确答案
  • C.彻底消除所有通信延迟
  • D.完全替代本地训练算法

答案:B。区块链解决的是信任与激励问题:聚合结果上链防篡改、按贡献度发放 Token、数据使用记录可追溯。它不改变模型参数量,不能消除通信延迟,更不替代本地训练,链上共识反而会引入额外开销。

Q10. 攻击者从联邦学习上传的梯度中重建训练样本,这类攻击通常被称为?

单选题 · extreme

  • A.数据投毒攻击方式
  • B.梯度泄露攻击手段← 正确答案
  • C.差分隐私攻击技术
  • D.女巫身份攻击威胁

答案:B。梯度泄露攻击(DLG)证明恶意服务器可以从上传的梯度中精确重建训练样本,揭示了“只传梯度不传数据”并非绝对安全。数据投毒是主动注入恶意数据,差分隐私是防御技术而非攻击类型,女巫攻击是伪造多个节点身份的攻击,与梯度重建无关。