超越SOTA 3.27%,上交大等提出自适应本地聚合新方法

胖雪小哥_3649

胖雪小哥_3649

2023-04-12

1717人浏览

转载

本文介绍的是一篇收录于 AAAI 2023 的论文,论文由位于上海交通大学的上海市可扩展计算与系统重点实验室、贝尔法斯特女王大学的华扬老师和路易斯安那州立大学的王灏老师共同完成。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

图片
  • 论文链接:​​https://arxiv.org/abs/2212.01197​
  • 代码链接(包含ALA模块的使用说明):​​https://github.com/TsingZ0/FedALA​

该论文提出了一种用于联邦学习的自适应本地聚合方法,通过从全局模型中自动捕获客户机所需信息的方式来应对联邦学习中的统计异质性问题。作者对比了 11 个 SOTA 模型,并取得了超越最优方法 3.27% 的优异表现。作者将其中的自适应本地聚合模块应用到其他联邦学习方法上取得了最多 24.19% 的提升。

1 介绍

联邦学习(FL)通过将用户隐私数据保留在本地而不进行传播的方式,帮助人们在保护隐私的情况下,充分发掘用户数据中蕴含的价值。但由于客户机之间数据不可见,数据的统计异质性(数据非独立同分布(non-IID)和数据量不平衡现象)便成了 FL 的巨大挑战之一。数据的统计异质性使得传统联邦学习方法(如 FedAvg 等)很难通过 FL 过程训练得到适用于每个客户机的单一全局模型。

近年来,个性化联邦学习(pFL)方法因其应对数据统计异质性的能力受到了越来越多的关注。与寻求高质量全局模型的传统 FL 不同,pFL 方法的目标是借助联邦学习的协同计算能力为每个客户机训练适用于自身的个性化模型。现有的在服务器上聚合模型的 pFL 研究可以分为以下三类:

(1) 学习单个全局模型并对其进行微调的方法,包括 per-fedavg 和 fedrep;

(2) 学习额外个性化模型的方法,包括 pFedMe 和 Ditto;

(3) 通过个性化聚合(或本地聚合)学习本地模型的方法,包括 FedAMP、FedPHP、FedFomo、APPLE 和 PartialFed。

类别(1)和(2)中的 pFL 方法将全局模型中的所有信息用于本地初始化(指在每次迭代的局部训练之前初始化局部模型)。然而,在全局模型中,只有提高本地模型质量的信息(符合本地训练目标的客户机所需信息)才对客户机有益。全局模型的泛化能力较差是因为其中同时存在对于单一客户机来说需要和不需要的信息。因此,研究者们提出类别(3)中的 pFL 方法,通过个性化聚合捕获全局模型中每个客户机所需的信息。但是,类别(3)中的 pFL 方法依旧存在(a)没有考虑客户机本地训练目标(如 FedAMP 和 FedPHP)、(b)计算代价和通讯代价较高(如 FedFomo 和 APPLE)、(c)隐私泄露(如 FedFomo 和 APPLE)和(d)个性化聚合与本地训练目标不匹配(如 PartialFed)等问题。此外,由于这些方法对 FL 过程做了大量修改,它们使用的个性化聚合方法并不能被直接用于大多数现有 FL 方法。

为了从全局模型中精确地捕获客户机所需信息,且相比于 FedAvg 不增加每一轮迭代中的通讯代价,作者提出了一种用于联邦学习的自适应本地聚合方法(FedALA)。如图 1 所示,FedALA 在每次本地训练之前,通过自适应本地聚合(ALA)模块将全局模型与本地模型进行聚合的方式,捕获全局模型中的所需信息。由于 FedALA 相比于 FedAvg 仅使用 ALA 修改了每一轮迭代中的本地模型初始化过程,而没有改动其他 FL 过程,因此 ALA 可被直接应用于大多数现有的其他 FL 方法,以提升它们的个性化表现。

图片

图 1:在第次迭代中客户机上的本地学习过程

2 方法

2.1 自适应本地聚合(ALA)​

数据仪表盘后台网站模板
数据仪表盘后台网站模板

数据仪表盘后台网站模板是一款数据模块布局清晰的仪表盘后台网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。

下载

图片

图 2:自适应本地聚合(ALA)过程

自适应本地聚合(ALA)过程如图 2 所示。相比于传统联邦学习中直接将下载的全局模型覆盖本地模型得到本地初始化模型的方式(即),FedALA 通过为每个参数学习本地聚合权重,进行自适应本地聚合。

图片


其中,作者把图片这一项称之为“更新”。此外,作者通过逐元素权重剪枝方法图片实现正则化并将图片中的值限制在 [0,1] 中。

因为深度神经网络(DNN)的较低层网络相比于较高层倾向于学习相对更通用的信息,而通用信息是各个本地模型所需信息,所以全局模型中较低层网络中的大部分信息与本地模型中较低层网络所需信息一致。为了降低学习本地聚合权重所需的计算代价,作者引入一个超参数 p 来控制 ALA 的作用范围,使得全局模型中较低层网络参数直接覆盖本地模型中的较低层网络,而只在较高层启用 ALA。

图片

其中,图片表示图片中的神经网络层数(或神经网络块数),图片与图片中的低层网络形状一致,图片则与图片中剩下的 p 层高层网络形状一致。

作者将图片中的值全部初始化为 1,且在每一轮本地初始化过程中基于旧的图片更新图片。为了进一步降低计算代价,作者采用随机采样 s

图片

其中,图片是更新图片的学习率。作者在学习图片的过程中,将除图片之外的其他可训练参数冻结。

图片

图 3:在 MNIST 和 Cifar10 数据集上 8 号客户机的学习曲线

通过选择较小的 p 值,在几乎不影响 FedALA 表现的情况下,大幅度地降低 ALA 中训练所需的参数。此外,如图 3,作者观察到:一旦在第一次训练图片将其训练到收敛,即使在后续迭代中训练图片,其对本地模型质量也没有很大影响。也就是说,每个客户机可以复用旧的图片实现对其所需信息的捕获。作者采取在后续迭代中微调图片的方式,降低计算代价。

2.2 ALA 分析​

在不影响分析的情况下,为了简便起见,作者忽略图片并设图片。根据上述公式可以得到图片,其中图片代表图片。作者可以把在 ALA 中更新图片看成更新图片。

图片

梯度项图片在每一轮中都做了逐元素地缩放。不同于本地模型训练(或 fine-tuning)方法,上述对图片的更新过程能够感知到全局模型中的通用信息。在不同的迭代轮数之间,动态变化的图片为 ALA 模块引入了动态信息,使其 FedALA 容易适应复杂的环境。

3 实验

作者在实际(practical)数据异质环境下的 Tiny-ImageNet 数据集上用 ResNet-18 进行了对超参数 s 和 p 的对 FedALA 影响的研究,如表 1 所示。对于 s 来说,采用越多的随机采样的本地训练数据用于 ALA 模块学习可以使个性化模型表现更好,但也同时增加了计算代价。在使用 ALA 的过程中,可以根据每个客户机的计算能力调整 s 的大小。从表中可以得知,即使使用极小的 s(如 s=5),FedALA 依旧具有杰出的表现。对于 p 来说,不同的 p 值对个性化模型的表现几乎没有影响,在计算代价方面却有着巨大的差别。这一现象也从一个侧面展示了 FedRep 等方法,将模型分割后保留靠近输出的神经网络层在客户机不上传的做法的有效性。使用 ALA 时,我们可以采用较小且合适的 p 值,在保证个性化模型表现能力的情况下,进一步降低计算代价。

图片

表 1:关于超参数和对 FedALA 影响的研究

作者在病态(pathological)数据异质环境和实际(practical)数据异质环境下,将 FedALA 与 11 个 SOTA 方法进行了对比和详细分析。如表 2 所示,数据显示 FedALA 在这些情况下的表现都超越了这 11 个 SOTA 方法,其中 “TINY” 表示在 Tiny-ImageNet 上使用 4-layer CNN。例如,FedALA 在 TINY 情况下比最优基线(baseline)高了 3.27%。

图片

表 2:病态和实际数据异质环境下的实验结果

此外,作者也在不同异质性环境和客户机总量情况下评估了 FedALA 的表现。如表 3 所示,FedALA 在这些情况下依旧保持着优异的表现。

图片

