联邦学习——用data-free知识蒸馏处理Non-IID

article/2025/10/14 1:50:52

《Data-Free Knowledge Distillation for Heterogeneous Federated Learning》ICML 2021
最近出现了利用知识蒸馏来解决FL中的用户异构性问题的想法,具体是通过使用来自异构用户的聚合知识来优化全局模型,而不是直接聚合用户的模型参数。然而,这种方法依赖于proxy dataset,如果没有这proxy dataset,该方法便是不切实际的。此外,集成知识没有被充分利用来指导局部模型的训练,这可能反过来影响聚合模型的性能。
基于上述挑战,这篇文章提出了一种data-free知识蒸馏法来处理FL中的异构性问题,该方法称为FeDGen(Federated Distillation via Generative Learning)。其中服务器学习一个轻量级生成器,以data-free的方式集成用户信息,然后广播给用户,使用学习到的知识作为"归纳偏置"来调节局部训练。("归纳偏置"就是基于先验知识对目标模型的判断,将无限可能的目标函数约束在一个有限的假设类别之中)

文章简介

FeDGen学习一个仅从用户模型的预测规则导出的生成模型(在给定目标标签的情况下,该模型可以产生与用户预测的集合一致的特征表示)。该生成器随后被广播给用户,用从“潜在空间”(生成器产生的分布空间)采样得到的增广样本escort他们的模型训练(该潜在空间体现从其他对等用户提取的知识)。
给定一个比输入空间小得多的潜在空间,FeDGen所学习的生成器可以是轻量级的,给当前的FL框架带来最小的开销。

创新点

  • 算法只从用户局部模型的预测层提取知识,不依赖于用户的其他数据。
  • 不同于其他仅优化全局模型的方法,该算法使用提取的知识对局部模型施加归纳偏置,直接调节局部模型的更新,使模型在Non-IID下具备更好的泛化性能。
  • 与现有技术相比,该方法通过更少的通信轮次却能产生具备更好泛化性能的全局模型。

算法理解

该文章讨论了一个用于监督学习的典型FL设置,即多类别分类的一般问题。

1、公式及符号定义

X ⊂ R p R^p Rp为样本空间,Z⊂ R d R^d Rd(d < p)为潜在的特征空间,T代表由X的数据分布D和真值标签函数c* : X → y 组成的域T := <D, C*>。(域T可以理解为用户端的任务T。)
模型参数θ := [ θ f θ^f θf, θ p θ^p θp]包含两个部分:一个是由 θ f θ^f θf参数化的特征提取器f : X→Z,另一个是由 θ p θ^p θp参数化的预测函数h : Z→ Δ y Δ^y Δy Δ y Δ^y Δy is the simplex over y。
给定一个非负凸损失函数L : Δ y Δ^y Δy × y → R,由θ参数化的模型在域T上的损失定义为 L T L_T LT(θ) := E x D E_{x~D} Ex D[L(h(f(x; θ f θ^f θf); θ p θ^p θp), c*(x))]。

2、知识蒸馏

知识蒸馏是一个teacher-student模式,目的是通过从一个或多个强大的teacher模型提取的知识来学习一个轻量的student模型。一种典型的方法是利用proxy dataset来最小化来自techer模型 θ T θ^T θT和student模型 θ s θ^s θs的logits输出。(logits就是最终的全连接层的输出,通常神经网络中都是先有logits,而后通过sigmoid函数或者softmax函数得到概率P)
目前已有将知识蒸馏应用于FL的方法,该方法将用户模型 θ k θ^k θk作为teacher,student(global)模型θ通过聚合 θ k θ^k θk的信息来提高泛化性能。优化目标如下:
在这里插入图片描述
上述方法的一个主要限制在于其对proxy dataset的依赖,proxy dataset的选择在蒸馏性能中起着关键作用。
为应对这一限制,这篇文章提出以data-free的方式将知识蒸馏应用于FL。

3、FeDGen

3.1、知识提取

