我的编程空间,编程开发者的网络收藏夹
学习永远不晚

知识蒸馏联邦学习的个性化技术综述

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

知识蒸馏联邦学习的个性化技术综述

前言

题目: Survey of Personalization Techniques for FederatedLearning

会议: 2020 Fourth World Conference on Smart Trends in Systems, Security and Sustainability (WorldS4)

论文地址:Survey of Personalization Techniques for FederatedLearning

前面讲到,客户端由于本地数据不足,无法通过自己的数据训练得到一个较好的模型,因此客户端需要参与联邦学习来获得一个全局共享模型。但由于各个客户端间数据的非独立同分布,全局模型在某些客户端上表现可能并不好,并且如果客户端自己拥有足够数据,他们是否还有必要参与联邦学习呢?

在这种情况下,个性化联邦学习应运而生。所谓个性化,是指对全局共享模型进行改进,改进后的模型相比于全局模型和本地模型,可能更适合客户端。

本文主要总结了七种个性化技术:添加用户上下文、迁移学习、多任务学习、元学习、知识蒸馏、基础+个性化层、全局模型和本地模型混合。其中有一些技术后期会有专门的论文解读来对其进行介绍。

摘要

联邦学习通常为所有客户端生成一个全局共享模型,但由于数据在设备间的非IID分布,统计上的异质性经常导致这样的情况:对于一些客户来说,仅根据其私有数据训练的本地模型比全局共享模型表现更好。目前已经提出了一些技术来个性化全局模型,以便更好地为个人客户工作,本文调查了最近关于这一主题的研究。

I. 引言

许多数据集本质上是分散的,在联邦学习中,这些数据分布在各个客户端。传统的机器学习将这些客户端的数据样本聚集到一个中央存储库中,并在此基础上训练机器学习模型。将数据从本地设备转移到中央存储库带来了两个关键挑战。首先,它损害了数据的隐私性和安全性。其次,它增加了通信开销。作为一种解决方案,联邦学习使多个用户(即客户端)能够在他们的集体数据上协作地训练出一个共享的全局模型,而无需将数据从本地设备中移动。

客户端参与联邦学习的主要动机是获得更好的模型。客户端如果没有足够的私人数据来开发准确的本地模型,就可以从联邦学习的模型中获益。然而,对于有足够私人数据来训练准确的本地模型的客户来说,参与联邦学习是否有好处是有争议的。对于许多应用程序来说,跨客户端的数据分布是非IID的,这种统计上的异质性使得很难训练出适用于所有客户的全局共享模型。

本文的目的是调查最近关于在联邦学习环境中为客户建立个性化模型的研究,这些模型预期比全局共享模型或本地个体模型表现更好。

II. 个性化需求

Wu等人总结了联邦学习系统在个性化方面面临的三个挑战:

存储、计算和通信能力方面的设备异质性。数据非IID分布导致的数据异质性。模型异质性:不同的客户需要针对其环境定制模型的情况。

为了应对数据的统计异质性和非IID分布所带来的挑战,需要对全局模型进行个性化处理,大多数个性化技术通常包含两个离散的步骤:

以协作的方式建立一个全局模型。使用客户端的私有数据来个性化全局模型。

为了使联邦学习个性化在实践中有用,以下三个目标必须同时解决,而不是独立解决:

开发改进的个性化模型,使大多数客户受益。开发一种准确的全局模式,使那些私人数据有限的客户受益。在少量训练轮次内实现模型快速收敛。

III. 方法

本节介绍为客户端调整全局共享模型的方法。

A. 添加用户上下文

如果客户的上下文和个人信息被适当地特征化并纳入数据集,共享的全局模型也可以生成高度个性化的预测。然而,大多数公共数据集并不包含上下文特征,开发有效整合上下文的技术仍然是一个重要的开放问题。

作为单个全局模型和纯本地模型之间的一种中间方法,Masour等人提出了用户聚类的建议,将类似的客户端分组在一起,并为每个组训练一个单独的模型。

