FedDTG:Federated Data-Free Knowledge Distillation via Three-PlayerGenerative Adversarial Networks

3 Method

FedDTG的目标是训练N个不同的分类器,这些分类器在相应的用户任务上表现良好,并训练全局生成器G,以使Pdata和Pg尽可能相似。如图1所示,培训过程可分为三个步骤:

1.局部对抗式培训:每个客户端在私有数据上训练本地模型,并生成几个Epoch的样本,然后将Gk和Dk发送到服务器。

2.全局聚合:服务器聚合接收到的生成器Gk和辨别器Dk以获得全局G和D,并将其发送回客户端。

3.联合蒸馏:每个客户端将由接收到的全局G生成的伪样本输入到Ck中以获得软标签,并将其发送到服务器。服务器计算其他软标签的平均值并返回,最后每个客户端使用这个平均软标签计算知识提炼损失并更新Ck。

FedDTG中客户端之间的信息传递主要来自两个部分:第一部分是全局生成器G,包括在局部对抗训练阶段和联邦蒸馏阶段对生成的图像进行正确分类;另一部分是从服务器接收到的其他客户端的软标签的平均值,即联邦蒸馏阶段的相互蒸馏。

3.1 Local Adversarial Training 

如图1所示,我们添加一个本地分类器Ck到寻常的GAN中,由参数化最小化在局部用户的任务上的风险。一方面,Ck可以帮助Gk学习当地的数据分布数据更快;另一方面,Gk模型可以帮助Ck缓解局部数据不平衡引起的模型漂移。

 与传统的GAN一样,Dk是一个二进制分类器,需要将真实的样本分类为真,将生成的样本分类为假。Dk需要最大化以下目标函数:

 

Gk以噪声向量和标记向量为输入,输出伪样本。所生成的伪样本不仅需要通过Ck被正确分类,并且通过Dk被分类为真。在Ck的帮助下,Gk可以将生成的伪样本与输入标签对应起来,并更快地学习局部数据分布。Gk需要最小化以下目标函数: 

 

 其中CE代表交叉熵。Ck不仅要对局部数据进行正确分类,还要对Gk产生的伪样本进行正确分类。在Gk的帮助下,Ck将不会过拟合局部训练数据集(过拟合会导致模型漂移)。Ck需要最小化以下目标函数:

3.2 Global Aggregation 

 在本地训练之后,参与该通信回合的每个客户端需要向服务器发送Gk和Dk。然后,服务器使用参数平均来聚集全局G和D,由参数化,可通过以下函数计算:

值得注意的是,在整个训练过程中,局部生成器Gk不直接访问真实的的局部数据集,并且生成的数据集由噪声向量和标签向量确定 。对于Dk,它是一个二元分类器,不能提供每个类的概率信息。因此,我们不能使用上传的Gk和Dk来获得局部标签分布并直接恢复局部训练数据集。最后,服务器将新的全局G和D发送到客户端。

在这个阶段,新的全局G可以获得所有局部Ck在所生成的伪样本上的输出。我们尝试使用这些输出来进一步优化全局G。这确实可以减少通信轮数并实现更好的性能。但全局G的参数频繁变化和产生的伪样本会大大增加每轮的通信代价。因此,在全局聚集阶段,我们只使用参数平均法。

3.3 Federated Distillation

当客户端接收到服务器发送的模型时,它将用全局的G和D替换Gk和Dk。然后服务器指定联邦蒸馏阶段的批量大小和噪声向量对于每个批次,客户端为每个类别生成相同数量的标签向量y,并将它们与z一起输入到Gk。

 由于输入和模型参数是一致的,所以该通信回合的所有客户端输出相同的伪样本。以这种方式,避免了由于发送大量生成数据而引起的通信成本。

 将伪样本输入到Ck中,得到局部软标签,并将其发送到服务器。然后,服务器计算除当前客户端(也就是第k个客户端产生的标签矢量,这第k个客户端的软标签不用拿过去)之外的所有客户端的平均软标签,并将表示集成知识的结果发送回去。最后,客户端计算Ck的输出与之间的KL-散度作为蒸馏损失,并加上对输入假样本进行分类的损失。因此,Ck需要在此阶段最小化以下目标函数:

 