文章的核心思想是提取关于“the global view of data distribution”的知识(这些知识是传统FL无法观察到的),并将这些知识提取到本地模型中以指导他们的学习。

  • 首先考虑学习一个条件分布Q* : y → x 来描述这一知识:
    在这里插入图片描述
    其中p(y)和p(y|x)分别是真值标签的先验分布和后验分布,两者都是未知的。但这一条件分布Q*,在高维度的样本空间X的情况下将导致计算过载,并可能造成用户相关数据配置的泄露。
  • 因此,文章提出另一个可行的想法:恢复潜在空间上的induced distribution G* : Y→Z(潜在空间也就是全局数据的特征分布,比原始数据空间更紧凑,并且可以减少某些隐私泄露的风险):
    在这里插入图片描述
    基于上述推导,文章旨在通过学习一个条件生成器G来执行知识提取(恢复一个潜在空间),该生成器由w参数化,在服务端进行优化,优化目标如下:
    在这里插入图片描述
    其中g是logit输出,σ是激活函数。对于任意标签y,优化(4)只需要用户模型的预测模块 θ k p θ^p_k θkp。具体来说,为了使G(· | y)的输出多样化,文章向生成器 G w G_w Gw引入了一个噪声向量ε ~ N(0, i)(3.4部分有具体的学习过程展示,类似于重参数化)。
    这样一来,给定任意的目标标签y,生成器 G w G_w Gw 可以产生“特征表示” z ~ G w G_w Gw(· | y),该特征表示(潜在空间)可以根据所有用户模型引导理想的预测。

3.2、知识蒸馏

将完成学习的生成器 G w G_w Gw广播给各个用户,使每个用户模型都可以从 G w G_w Gw中进行采样以获得特征空间上的增广表示:z ~ G w G_w Gw(· | y)。用户模型 θ k θ_k θk的优化目标也变为“最大化其为增广样本产生理想预测的概率”:
在这里插入图片描述
(5)中第一项是用户数据 D k D_k Dk-hat的经验风险。增广样本可以向用户引入归纳偏置,强化模型训练。
经过以上步骤,FeDGen通过交互学习一个依赖于用户模型预测规则的轻量级生成器 G w G_w Gw,并利用该生成器向用户传递一致的知识,已经实现了data-free的知识蒸馏。

3.3、FeDGen中灵活的参数共享

FeDGen仅共享用户模型的预测层 θ k p θ^p_k θkp θ k f θ^f_k θkf则保留在用户本地。与共享整个模型的策略相比,这种部分共享模式更有效,同时更不容易发生数据泄漏。

3.4、FeDGen伪代码及学习过程

在这里插入图片描述
在这里插入图片描述

进一步理解知识蒸馏

1、知识蒸馏与归纳偏置

G w G_w Gw基于用户模型的预测规则进行学习,目的是融合来自用户模型的聚合信息来估计全局数据分布 r(x|y)。接着用户从 G w G_w Gw(x | y)进行采样,采样结果作为自身的归纳偏置,进而调整决策边界。如下图所示,在知识蒸馏KD之后,一个用户的准确率从81.2%提高到了98.4%
在这里插入图片描述

2、知识蒸馏与分布匹配

FEDGEN和先前研究的主要区别在于:知识被蒸馏至用户模型,而不是全局模型。因此,蒸馏出来的知识(向用户传递的归纳偏置)可以通过在潜在空间Z上进行分布匹配,直接调节用户的学习。

3、知识蒸馏与泛化性能

用户异构性越高,用户间的数据分布差异也越高,这会降低全局模型的质量;而通过向本地用户提供与全局分布一致的增广数据,则可以提高泛化性能。

实验

文章对FeDGen的多项性能进行了实验分析:预测精度(Table 1)、学习效率(Figure 6)、对游离用户的敏感度(Figure 5b,6a,6b)、对不同模型结构的敏感度(Figure 5d,5c),对通信延迟的敏感度(Table 1)、对生成器的网络结构和采样大小的敏感度(Table 2,Table 3,Figure 7)、灵活参数共享的扩展性分析(Table 4,figure 8)
Figure 4是数据集MNIST在(迪利克雷分布)参数a的不同取值下的异构性可视化。
在这里插入图片描述
预测精度、对通信延迟的敏感度(EMNIST)
在这里插入图片描述
学习效率(Figure 6)、对游离用户的敏感度(Figure 5b)、对不同模型结构的敏感度(5c、5d)
在这里插入图片描述
对生成器的网络结构(Table 2)和采样大小的敏感度(Table 3,Figure 7)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/GBtGv7Pr.shtml

