论文地址:Communication-Efficient On-Device Machine Learning: Federated Distillation and Augmentation under Non-IID Private Data NIPS 2018
联邦蒸馏(FD),一种分布式在线知识蒸馏方法,其通信有效载荷大小不取决于模型大小,而取决于输出维数。
联邦增强(F Aug)校正非iid训练数据集,该数据增强方案使用生成式对抗网络(GAN),在隐私泄露和通信开销之间进行折衷,进行集体训练。经过训练的GAN使每个设备能够在本地复制所有设备的数据样本,使训练数据集成为IID。
总体思想
需要明确的是在这篇论文中训练的是客户端模型,服务端并没有模型,服务端只是起到训练有条件生成对抗网络 (CGAN) 和通讯的作用。
首先通过联邦增强,使得各个客户端的本地数据都达到独立同分布。在接下来的训练中通过联邦蒸馏来让本地的客户端模型学习到其他客户端模型的知识从而提升客户端本地模型的效果。
1.联邦蒸馏(FD)
在传统的联邦学习中,客户端每一轮都需要将模型参数传给服务端,在这种方法下,通讯量是与模型参数的规模成正比的。而FedMD这篇文章中构建了一个共享数据集,客户端每一轮将本地模型对共享数据集的预测分数发给服务端,然后客户端模型通过知识蒸馏来获得客户端模型所学习到的知识。在这种情况下,通讯量是与共享数据集的大小成正比的。
但是本篇论文的作者认为以上两种方法都没有达到高效率通讯,于是提出了联邦蒸馏:每个客户端定期客户端上传本地每类数据的平均预测分数。然后定期从客户端下载全局每类数据的预测分数总和,然后再本地再求全局每类数据的平均预测分数
注意:我上面说的是定期,而不是每一轮。
联邦蒸馏算法
联邦蒸馏示意图
联邦蒸馏优点
1.通讯量进一步减少,现在通讯量是与数据种类数成正比的。
2.不需要像FedMD那样构建共享数据集。
缺点
1.通讯的信息质量不高。因为客户端最终得到的是每类数据的全局平均预测分数,这样客户端模型并不能有效学到其他客户端模型的知识。
2.联邦增强(FAug)
每个客户端将自己缺少的数据的标签和这些标签的少量种子数据上传到服务端,然后服务端就用这些种子数据通过Google的视觉数据图像搜索进行采样,然后使用采样到的数据训练出cgan(条件生成对抗网络)。客户端就从服务端下载cagn然后生成本地缺少的数据,从而使得客户端本地数据独立同分布。
联邦增强示意图
实验效果
可以看到FD的模型的准确率并不怎么高,但通讯量确实是很小。FD的精确度降低可以通过FAug来补充。
作为通信开销的回报,FL(FedAvg)对非独立同分布的数据集更为健壮。这是通过FAug观察到的,它将FD的测试精度提高了7-22%。并且与无FAug(即非IID数据集)样本的相比,FL的增加0.8-2.7%
————————————————
版权声明:本文为CSDN博主「Zoran_卓」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44008424/article/details/117048772