「隐语小课」联邦学习之Non-IID问题

article/2025/10/14 3:03:32

图片
更多干货内容,请移步公众号:隐语的小剧场

一、引言

本文针对联邦学习中遇到的Non-IID问题进行探讨,介绍Non-IID产生的原因,分析Non-IID对联邦学习的影响,以及调研了近年来针对该问题的解决方案,并进行分类总结。

1.1背景介绍

在联邦学习中,拥有不同数据集的client进行联合训练。根据本系列之前的文章《联邦学习之基本方法》可知,由于client数据集所对应的样本不同,样本所处地域可能不同,以及数据采集的时间窗口不同等原因,因此多个client在进行联合联邦训练时,这些数据集之间往往具有不同的特征分布或标签分布,同时特征之间并非相互独立,联邦学习中的这种场景被称之为非独立同分布(Non-IID(Identically and Independently Distributed))场景 [1]。

1.2Non-IID的影响

通过ATA《联邦学习之基本方法》可知,FedAVG基于独立同分布假设进行联合建模训练,因此对于Non-IID的client数据集,直接进行模型聚合往往影响模型的整体性能 [2],此外全局统一的模型无法实现对各个client数据的个性化表征 [3]。我们分别从定量和定性两个角度,具体分析Non-IID数据集对FedAVG算法的影响。

定性分析 [4]

首先我们通过一个简单的分类任务来分析一下Non-IID对模型训练的影响。如图1(a)左图所示,我们有四个样本,每个样本包含两个特征和一个标签(x0,x1,label):样本1(6,2,+)、样本2(6,6,-)、样本3(2,2,-),样本4(2,6,+)。在中心化训练中,可以很容易的根据特征x0,x1的取值范围进行分类,如图1(a)右图所示。

假设在联邦学习中,样本2和样本4在client1中,样本1和样本3在client2中,数据分布为Non-IID。在client进行本地训练时,根据特征x0,x1的取值范围进行分类,得到对应的分类模型。如图1(b)所示,client1和client2的分类模型成完全相反的预测结果,因此联邦训练的聚合模型在对应区域相互抵消,模型性能必然很差。

图片

图1Non-IID 分类简化模型

2)定量分析 [5]

在这里插入图片描述

图片

图2IID与Non-IID数据集收敛示意图

联邦训练模型与中心训练模型的差异可由下面公示表示:

图片

其中

图片

  • 推论1

二者的差异主要由两部分组成:一部分是模型在上次训练时的差异,另一部分是由clientk的分布与整体分布差异引起的。

  • 推论2

所有client进行相同的模型初始化有助于减少联邦训练模型与中心训练模型之间的差异。

  • 推论3

当采用相同的初始化模型时,联邦训练模型与中心训练模型的差异主要由数据分布差异引起,具体的大小还与学习率_η_联邦训练每次更新时client端训练迭代次数T和梯度_g__max__有关。_

二、优化方法

近年来,针对联邦学习Non-IID问题的研究越来越多,我们调研了最近几年的相关paper发现,目前的算法优化主要分为三个方向:数据优化、模型更新优化和模型训练优化。

2.1数据优化

基于数据的优化算法直接针对数据分布进行优化,使得client的数据分布与整体数据分布尽可能相似。具体方法如下:首先利用公开数据集或者client脱敏部分本地数据,在server端生成一个公共数据集;然后server将部分数据集下发到client中,与client原数据进行混合,从而使得各个client端的数据分布尽可能相似,从而降低Non-IID对于模型整体性能的影响 [5][6]。

该方法虽然在一定程度上降低了client之间分布的差异性,但是却在各个参数方之间进行样本数据的共享,会造成隐私数据的泄漏,使用场景受限,近年来该方向的研究越来越少。

2.2模型更新优化

基于模型更新的优化算法针对联邦学习中client端的模型更新过程和server端的模型聚合过程进行优化:

(1)优化client模型更新算法

ASFGNN [7]根据client和server端的样本分布得到对应的JS散度,并以JS散度作为client端模型更新时的权重系数,如下面公式所示,其中P和Q分别为client和server端的样本分布:

图片

在每次联邦训练的round中,对server端模型和client端模型进行加权平均,更新模型参数:

图片

APFL [8]在每次联邦训练round中根据client端模型和server端模型的差异,对权重系数进行迭代更新,然后采用与ASFGNN中类似的方法对client端的个性化模型进行加权平均,如下面公式所示。

Personalized model:

图片

Global model:

图片

图片

(2)优化模型聚合算法

