FedCache 2.0论文阅读笔记
- FedCache 2.0: Federated Edge Learning with Knowledge Caching and Dataset Distillation
- Quyang Pan, Sheng Sun, Zhiyuan Wu, Member, IEEE, Yuwei Wang, Member, IEEE, Min Liu, Senior Member, IEEE, Bo Gao, Member, IEEE, and Jingyuan Wang
- 代码: https://github.com/poppanda/FedCache2.0
FedCache 2.0
核心思想:在 FedCache 的基础上,进一步引入数据集蒸馏技术,提出 FedCache 2.0,旨在解决原版 FedCache 中 logits 信息量不足、任务适应性有限的问题。
架构特点:
- 蒸馏数据替代 logits:设备端不再上传 logits,而是通过数据集蒸馏生成合成样本,上传至服务器缓存。
- 设备中心缓存采样:服务器根据设备的本地数据分布和带宽限制,个性化地选择蒸馏数据下发给设备,用于本地训练。
- 更通用的数据匿名化:蒸馏后的数据难以还原原始样本,增强了隐私保护能力。
优点:
- 信息更丰富:蒸馏数据保留了更多语义信息,优于 logits;
- 支持更多模态:不再依赖任务特定的编码器,适用于图像、音频、传感器等多种数据类型;
- 通信效率更高:相比 FedCache,通信开销进一步降低,实验显示至少提升 28.6 倍;
- 性能更强:在多个任务上显著优于 SOTA 方法。
| 方面 | FedCache | FedCache 2.0 |
|---|---|---|
| 知识传递内容 | logits(模型输出) | 蒸馏后的合成数据 |
| 信息丰富度 | 有限 | 更丰富,保留语义特征 |
| 任务适应性 | 依赖任务特定编码器 | 更通用,支持多模态数据 |
| 隐私保护 | 哈希编码 | 蒸馏数据难以恢复原始图像 |
| 缓存采样策略 | 基于样本相似性 | 设备中心 + 带宽自适应 |
| 性能提升 | 与 SOTA 相当 | 显著优于 SOTA |
| 通信效率 | 高 | 更高(至少提升 28.6 倍) |
摘要
联邦边缘学习(FEL):能够使边缘设备在保护数据隐私的同时协同训练机器学习模型,但实际的FEL部署面临由设备限制和设备-服务器交互带来的重大挑战,需要在有限且不确定的通信条件下进行异构的、用户自适应的模型训练。
知识缓存驱动的联邦学习(FedCache):能够在边缘计算场景下实现通信高效和异构感知的协同训练,但是先前的工作受限于基于logits交互的本质,由于交换信息对设备端模型优化的信息丰富度不足,导致性能瓶颈。
本论文提出的FedCache 2.0:一种新颖的个性化FEL架构,它在实现高效通信的同时,增强了优化见解的交换,并达到了最先进的性能。
- 融合了数据集蒸馏和知识缓存驱动联邦学习的优势,将蒸馏数据作为知识存储和组织在服务器侧的知识缓存中,使设备能够定期下载并利用个性化知识进行本地模型优化。
- 引入了一种以设备为中心的缓存采样策略,在可控的通信带宽内为各个设备定制传输的知识。
在涵盖图像识别、音频理解和移动传感器数据挖掘任务的五个数据集上进行的大量实验表明:(1)无论模型结构、数据分布和模态如何,FedCache 2.0都显著优于最先进的方法。(2)FedCache 2.0能够训练出优秀的个性化设备端模型,通信效率至少提高28.6倍。
1 引言
联邦边缘学习(FEL)是联邦学习的一种特殊形式,专门设计用于在网络边缘运行。它使得边缘设备能够在边缘服务器的协调下,在不共享原始数据的情况下联合训练机器学习模型。尽管FEL具有隐私保护和分布式协作的优势,但在实际部署中面临多重挑战:
- 设备异构性(计算能力、存储容量和电池寿命存在差异)=> 要求部署高度可扩展、适应用户的模型,以适应设备间异构的硬件规格
- 数据与用户偏好高度个性化 => 增加了模型泛化的复杂性
- 通信资源有限(带宽低、网络不稳定) => 传输大规模模型参数不切实际
- 设备间歇性在线 => 复杂化了协同模型更新所需的协调工作
许多研究试图克服 FEL 中的上述挑战,然而,这些方法各自仅解决单一挑战,限制了它们在多挑战并存的真实边缘部署中的适用性。
- 异构 FL:侧重于实现不同模型架构设备间的协同训练,使其能够适应不同的计算资源和硬件能力。
- 个性化或多任务 FL:专注于开发为单个设备量身定制的模型,以适应多样化的用户偏好。
- 通信高效的 FL:通常采用模型压缩或量化等技术,在性能损失很小的情况下减少训练通信负担。
FedCache作为一种知识缓存驱动的联邦学习架构,通过服务器端缓存和基于样本相似性的logits传递,初步实现了通信高效和异构模型支持,但其性能受限于logits的信息量不足,且依赖特定任务编码器,限制了跨模态的适用性。
为解决上述局限,本文提出FedCache 2.0,一种新颖的个性化FEL架构。其核心创新在于:
- 将交互信息从logits转向蒸馏数据,提供更丰富的信息表征能力,使得设备端模型能够利用充分的服务器端信息进行优化,从而实现更高的精度;
- 引入联邦数据集蒸馏,设备在远程服务器缓存知识辅助下执行数据集蒸馏,生成蒸馏数据并上传更新缓存;
- 提出一种以设备为中心的缓存采样策略,根据设备带宽和本地数据分布个性化下发知识。该架构在保留FedCache原有优势(模型异构、个性化、异步通信)的基础上,显著提升了信息表征能力和任务通用性。
本文的主要贡献如下:
- 提出了 FedCache 2.0,将数据集蒸馏与知识缓存驱动的联邦学习相结合,是第一个在应对边缘部署的多方面挑战的同时,实现最先进性能的联邦学习架构。
- 引入了与 FedCache 2.0 设计相匹配的联邦数据集蒸馏和以设备为中心的缓存采样,在保护数据隐私的前提下,促进了知识的生成、存储和组织以及个性化模型训练。
- 在图像、音频、传感器等多模态数据集上的实验验证了FedCache 2.0在精度和通信效率上的优越性。
2 问题陈述与重述
2.1 背景与预备知识
本文的主要符号总结在表 1 中。
考虑一个部署在网络边缘的联邦学习系统,包括由边缘服务器(服务器)协调的 KKK 个参与边缘设备(客户端)。每个客户端 k∈{1,2,…,K}k \in \{1, 2, \ldots , K\}k∈{1,2,…,K} 拥有其本地数据集 Dk=⋃i=1∣Dk∣{(Xik,yik)}\mathcal{D}^k = \bigcup_{i = 1}^{|\mathcal{D}^k|} \{(X_i^k, y_i^k)\}Dk=⋃i=1∣Dk∣{(Xik,yik)},包含 ∣Dk∣|\mathcal{D}^k|∣Dk∣ 个样本,每个样本具有 DDD 维数据维度,并属于 CCC 个不同类别之一。客户端之间的本地训练和测试数据集都是非独立同分布的。
假设客户端 kkk 的个性化模型参数记为 Wk∈RdkW^k \in \mathbb{R}^{d^k}Wk∈Rdk,其中 dkd^kdk 表示客户端 kkk 模型的参数数量。由于设备间的系统异构性,不同客户端所需的模型大小可能不同,因此存在 dl≠dm,∃l,m∈{1,2,…,K}d_l \neq d_m, \exists l, m \in \{1, 2, \ldots , K\}dl=dm,∃l,m∈{1,2,…,K} 的情况。每个客户端 kkk 都有一个本地目标函数 Li:RD→R\mathcal{L}^i: \mathbb{R}^D \to \mathbb{R}Li:RD→R,该函数依赖于其对应的本地数据分布。整体目标是最小化所有客户端的期望目标,形式化表达为:
min⋃k=1K{Wk}1K∑k=1K(1∣Dk∣∑(Xik,yik)∈DkLi(Wk;Xik,yik)).(1) \min_{\bigcup_{k=1}^K \{W^k\}} \frac{1}{K} \sum_{k=1}^K \left( \frac{1}{|\mathcal{D}^k|} \sum_{(X_i^k, y_i^k) \in \mathcal{D}^k} \mathcal{L}^i(W^k; X_i^k, y_i^k) \right). \tag{1} ⋃k=1K{Wk}minK1k=1∑K
∣Dk∣1(Xik,yik)∈Dk∑Li(Wk;Xik,yik)
.(1)
考虑到边缘环境中设备连接的不稳定性,多个客户端可能无法同时在线。此外,在保证用户模型精度的前提下,必须最小化设备与服务器之间的通信开销,以节省宝贵的无线网络资源和设备能耗。
表 1. 主要符号及其描述
| 符号 | 描述 |
|---|---|
| KKK | 参与边缘设备(客户端)的数量 |
| Dk\mathcal{D}^kDk | 客户端 kkk 的本地数据集 |
| (Xik,yik)(X_i^k, y_i^k)(Xik,yik) | 客户端 kkk 本地数据集中的第 iii 个样本 |
| CCC | 类别数量 |
| WkW^kWk | 客户端 kkk 的个性化模型参数 |
| dkd^kdk | 客户端 kkk 模型的参数数量 |
| Li\mathcal{L}^iLi | 客户端 kkk 的本地目标函数 |
| KCKCKC | 服务器上的知识缓存 |
| LCE\mathcal{L}_{CE}LCE | 交叉熵损失 |
| ϕ\phiϕ | Softmax 函数 |
| FkF^kFk | 客户端 kkk 上模型的预测函数 |
| Rk\mathcal{R}^kRk | 客户端 kkk 基于缓存知识的冗余优化组件 |
| LKL\mathcal{L}_{KL}LKL | Kullback-Leibler 散度损失 |
| (zrik)s(zr_i^k)_s(zrik)s | 为样本索引 (k,i)(k, i)(k,i) 从知识缓存中获取的第 sss 个知识 |
| D^distillk\hat{\mathcal{D}}_{distill}^kD^distillk | 客户端 kkk 上的蒸馏数据 |
| SubkSub^kSubk | 为客户端 kkk 定制的自适应采样策略 |
| FfkF_f^kFfk | 客户端 kkk 上模型的特征提取器 |
| FckF_c^kFck | 客户端 kkk 上模型的分类器 |
| σ\sigmaσ | 周期性更新的随机替换函数 |
| Dbk\mathcal{D}_b^kDbk | Dk\mathcal{D}^kDk 中具有 CCC 个元素的子集 |
| Lbk\mathcal{L}_b^kLbk | 客户端 kkk 上的数据集蒸馏目标 |
| Ltraink\mathcal{L}_{train}^kLtraink | 客户端 kkk 上的本地训练损失函数 |
| nckn_c^knck | 客户端 kkk 上类别 ccc 的标签频率 |
2.2 知识缓存驱动的联邦学习
我们将知识缓存驱动的联邦学习形式化为一个在远程服务器知识缓存 KCKCKC 辅助下的分布式优化问题,即:
min⋃k=1K{Wk}1K∑k=1K(1∣Dk∣(∑(Xik,yik)∈DkLCE(Wk;ϕ(Fk(Xik)),yik)+β⋅Rk(Wk;KC))).(2) \min_{\bigcup_{k=1}^K \{W^k\}} \frac{1}{K}\sum_{k=1}^{K}\left( \frac{1}{|\mathcal{D}^{k}|}(\sum_{(X_{i}^{k},y_{i}^{k})\in \mathcal{D}^{k}}\mathcal{L}_{CE}(W^{k};\phi (F^{k}(X_{i}^{k})),y_{i}^{k}) + \beta \cdot \mathcal{R}^{k}(W^{k};KC) )\right). \tag{2} ⋃k=1K{Wk}minK1k=1∑K ∣Dk∣1((Xik,yik)∈Dk∑LCE(Wk;ϕ(Fk(Xik)),yik)+β⋅Rk(Wk;KC)) .(2)
其中 LCE\mathcal{L}_{CE}LCE 是交叉熵损失,ϕ\phiϕ 是 softmax 函数,FkF^{k}Fk 是客户端 kkk 上模型的预测函数。Rk\mathcal{R}^{k}Rk 表示客户端 kkk 基于缓存知识的冗余优化组件,β\betaβ 是对应的权重项。
FedCache将模型输出(logits)视为知识,并基于缓存的相关知识优化本地模型,即:
Rk=∑(Xik,yik)∈DkLKL(ϕ(Fk(Xik)) ∥ ϕ(1R∑(zrik)s∈KC[k,i](zrik)s)),(3) \mathcal{R}^{k} = \sum_{(X_{i}^{k},y_{i}^{k})\in \mathcal{D}^{k}}\mathcal{L}_{KL}\left(\phi (F^{k}(X_{i}^{k}))\;\middle\|\;\phi \left(\frac{1}{R}\sum_{(zr_{i}^{k})_{s}\in KC[k,i]}(zr_{i}^{k})_{s}\right)\right), \tag{3} Rk=(Xik,yik)∈Dk∑LKL ϕ(Fk(Xik)) ϕ R1(zrik)s∈KC[k,i]∑(zrik)s ,(3)
其中 LKL\mathcal{L}_{KL}LKL 是 Kullback-Leibler 散度损失,(zrik)s(zr_{i}^{k})_{s}(zrik)s 是从知识缓存中为样本索引 (k,i)(k,i)(k,i) 获取的第 sss 个知识,RRR 是 FedCache 中控制相关知识数量的超参数。
然而,FedCache 在为设备提供丰富的、分布感知的信息以进行个性化优化方面存在严重局限:
- 由于小规模 logits 交互的设计,从远程知识缓存中可获取的信息量受到显著限制。这种设计无法为客户端提供足够的优化信息,导致了 FedCache 的性能瓶颈。(只知道结果,无推断过程)
- FedCache 依赖于特定任务的数据编码器来捕获私有样本关系,这限制了其在不同数据模态和应用任务中的适用性。(这个编码器通常是在特定的数据集上(比如 ImageNet)预先训练好的。如果换了一个任务,比如从识别图片变成识别声音(音频数据),原来的图像编码器就不能用了。)
2.3 FedCache 2.0 优化重述
原版FedCache的交互(可以理解为“传答案”):
客户端上传:zikz_{i}^{k}zik (logits,即自己图片的答案)
服务器返回:zrik‾\overline{zr_i^k}zrik (别人的平均答案)
客户端学习:让自己的答案接近别人的平均答案。
FedCache 2.0的交互(可以理解为“传解题思路”):
客户端上传:D^distilll\hat{\mathcal{D}}_{distill}^lD^distilll (蒸馏数据,即自己图片的“精华版/合成版”)
服务器返回:Subk(⋃l=1KD^distilll)Sub^k \left(\bigcup_{l = 1}^K\hat{\mathcal{D}}_{distill}^l\right)Subk(⋃l=1KD^distilll) (根据需求筛选后的别人的精华版图片)
客户端学习:直接用这些精华版图片来训练自己的模型。
FedCache 2.0 通过融合数据集蒸馏的优势,重新设计了 FedCache 的原始框架,为设备和服务器之间提供了新的交互范式。FedCache 2.0 架构的概览如图 2(b) 所示,与最先进方法的详细比较见表 2。
具体而言,FedCache 2.0 中的本地模型优化由客户端联合合成并经过采样的蒸馏数据来调节,客户端 kkk 收到服务器下发的定制化合成图片后,将其视为额外的训练样本,像处理本地真实数据一样输入到自己的模型中,计算出预测值,并与合成图片的真实标签 y∗y^*y∗ 进行对比,通过最小化交叉熵损失来优化模型参数。
Rk=∑(X∗,y∗)∈Subk(⋃l=1KD^distilll)LCE(Wk;ϕ(Fk(X∗)),y∗),(4) \mathcal{R}^k = \sum_{(X^*, y^*)\in Sub^k \left(\bigcup_{l = 1}^K\hat{\mathcal{D}}_{distill}^l\right)}\mathcal{L}_{CE}\left(W^k;\phi \left(F^k (X^*)\right),y^*\right), \tag{4} Rk=(X∗,y∗)∈Subk(⋃l=1KD^distilll)∑LCE(Wk;ϕ(Fk(X∗)),y∗),(4)
-
D^distilll\hat{\mathcal{D}}_{distill}^lD^distilll 表示客户端 lll 通过数据集蒸馏技术生成的合成数据。它不是logits,而是一张图片(虽然看起来很模糊,像噪点,但它确实是一张图),并且带有标签 $ y*$ 。
-
⋃l=1KD^distilll\bigcup_{l = 1}^K\hat{\mathcal{D}}_{distill}^l⋃l=1KD^distilll 表示把所有客户端上传的蒸馏数据汇集到一起。
-
SubkSub^kSubk表示为客户端 kkk 定制的自适应采样策略,也是FedCache 2.0的重要创新。服务器不会把整个全部知识都发给客户端 kkk,而是根据客户端 kkk 的需求(比如它的本地数据分布、当前的通信带宽等),挑选最适合客户端kkk 的那一部分数据。
-
LCE\mathcal{L}_{CE}LCE:这是标准的交叉熵损失,用于衡量模型预测与真实标签之间的差异。
-
(X∗,y∗)(X^*, y^*)(X∗,y∗):这是服务器经过自适应采样策略挑选出来的、适合客户端 kkk 的合成图片及其对应的真实标签。
-
ϕ(Fk(X∗))\phi(F^k(X^*))ϕ(Fk(X∗)):这是客户端 kkk 用自己的模型 FkF^kFk 对合成图片 X∗X^*X∗ 进行前向传播后,经过 Softmax 函数 ϕ\phiϕ 得到的预测概率分布。
3 FedCache 2.0


