联邦学习(FL)最近由于其保护数据隐私的能力受到了广泛关注。然而,现有的FL范式对于一大类人类活动识别(HAR)应用产生了令人不满意的性能,因为它们忽略了不同用户数据之间的内在关系。
我们提出了ClusterFL,这是一个相似性感知的联邦学习系统,可以为HAR应用提供高模型精度和低通信开销。ClusterFL采用了一种新的集群多任务联合学习框架,该框架最大限度地提高了多个学习模型的训练精度,同时自动捕获不同节点数据之间的内在聚类关系。基于学习到的簇关系,ClusterFL可以有效地去除收敛较慢或与每个簇中其他节点相关性较小的节点,显著加快收敛速度,同时保持精度性能。我们使用从总共145个用户中收集的四个新的HAR数据集,在NVIDIA edge测试平台上评估ClusterFL的性能。结果表明,ClusterFL在整体精度方面优于几种最先进的FL模式,并在可忽略精度降低的情况下节省了50%以上的通信开销。
人类活动识别、联邦学习、集群、多任务学习、沟通优化
这次我先看了作者对文章的介绍视频
贴个地址:https://www.youtube.com/watch?v=MqkCa5417BE
我个人看完视频对文章的introduction的理解:
之前的工作使用的集中学习(centralized learning)需要收集所有用户数据,因此需要考虑隐私问题,所以提出用户数据能否本地存储,
由此提出用联邦学习形成global model,但global model不是对所有用户都适用的,而且存在较大交流消耗。
所以这篇文章展示用户数据中相似性感知,这个基于一个观察,即尽管不同用户活动存在异构性,但其数据分布可能具有显著的时空相似性,且这样的相似性可以被集群关系获取(感叹这么强大的观察力,好好学习...)并用于联邦学习。
我们使用自己收集的四个新数据集,在由10台NVIDIA edge设备组成的硬件测试平台上评估ClusterFL的性能,其中包括一个大规模的HAR数据集,涉及121名使用智能手机应用程序以众包方式收集的受试者,以及三个实验室HAR数据集。我们的评估表明,通过捕获不同用户活动的异构数据中的集群关系,ClusterFL在系统准确性方面显著优于几种现有的机器学习范式,并且提出的通信优化机制可以减少50%以上的通信开销。此外,ClusterFL在动态网络条件下,在服务器和节点之间出现意外断开的情况下,性能非常稳定。
ClusterFL每轮通信包括以下步骤:
(1)节点将其当前模型权重和训练损失的更新上传到服务器。
(2) 服务器将通过优化框架,使用聚类指标矩阵量化模型权重之间的关系。因此,在联邦学习的早期阶段,服务器可以通过联合数据分布动态地将节点分组到集群中。
(3) 根据学习到的集群指标矩阵,服务器更新协作学习变量,这歌协作学习变量将会被节点用于更新其模型,并删除收敛较慢的散乱者和每个集群内与其他节点关系较小的节点,以减少通信开销。
(4) 服务器学习的集群指标矩阵(cluster indicator matrix)、协作学习变量(collaborative learning variables)和drop indicator将发送回每个节点。
(5) 节点将使用接收到的信息更新其模型,并根据drop indicator决定是否在下一轮中继续学习过程。
ClusterFL的设计基于以下关键观察结果:
由于有受试者的生物学特征、生理特征环境,甚至传感器偏差,人类活动识别中的许多应用都具有固有的群集性,这些都可以用来改善模型的整体精度。
目标:捕捉节点之间的簇关系,并为同一簇中的节点聚合模型权重,以提高精度
问题公式化:我没仔细看,大致是描述了一个公式、公式将为每个节点定制一个模型,同时保持同一簇中节点的模型权重的相似性。在这种情况下,每个节点的模型将根据其本地数据并参考其他节点的模型进行更新,这将通过集群内的协作学习显著提高个人性能
交替优化:在联邦学习环境下,公式中有两个变量(W和F)需要解决。而且很难同时求解它们。为了应对这一挑战,我们建议使用交替优化方法来解决这个问题。在这种情况下,我们将为优化的每个外部迭代确定W或F,并更新另一个变量,在这两个变量的优化之间交替,直到收敛。算法1(见原文)显示了节点和服务器之间交替优化的集中视图。
结点更新:每个节点将并行优化(例如,使用梯度下降法)其模型权重w 基于其本地数据(x, Y), 集群结构F和来自服务器的协作学习变量Ω、U。
服务更新:服务器将进一步利用节点W和集群结构F的新更新模型权重来更新协作学习变量Ω,U。
因此,在节点和服务器之间的通信循环中,节点需要上传更新的模型权重w 到服务器,服务器将在聚合权重后向所有节点广播F、Ω、U给U ∈ R1× ( = 1.) 是在ADMM的增广拉格朗日中引入的对偶变量。
当W是固定的,问题F可以被视为权重为W的结点参数下-means方法的聚类问题(以矩阵表示)
在服务器上使用节点的模型权重学习节点的集群关系时,有两个挑战:
模型权重的相似性:基于距离的聚类方法在建模机器学习模型的相似性方面有严重的局限性,因为它们只适用于具有凸损失函数的模型。因此,对于具有非凸损失函数的一般DNN模型,我们选择使用Kullback–Leibler散度(KLD)来度量节点模型的相似性。KLD用于衡量一种概率分布与另一种概率分布的不同,广泛用于知识提炼、模型自适应和相似性度量。两个DNN模型的KLD(w, W) 可以表示为:(见原文)
较小的KL散度表示节点i和j的模型关系更密切。然后我们计算任意两个模型之间的KL散度,从而得到KL散度矩阵D
优化集群关系:这里涉及的知识比较多,而且没接触过,留个坑先把。大概意思是用上面获得的KL散度矩阵来学习集群指示矩阵,然后因为不知道集群K的数量,以及其他难题,于是决定改变解决思路
在传统的FL系统中,节点和服务器之间需要进行大量的更新迭代,这使得通信开销成为学习过程的瓶颈。以前的一些关于有效通信的工作主要集中在模型压缩和量化技术上,当通信轮数较大时,这些技术并不总能减少总的通信延迟。其他方法从所有节点中选择散乱者(收敛较慢的节点)并同时丢弃它们,不考虑散乱者之间的差异。
在这项工作中,我们的目标是利用ClusterFL学习到的固有集群关系,在FL过程中动态删除节点,同时保持整体精度性能。我们的关键思想是,服务器可以利用学习到的集群结构删除一些节点,以减少通信延迟。特别是,我们框架中的集群结构通常会在早期学习,例如在几轮交流中。显示了集群指标矩阵F的更新,其中我们使用F的L1范数来显示F是如何随次数变化的
使用深度数据集更新F。这里的任务是使用从三种环境(室外/黑暗/室内)收集的深度图像识别五种手势。我们可以看到,即使ClusterFL总共更新了F 25次,更新8次后F几乎保持不变。它清楚地表明,通过第8次更新中的F,服务器已经捕获了节点之间的集群关系,因此能够使用这些信息来优化通信性能。
基于这一关键观察,我们提出了两种新的机制,以减少通信开销,同时保持学习模型的准确性。
Cluster-wise Straggler Dropout
我们讨论如何测量节点的收敛性能,以识别特定集群的掉队者。对于集群j(j=1,…,K)其中包含 节点,我们定义了平均收敛速度 对于节点q(q=1,…),。。。,)在最近的 迭代如下:这里 是在第t次迭代时,与簇j中的其他节点相比,节点q的归一化损耗更新; 是的平均值 最近 迭代; 是确定散乱者的迭代阈值,其中 这意味着获得更平滑的损耗更新以滤除干扰,同时推迟迭代以识别掉队者。(这块涉及到的公式没贴出来)
如果一个节点被服务器丢弃,它将停止与服务器的通信,但在本地对自己的数据和最后更新的模型进行训练,直到本地收敛。由于剩下的节点已经接近收敛,它们的模型更新不会因丢弃掉队者而受到实质性影响。
基于相关性的节点选择
在本节中,我们提出了一种基于观察的新方法,即如果集群中的节点子集彼此之间的关联性更强,那么它们将通过协作学习获得更大的收益。如果我们在中间阶段删除它们,同一集群中节点的平均精度只会受到轻微的降低。服务器将根据节点与其他节点的相关性选择删除节点。具体来说,服务器将对于所有节点计算一个重要性向量 ,使用F的相关矩阵来测量它们与每个集群中其他节点的相关程度。假设节点q位于包含 节点,我们定义了重要性度量 对于节点q(公式略)
例如,节点1带有1=0.833,而节点0具有0=0.733)表示它与同一集群中的其他节点具有更高级别的相关性。然后服务器将进行对 所有簇从大到小排序,在迭代ℎℎ时丢弃最后一个 结点。这样与服务器通信的节点总数将减少到 − .然后,退出的节点将根据上次本地的更新训练其模型,并且不与服务器通信。最后,由于与服务器交互的节点数量较少,因此总通信时间将减少,同时在学习过程中保留相对重要的节点,以提高整体性能。此处显示的是丢弃的节点数 还有下降迭代ℎℎ 将根据总体准确性和通信性能之间的预期权衡来决定。较小的 意味着要丢弃的节点更少,从而减少通信量和精度损失。较小的ℎℎ 意味着更早地删除节点,导致更多通信减少和准确性损失。
剩下的测评我就不仔细写了
成果方面:
未来工作: