其他分享
首页 > 其他分享> > Non-IID data and Continual Learning processes in Federated Learning: A long road ahead 论文阅读

Non-IID data and Continual Learning processes in Federated Learning: A long road ahead 论文阅读

作者:互联网

论文地址点这里
今天来看一篇在实际背景下,联邦学习和持续学习的意义以及针对于数据异构问题的相关分析。

一. 介绍

人们日常生活主要的计算机器是智能手机和平板电脑,这些设备手机了很多有用的数据。易于用于训练简化日常使用的个性化算法。在这种情况下,仅在一个设备中记录的数据量可能不足以获得执行所需任务的精确模型。为了解决这个问题,过去的几年内,联邦学习被开发出来。这种新的学习策略基于多个协调设备的数据以分散的方式训练一个联合模型,并取得令人印象深刻的结果。
然而,存在于手机中的设备大多具有异构性,这也是联邦学习过程中遇到的主要困难之一。此外,标准的机器学习的另一个假设是,从训练阶段开始,就可以获得全部的样本。然而,在实际问题中,根据执行的任务,需要不断的获取数据进行处理,也就是逐步的收集数据。

二. 联邦学习概述

联邦学习用于跨多个分散的边缘设备训练算法,其中每个设备都持有自己本地的数据样本。联邦学习使多个客户机能够在不共享数据的情况下构建一个健壮的、联合的机器学习模型,从而解决数据隐私和安全等问题。该技术的总体思想包括设备中的局部学习阶段循环,以及云中的中央服务器中的全局参数聚合。这样一来,共享的信息就只有参数。客户端共享一个模型来进行局部训练(通常用一个深度神经网络)。最常用的联邦学习算法为FedAvg。下面我们通过公式去描述联邦学习。
模型的参数 w ∈ W w\in W w∈W在服务器中初始化,因此每一个参与的客户端 i ∈ { 1 , . . . , n } = N i\in \{1,...,n\}=N i∈{1,...,n}=N从同一个点开始,这对于收敛来说至关重要。在联邦学习的每一轮 r r r中,我们回随机选择一部分客户端 i ∈ N r ⊂ { 1 , 2 , . . . , n } i\in N^r \subset \{1,2,...,n\} i∈Nr⊂{1,2,...,n}。这些客户端收到当前来自服务器的参数 w G r w_G^r wGr​,在自己的数据集上通过随机梯度下降去优化擦书,更新为 w i r + 1 w_i^{r+1} wir+1​。之后如果是用FedAvg算法进行聚合的话,那么来自每个客户端的的局部参数应该加权平均进行聚合,以平衡不同的数据集大小:
w G r = ∑ i = 1 N M i M w i r w_G^r=\sum_{i=1}^N\frac{M_i}{M}w_i^r wGr​=i=1∑N​MMi​​wir​
其中 M M M为每一轮的数据量的总数,而 M i M_i Mi​为对于客户端i对应的数据量。
数据的统计异构性是一个需要面对的主要问题。在不同的本地数据集上训练一堆设备,可能会产生大范围的更新,从而导致聚合后的结果不理想,甚至会影响模型收敛。此外,在现实世界的问题中,考虑另一个异质性来源也很重要:设备不断地从它们的环境中提取新的数据,因此实施一些持续学习策略来适应当前的模型以适应当前的数据样本是至关重要的。

三. 联邦学习中的Non-IId数据