FedAT [9]根据网络延迟和网络通信情况,将参与的client分成多组,每组内部进行同步联邦学习,得到该组的聚合模型;不同组之间进行异步联邦学习,依次更新server模型,更新次数越少的组,更新系数越大。

Semi-FL [10]对client分成多组,每组内部进行串行方式的训练;在每组中对client模型按照编号进行依次训练,当前模型的初始模型为上个模型训练后更新的模型;每组最后一个client输出模型为该组上传至server端进行聚合的模型,如图3所示。除此之外还有其他几种动态分组联邦训练的方法,例如FedFMC [11]等。

图片

图3Semi-FL 算法架构图

FedCD [12]在进行server端模型聚合时,将client模型在client验证集上的score而非样本数量作为该模型的权重进行聚合。

TfdpFL [13]提供了一些偏实用性的问题解决方法,对于TOC场景下的实际落地有一定的参考价值。例如部分成员没有完成全部本地训练轮数是否参与聚合过程,不活跃成员是否需要从联邦训练中移除,client离线又恢复如何处理,训练过程中有新加入的client如何处理等问题。

**(3)**多模型优化算法

LG-FedAVG [17]、APFL [8]在client端创建多个模型,分别进行本地训练和联邦训练,从而实现联邦聚合的统一性与client模型的个性化表征。

2.3模型训练优化

基于模型训练的优化算法针对client端的模型训练过程进行优化,主要分为如下几种:

1)优化机器学习模型

FedProx [14]在原始的loss函数中增加模型差异的l2norm,限制client端模型和server模型的差异,如下面公式所示。

图片

FedMo [15]参考动量梯度下降算法,将client模型上传至server中,并在server对进行动量累加,利用动量更新模型;此外该文章还提供了一种改进算法,对client梯度中各个元素位置的符号进行累加,小于某个门限值则将该元素的学习率设为0,否则依然为原始学习率,如下面公式所示。

图片

图片

2)部分联邦训练

ASFGNN [7]将GNN模型中前面的embedding层在client本地进行训练更新,表征client本地数据的个性化信息,后面的预测层进行联邦学习,如图4所示。

图片

图4SFGNN算法架构图

FedPer [16]针对计算机视觉的应用场景,提出将模型前面的部分层作为基础层进行联邦训练更新,剩余后面的层作为个性化层进行本地训练更新。

3)Meta-learning

[18] [19] [20]等文献中将meta-learning与联邦学习进行结合,从而实现对client模型的个性化学习,有兴趣的同学可以结合这几篇文献进行深入了解。

三、结语

后续我们会根据逐渐涌现出来的新方法,在本公众号“隐语的小剧场”更新文章,为算法研究和业务落地提供新的参考方向,欢迎探讨交流。

Reference

[1] KairouzP, McMahan H B, Avent B, et al. Advances and open problems infederated learning[J]. arXiv preprint arXiv:1912.04977, 2019.

[2] LiT, Sahu A K, Zaheer M, et al. Federated optimization in heterogeneousnetworks[J]. arXiv preprint arXiv:1812.06127, 2018.

[3] HuangY, Chu L, Zhou Z, et al. Personalized federated learning: Anattentive collaboration approach[J]. arXiv preprint arXiv:2007.03797,2020.

[4] SafaOzdayi M, Kantarcioglu M, Iyer R. Improving Accuracy of FederatedLearning in Non-IID Settings[J]. arXiv e-prints, 2020: arXiv:2010.15582.

[5]ZhaoY, Li M, Lai L, et al. Federated learning with non-iid data[J]. arXivpreprint arXiv:1806.00582, 2018.

[6] WangT, Zhu J Y, Torralba A, et al. Dataset distillation[J]. arXivpreprint arXiv:1811.10959, 2018.

[7] ZhengL, Zhou J, Chen C, et al. ASFGNN: Automated separated-federated graphneural network[J]. Peer-to-Peer Networking and Applications, 2021:1-13.

[8] DengY, Kamani M M, Mahdavi M. Adaptive personalized federatedlearning[J]. arXiv preprint arXiv:2003.13461, 2020.

[9] ChaiZ, Chen Y, Zhao L, et al. Fedat: A communication-efficient federatedlearning method with asynchronous tiers under non-iid data[J]. arXivpreprint arXiv:2010.05958, 2020.

[10] ChenZ, Li D, Zhao M, et al. Semi-Federated Learning[C]//2020 IEEEWireless Communications and Networking Conference (WCNC). IEEE, 2020:1-6.

[11] KopparapuK, Lin E. FedFMC: Sequential Efficient Federated Learning on Non-iidData[J]. arXiv preprint arXiv:2006.10937, 2020.

[12] KopparapuK, Lin E, Zhao J. FedCD: Improving Performance in non-IID FederatedLearning[J]. arXiv preprint arXiv:2006.09637, 2020.

[13] RuanY, Zhang X, Liang S C, et al. Towards flexible device participationin federated learning for non-iid data[J]. arXiv preprintarXiv:2006.06954, 2020.

[14] LiT, Sahu A K, Zaheer M, et al. Federated optimization in heterogeneousnetworks[J]. arXiv preprint arXiv:1812.06127, 2018.

[15] OzdayiM S, Kantarcioglu M, Iyer R. Improving Accuracy of Federated Learningin Non-IID Settings[J]. arXiv preprint arXiv:2010.15582, 2020.

[16] ArivazhaganM G, Aggarwal V, Singh A K, et al. Federated learning withpersonalization layers[J]. arXiv preprint arXiv:1912.00818, 2019.

[17] LiangP P, Liu T, Ziyin L, et al. Think locally, act globally: Federatedlearning with local and global representations[J]. arXiv preprintarXiv:2001.01523, 2020.

[18] ChenF, Luo M, Dong Z, et al. Federated meta-learning with fastconvergence and efficient communication[J]. arXiv preprintarXiv:1802.07876, 2018.

[19] FallahA, Mokhtari A, Ozdaglar A. Personalized federated learning: Ameta-learning approach[J]. arXiv preprint arXiv:2002.07948, 2020.

[20] ZhangX, Hong M, Dhople S, et al. FedPD: A federated learning frameworkwith optimal rates and adaptivity to non-IID data[J]. arXiv preprintarXiv:2005.11418, 2020.

隐语官网:

https://secret-flow.antgroup.com
隐语社区:

https://github.com/secretflow

https://gitee.com/secretflow
联系我们:

公众号:隐语的小剧场

B站:隐语secretflow

邮箱:secretflow-contact@service.alipay.com


http://chatgpt.dhexx.cn/article/gHRLMJG7.shtml

相关文章

联邦学习中的non-iid总结

最近研究联邦学习(federated learning,FL)中的non-iid的解决办法时遇到瓶颈,写成博客将最近的工作总结一下,希望有大佬看到这篇博客不吝赐教。 什么是non-iid 先从维基百科引出独立同分布的定义: 在概率论…

IID 与 Non-IID

数据独立同分布(Independent Identically Distribution,IID) 数据与数据之间都是独立的,但满足同一个分布。(独立:一个数据的出现不会影响另一个数据) 数据分布描述的是数据的统计情况&#x…

dy设备deviceid iid注册分析

清楚缓存,重新打开app, 点击同意按钮,会触发设备注册; 很明显是一个post包,device_register 可以看到请求体加密了 那么 请求体是什么呢? 很老版本思路:都是直接明文注册 较老版本思路:在反编译…

Redis 设计与实现: redisObject 数据结构,以及 Redis 的数据类型