B. 迁移学习

迁移学习使深度学习模型能够利用解决一个问题时获得的知识来解决另一个相关问题。

在一些论文中提供了一个具有泛化保证的学习理论框架:迁移学习利用经过训练的全局模型的参数对局部数据进行初始化训练,从而利用全局模型提取的知识,而不是从头学习。为了避免灾难性遗忘的问题,必须注意不要在本地数据上对模型进行过长时间的再训练。我们可以采用一种变体技术冻结全局模型的基础层,并仅在局部数据上重新训练最顶层。

C. 多任务学习

在多任务学习中,同时解决多个相关任务,使得模型可以通过联邦学习来挖掘任务之间的共性和差异。Smith等人的研究表明,多任务学习是建立个性化联邦模型的自然选择,他们在联邦设置中开发了用于多任务学习的MOCHA算法,以解决与通信、掉队和容错相关的挑战。在联邦设置中使用多任务学习的一个缺点是,由于它为每个任务生成一个模型,因此所有客户端都必须参与每一轮。

D. 元学习

元学习中需要对多个学习任务进行训练,以生成高适应性的模型,这些模型可以通过少量的训练实例进一步学习解决新任务。Finn提出了一种模型无关的元学习(MAML)算法,该算法与使用梯度下降训练的任何模型都兼容。MAML构建一个通常适用于多个任务的内部表示,因此为新任务微调顶层可以产生良好的结果。

MAML分两个阶段进行:元训练和元测试。元训练在多个任务上构建全局模型,而元测试则针对不同的任务分别调整全局模型。如果我们将联邦学习过程视为元训练,将个性化过程视为元测试,那么FedAVG就与一种流行的MAML算法Reptile非常相似。

E. 知识蒸馏

一些研究证明,可以将一个模型集合的知识压缩成一个更容易部署的模型。知识蒸馏通过让学生模仿教师,将一个大型教师网络中的知识提取到一个较小的学生网络中。在个性化过程中,过度拟合是一个重要的挑战,特别是对于本地数据集较小的客户。鉴于此,Yu提出将全局共享模型作为教师,将个性化模型作为学生,这样就可以减轻个性化过程中过拟合的影响。Li等人提出了FedMD,这是一个基于知识蒸馏和迁移学习的联邦学习框架,允许客户使用本地私有数据集和全局公共数据集独立设计自己的网络。

F. 基础+个性化层

为了缓解各个客户端数据分布差异的影响,一些人提出了FedPer:一种神经网络体系结构,其中基础层通过FedAvg进行集中训练,而顶层(也称为个性化层)通过梯度下降的变体进行局部训练。

FedPer与迁移学习的不同:

在迁移学习中,所有层首先在全局数据上训练,然后在局部数据上重新训练所有或部分层。FedPer在全局数据上训练基础层,在局部数据上训练个性化层。

G. 全局模型和本地模型混合

为了寻求全局模型和本地模型间的权衡,每个客户端学习到的应该不是单一的全局模型,而是全局模型和它自己的本地模型的混合。为了解决这一问题,Hanzely提出了一种新的梯度下降法——无环局部梯度下降法(LLGD)。LLGD只采取步骤求平均,而不是执行完全平均。

IV. 总结

联邦学习中,当本地数据集很小且数据分布为IID时,全局模型通常优于本地模型,并且大多数客户端都能从参与联邦学习过程中受益。但是,当客户端有足够多的私有数据集且数据分布为非IID时,本地模型通常比共享的全局模型表现出更好的性能,那么客户端就没有参与联邦学习的动机。

鉴于此,我们有必要对客户端建立个性化模型,这些模型预期比全局共享模型或本地个体模型表现更好。

以上就是知识蒸馏联邦学习的个性化技术综述的详细内容,更多关于联邦学习的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

知识蒸馏联邦学习的个性化技术综述

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录