【概念学习】联邦学习的三个类别+【论文阅读】异步联邦学习

基于数据的分布特点将联邦学习分为三类:

横向联邦学习(Horizontal Federated Learning):共享相同的特征空间,但是不同的样本(也就是一般遇到的情况,每个client拿到模型,独立用自己的样本集训练,获得自己的损失,计算自己的梯度,来更新模型)

纵向联邦学习(Vertical Federated Learning):共享相同的样本ID(就是指示每个样本的关键字),但是不同的特征空间

一个例子是,一个城市的一家银行和电商公司可能拥有相同的用户集,但银行记录的是用户的收支行为,电商公司记录的是用户的浏览购买历史,现在银行和电商公司想要共同完成商品购买的预测,那么就同时需要用户的这两部分数据

那么在真正训练时,应该就有一点不一样,模型是不是就不一样了?训练损失和梯度要共享吗?

为了理解纵向联邦学习的结构,选一篇文章看,正好他也是异步的,正好一起了解下:

2020-ICML-VAFL: a Method of Vertical Asynchronous Federated Learning

动机:没说
工作:提出了一种异步的纵向联邦学习的方法,它允许每个client无需与其他client合作就执行随机梯度算法,并使用了一种称为扰乱本地嵌入的技术,来确保数据隐私性并提高通信效率;并在强凸、非凸和甚至非光滑目标上展示了提出方法的收敛率和隐私级别;通过实验证明该方法优于中心化和同步的联邦学习方法

优于同步的方法就罢了,竟然也能优于中心化的方法吗?害怕

问题:异步具体指什么,没说;扰乱本地嵌入的技术,也没说具体是什么;

动机:通信效率和隐私保护
纵向联邦学习:feature-partitioned(compared to data-partitioned),全局模型对本地模型的特征进行级联,本地模型通过损失函数耦合(可以简单理解为结合),因此纵向联邦学习的模型更新需要用到不同的本地模型

这篇文章暂时弃文了,因为看了好久也没看到异步联邦学习的含义;纵向联邦学习倒是说了很多,但大多都是一些已经知道的定义上的事情;这篇文章与块坐标下降特别相关,而我并不了解这个知识点;异步和并行优化,放在一起说,本来还以为这是两个不同的概念呢(原本以为并行跟同步是指一种方式)

总的来说,就是自身理论知识不足以支撑快速通过这篇文章获得目标知识(纵向联邦学习的结构和异步联邦学习)

联邦迁移学习(Federated Transfer Learning):样本不同、特征空间也不同,甚至ID也不同(那么还为什么需要联邦呢?我的理解是,像纵向联邦学习一样,需要有多方不同维度数据的协助才能共同完成这个任务)

【异步联邦学习】2020-OPT-Asynchronous Federated Optimization

以下只记录关于异步联邦学习的部分

目标:1)学习什么是异步联邦学习 2)学习如何证明异步联邦学习的优越性

动机:以同步的方式进行的联邦学习会由于离散者而变得很慢。具体来说,不同设备间的可用性和完成时间是不同的,计算资源和电池时间是有限的,所以全局的同步化是困难的,尤其是在联邦学习的场景中
贡献:提出异步联邦优化算法;证明了提出方法针对严格非凸问题的收敛性;提出了控制由异步性引起的误差的策略;证明了异步方法在实践中要优于同步方法

收获了动机,不错(跟我的想法差不多,但目前的动机仍然是通用的,对vmr问题仍然没有针对性)

异步联邦学习: x t = ( 1 − α ) x t − 1 + α x n e w x_t=(1-\alpha)x_{t-1}+\alpha x_{new} xt=(1α)xt1+αxnew这个核心公式就可以说明异步的关键,就是server端的模型更新不是统一对所有client执行的,而是单独执行;与同步联邦学习的不同之处在于,1)上一轮的记忆在此轮更新中仍然make sense 2)这里使用的混合超参 α \alpha α不完全等于同步联邦学习中的聚合权重(因为还需要考虑当前轮数 t t t与传回client对应轮数 τ \tau τ之间的关系,然后应用腐败函数(function of staleness)

收敛的证明,未细看

实验内容:做了两个准确率的实验(图像任务+文本任务),以及一个staleness的实验
实验结论:更大的 α \alpha α和更小的staleness使得FedAsync接近SGD;相反,FedAsync接近FedAvg;在在中适应性 α \alpha α的策略中,最好的是FedAsync+Hinge;

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是车联网异步联邦学习程序的实现步骤: 1. 数据准备:每个设备首先需要准备自己的数据集。为了避免数据泄露,每个设备只需要将自己的数据集的一部分发送给中央服务器,而不是全部数据。 2. 模型初始化:中央服务器需要初始化一个神经网络模型。这个模型可以是一个预训练的模型,也可以是一个随机初始化的模型。 3. 模型分发:中央服务器将初始化的模型分发给每个设备。每个设备将使用这个模型进行训练。 4. 异步训练:每个设备使用自己的数据集对模型进行训练。由于每个设备的数据集不同,因此每个设备训练出来的模型也会不同。此外,每个设备可以使用不同的训练算法和超参数进行训练。 5. 模型聚合:中央服务器定期收集每个设备的模型并进行聚合。聚合算法可以是简单的平均或更复杂的加权平均。聚合后的模型将成为新的全局模型。 6. 模型更新:中央服务器将更新后的全局模型发送给每个设备。这个新的模型将成为每个设备的新的起点,用于下一轮的训练。 7. 重复步骤4-6:每个设备使用新的全局模型进行训练,直到模型收敛或达到预定的训练轮数。 通过这种方式,车联网中的每个设备都可以使用自己的数据进行训练,并且每个设备的训练可以异步进行。在模型聚合的过程中,中央服务器将所有设备的模型进行了融合,从而产生了更好的模型。这种方法可以提高模型的准确性,并且可以保护每个设备的隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值