相关文章

【FLIS】Clustered Federated Learning via Inference Similarity for Non-IID Data Distribution

Clustered Federated Learning via Inference Similarity for Non-IID Data Distribution 基于推理相似性的非iid数据分布聚类联邦学习 Abstract1.INTRODUCTION2.FEDERATED LEARNING WITH CLUSTERINGA. Overview of FLIS AlgorithmB. Clustering Clients 3.EXPERIMENTSA. Exper…

Federated Learning with Non-IID Data 论文笔记

本文提出联邦学习中的由于Non-IID数据分布而精度降低是因为权重分散&#xff08;weight divergence&#xff09;&#xff0c;而权重散度可以用搬土距离&#xff08;EMD&#xff09;量化&#xff0c;最后提出了一种策略&#xff1a;通过创建一个在所有边缘设备之间全局共享的数据…

论文分享:「FED BN」使用LOCAL BATCH NORMALIZATION方法解决Non-iid问题

‍ ‍ 本次分享内容基于ICLR 2021收录的一篇文章&#xff1a;《FED BN: FEDERATED LEARNING ON NON-IID FEATURES VIA LOCAL BATCH NORMALIZATION》&#xff0c;这篇论文主要探讨了使用LOCAL BATCH NORMALIZATION方法解决Non-iid问题。围绕这篇论文的分享将分为4个部分&#…

On the convergence of FedAvg on non-iid data

在这篇blog中我们一起来阅读一下 On the convergence of FedAvg on non-iid data 这篇 ICLR 2020 的paper. 主要目的 本文的主要目的是证明联邦学习算法的收敛性。与之前其他工作中的证明不同&#xff0c;本文的证明更贴近于实际联邦学习的场景。特别的&#xff0c; 所有用户…

Federated Learning with Non-IID Data

Federated Learning with Non-IID Data 论文中分析了FedAvg算法在Non-IID数据时&#xff0c;准确率下降的原因。并提出共享5%的数据可提高准确率。 论文笔记参考&#xff1a;https://blog.csdn.net/GJ_007/article/details/104768415 Federated Learning with Non-IID Data …

什么是TLB文件,怎样从dll文件中提取TYPEID信息?- IID

文章目录 1.TLB是什么?2.怎样从dll中导出TLB文件?3.怎样创建TLB文件?4.如何导入TLB5.作者答疑Com是windows平台提供的二进制互操作解决方案。如果给你一个dll,或者windows自带的dll,是否有可能提取其Com接口信息,答案是可以的。 1.TLB是什么? TLB文件是一个说明文件,通…

怎么实现联邦学习中的Non-IID?

联邦学习的一大特点就是数据分布是Non-IID&#xff0c;Non-IID意为非独立同分布。那么怎么在实验中实现non-iid呢&#xff1f;这是我这篇博客想讨论的问题。 part 1&#xff1a; 在堪称联邦学习“开山之作”FedAvg这篇论文中&#xff0c;是这样描述的&#xff1a; 数据集是MN…

【联邦学习】联邦学习量化——non-iid数据集下的仿真

文章目录 改进项目背景量化函数的改进non-iid数据集的设置Fedlab划分数据集的踩雷 改进项目背景 在前面的项目中&#xff0c;虽然对联邦学习中&#xff0c;各个ue训练出来的模型上传的参数进行了量化&#xff0c;并仿真的相关结果。但是仍有一些俺不是非常符合场景的情况&…

「隐语小课」联邦学习之Non-IID问题

更多干货内容&#xff0c;请移步公众号&#xff1a;隐语的小剧场 一、引言 本文针对联邦学习中遇到的Non-IID问题进行探讨&#xff0c;介绍Non-IID产生的原因&#xff0c;分析Non-IID对联邦学习的影响&#xff0c;以及调研了近年来针对该问题的解决方案&#xff0c;并进行分类…