服务器端(ServerExecute)
- 初始化:清空 KCKCKC,接收每个客户端上传的标签分布 pckp_c^kpck。
- 训练循环(每轮):
- 对每个在线客户端 kkk:
- 发送可能的原型样本 D^bk\hat{D}_b^kD^bk(根据公式 8 决定是否发送缓存中的原型)。
- 接收客户端 kkk 上传的蒸馏数据 D^bk\hat{D}_b^kD^bk,并更新 KC[client,k]KC[client,k]KC[client,k]。
- 根据公式 17 为客户端 kkk 采样知识,发送给客户端 kkk。
- 对每个在线客户端 kkk:
客户端 kkk
- 初始化:计算本地标签频率 pckp_c^kpck,上传给服务器。
- 训练循环(每轮):
- 接收服务器发送的原型样本(可能是从其他客户端取来的蒸馏数据,也可能是 ϕ\phiϕ)。
- 执行本地数据集蒸馏(公式 10–12),得到 D^bk\hat{D}_b^kD^bk。
- 上传 D^bk\hat{D}_b^kD^bk 给服务器。
- 接收服务器下发的采样知识 Ddistillk,down\mathcal{D}_{distill}^{k,down}Ddistillk,down。
- 使用本地数据和下载知识更新本地模型(公式 14)。
3.1 知识缓存设计
在 FedCache 2.0 中,服务器维护了一个知识缓存(Knowledge Cache,记作 KCKCKC),它的作用是存储所有客户端上传的最新蒸馏数据,以便后续为其他客户端提供个性化的知识。缓存里存放的是每个客户端通过联邦数据集蒸馏生成的合成数据(即蒸馏后的图片及其标签)。这些合成数据不再是原始的 logits,而是具有更丰富语义信息的“伪样本”。服务器会根据不同的维度对它们进行索引,以便高效地存取。
基于客户端的索引。 每个客户端的蒸馏数据通过其标识符进行索引,从而能够高效更新缓存中的知识并为设备端蒸馏进行原型初始化,即:
KC[client,k]←D^distillk,∀k∈{1,2,…,K},(5) KC[client,k] \leftarrow \hat{\mathcal{D}}_{distill}^{k}, \quad \forall k \in \{1,2,\dots ,K\}, \tag{5} KC[client,k]←D^distillk,∀k∈{1,2,…,K},(5)
这里 KC[client,k]KC[client,k]KC[client,k] 表示知识缓存中专门为客户端 kkk 预留的存储位置,其中保存的是该客户端最新上传的蒸馏数据集 D^distillk\hat{\mathcal{D}}_{distill}^{k}D^distillk。
当客户端 kkk 完成新一轮的本地蒸馏并上传新的合成数据后,服务器可以直接通过索引 client,kclient,kclient,k 覆盖旧数据,保证缓存中的知识始终是最新的。在下一轮训练中,其他客户端可能需要某个类别下的“原型样本”来初始化自己的蒸馏过程。通过客户端索引,服务器可以方便地找到某个特定客户端上传的合成数据,并将其作为原型分发给其他设备(见公式 (8) 中的随机替换函数 σ\sigmaσ)。
基于类别的索引。 属于任何特定类别 y∗∈{1,2,…,C}y^{*}\in \{1,2,\ldots ,C\}y∗∈{1,2,…,C} 的所有缓存知识被共同获取,以促进后续以设备为中心的客户端采样过程,即:
Sc←KC[class,c],∀c∈{1,2,…,C},(6) S_{c} \leftarrow KC[class,c], \quad \forall c \in \{1,2,\ldots ,C\}, \tag{6} Sc←KC[class,c],∀c∈{1,2,…,C},(6)
其中 ScS_{c}Sc 是知识缓存中属于类别 ccc 的所有知识的集合,满足:
Sc={(X∗,y∗)∣(X∗,y∗)∈KC[client,k],∀k∈{1,2,…,K},y∗=c}.(7) S_{c} = \{(X^{*},y^{*})|(X^{*},y^{*})\in KC[client,k], \forall k\in \{1,2,\ldots ,K\} , y^{*} = c\}. \tag{7} Sc={(X∗,y∗)∣(X∗,y∗)∈KC[client,k],∀k∈{1,2,…,K},y∗=c}.(7)
3.2 联邦数据集蒸馏
FedCache 2.0 引入了联邦数据集蒸馏,它协同地从各个客户端的本地数据中提取匿名的非结构化信息。这些蒸馏数据存储在服务器上,以便进一步组织和访问。
步骤一:设备端数据集蒸馏。
这一步的目标是让每个客户端将本地原始数据(如图片)蒸馏成少量合成样本(每类一张),上传到服务器知识缓存。
1.模型分解:所有设备将其本地模型分解为特征提取器和分类器。对于设备 kkk 上的每个给定样本 (X∗,y∗)∈Dk(X^{*},y^{*})\in \mathcal{D}^{k}(X∗,y∗)∈Dk,相应的特征提取器和分类器的输出分别记为 Ffk(X∗)F_{f}^{k}(X^{*})Ffk(X∗) 和 Fck(Ffk(X∗))F_{c}^{k}(F_{f}^{k}(X^{*}))Fck(Ffk(X∗))。
2.原型初始化:每个客户端 kkk 需要获得一组初始原型 D^bk\hat{D}_b^kD^bk(每类一个样本),作为蒸馏的起点。
- 优先从服务器缓存获取:客户端可以从服务器下载其他客户端蒸馏好的合成数据作为自己的初始原型,这一过程由一个周期性更新的随机替换函数 σ:{1,2,…,K}→{1,2,…,K}\sigma :\{1,2,\ldots ,K\} \to \{1,2,\ldots ,K\}σ:{1,2,…,K}→{1,2,…,K} 控制,用于决定从哪个客户端获取原型。
- 否则使用本地数据:若缓存为空,则从本地数据中为每个类别挑选一张真实图片。
这样既能利用全局知识,又能保证冷启动时正常进行。
D^bk←{KC[client,σ(k)],KC[client,σ(k)]≠ϕDbk,KC[client,σ(k)]=ϕ,(8) \hat{D}_b^k \leftarrow \left\{ \begin{array}{ll} KC[client,\sigma(k)], & KC[client,\sigma(k)] \neq \phi \\ \mathcal{D}_b^k, & KC[client,\sigma(k)] = \phi \end{array} \right., \tag{8} D^bk←{KC[client,σ(k)],Dbk,KC[client,σ(k)]=ϕKC[client,σ(k)]=ϕ,(8)
其中 D^bk\hat{D}_b^kD^bk 表示待优化为合成数据的原型样本集。D^bk\hat{D}_b^kD^bk 是 Dk\mathcal{D}^kDk 中具有 CCC 个元素的子集,满足(每个类别只能有一个样本):
ybk≠ybk′∨(ybk=ybk′∧Xbk=Xbk′),∀(Xbk,ybk)∈D^bk∧(Xbk′,ybk′)∈D^bk.(9) \begin{array}{rl} & y_b^k \neq y_b^{k'} \lor (y_b^k = y_b^{k'} \land X_b^k = X_b^{k'}),\\ & \forall (X_b^k,y_b^k)\in \hat{D}_b^k \land (X_b^{k'},y_b^{k'})\in \hat{D}_b^k. \end{array} \tag{9} ybk=ybk′∨(ybk=ybk′∧Xbk=Xbk′),∀(Xbk,ybk)∈D^bk∧(Xbk′,ybk′)∈D^bk.(9)
FedCache 2.0每个类别只能有一张图 ?
输入输出对齐:蒸馏的目标就是每类一张图,所以起点也应该是每类一张图。
计算效率:避免冗余计算,每个客户端只需处理每类一张图,计算量可控。
存储和通信效率:每类一张图大大减少了上传和存储的数据量,符合通信高效的原则。
3.蒸馏过程:假设设备 kkk 在类别 ybky_b^kybk 上设置了一个原型 (Xbk,ybk)∈D^bk(X_b^k, y_b^k) \in \hat{D}_b^k(Xbk,ybk)∈D^bk。为了优化这个原型,客户端需要计算两个 Gram 矩阵:
- Gram矩阵:计算原型特征向量 Ffk(Xbk)F_f^k(X_b^k)Ffk(Xbk) 与本地同类数据集中所有样本的特征向量之间的内积矩阵。结果是一个 1×∣Dlk∣1 \times |\mathcal{D}_l^k|1×∣Dlk∣ 的行向量,其每个元素代表原型与一张本地同类样本的相似度。具体地,设本地同类样本集为 Dlk=(Xi,yi)∈Dk∣yi=ybk\mathcal{D}_l^k = {(X_i, y_i) \in \mathcal{D}^k \mid y_i = y_b^k}Dlk=(Xi,yi)∈Dk∣yi=ybk,则
Kblk=Ffk(Xbk)⋅[Ffk(X1),Ffk(X2),…,Ffk(X∣Dlk∣)]T K_{bl}^{k} = F_{f}^{k}(X_{b}^{k}) \cdot [F_{f}^{k}(X_{1}), F_{f}^{k}(X_{2}), \dots, F_{f}^{k}(X_{|\mathcal{D}_{l}^{k}|})]^{\mathrm{T}} Kblk=Ffk(Xbk)⋅[Ffk(X1),Ffk(X2),…,Ffk(X∣Dlk∣)]T
- 计算原型自相关:同时也计算原型自身特征图的 Gram 矩阵 KbbkK_{bb}^kKbbk,结果是一个标量,表示原型自身的特征能量,用于后续计算的正则化。
Kbbk=Ffk(Xbk)⋅Ffk(Xbk)T.(11) K_{bb}^{k} = F_{f}^{k}(X_{b}^{k}) \cdot F_{f}^{k}(X_{b}^{k})^{\mathrm{T}}. \tag{11} Kbbk=Ffk(Xbk)⋅Ffk(Xbk)T.(11)
- 核岭回归损失:根据核岭回归损失优化数据集蒸馏目标 Lbk\mathcal{L}_b^kLbk,目的是让原型 XbkX_b^kXbk 的特征分布,能够通过核方法映射回正确的标签 ybky_b^kybk。优化完成后,XbkX_b^kXbk 就从一个真实的图片,变成了一个模糊但保留了分类核心特征的合成图片。 III 表示单位矩阵,λ\lambdaλ 是控制正则化程度的超参数。
minXbkLbk=minXbk12∥ybk−Kblk(Kbbk+λI)−1⋅ybk∥2,(12) \min_{X_b^k}\mathcal{L}_b^k = \min_{X_b^k}\frac{1}{2}\left\| y_b^k - K_{bl}^k (K_{bb}^k + \lambda I)^{-1}\cdot y_b^k \right\|^2, \tag{12} XbkminLbk=Xbkmin21 ybk−Kblk(Kbbk+λI)−1⋅ybk 2,(12)
4.更新缓存:当客户端 kkk 完成本轮蒸馏,得到 D^bk\hat{D}_b^kD^bk 后,它会将这些合成数据上传给服务器,服务器将其存入知识缓存,覆盖该客户端上一轮的旧数据。
KC[client,k]←D^bk.(13) KC[client,k] \leftarrow \hat{D}_b^k. \tag{13} KC[client,k]←D^bk.(13)
步骤二:协同训练。
设备端数据集蒸馏依赖于优化良好的特征提取器。为提升本地模型性能并改善未来蒸馏质量,设备定期向服务器请求缓存的蒸馏数据进行个性化优化。
minWkLtraink=minWk(∑(Xik,yik)∈DkLCE(Wk;ϕ(Fk(Xik)),yik)+g(∑(X∗,y∗)∈Subk(⋃l=1KKC[client,l])LCE(Wk;ϕ(Fk(X∗)),y∗))),(14) \min_{W^k} \mathcal{L}_{train}^k = \min_{W^k} \left( \sum_{(X_i^k, y_i^k) \in \mathcal{D}^k} \mathcal{L}_{CE}(W^k; \phi(F^k(X_i^k)), y_i^k) + g\left( \sum_{(X^*, y^*) \in Sub^k \left( \bigcup_{l=1}^K KC[client,l] \right)} \mathcal{L}_{CE}(W^k; \phi(F^k(X^*)), y^*) \right) \right), \tag{14} WkminLtraink=Wkmin
(Xik,yik)∈Dk∑LCE(Wk;ϕ(Fk(Xik)),yik)+g
(X∗,y∗)∈Subk(⋃l=1KKC[client,l])∑LCE(Wk;ϕ(Fk(X∗)),y∗)
,(14)
其中 Ltraink\mathcal{L}_{train}^kLtraink 表示客户端 kkk 上的本地训练损失函数,ggg 是一个门控函数:
g(x)={x,KC[client,k]≠ϕ0,KC[client,k]=ϕ,∀x.(15) g(x) = \begin{cases} x, & KC[client,k] \neq \phi \\ 0, & KC[client,k] = \phi \end{cases}, \quad \forall x. \tag{15} g(x)={x,0,KC[client,k]=ϕKC[client,k]=ϕ,∀x.(15)
- 当 KC[client,k]≠ϕKC[client,k] \neq \phiKC[client,k]=ϕ(即客户端 kkk 之前已经上传过蒸馏数据,缓存非空):g(x)=xg(x) = xg(x)=x,此时客户端会使用从服务器下载的蒸馏数据进行额外训练。
- 当 KC[client,k]=ϕKC[client,k] = \phiKC[client,k]=ϕ(即客户端 kkk 尚未上传过任何蒸馏数据,缓存为空):g(x)=0g(x) = 0g(x)=0,此时公式 (14) 中的第二项被置零,客户端仅使用本地数据训练。
3.3 设备中心缓存采样
在 FedCache 2.0 中,服务器端的知识缓存里存放着所有客户端上传的蒸馏数据(合成图片)。当某个客户端需要下载知识来辅助本地训练时,服务器不能简单地把所有数据都发过去,因为:
- 通信带宽有限:边缘设备可能处于弱网环境,无法接收大量数据。
- 个性化需求:不同客户端的数据分布不同,它们需要的知识也应该不同。例如,一个主要识别猫的客户端,更需要猫类的合成图片,而不是大量狗类的。
FedCache 2.0 引入了一种设备中心缓存采样策略,为每个设备定制下载的知识。采样策略考虑设备的本地数据分布和可用带宽,从知识缓存中选择最相关的蒸馏数据子集。
本地标签分布计算。 在初始化过程中,每个客户端 kkk 根据其标签频率计算本地标签分布,即:
pck=∣{(Xik,yik)∣(Xik,yik)∈Dk,yik=c}∣∣Dk∣,(16) p_c^k = \frac{|\{(X_i^k, y_i^k) | (X_i^k, y_i^k) \in \mathcal{D}^k, y_i^k = c\}|}{|\mathcal{D}^k|}, \tag{16} pck=∣Dk∣∣{(Xik,yik)∣(Xik,yik)∈Dk,yik=c}∣,(16)
其中 pckp_c^kpck 表示客户端 kkk 上类别 ccc 的标签频率。
分布感知的可控采样。 在训练过程中,知识缓存根据 pckp_c^kpck 对存储的知识进行采样和分发,即:
Subk(⋃l=1KKC[client,l])=⋃c=1CRS(KC[class,c],(τ+(1−τ)⋅pck)⋅∣KC[class,c]∣),(17) Sub^k \left( \bigcup_{l=1}^K KC[client, l] \right) = \bigcup_{c=1}^C \text{RS}(KC[class, c], (\tau + (1 - \tau) \cdot p_c^k) \cdot |KC[class, c]|), \tag{17} Subk(l=1⋃KKC[client,l])=c=1⋃CRS(KC[class,c],(τ+(1−τ)⋅pck)⋅∣KC[class,c]∣),(17)
- 左侧 Subk(⋃l=1KKC[client,l])Sub^k(\bigcup_{l=1}^K KC[client, l])Subk(⋃l=1KKC[client,l]):表示从所有客户端上传的蒸馏数据(即知识缓存)中,为客户端 kkk 挑选出的子集。
- 右侧 ⋃c=1CRS(KC[class,c],⋅)\bigcup_{c=1}^C \text{RS}(KC[class, c], \cdot)⋃c=1CRS(KC[class,c],⋅):对每个类别 ccc 独立进行采样,然后将各类别的采样结果合并。
- RS(KC[class,c],p0)\text{RS}(KC[class, c], p_0)RS(KC[class,c],p0):从类别 ccc 的知识池 KC[class,c]KC[class, c]KC[class,c] 中,以概率 p0p_0p0 随机采样。这里 p0=(τ+(1−τ)⋅pck)p_0 = (\tau + (1 - \tau) \cdot p_c^k)p0=(τ+(1−τ)⋅pck),是类别 ccc 的实际采样率。
- (τ+(1−τ)⋅pck)⋅∣KC[class,c]∣(\tau + (1 - \tau) \cdot p_c^k) \cdot |KC[class, c]|(τ+(1−τ)⋅pck)⋅∣KC[class,c]∣:这是从类别 ccc 中期望采样的样本数量。采样率由两部分组成:
- τ\tauτ:基础采样率,保证即使客户端没有该类数据(pck=0p_c^k = 0pck=0),仍能采样少量样本,防止知识遗忘。
- (1−τ)⋅pck(1 - \tau) \cdot p_c^k(1−τ)⋅pck:与客户端标签分布成正比的动态部分。pckp_c^kpck 越大,该类知识被采样的概率越高。
- 超参数 τ\tauτ:控制模型性能与通信之间的权衡。随着 τ\tauτ 增大,缓存样本的比例也随之增加,这会导致更多的缓存知识被传输,但也会带来更高的通信开销。
- τ=1\tau = 1τ=1 时,采样率恒为 111,即采样所有缓存知识(尽可能多的知识,通信开销最大)。
- τ=0\tau = 0τ=0 时,采样率完全由 pckp_c^kpck 决定(只采样客户端本地有的类别,通信开销最小)。
- τ\tauτ 取中间值(如 0.50.50.5)时,兼顾了两者的优点。
4.1 实验设置
4.1.1 硬件与软件
服务器:Intel Xeon Silver 4210R CPU,4× GeForce RTX 3090 GPU,64GB 内存,KINGSTON SKC3000D2048G 固态硬盘。
4.1.2 数据集
- CIFAR-10:10类,32×32彩色图像。
- CIFAR-100:100类,32×32彩色图像。
- CINIC-10:10类,32×32彩色图像(混合了 CIFAR-10 和 ImageNet 的图像)。
- UrbanSound8K:10类城市声音(如警笛、儿童玩耍),每段 <4 秒。
- TMD:交通模式检测数据集(智能手机传感器数据,如加速度计)。
4.1.3 模型
- 图像任务:使用残差网络(ResNet)的四种变体:ResNet-T(最小)、ResNet-S、ResNet-M、ResNet-L(最大)。
- 音频和传感器任务:使用全连接网络(FCN),分别为 FCN-U(音频)和 FCN-T(传感器)。
- 实验设置:同构模型(所有客户端用 ResNet-L)和 异构模型(客户端均匀分配 ResNet-S/M/L)。
4.1.4 基线方法
- MTFL:多任务联邦学习(PIA,仅同构)。
- kNN-Per:基于 k 近邻的个性化 FL(PIA,仅同构)。
- SCDPFL :谱协同蒸馏(PIA,仅同构)。
- FedKD:知识蒸馏联邦学习(支持异构)。
- FedCache:原版知识缓存驱动 FL(支持异构)。
- 对比时,FedCache 2.0 与所有基线比较;在异构设置下,仅与 FedKD、FedCache 比较。
4.1.5 评价指标
- 平均用户模型准确率(UA):各客户端在本地测试集上的平均精度,取 100 轮内最高值。
- 通信效率:通过 UA 随通信开销的变化曲线,以及达到指定 UA 阈值所需的传输数据量(以 GB 或 MB 计)和相对于最差基线的加速比来评估。
4.2 实现细节
4.2.1 数据划分
- 使用 FedML 提供的 Dirichlet 分布划分,α\alphaα 控制异构程度。α=0.5\alpha=0.5α=0.5(高度异构)和 α=2.0\alpha=2.0α=2.0(轻度异构)。
- 每个客户端的训练和测试数据分布一致,不同客户端分布不同。
4.2.2 模型配置
- 图像同构:所有客户端用 ResNet-L(455.8K 参数)。
- 图像异构:客户端均匀分为三组,分别用 ResNet-S(265.9K)、ResNet-M(360.8K)、ResNet-L。(仅考虑 FedKD 和 FedCache 作为基线进行比较,因为 MTFL、kNN-Per 和 SCDPFL 仅支持客户端同构模型)
- 音频/传感器:同构,所有客户端用相同 FCN(约 150K 参数)。
- FedKD 中额外使用 ResNet-T(171.0K)作为服务器交互模型。
4.2.3 超参数设置
- 默认学习率 0.1,批大小 32,100 轮。
- FedCache 2.0:β=1.5\beta=1.5β=1.5,R=16R=16R=16,τ=0.5\tau=0.5τ=0.5,λ=0.01\lambda=0.01λ=0.01,η=1.0\eta=1.0η=1.0。
- 基线超参数按原论文设置。
4.3 图像识别任务评估
4.3.1 平均用户模型准确率
- 同构模型:FedCache 2.0 在所有数据集和 α\alphaα 下均取得最高 UA。例如 CIFAR-10(α=0.5\alpha=0.5α=0.5):FedCache 2.0 达到 51.1%,比第二名 SCDPFL(49.4%)高 1.7%;CIFAR-100(α=0.5\alpha=0.5α=0.5):35.8% vs 33.3%(SCDPFL)。
- 异构模型:FedCache 2.0 同样领先,CIFAR-10(α=0.5\alpha=0.5α=0.5):51.1% vs FedCache 41.3%、FedKD 39.7%。
4.3.2 通信开销
- 学习曲线显示 FedCache 2.0 收敛极快,极低通信量即可达到较高 UA。
- 定量对比:测量各算法在平均 UA 达到指定阈值之前客户端与服务器之间传输的信息总量,并计算通信效率加速比(即各方法通信开销与达到相同阈值的最差基线方法之比)。例如在 CIFAR-100(α=2.0\alpha=2.0α=2.0)达到 15% UA 时,SCDPFL 需要 15.9GB,而 FedCache 2.0 仅需 197.5MB,加速 334.4 倍。在 CINIC-10(α=0.5\alpha=0.5α=0.5)达到 40% UA 时,SCDPFL 需 7.8GB,FedCache 2.0 仅 473.5MB,加速 86.3 倍。
- 通信量单位为 MB 或 GB,FedCache 2.0 始终小于 0.5GB,而多数基线需数十 GB。
4.4 音频理解任务评估
1.平均 UA
UrbanSound8K 上,FedCache 2.0 在 α=0.5\alpha=0.5α=0.5 时达到 69.4%,远高于 MTFL(56.5%)和 kNN-Per(54.3%);α=2.0\alpha=2.0α=2.0 时 64.8% vs MTFL 46.9%、kNN-Per 54.1%。
2.通信效率
达到 50%(α=0.5\alpha=0.5α=0.5)或 45%(α=2.0\alpha=2.0α=2.0)UA 时,MTFL 和 kNN-Per 通信量分别为 13.0GB/7.5GB,而 FedCache 2.0 仅 14.3MB 和 19.1MB,加速比分别高达 930.9 倍 和 986.5 倍。
4.5 移动传感器数据挖掘任务评估
1.平均 UA
- TMD 数据集上,FedCache 2.0 在 α=0.5\alpha=0.5α=0.5 时达到 73.3%,远超 MTFL(54.8%)和 kNN-Per(61.6%);α=2.0\alpha=2.0α=2.0 时 61.7% vs MTFL 46.5%、kNN-Per 48.6%。
2.通信效率
- 达到 50%(α=0.5\alpha=0.5α=0.5)或 45%(α=2.0\alpha=2.0α=2.0)UA 时,MTFL 需 20.5GB/11.9GB,kNN-Per 需 12.4GB/11.0GB,而 FedCache 2.0 仅 14.8MB 和 15.4MB,加速比高达 1418.4 倍 和 791.3 倍。
4.6 消融研究
1. 缓存采样策略的影响
- 在 CIFAR-10(α=0.5\alpha=0.5α=0.5,同构)上测试不同 τ\tauτ 值。
- τ=0.3\tau=0.3τ=0.3 时 UA 最高(51.7%),τ=0.5\tau=0.5τ=0.5 为 51.1%,τ=1.0\tau=1.0τ=1.0 时降至 48.6%。
- 结论:适度采样(τ\tauτ 约 0.3-0.5)可平衡信息量和通信,过度采样(τ=1.0\tau=1.0τ=1.0)可能引入数据分布偏差,损害性能。
2. 模型设置的影响
- 对比同构模型(全部 ResNet-S)和异构模型(ResNet-S/M/L)。
- 在同构下,FedCache 2.0 在 CIFAR-10 上 UA 为 46.6%;在异构下提升至 51.1%。
- 结论:异构模型允许强设备使用更大模型,充分利用计算资源,整体性能优于“一刀切”的同构小模型。
5 讨论
5.1 更广泛的影响
- 动态网络适应性:FedCache 2.0 引入了对不确定连接容忍机制,支持异步通信,设备无需同时在线即可参与训练,非常适合物联网等不稳定网络环境。
- 跨模态通用性:通过通用数据匿名化方法,FedCache 2.0 不依赖特定任务编码器,可应用于图像、音频、传感器数据等多种模态,在智能医疗、电商推荐等领域具有广阔前景。
5.2 局限性
- 安全风险:恶意设备可能上传有毒的蒸馏数据,污染知识缓存,影响全局性能。这是典型的联邦学习对抗攻击问题,需要引入防御机制。
- 计算开销:设备端的数据集蒸馏过程(核岭回归优化)增加了本地计算负担,对低算力或电池受限设备不友好,可能影响训练速度。
6 相关工作
- 个性化与异构性:现有方法通过差异化客户端优化、新颖的客户端-服务器交互设计和混合策略来解决模型和学习个性化问题,但往往难以在通信效率和异构适应性之间取得良好平衡。FedCache 2.0 通过知识缓存和数据集蒸馏,同时兼顾了模型异构性、学习个性化和通信高效性。
- 边缘计算场景:边缘环境中的联邦学习面临设备异构、连接不稳定、资源受限等挑战,已有工作通过端-边-云协作的多层架构、异步聚合等方式进行优化。FedCache 2.0 通过在服务器上缓存蒸馏数据并执行以设备为中心的缓存采样,在降低通信开销的同时实现了最先进的性能,并确保即使是资源受限的设备也能高效利用全局知识进行本地自适应模型训练。
- 替代信息交换:为了避免传输庞大的模型参数,一些研究探索了利用模型输出(logits)、混合数据或蒸馏数据作为通信载体。FedCache 2.0 延续并深化了这一方向,首次将联邦数据集蒸馏与知识缓存结合,使交换的知识更丰富、更通用,同时保持极低的通信开销。
7 结论
论文提出了 FedCache 2.0,一种新颖的个性化联邦边缘学习架构,用于应对边缘环境中资源异构性、通信限制和动态网络条件带来的挑战。通过融合知识缓存驱动的联邦学习和数据集蒸馏的优势,FedCache 2.0 促进了设备与服务器之间隐私保护且语义丰富的知识组织和传输。这是通过一个迭代过程实现的:在设备上蒸馏数据,在服务器上缓存,然后将缓存的知识分发给本地训练和后续蒸馏。此外,论文还提出了一种以设备为中心的缓存采样策略,通过适配客户端的数据分布和通信约束,进一步增强个性化模型训练。在各种任务和数据集上的大量实验表明,FedCache 2.0 在降低通信成本的同时优于最先进的方法,展示了其作为个性化边缘智能场景中一种有前景的解决方案的潜力。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)