表 3:其他实验结果

根据表 3 的实验结果,将 ALA 模块应用于其他方法可以获得最多 24.19% 的提升。

最后,作者还在 MNIST 上可视化了 ALA 模块的加入对原本 FL 过程中模型训练的影响,如图 4 所示。不激活 ALA 时,模型训练轨迹与使用 FedAvg 一致。一旦 ALA 被激活,模型便可以通过全局模型中捕获的其训练所需信息径直朝着最优目标优化。

图片

图 4:4 号客户机上模型训练轨迹的可视化图

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
github中文官网入口 github中文版官网网页进入
github中文官网入口 github中文版官网网页进入

github中文官网入口https://docs.github.com/zh/get-started,GitHub 是一种基于云的平台,可在其中存储、共享并与他人一起编写代码。 通过将代码存储在GitHub 上的“存储库”中,你可以: “展示或共享”你的工作。 持续“跟踪和管理”对代码的更改。

2026.01.21

8725

27

GitHub官网入口版本汇总
GitHub官网入口版本汇总

本专题整合了GitHub入口版本地址汇总,阅读专题下面的文章了解更多详细内容。

2026.04.02

938

19

http与https有哪些区别
http与https有哪些区别

http与https的区别:1、协议安全性;2、连接方式;3、证书管理;4、连接状态;5、端口号;6、资源消耗;7、兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.08.16

5510

6

Tailwind CSS 如何制作导航栏和卡片
Tailwind CSS 如何制作导航栏和卡片

用 Tailwind CSS 制作导航栏和卡片,可先搭建语义化结构,再组合 Flex、Grid、间距、圆角与阴影类。这里整理横向导航、移动端菜单、卡片网格及悬停效果的相关文章,帮助你把常见页面组件做得清晰且适配不同屏幕。

2026.11.03

0

17

Tailwind CSS 响应式布局怎么写
Tailwind CSS 响应式布局怎么写

Tailwind CSS 响应式布局通常从移动端样式写起,再用 sm、md、lg 等前缀调整不同屏幕宽度下的网格、间距和导航。本专题整理断点配置、Grid 与 Flex 自适应布局及常见溢出问题,帮助你逐步完成多设备适配。

2026.11.03

0

19

Tailwind CSS 常用类名怎么记
Tailwind CSS 常用类名怎么记

Tailwind CSS 类名很多,先按布局、间距、文字、颜色和状态分组记忆,再通过官方文档检索具体写法。本专题结合类名排序、动态拼接失效、自定义实用类等问题,帮助你建立常用类名的速查方法。

2026.11.03

0

12

码上飞入口地址合集
码上飞入口地址合集

本专题汇总了码上飞(CodeFlying)的官方入口地址合集,涵盖官网主站及网页版在线使用入口,支持注册登录后直接在线体验零代码AI应用生成。同时整理了APP端下载渠道与小程序入口,助你快速访问平台,通过自然语言描述需求即可生成应用、小程序或网站。

2026.11.03

0

10

Uvicorn 报错与问题解决教程
Uvicorn 报错与问题解决教程

本专题汇总了Uvicorn服务器常见问题与报错解决的教程合集,涵盖启动失败、端口占用、模块导入错误、事件循环冲突及热重载失效等典型故障的排查思路。同时整理了多进程与Worker配置、SSL/HTTPS证书报错、跨域与代理配置等实战解决方案,助你快速定位并解决Uvicorn运行中的各类问题。

2026.11.02

20

14

Uvicorn使用教程
Uvicorn使用教程

本专题汇总了Uvicorn使用教程与启动运行指南,涵盖其作为Python ASGI服务器的定位与特点,以及命令行启动(uvicorn main:app --reload)、参数配置(host/port/workers)、程序内嵌运行与Gunicorn结合部署等核心用法。同时整理了热重载调试、日志配置与生产环境部署优化等技巧,助你快速掌握Uvicorn的运行与配置。

2026.11.02

20

17

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Docker Desktop故障排查手册
Docker Desktop故障排查手册

共0课时 | 0人学习

Docker Compose使用手册
Docker Compose使用手册

共0课时 | 0人学习

Docker官方入门手册
Docker官方入门手册

共0课时 | 0人学习