联邦学习中的non-iid总结

最近研究联邦学习&#xff08;federated learning&#xff0c;FL&#xff09;中的non-iid的解决办法时遇到瓶颈&#xff0c;写成博客将最近的工作总结一下&#xff0c;希望有大佬看到这篇博客不吝赐教。 什么是non-iid 先从维基百科引出独立同分布的定义&#xff1a; 在概率论…

IID 与 Non-IID

数据独立同分布&#xff08;Independent Identically Distribution&#xff0c;IID&#xff09; 数据与数据之间都是独立的&#xff0c;但满足同一个分布。&#xff08;独立&#xff1a;一个数据的出现不会影响另一个数据&#xff09; 数据分布描述的是数据的统计情况&#x…

dy设备deviceid iid注册分析

清楚缓存&#xff0c;重新打开app, 点击同意按钮&#xff0c;会触发设备注册&#xff1b; 很明显是一个post包&#xff0c;device_register 可以看到请求体加密了 那么 请求体是什么呢&#xff1f; 很老版本思路&#xff1a;都是直接明文注册 较老版本思路&#xff1a;在反编译…

Redis 设计与实现: redisObject 数据结构,以及 Redis 的数据类型

redisObject 数据结构&#xff0c;以及 Redis 的数据类型 redisObject 是 Redis 类型系统的核心&#xff0c; 数据库中的每个键、值&#xff0c;以及 Redis 本身处理的参数&#xff0c; 都表示为这种数据类型。 redisObject 的定义位于 redis.h &#xff1a; /** Redis 对象…

(五)、Redis的RDB持久化---Redis设计与实现读书笔记

两个用于生成RDB文件的命令 save&#xff1a;会阻塞Redis服务器进程&#xff0c;直到RDB文件创建完毕&#xff0c;在阻塞期间&#xff0c;服务器不能处理任何命令请求bgsave&#xff1a;会派生出一个子进程&#xff0c;然后由子进程负责创建RDB文件&#xff0c;服务器经常(父进…

《redis设计与实现》 读书笔记

《redis设计与实现》 作者&#xff1a;黄健宏 读书笔记 一、前言 什么是redis&#xff1a; Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。简而言之redis就是放在远程网络上的一个key-va…

《Redis设计与实现》阅读:Redis底层研究之简单动态字符串SDS

除仅用于字符串字面量的情况外&#xff0c;对于可以被修改值的字符串的表示&#xff0c;Redis底层并没有采用C语言传统的字符串表示&#xff0c;即以空字符结尾的字符数组&#xff0c;而是采用专门为其设计的简单动态字符串作为其默认字符串表示&#xff0c;其英文全称为Simple…

Redis秒杀功能设计与实现

前言 抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了 抢购中的几个常见问题 如何设计抢购功能?(表结构,以及整体的抢购思路)不借助中间件如何实…

Redis设计与实现阅读总结(一)数据结构和对象

Redis设计与实现阅读总结&#xff08;一&#xff09;数据结构和对象 最近团队几个人和我聊了下&#xff0c;加上我自己平时的反思&#xff0c;我发现自己问题确实很多 其中一个问题就是&#xff0c;自己学习东西没有系统性&#xff0c;没有总结 这次的博客算是一个总结的开始。…

(六)、Redis的AOF持久化---Redis设计与实现读书笔记

redisServer关于AOF的数据结构 /***Redis 服务器类*/ struct redisServer{...//AOF缓存区sds aof_buf;... }当服务器执行完一个写命令后&#xff0c;会一协议格式将被执行的写命令追加到服务器类的aof_buf缓存区的末尾。 AOF文件的写入、同步 写入、同步概念 写入&#xff…

Redis | 第8章 发布订阅与事务《Redis设计与实现》

第8章 发布订阅与事务 前言1. 发布订阅1.1 频道的订阅与退订1.2 模式的订阅与退订1.3 发送消息1.4 查看订阅消息 2. 事务2.1 事务的实现2.2 WATCH 命令的实现2.3 事务的 ACID 性质 最后 前言 参考资料&#xff1a;《Redis设计与实现 第二版》&#xff1b; 第三部分为独立功能…