横向联邦学习的三种更新参数方法及论文研究 (zhihu.com)

  1. FedSGD
    一个端点的简单的一次平均,其中每个客户求解最小化其局部数据损失的模型,并对这些模型进行聚合以产生最终的全局模型。
    (这种方法在带有IID数据的凸情况下得到了广泛的研究,众所周知,在最坏情况下,产生的全局模型并不比在单个客户端上训练模型更好,所以我们需要针对联邦学习研究一种新的模型更新方法。)

  2. FedAvg

从编码器(encoder)中提炼表示并提取活动特定特征通常涉及使用某种形式的神经网络结构或特定的学习方法。以下是一些可能的方法:

  1. 注意力机制(Attention Mechanism):
    • 使用注意力机制可以使编码器更加关注输入数据中与活动相关的部分。通过学习到的权重,注意力机制能够使编码器的输出更集中于包含重要信息的区域,从而提炼出与活动相关的表示。
  2. 迁移学习(Transfer Learning):
    • 利用先前训练好的编码器(可能在大规模数据上训练过)可以通过迁移学习来提炼活动特定的表示。在训练过程中,可以固定编码器的一些层,只训练后面的层以适应特定的活动识别任务。
  3. 自监督学习(Self-Supervised Learning):
    • 使用自监督学习的方法,其中模型自身学习对输入数据进行预测,可以激励编码器学习提取更有用的、活动相关的特征。例如,可以通过将输入数据的一部分遮蔽,然后让模型预测被遮蔽的部分,从而迫使模型学习关键的活动特征。
  4. 多任务学习(Multi-Task Learning):
    • 在训练中同时考虑多个任务,其中之一可能是提取活动特定的特征。这样的共享学习可以帮助模型学习通用的表示,同时专注于与活动相关的任务。
  5. 卷积神经网络(Convolutional Neural Networks,CNN):
    • 对于图像数据,卷积神经网络通常用于提取特征。通过堆叠卷积层,网络可以逐渐学习到越来越抽象的特征,从而在最后的表示中包含与活动相关的信息。
      这些方法可能会组合使用,具体的选择取决于任务的性质、数据的特点以及模型的结构。关键是通过适当的学习和设计,使编码器能够产生对特定活动有意义的表示。

损失

云端的模型损失和客户端的模型损失可以不一样地定义。在联邦学习或分布式学习中,云端和客户端可能采用不同的损失函数或损失计算方法,具体取决于任务需求、模型架构和优化策略。

在一般的联邦学习流程中,通常会有以下两种损失:

  1. 全局损失(Global Loss):

    • 云端通常负责计算全局损失,这是基于全局模型在云端服务器上的参数和整个训练数据集的损失。全局损失用于调整全局模型的参数,以便在整个任务上取得良好的性能。
  2. 本地损失(Local Loss):

    • 每个客户端负责计算本地损失,这是基于客户端本地数据和其本地模型参数的损失。本地损失用于客户端本地模型的参数更新,它反映了客户端对于本地数据的拟合程度。

虽然在联邦学习中通常会追求全局模型的性能,但是客户端可能对于本地任务有自己特定的优化目标。这意味着全局损失和本地损失可以不同。例如,客户端可能希望本地模型更好地适应其本地数据,而不仅仅是追求整体任务的最佳性能。

在每一轮训练中,客户端更新本地模型时,可以选择通过最小化本地损失来调整模型参数,而不必与全局损失一致。这种灵活性使得联邦学习能够适应多样化的本地任务和数据分布。