redisObject 数据结构,以及 Redis 的数据类型 redisObject 是 Redis 类型系统的核心, 数据库中的每个键、值,以及 Redis 本身处理的参数, 都表示为这种数据类型。 redisObject 的定义位于 redis.h : /** Redis 对象…

(五)、Redis的RDB持久化---Redis设计与实现读书笔记

两个用于生成RDB文件的命令 save:会阻塞Redis服务器进程,直到RDB文件创建完毕,在阻塞期间,服务器不能处理任何命令请求bgsave:会派生出一个子进程,然后由子进程负责创建RDB文件,服务器经常(父进…

《redis设计与实现》 读书笔记

《redis设计与实现》 作者:黄健宏 读书笔记 一、前言 什么是redis: Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。简而言之redis就是放在远程网络上的一个key-va…

《Redis设计与实现》阅读:Redis底层研究之简单动态字符串SDS

除仅用于字符串字面量的情况外,对于可以被修改值的字符串的表示,Redis底层并没有采用C语言传统的字符串表示,即以空字符结尾的字符数组,而是采用专门为其设计的简单动态字符串作为其默认字符串表示,其英文全称为Simple…

Redis秒杀功能设计与实现

前言 抢购问题不仅是电商类项目中一个重要的业务,也是许多开发人员在进阶过程中绕不开的问题,关于抢购,如果理清了前后的逻辑和里面涉及到的几个关键性的问题,问题就迎刃而解了 抢购中的几个常见问题 如何设计抢购功能?(表结构,以及整体的抢购思路)不借助中间件如何实…

Redis设计与实现阅读总结(一)数据结构和对象

Redis设计与实现阅读总结(一)数据结构和对象 最近团队几个人和我聊了下,加上我自己平时的反思,我发现自己问题确实很多 其中一个问题就是,自己学习东西没有系统性,没有总结 这次的博客算是一个总结的开始。…

(六)、Redis的AOF持久化---Redis设计与实现读书笔记

redisServer关于AOF的数据结构 /***Redis 服务器类*/ struct redisServer{...//AOF缓存区sds aof_buf;... }当服务器执行完一个写命令后,会一协议格式将被执行的写命令追加到服务器类的aof_buf缓存区的末尾。 AOF文件的写入、同步 写入、同步概念 写入&#xff…

Redis | 第8章 发布订阅与事务《Redis设计与实现》

第8章 发布订阅与事务 前言1. 发布订阅1.1 频道的订阅与退订1.2 模式的订阅与退订1.3 发送消息1.4 查看订阅消息 2. 事务2.1 事务的实现2.2 WATCH 命令的实现2.3 事务的 ACID 性质 最后 前言 参考资料:《Redis设计与实现 第二版》; 第三部分为独立功能…

AOF -- Redis 设计与实现

Redis 分别提供了 RDB 和 AOF 两种持久化机制: RDB 将数据库的快照(snapshot)以二进制的方式保存到磁盘中。AOF 则以协议文本的方式,将所有对数据库进行过写入的命令(及其参数)记录到 AOF 文件&#xff0c…

Redis设计与实现学习总结

Redis设计与实现学习总结 本文主要对Redis的设计和实现原理做了一个介绍很总结,有些东西我也介绍的不是很详细准确,尽量在自己的理解范围内把一些知识点和关键性技术做一个描述。如有错误,还望见谅,欢迎指出。 这篇文章主要还是参…

Redis的设计与实现(1):5种基本数据结构的底层实现

一、简单的动态字符串(SDS) Redis没有直接使用C语言传统的字符串表示,而是自己构建了一种名为简单动态字符串(simple dynamic string,SDS)的抽象类型,并将SDS作为Redis默认的字符串表示。 在Redis里,C字符…

Redis设计与实现总结

本文总结自《Redis设计与实现》一书,只打算总结Redis底层数据结构的实现。Redis的使用参考我的另一篇笔记Redis操作指南。 1 Redis概览 Redis是一个C语言编写的开源、非关系型内存数据库。它底层属于单线程、全内存操作,提供对象共享、引用计数和对象回…

Redis设计与实现

文章目录 第一部分:内部数据结构简单动态字符串(simple dynamic string)双端链表字典跳跃表 第二部分:内存映射数据结构整数集合intset压缩列表 redis数据类型对象处理机制(redisObject)字符串string哈希表hash列表list集合set有续集zset 第四部分&#…

redis的设计与实现

redis的设计和实现 第一部分、数据结构与对象 一、简单动态字符串: 在大多数情况下redis只会使用c字符串作为字面量,在大多情况下,redis使用SDS作为字符串表示。 比起C字符串,SDS具有五种优点: SDS结构里面会有一…

虚拟IP注册Nacos的问题

虚拟IP注册Nacos的问题 问题: A服务器有两个网卡,网卡 lo 绑定了 127.0.0.1 和一个虚拟IP,网卡 eth0 绑定了本地公网IP和一个虚拟IP。同样B服务器的网卡也是相同的配置,A、B服务器拥有的虚拟IP都是同一个地址。 当将A、B服务器部…

天翼云高可用虚拟IP(HAVIP)实践

产品概述 天翼云高可用虚拟IP(High-Availability Virtual IP Address,简称HAVIP)是一种可用独立创建和删除的私有网络IP地址资源。通过在VIP CIDR中申请一个私有网络IP地址,然后与高可用软件(如高可用软件Keepalived&…

云服务器虚拟ip绑定主机,如何在云平台上给云主机中的Keepalived的虚拟IP绑定弹性IP?...

1、 查看Keepalived和网卡配置文件中虚拟IP地址 查看虚拟机keepalived.config配置文件可以看到本地IP地址为172.16.100.109,虚拟IP地址为172.16.100.104。 (图1 Keepalived配置文件) 查看虚拟机网卡的IP地址情况,可以看到本地IP和虚拟IP。 (图2 查看虚拟…