4 Experiments


4.1 Setup 

 联合学习配置:我们总共模拟20个客户端,每轮活动用户比率frac = 50%。我们使用Dirichlet分布Dir(α)来模拟非iid数据分布。在狄利克雷分布中,α的值表示非iid的程度。α越小,数据异质性程度越高,数据异质性在大小、类分布以及每个类的分布上都不同。我们使用α = 0.05、0.1、0.4三个值来模拟non-iid的设置。对于每个局部对抗式训练,我们使用Adam优化器,其中learning rate = 0.0001,Epoch= 20,batch size= 32,并且每个客户端使用五层卷积网络

 FedDTG每轮使用10000个生成的图像来进行联合蒸馏。为了公平比较和反映缺乏本地数据的联邦环境,我们最多使用r = 25%的训练数据集并将其分发给客户端来模拟非iid联邦环境,并使用所有测试数据集进行性能评估。

4.2 Results

数据异构性的影响:如表2所示,FedDTG在不同水平的数据异质性下均能获得最优且稳定的结果。值得注意的是,FedProx和FedDF是基于FedAvg对参与者模型参数的平均值进行优化,FedGen也使用了部分参数共享。但FedDTG算法在客户端之间的相互蒸馏中转移了其他模型的知识,没有直接对分类器模型进行参数平均。因此,该任务比其他算法更困难。FedDTG与其他方法相比仍然表现得更好,尤其是当α值较小时,这代表了更高的异质性数据分布。此外,训练数据的减少对FedDTG的影响不大。这个结果符合我们的动机。在分布式遗传算法的帮助下,生成的假样本不仅扩大了局部训练数据,而且限制了局部目标函数过度偏离全局目标函数。性能比Fedavg高很多,这种差异表明,我们提出的直接在客户端模型之间进行相互提炼的方法比基于FedAvg微调全局模型的方法更有效。

FedGen作为最具竞争力的基线之一,在大多数情况下都取得了较好的结果,但它没有充分利用知识提炼的方法。正如我们所看到的,我们提出的方法在大多数情况下都优于FedGen,特别是当数据异构程度很高时。在FedDTG中,本地客户端模型不仅需要对生成的图像进行正确分类,还需要提取其他客户端的知识,比完全依赖生成器传递信息的FedGen更加稳定。

Learning efficiency:

我们在图2的右侧显示了在这种联邦设置下分配给每个客户机的每个类的样本数。我们可以看到,在这种极端的非iid情况下,大多数客户端只有一类图像,客户端2甚至只有32张局部训练图像,这大大增加了联邦训练的难度。虽然FedGen在一定的数据设置下具有比其他基线更高的学习效率,但在分类生成图像和相互蒸馏的帮助下,我们的方法在训练过程中具有更小的准确率波动。

鲁棒性:

我们在标签分布和数量分布两种极端不平衡的情况下测试了FedDTG的泛化性能。我们使用10个用户和r = 10%MNIST训练数据。在第一种情况下,每个用户只有一类数据。在第二种情况下,5个用户具有10个样本,而其他5个用户具有600个样本,其中每个用户具有属于每个类别的相同数量的样本。如图3所示,FedDTG的稳定性较其他算法有明显优势,再次验证了全局生成器G的作用。此外,客户端之间的相互提炼可以使其更快地获得全局聚合知识,从而使该方法更快地达到收敛状态。 

 

4.3 Ablation study 

我们测试了FedDTG的不同部分对最终实验结果的影响。FedDTG中客户端之间的信息传递主要来自全局G和客户端之间的相互蒸馏。如果单独使用相互蒸馏,去除全局教师模型后,整个方法类似于传统的联邦蒸馏。如果单独使用全局生成器G,则等效于直接用生成的数据扩展局部数据集。如图4左侧所示,加入全局发生器可以减少训练过程中造成的精度波动,加入相互蒸馏可以加快整个算法的收敛速度。两者都显著改善了结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值