联邦学习(最通俗易懂的基础讲解)

本文聚焦联邦学习,介绍其目的是在数据不出本地的情况下训练单个模型,如利用多家医院病人CT影像信息训练模型。阐述了纵向和横向联邦学习,还介绍了FedSGD、FedAvg、FedProx三种方法,分析了各自优缺点,且联邦学习支持现有模型和优化器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

联邦学习

视频学习资源:台大博士讲联邦学习 ( 讲的非常通俗易懂!!力荐!!)

看了这个视频和我的总结文档,就可以看懂联邦学习的大部分论文了(本人亲测,当然还有些不懂的概念配合Chat-GPT查就可以)


目的:训练来自多个数据源的单个模型,其约束条件是数据停留在数据源上,而不是由数据源(也称为节点、客户端)交换,也不是由中央服务器进行编排训练(如果存在的话)。

举个例子:一个模型需要10家医院的病人CT影像信息,但是病人的隐私实际上是非常重要的,那么如何既能用到10家医院的dataset进行模型训练,又同时避免任意两家医院相互交换病人信息? ——》 Federated learning

Data keeps private on each data owner during training

一句话概括就类似:云计算的分布式处理技术用于机器学习的训练模型中

  • Vertical federated learning

​ 客户端拥有同批客户不同类型的data(如消费、治疗咨询),实现不同类型数据平台dataset互相不交换信息的同时,每个客户匹配各自不同类型的data

​ 缺点:有很多不一样业务的公司/客户端(比如n个)加入时,要完成每个客户(设为x个)的业务信息对应工作量很大(xn),且需要互相认证之类的,实现起来很困难。

  • Horizontal federated learning

​ 客户端拥有不同批客户的相同类型数据(如10家医院病人的CT影片信息),实现每个客户端(医院)只和中心训练交换数据,两两隔绝不交换信息。(每个客户端在本地先训练模型获得参数,并将参数传到centersever模型中训练,centersever将训练好的模型参数返回给每一个客户端,反复迭代最终得到最优模型)

Federated Learning Methods

需要的条件:

  • 支持多个数据拥有方从远端参加训练
  • 保持每个数据拥有方的数据私密性
  • 支持现有的机器学习 & 深度学习方法

为了实现上述条件,模型需要具备:

  • 学习模型需要被保存下来(machine learning & deep learning)
  • 新模型的更新方案是联邦学习的关键之关键
  • problem setup需要修改(如下:)

举个例子,在梯度下降最小化损失函数中:

​ 传统机器学习problem setup:
arg ⁡ min ⁡ θ L ( f ( x ; θ ) , y ) \underset{\theta}{\arg \min } L(f(x ; \theta), y) θargminL(f(x;θ),y)
​ 联邦学习problem setup:
arg ⁡ min ⁡ θ ∑ i L ( f ( x i ; θ ) , y i ) \underset{\theta}{\arg \min } \sum_{i} L\left(f\left(x^{i} ; \theta\right), y^{i}\right) θargminiL(f(xi;θ),yi)
​ 可见,联邦学习的最小化损失函数目标是所有clients的损失值总加和最小(这里θ是不同clients训练时产生的不同参数θ)

不同的 Federated Learning Methods 有主要三种:FedSGD FedAvg FedProx

FedSGD(2015):

​ Sever 聚合(加和求平均等方法)所有来自 clients 的 gradients 并产生一个全局模型,全局模型训练完成后再分别发送给被一个 client

​ 最大的特点:gradients aggregation is needed in every training step

​ 缺点:

  • 由于每一个训练step一般很快,但是联邦学习需要不同客户端在远端传给 sever 相应的 gradients ,这个过程的时间花销t可能比 step 的训练过程长的多得多
  • 如果有一个 clients 的 GPU 非常拉,那么所有客户端都得等这个 clients 训练完一个 step 才能继续,效率低
FedAvg(2017):

​ 在 FEDSGD 模型的基础上,Sever 直接聚集每个 clients 的模型参数本身

​ 优点:

  • 每个客户端可以灵活安排做几个 step 后再传给 Sever (异步性)
  • clients 和 Sever 之间沟通的cost减小(多个 step 后再穿一次)

​ 缺点:

  • 由于每个 clients 的异步性,存在风险:多个 step 后每个 clients 的模型训练的结果可能差别很大,每个 model 都往不一样的地方跑,导致最终的 Sever Model 效果不太理想,而且多次迭代越来越不理想(自举)
FedProx(2020):

​ 在前面模型的基础上加了模型优化的限制,从而防止模型过于差异化。

​ 在每个 client 定义的损失函数中加上一个规范化参数约束:
L F e d P r o x , i ( f ( x i ; θ i ) , y i ) = L i ( f ( x i ; θ i ) , y i ) + μ 2 ∥ θ s − θ i ∥ 2 L_{\mathrm{FedProx}, i}\left(f\left(x_{i} ; \theta_{i}\right), y_{i}\right)=L_{i}\left(f\left(x_{i} ; \theta_{i}\right), y_{i}\right)+\frac{\mu}{2}\left\|\theta_{s}-\theta_{i}\right\|^{2} LFedProx,i(f(xi;θi),yi)=Li(f(xi;θi),yi)+2μθsθi2
​ 通过这个条件约束,模型的 training curve 会更加平缓,即参数收敛更加平滑。

​ 缺点:收敛会比前者稍微慢一些


tips:联邦学习对所有现有模型(Regression、SVM、Decision Tree、Neutral Networks)、优化器(ADAM、SGD)等都支持。

学习资源:

Federated Learning Libraries: FATE, PySyft, NVIDIA Clara (针对医学影像)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值