首先我们先定义IID分布。在联邦场景下,我们假设每一个客户端有自己的数据集 D i D_i Di​,每一个数据点 ( x , y ) (x,y) (x,y)被采样的概率为: P i ( x , y ) P_i(x,y) Pi​(x,y),因此总体的数据分布是这些局部数据分布的加权平均:
D G ( x , y ) = ∑ i = 1 N M i M D i ( x , y ) (1) D_G(x,y)=\sum_{i=1}^N\frac{M_i}{M}D_i(x,y) \tag{1} DG​(x,y)=i=1∑N​MMi​​Di​(x,y)(1)
若联邦学习中我们整体数据为IID,那么应该满足:
{ P i ( ( x , y ) , ( x ′ , y ′ ) ) = P i ( x , y ) ∗ P i ( x ′ , y ′ ) D i ( x , y ) = D j ( x , y ) (2) \begin{cases} P_i((x,y),(x',y'))=P_i(x,y)*P_i(x',y') \\ D_i(x,y)=D_j(x,y) \\ \tag2 \end{cases} {Pi​((x,y),(x′,y′))=Pi​(x,y)∗Pi​(x′,y′)Di​(x,y)=Dj​(x,y)​(2)
对于所有的 i , j ∈ N i,j\in N i,j∈N以及 ( x , y ) , ( x ′ , y ′ ) ∈ D i ∪ D j (x,y),(x',y')\in D_i \cup D_j (x,y),(x′,y′)∈Di​∪Dj​(N表示有N个客户端)
因此,在IID数据下,所有的客户端分布等于全局的分布
D G ( x , y ) = ∑ i = 1 N M i M D i ( x , y ) = D i ( x , y ) ∑ i = 1 N M i M = D i ( x , y )   ∀ i ∈ N D_G(x,y)=\sum_{i=1}^N\frac{M_i}{M}D_i(x,y)=D_i(x,y)\sum_{i=1}^N\frac{M_i}{M}=D_i(x,y) \ \forall i\in N DG​(x,y)=i=1∑N​MMi​​Di​(x,y)=Di​(x,y)i=1∑N​MMi​​=Di​(x,y) ∀i∈N
相反,如果不满足(2)的任意一个条件,数据就是IID的。
注意,如果本地数据集保存的样本是独立的,那么它总是IID。换句话说,在数据集中或聚集在一起的环境中,数据总是相同地分布,因为只有一个设备参与训练。Non-IID机器学习意味着存在各种参与者,或数据集,它主要用于去中心化范式。

3.1 数据异质性的分类

让我们考虑概率密度分布
P ( x , y ) = P ( x ) ∗ P ( y ∣ x ) (3) P(x,y)=P(x)*P(y|x)\tag 3 P(x,y)=P(x)∗P(y∣x)(3)
P ( x , y ) = P ( y ) ∗ P ( x ∣ y ) (4) P(x,y)=P(y)*P(x|y)\tag 4 P(x,y)=P(y)∗P(x∣y)(4)
通过对概率密度的分解,我们可以更好的区分客户端数据的特殊,也就是差异就在 P ( y ) P(y) P(y)或者 P ( y ∣ x ) P(y|x) P(y∣x)。接下来我们专注于(3)中的分解,因为(4)的分解是基于对x的预测,和普通的机器学习相反。
如果数据概率属于2个参与者, P i ( x , y ) P_i(x,y) Pi​(x,y)和 P j ( x , y ) P_j(x,y) Pj​(x,y),他么相等,那么分解的两项对应也相等。反之,如果联合概率不想等,那么就有三种情况:
A. P i ( x ) ≠ P j ( x ) , a n d   P i ( y ∣ x ) = P j ( y ∣ x ) P_i(x)\ne P_j(x),and \ P_i(y|x)=P_j(y|x) Pi​(x)​=Pj​(x),and Pi​(y∣x)=Pj​(y∣x)。这种情况下客户端拥有不同领域的数据样本,但他们具有相同的目标。例如在进行自动驾驶时候,遇到一些不一样的情况(例如:左侧驾驶和右侧驾驶),但对应的目标是一致的。
B. P i ( x ) = P j ( x ) , a n d   P i ( y ∣ x ) ≠ P j ( y ∣ x ) P_i(x)= P_j(x),and \ P_i(y|x)\ne P_j(y|x) Pi​(x)=Pj​(x),and Pi​(y∣x)​=Pj​(y∣x)。这种情况对应于有相同的输入空间,但最终结果不一样。就比如在判断黄灯时,有些时候需要选择停车,有些时候则可以通过。
C. P i ( x ) ≠ P j ( x ) , a n d   P i ( y ∣ x ) ≠ P j ( y ∣ x ) P_i(x)\ne P_j(x),and \ P_i(y|x)\ne P_j(y|x) Pi​(x)​=Pj​(x),and Pi​(y∣x)​=Pj​(y∣x)。这种就是全部都不一样。

3.2 个性化策略

在现实情况下,一个全局模型不能满足所有客户的特殊性。个性化作为模型泛化和私有之间的一种中间协议而出现,使得模型既能学习到一般知识,也能学习到不常见知识。个性化可以在不同层次上实现每个参与者都可以有自己的模型,不同于其他所有的模型,我们称之为客户级个性化。或者可以有共享同一模型的客户组,即组级别个性化。

3.2.1 客户级别个性化

客户级别的个性化可以分为两类:
一方面,已有的机器学习技术适应于联邦学习框架,以开发更好的全局模型,如迁移学习和多任务学习
另一方面,得道全局模型后,每个参与者将自己的局部模型和全局模型同时训练,得到个性化模型
第一类解决方案包括迁移学习,该技术可以在公共数据集上调整预先训练的模型到一堆设备。另一种为元学习模式,调整其到联邦场景。还有一些作者任务设备的恶属性构成了足够的差异,假设训练参与者在执行不同的任务,从而提出基于多任务学习的方法。
后一个则是侧重于为每个设备训练两个不同的模型。这两个模型一个是全局模型,由每个客户端按照标准联邦极基线使用自己的数据联合训练,另一个则保持私有,用于调整联邦训练的结果。可以通过设定超参数来平衡这个模型,也可以在全局模型中进行调整,如FedProx。

3.2.2 组级别个性化

与每个客户端实现不同的模型相比,另一种方法是组级别个性化,它包括在集群中收集设备,并为每个设备训练不同的模型。这一研究中,讨论最多的是如何将参与者分开或聚集,以获得能够共享模型中收益最多的群体。一种是基于分层聚类的技术来划分客户端,根据客户端发送给服务器的权重更新之间的距离度量来收集或者分割它们。另一种涉及到全局数据分布和客户端的数据分布。

3.3 Non-IID策略的统计分类

个性化的分类方式之后,作者还针对于数据的分类,也就是基于 P ( x ) P(x) P(x)变化,和基于 P ( y ∣ x ) P(y|x) P(y∣x)变化。

3.3.1 客户端输入空间的更改

每个参与者都可以从它们自己的输入域中收集数据。我们假设他们在培训期间将保持不变,也就是随着时间的推移,数据满足IID分布。在分散设置中,参与者独立地收集数据,无法保证它们的输入域是相通的。而处理这种问题的工作主要分为两类:一是Domain transformation,二是Domain adapatation。如下图
在这里插入图片描述
Domain transformation 主要关注数据域的特殊性和共性,并试图构建一个新的共享输入空间。然后将感知到的输入空间转换为公共输入空间。这种方法一个严重的困难是,在现实问题中的特征空间往往是非常高纬的这需要更多的处理能力。可以通过提取共同的特征集描述样本或者划分为低维空间。
另一个Domain Adaptation 接近迁移学习,它们通常部署在集中的框架中

3.3.2 客户端行为的改变

客户端行为的差异是指它们的概率 P ( y ∣ x ) P(y|x) P(y∣x)的差异。也就是同样的数据导致不同结果。(这里大家可以去看论文,本人目前没有研究过这个,因此没仔细去看)
在这里插入图片描述

四. 持续学习中的Non-IID数据:

持续学习涉及到时间的训练。在标准的ML设置中,目标是使用一定的数据建立一个预测模型。要讨论的一个关键点是,训练数据集通常从一开始就假定是完全可用的,这可能与实际情况相冲突,在实际情况中,数据是逐步收集并随时间变化的。因此,我们可以方便地讨论CL,这是一种ML设置,在此设置中,模型可以使用新的数据样本流不断学习和发展,同时目标是保留前面的概念。
使用CL技术训练模型提出了一些具体的问题,这些问题在最近的文献中已经进行了研究。最具挑战性的是与数据分布有关的问题,就像发生在FL上一样。CL被认为是ML的集中范例,因此,即使到目前为止还没有讨论或处理跨设备的非iid数据,它也可以随着时间的推移而发展。这是一个复杂的问题,因为如果训练数据不断移动,模型可能无法收敛到一个解决方案。另一种不受欢迎的情况,称为灾难性遗忘,是如果先前学习的概念不再出现在当前数据中,那么模型就会完全和突然地忘记它们。由于这些原因,我们将关注数据如何随着时间的推移而变化,以及如果数据以不可预测的方式急剧转移,我们将如何采取行动。这就是众所周知的概念漂移

4.1 概念飘逸的定义

非平稳分布是由数据随时间的变化引起的。这些变化可以看作是某些类型数据出现频率的变化:如果一个概念还没有出现在数据集中,那么它的频率为零,当它出现时,它的频率就变成一个正数。这种变异被称为概念漂移,是持续学习最重要挑战之一。我们可以这样正式地定义它们(简单来说就是在某一时刻我们只有苹果数据集,但随着数据的收集,下一时刻我们又了香蕉的数据集,而此时我们可能苹果数据集已经被替代。):
∃ t : D t ( x , y ) ≁ D t + 1 ( x , y ) \exists t:D^t(x,y) \nsim D^{t+1}(x,y) ∃t:Dt(x,y)≁Dt+1(x,y)
同样,类似于我们前面所说的联邦学习,我们可以分解为: P ( x , y ) = P ( x ) ∗ P ( y ∣ x ) P(x,y)=P(x)*P(y|x) P(x,y)=P(x)∗P(y∣x),针对两项进行分类:
虚拟概念漂移: P t ( x ) ≠ P t + k ( x ) , P t ( y ∣ x ) = P t + k ( y ∣ x ) P^t(x) \ne P^{t+k}(x),P^t(y|x)=P^{t+k}(y|x) Pt(x)​=Pt+k(x),Pt(y∣x)=Pt+k(y∣x)。例如当用户看到之前没出现的例子时就会发生。
真实概念漂移: P t ( x ) = P t + k ( x ) , P t ( y ∣ x ) ≠ P t + k ( y ∣ x ) P^t(x) = P^{t+k}(x),P^t(y|x)\ne P^{t+k}(y|x) Pt(x)=Pt+k(x),Pt(y∣x)​=Pt+k(y∣x).即相似的输入数据样本具有不相等的标签。一个例子是,同样的,黄色的交通灯。有时客户会在遇到黄灯时停车,而其他人可能会继续开车。
整体的概念漂移: P t ( x ) ≠ P t + k ( x ) , P t ( y ∣ x ) ≠ P t + k ( y ∣ x ) P^t(x) \ne P^{t+k}(x),P^t(y|x)\ne P^{t+k}(y|x) Pt(x)​=Pt+k(x),Pt(y∣x)​=Pt+k(y∣x)。这是两种可能性随着时间的推移而显著演变的结果。

4.2 概念漂移的检测

人们提出了许多概念漂移检测策略来附加虚拟漂移和真实漂移的情况。这些方法通常被分类为基于数据分布或基于错误率的方法。他们利用输入和输出分布的不同统计特性来确定它们的断点,对应于漂移。大多数的概念漂移检测策略都考虑数据集中在一台机器上的情况。
当试图检测虚拟概念漂移时,唯一需要的信息是数据样本的输入模式。
对于真实漂移,其中一些工作也使用滑动窗口来执行漂移检测,尽管通常旨在检测这种变化的技术高度依赖于如何测量模型的不准确性。模型损失的计算方法有很多种。在机器学习模型中,测量误差的最广泛的函数之一是众所周知的交叉熵损失。为了确定这是否是测量传导误差的合适方法,已经进行了大量的研究。此外,不同的作者提出了许多其他基于交叉熵损失的损失函数。所有这些替代方案都存在一些局限性,例如对带有倾斜标签的数据的弱点,或者错误是不可追踪的事实。当面对真正的漂移时,这些性质是非常可取的,因为它们提供了关于误差起源的重要信息。

五. 联邦学习和持续学习中Non-IID数据的处理

在现实生活的条件下,数据分布可以以不同的方式进行变化。在特定的条件下,联邦客户端需要收集自己的数据样本,从而导致统计上不平等的数据集。这些差异就包括 P i ( x ) ≠ P j ( x ) , P_i(x)\ne P_j(x), Pi​(x)​=Pj​(x),或者   P i ( y ∣ x ) ≠ P j ( y ∣ x ) \ P_i(y|x)\ne P_j(y|x)  Pi​(y∣x)​=Pj​(y∣x)。此外,收集数据和解决任务的过程需要一定的时间,所以所需的模型应该能够进化和适应未来的情况,数据将在很长一段时间内被收集,同样导致 P t ( x ) ≠ P t + k ( x ) , P t ( y ∣ x ) ≠ P t + k ( y ∣ x ) P^t(x) \ne P^{t+k}(x),P^t(y|x)\ne P^{t+k}(y|x) Pt(x)​=Pt+k(x),Pt(y∣x)​=Pt+k(y∣x)。
总体而言,每个时空数据都有4种可行场景,在现实任务中可能互相结合出现。如下图:
在这里插入图片描述

5.1 虚拟概念漂移

检测虚拟漂移的过程只依赖于输入数据的分布,它们可以分为基于内存的方法和基于正则化方式
在这里插入图片描述
基于内存的方法专注于保存来自先前概念的数据样本的记录,因此当检测到偏移时,网络会同时使用新数据和记录的数据进行训练,以避免遗忘。有的文章提出了一种方法(CLEAR),将已经用于训练的数据样本存储起来,并与新收集的数据相结合,在未来再次使用它们。他们表明,这种策略对预防灾难性遗忘非常有效。还有的提出了一种类似的技术,ER,但不同之处在于,它们只存储少量的数据,并在漂移与新样本混合后反复使用。他们的结论是,他们的方法既不损害泛化,也不会对保存的数据样本造成过度拟合。
基于内存的还有其他的代替方法,包括使用记录的数据来生产类似的样本,可以考虑GAN的思想产生新的样本。
另一方面,正则化方法在权值更新中施加限制,以保持权值不变,避免忘记已经学习过的输入域。最著名的弹性权重巩固(Elastic Weight Consolidation, EWC)的最先进的方法,它学习一个任务,然后确定权重之间的哪些连接是正确执行该任务的决定因素。这些联系是通过使用Fisher信息矩阵来设置的,Fisher信息是一种统计工具,它衡量每个权重对模型最终结果的相关性和贡献。为此,它估计了概率P(x|y),也就是说,将输入的分布作为其类的函数。这种方法通常被看作是避免灾难性遗忘的基本方法。然而,当尝试学习多个任务时,它提出了一些问题,如可伸缩性和计算效率。

5.2 真实的概念漂移

在这种情况下,允许用户更改它们培训过程中执行的任务。就像之前描述过的一样,即使不同的客户机拥有相似的输入,它们也可以有不同的输出。然而,目前工作是追求能够在不同时间内为同一客户端从一个输出转换到另一个输出。为了克服这个挑战,有两种策略:如下图。
在这里插入图片描述
语境信息方法讨论了向原始数据输入添加信息的可能性,例如任务标识符或域标识符。除了本文中介绍的问题外,这些信息还可以用于解决各种情况下的多领域和多任务问题。这一行的其他研究文章有研究。作者认为搜索任务会影响训练过程,并提出使用任务标识符来实现个性化。其他方法也依赖于某种上下文信息来确定对应于每个数据样本的任务,总的来说,它们似乎对每个任务都有一个特定的网络。在这种情况下,当训练阶段出现新的任务时,网络的每一层都被扩展,新的神经元被用于当前的任务,而不是之前的任务。
另一种策略,基于架构的方法,专注于深度增量多任务学习技术,根据执行的任务修改神经网络,而不会忘记之前的任务。目前研究最多的实现方法是在神经网络上使用某种掩模。

六. 挑战和问题

在时间维度,重要的是要注意到,目前的漂移检测和适应策略大多部署在集中设置。但是,我们选择了它们所采用的策略,因为它们可以很容易地适应联邦设置。例如,在联合环境中,每个参与者都可以执行一种演练技术,以避免忘记之前的概念。另一种可能性,考虑正则化方法,是感知不同领域的客户训练特定的网络神经元,导致更快的领域适应。尽管如此,在这些情况下可能会出现一些困难:
客户机可能会在不同的时间戳上经历漂移,因此它们会同时呈现不同的输入域。这可能导致对全局模型进行非常不同的更新,并阻止全局模型收敛。
客户可能会在没有意识到的情况下经历类似的数据漂移,提供这些信息的机制将有助于更快地实现更好的模型。

标签:Non,Pt,ahead,模型,学习,Learning,漂移,数据,客户端
来源: https://blog.csdn.net/qq_45478482/article/details/122251873