基于知识蒸馏的的FL --> FedGen:Data-Free Knowledge Distillation for Heterogeneous Federated Learning


FedGen:Data-Free Knowledge Distillation for Heterogeneous Federated Learning 异构联邦学习的无数据知识蒸馏

面临的问题

用户的异质性—>导致全局模型漂移且收敛缓慢

摘要

传统的知识蒸馏解决用户异质的问题:通过使用异构用户的聚合知识来改进服务器模型,这种方法依赖于代理数据集(不符合实际)。并且聚合的知识没有被充分利用来指导局部模型学习,这可能反过来影响聚合模型的质量。
本文采用的方法:

  • 提出了一种无数据的知识蒸馏方法来解决异构 FL。
  • 服务器学习一个轻量级生成器以无数据的方式集成用户信息
  • 然后将其广播给用户,用学到的知识调节本地训练作为归纳偏置。

Introduction

俩个解决用户异质性的角度:

  1. 通过调节局部模型与全局模型在参数空间上的偏差来稳定局部训练。(这种方法可能无法充分利用用户模型的基础知识,其多样性表明其本地数据的信息结构差异)
  2. 提高模型聚合的效率。(以未标记的数据集作为代理,知识蒸馏通过使用局部模型的集成知识丰富全局模型,减轻了异质性引起的模型漂移问题,这比简单的参数平均更有效。— 但是数据集可能并不总是在服务器上可用)

本文的方法:FL 的无数据知识蒸馏方法(FedGen)
具体来说,FEDGEN 学习一个 仅从用户模型的预测规则里派生出的生成模型,在给定目标标签的情况下,该生成模型可以产生与用户预测集合一致的特征表示。将该生成器广播给用户,在潜在空间中使用增强样本来帮助他们的模型训练,这体现了从其他同行用户那里提取的知识。给定一个维度远小于输入空间的潜在空间,FEDGEN 学习的生成器可以是轻量级的,从而给当前 FL 框架带来最小的开销。
优点:

  • 它从用户中提取知识,而这些知识在模型平均后会被减轻,而不依赖于任何外部数据。
  • 与仅细化全局模型的某些先前工作相反,我们的方法使用提取的知识直接调节局部模型更新。我们表明,此类知识对局部模型施加了归纳偏差,从而在非独立同分布数据分布下获得更好的泛化性能。
  • 此外,所提出的方法已准备好解决更具挑战性的 FL 场景,在这些场景中,由于隐私或通信限制,共享整个模型参数是不切实际的,因为所提出的方法只需要本地模型的预测层来进行知识提取。

Notations and Preliminaries

联邦学习旨在学习一个由 θ \theta θ 参数化的全局模型,以最大限度地降低其对每个用户任务 T k T_k Tk 的风险

在这里插入图片描述
在这里插入图片描述
公式1:
在这里插入图片描述
在这里插入图片描述

知识蒸馏(Knowledge Distillation, KD)也被称为师生范式(teacher - student paradigm),其目标是利用从一个或多个有能力的教师那里提炼出来的知识来学习轻量级的学生模型.典型的KD利用代理数据集 D p D_p Dp来最小化分别来自教师模型 θ T \theta_T θT和学生模型 θ S \theta_S θS的逻辑输出之间的差异。一种具有代表性的选择是使用Kullback-Leibler散度来衡量这种差异
在这里插入图片描述
将KD的思想用于FL:
在这里插入图片描述
上述是基于数据的KD

基于生成学习的无数据联邦蒸馏

在这里插入图片描述

服务器在不观察不同本地客户端的数据的情况下,通过学习生成器Gw(·|y)来聚合来自不同本地客户端的信息。然后将生成器发送给本地用户,这些用户的知识被提炼到用户模型中,以调整他们对良好特征分布的解释。

知识提取

我们的核心思想是提取关于数据分布全局视图的知识,这些知识是传统FL无法观察到的,并将这些知识提取到局部模型中,以指导它们的学习。我们首先考虑学习一个条件分布 Q ∗ : Y − X Q^*: Y -X Q:YX表示这类知识的特征,这与真值数据分布一致:
在这里插入图片描述
其中p(y)和p(y|x)分别是目标标签的真实先验分布和后验分布,两者都是未知的。为了使方程2可优化w.r.t Q,我们用经验逼近代替p(y)和p(x|y)。首先,我们估计p(y)为:
在这里插入图片描述
其中 I(·) 是指示函数,Dk 是域 Tk 的可观测数据。实际上,p^(y)可以通过在模型上传阶段要求用户提供训练标签计数来获得。接下来,我们使用用户模型的集成知识来近似p(y|x)
在这里插入图片描述
当X比较高维时计算困难,而且有可能泄露用户数据配置文件的信息,因此使用恢复诱导分布 Q ∗ : Y − Z Q^*: Y -Z Q:YZ 位于潜在空间上,它比原始数据空间更紧凑,可以减轻某些与隐私相关的问题
在这里插入图片描述
我们的目标是通过学习条件生成器 G 来执行知识提取,由 w 参数化以优化以下目标:
在这里插入图片描述
给定任意目标标签 y,所提出的生成器可以产生特征表示 z~Gw(·|y),从而从用户模型集合中得出理想的预测。换句话说,生成器近似一致分布的诱导图像,这与全局视图中的用户数据一致。

知识蒸馏

然后将学习到的生成器 Gw 广播给本地用户,以便每个用户模型可以从 Gw 中采样以获得特征空间上的增强表示 z~Gw(·|y)。
因此,局部模型 θ k \theta_k θk 的目标被改变,以最大化它为增强样本产生理想预测的概率:
在这里插入图片描述
其中,给定的经验风险,增强样本可以向本地用户引入归纳偏差,从而以更好的泛化性能强化他们的模型学习在这里插入图片描述

灵活参数共享的扩展

仅共享本地模型的预测层 θ k p \theta_k^p θkp 来缓解这些问题,同时保持特征提取器 θ k f \theta_k^f θkf 本地化。与共享整个模型的策略相比,这种部分共享范例更加高效,同时不易受到数据泄露的影响。

分析

  • ==Gw(x|y) 可以融合来自用户模型的聚合信息以近似全局数据分布。==然后,我们让用户从 Gw(x|y) 中进行采样,这对于数据有限的用户来说是一种归纳偏差。因此,每个用户都可以超越自己的训练数据进行观察,并调整其决策边界以接近集成知识。

  • FEDGEN 与之前的工作之间的显着区别在于,知识被提炼为用户模型而不是全局模型。因此,向用户传达归纳偏差的蒸馏知识可以通过在潜在空间 Z 上执行分布匹配来直接调节他们的学习:

  • 知识蒸馏提高泛化能力

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
数据免费知识蒸馏与软目标传输集合合成是一种通过利用现有数据集来提高深度神经网络的性能的方法。这种方法主要包括两个步骤:知识蒸馏和软目标传输集合合成。 首先,知识蒸馏是指将一个已经训练好的大型模型的知识转移到一个小型模型中。这样做的好处是,小型模型可以通过利用大型模型的知识来提高其性能。知识蒸馏的过程包括将大型模型的输出(一般是概率分布)作为目标分布,然后使用目标分布和小型模型的输出之间的交叉熵作为损失函数进行训练。通过这种方式,小型模型可以学习到大型模型的知识,并提高其性能。 其次,软目标传输集合合成是指通过合成新的目标数据集来进一步提高小型模型的性能。这是通过将已有数据集中的样本与大型模型的输出结合起来产生的。具体而言,对于每个样本,使用大型模型进行预测,并根据预测结果以及训练集中的标签来合成一个新的目标分布。然后,再次使用目标分布和小型模型的输出之间的交叉熵作为损失函数进行训练。通过这种方式,小型模型可以进一步学习到大型模型的知识,并提高其性能。 总之,数据免费知识蒸馏与软目标传输集合合成是一种提高深度神经网络性能的有效方法。通过利用已有的数据集和大型模型的知识,可以帮助小型模型更好地学习并提高其性能。这种方法在许多领域中都有广泛的应用,例如计算机视觉、自然语言处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值