【论文原文】:FedMMD: Heterogenous Federated Learning based on Multi-teacher and Multi-feature Distillation
获取地址:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9846843
CSDN下载:https://download.csdn.net/download/qq_50757624/87408284
博主关键词:异构系统,联邦学习,联邦蒸馏,知识迁移
推荐相关论文:
-无
摘要:
联邦蒸馏是联邦学习中的一种新的算法范式,使客户端能够训练不同的网络架构。在联邦蒸馏中,学生可以通过提取客户端对公共服务器数据的平均预测来学习他人的信息,而不会牺牲他们的个人数据隐私。然而,仅使用平均软标签作为所有学生的老师的方法会受到客户端草案的影响,尤其是当本地数据是异构时。软标签是模型之间的平均分类分数。在本文中,我们提出了一个新的框架FedMMD(基于多教师和多特征蒸馏的联邦学习),该框架对客户端之间的不同数据分布具有鲁棒性。FedMMD扩展了FD训练程序中的聚集阶段和蒸馏阶段。与在所有学生中共享同一教师的方法相反,FedMMD 为每个需要进行多次独立蒸馏的学生分配不同的教师。由于每个模型都可以单独视为教师,FedMMD解决了共享教师仅具有平均性能由平均软标签引起的问题。同时,在每次蒸馏中,FedMMD没有使用模型在公共数据上的平均软标签作为教师,而是引入了中间表示和软标签的组合作为蒸馏目标,以了解教师的更多信息细节。我们在两个公共数据集(CIFAR10和MINIST)上的广泛实验证明了所提出的方法的性能。特别是在异构数据中,FedMMD在非IID(独立和相同分布)情况下准确性提高了20%。
简介:
最近,使用传统神经网络的深度学习在生活的各个方面都取得了成功。性能良好的模型通常需要大量数据样本进行训练。事实上,由于隐私保护和物理设备的问题,尽可能多地获取数据具有挑战性。在标准联邦学习问题中,服务器中的集中式模型基于来自各种客户端(如手机、计算机和传感器)的本地数据,使用名为 FedAVG 的局部梯度下降算法。在 FedAVG 中,每个客户端中的网络结构应该相同。只有这样,服务器才能使用平均算法来聚合所有模型参数。联邦学习通常应用于具有不同带宽和计算能力的移动和物联网 (IoT) 设备。此外,每个客户端私有数据的复杂性也不同,这就是系统异构性,这是联邦学习中最大的挑战之一。为了应对这一挑战,在高效联邦学习的保护伞下,提出了一种新的算法方法,即联邦蒸馏。联邦蒸馏(FD)是一种异构联邦学习算法,它使每个客户能够在保护参与者隐私的情况下从客户的私人数据中学习信息。研究表明,基于训练的FD具有良好的通信特性和良好的性能。但是,当每个客户端的数据不服从独立相同分布(IID)时,传统的FedAVG或FedKD将很难具有良好的性能。
我们的方法旨在通过探索CNN的核心假设,即模型可以分为特征提取器和分类器,更有效地聚合联邦学习中的各种局部分类器。我们做出以下贡献:
- 为了缩小客户吃水造成的性能差距,我们创新性地提出了一种新的联邦蒸馏框架FedMMDF,该框架结合了FedAVG和FedFD的优点。
- 为了增强泛化能力,缓解灾难性遗忘问题,我们将多特征标签和块蒸馏纳入FedMMDF。在存在数据异质性的情况下,所提出的方法使学生模型能够从教师的不同语义空间中学习信息。
- 利用所提出的方法和同构模型的基线,我们进行了实验以验证我们方法的优越性。显然,我们的方法在现实环境中的性能优于理想环境中的FedAVG。
Fig. 1. Training procedure of FedMMD. The models with different shapes in the figure represent various network structures.
Fig. 1.联邦医学博士的培训程序。图中不同形状的模型代表各种网络结构。
Fig. 2. A schematic of Multi-feature distillation. In the distillation, the output of the previous teacher block is regarded as the input of the current student block. That ensures that each student block has a similar input size with the teacher’s, improving the performance of each student block independently.
Fig. 2.多功能蒸馏示意图。在蒸馏中,前一个教师块的输出被视为当前学生块的输入。这确保了每个学生块与教师的输入大小相似,从而独立地提高了每个学生块的性能。