Personalized Federated Learning with Exact Stochastic Gradient Descent 论文阅读

论文地址点这里

一. 介绍

为了实现个性化,作者任务除了由一组主干神经网络层获得的全局或共享模型参数外,对于每个客户机,还存在一组具有客户机特定参数的客户机特定输出层。每个此类参数集都是客户独有的,其目的是允许对客户特定的数据分布或任务进行更灵活的建模。因此提出了一种新的个性化学习方法,称之为基于精确梯度优化的个性化联邦学习(PFLEGO)。其主要优点为实现了训练损失函数的精确的随机梯度下降,也就是所有数据集中在一个地方训练的等价。具体如下图所示:
在这里插入图片描述

二. 相关工作

通过微调实现个性化: 该方法允许客户使用局部适应或元学习技术微调共享的全局模型,与本方法不太一样,因为微调需要传递完整的参数集。
通过特征转移视线个性化学习: 作者的方法主要涉及通过使用多任务特征转移模型在FL中实现个性化的方法,类似于传统的非分布式多任务体系结构。
梯度返回的联邦: 最后,存在优化一组全局参数的非个性化FL算法,其中梯度返回到服务器。然而,只有在特殊情况下才能保证收敛,即客户机执行一次迭代,从而使其算法简化为SGD优化。

三. 构建框架

3.1 个性化联邦学习的设定

考虑一个监督的FL设置,其中有一个服务器和 I I I个客户端,每一个客户端都有一个本地数据集 D i = ( X i , Y i ) D_i=(X_i,Y_i) Di=(Xi,Yi),其中 X i = { x i , j } j = 1 N i X_i=\{x_{i,j}\}^{N_i}_{j=1} Xi={xi,j}j=1Ni作为输入数据的采样, Y i = { x i , j } j = 1 N i Y_i=\{x_{i,j}\}^{N_i}_{j=1} Yi={xi,j}j=1Ni作为相应的目标输出。联邦的目标是通过利用客户端本地存储的所有数据集,优化共享全局模型或个性化地更新特定于客户端的参数。作为共享的模型,假设其为一个深度神经网络,由多个具有总体参数的公共层组成 θ \theta θ。公共层的输出数,也就是特征向量的大小为 M M M。具体来说,特征层根据输入 x x x,在其最终输出中构造一个特征向量 ϕ ( x ; θ ) ∈ R M \phi(x;\theta)\in \mathbb{R}^M ϕ(x;θ)RM。每个客户端都有一个与此共享表示对应的相同网络体系结构的副本,此外每一个客户端i都有一个自身连接共享参数的个性层 W i W_i Wi

3.1.1 训练目标分类

学习目标是通过调整全局参数 θ \theta θ和个性化参数 { W i } i = 1 I \{W_i\}^I_{i=1} {Wi}i=1I。所有的参数集合由 ψ = { θ , W 1 , . . . , W I } \psi=\{\theta,W_1,...,W_I\} ψ={θ,W1,...,WI}。学习需要最小化以下函数:
L ( ψ ) = ∑ i = 1 I α i l i ( W i , θ ) (1) \mathcal{L}(\psi)=\sum^I_{i=1}\alpha_il_i(W_i,\theta) \tag1 L(ψ)=i=1Iαili(Wi,θ)(1)
其中 α i = N i ∑ j = 1 N j \alpha_i=\frac{N_i}{\sum_{j=1}N_j} αi=j=1NjNi量化了不同客户端的数据比例, l i ( W i , θ ) l_i(W_i,\theta) li(Wi,θ)是客户端的损失:
l i ( W i , θ ) = 1 N i ∑ j = 1 N i l ( y i , j , x i , j ; W i , θ ) (2) l_i(W_i,\theta)=\frac{1}{N_i}\sum^{N_i}_{j=1}l(y_{i,j},x_{i,j};W_i,\theta) \tag2 li(Wi,θ)=Ni1j=1Nil(yi,j,xi,j;Wi,θ)(2)
在多分类的情况下,每个客户端包括 K i K_i Ki个类,跨客户端的类可以相互排斥,也可以部分重叠。个性化权重集 W i W_i Wi变为 K i ∗ M K_i*M KiM的矩阵,允许计算表春交叉熵损失的对数:
l ( y i , j , x i , j ; W i , θ ) = − log ⁡ { Pr ⁡ ( y i , j ∣ x i , j ; W i , θ ) } (3) l(y_{i,j},x_{i,j};W_i,\theta)=-\log\{\Pr(y_{i,j}|x_{i,j};W_i,\theta)\} \tag3 l(yi,j,xi,j;Wi,θ)=log{Pr(yi,jxi,j;Wi,θ)}(3)
其中类概率由softmax函数建模。

3.2 提出算法

个性化的联邦是去最小化(1)中的损失对于参数集合 ψ \psi ψ。为此,作者提出一种分布式的优化算法,该算法结合了精确随机梯度下降的步骤。随机性是由服务端每轮随机选取的客户端产生的,如果没有随机性,也就是所有客户端每轮都参与训练,那么就变成了精确的梯度下降。

3.2.1 客户端参与的流程

假设(1)中的全局损失优化是在不同的区域执行的,其中每一轮都涉及服务器与一些客户机的通信。更具体的说,我们假设在 t t t轮开始的时候,一部分客户端 I t ⊂ { 1 , . . . , I } I_t\sub\{1,...,I\} It{1,...,I}被随机选择参与。这就导致两个选择:一是客户端的数量 r t : = ∣ I t ∣ r_t:=|I_t| rt:=It遵循二项分布 B ( I , ρ ) B(I,\rho) B(I,ρ),也就是每个客户端被概率 ρ \rho ρ独立地选择。二是总是一定数量 0 < r ≤ I 0<r\le I 0<rI的客户端被一致地选择,也就是 ∣ I t ∣ = r |I_t|=r It=r对于任意时候 t t t。对于这两种情况,每一个客户端以如下概率参与到每一轮:
Pr ⁡ ( i ∈ I t ) = r I \Pr(i\in \mathcal{I}_t)=\frac{r}{I} Pr(iIt)=Ir
其中对于情况一来说 r = I ρ r=I\rho r=Iρ会是一个浮点数,而对于情况二来说 r r r是一个整数。

3.2.2 客户端和服务端的更新

客户端: 在第 t t t轮,被训啊的客户端 I t \mathcal{I}_t It参与训练,服务器将全局参数 θ \theta θ传给客户端。然后,每一个客户端 i ∈ I t i\in \mathcal{I}_t iIt在本地训练特定的任务参数 W i W_i Wi,迭代 τ \tau τ次。在前 τ − 1 \tau -1 τ1次的训练中,服务器传来的参数 θ \theta θ不变,只计算 ∇ W i l i ( W i , θ ) \nabla_{W_i}l_i(W_i,\theta) Wili(Wi,θ)。这 τ − 1 \tau -1 τ1次地步骤表述为:
W i ← W i − β ∇ W i l i ( W i , θ ) W_i\leftarrow W_i - \beta\nabla_{W_i}l_i(W_i,\theta) WiWiβWili(Wi,θ)
其中 β \beta β为学习率。相比之下,对于最后一次训练 τ \tau τ,客户端将计算两个梯度 ( ∇ W i l i , ∇ θ i l i ) (\nabla_{W_i}l_i,\nabla_{\theta_i}l_i) (Wili,θili),使用下式的规则更想你参数 W i W_i Wi:
W i ← W i − ρ t I r ∇ W i l i ( W i , θ ) (4) W_i\leftarrow W_i - \rho_t\frac{I}{r}\nabla_{W_i}l_i(W_i,\theta) \tag4 WiWiρtrIWili(Wi,θ)(4)
其中 ρ t \rho_t ρt为第 t t t轮的学习率,乘法标量 1 Pr ⁡ ( i ∈ I t ) = I r \frac{1}{\Pr(i\in\mathcal{I}_t)}=\frac{I}{r} Pr(iIt)1=rI确保所有参数 ψ \psi ψ进行无偏更新。
服务端: 服务端获得所有来自客户端的梯度进行更新,如下:
θ ← θ − ρ t I r ∑ i ∈ I t α i ∇ θ l i ( W i , θ ) (5) \theta\leftarrow \theta - \rho_t\frac{I}{r}\sum_{i\in\mathcal{I}_t}\alpha_i\nabla_{\theta}l_i(W_i,\theta) \tag5 θθρtrIiItαiθli(Wi,θ)(5)
具体看下图:
在这里插入图片描述

3.3 精确的随机梯度下降优化

这一节是对上面的解释,也就是为什么按照这种更新方式是为精确的梯度更新呢?这里作者写的比较简单,我就不按照原文进行书写。首先在3.2.1中说到参与的客户端是有限制的,因此,如果单单只依靠参与的客户端来更新参数的话,就不能做到精确梯度(所有客户端更新)。既然做不到精确梯度更新,那么我们就想方法对这个梯度做无偏估计。现在我们只需要证明上述的梯度为精确梯度的无偏估计。下面是证明过程:
在t轮参与的客户端的数量为 r r r,总的客户端为 I I I,参数集合 ψ = { θ , W 1 , . . . , W I } \psi=\{\theta,W_1,...,W_I\} ψ={θ,W1,...,WI},其参数梯度表示为:
∇ ψ S = { ∇ θ S L , ∇ W 1 S L , . . . , ∇ W I S L } \nabla_\psi^S=\{\nabla_\theta^S\mathcal{L},\nabla_{W_1}^S\mathcal{L},...,\nabla_{W_I}^S\mathcal{L}\} ψS={θSL,W1SL,...,WISL}
S表示为随机梯度,其中
∇ W i S L = P ( i ) ∗ I r ∇ W i l ( W i , θ ) \nabla_{W_i}^S\mathcal{L}=P(i)* \frac{I}{r}\nabla_{W_i}l(W_i,\theta) WiSL=P(i)rIWil(Wi,θ)
∇ θ S L = I r ∑ i = 1 I P ( i ) ∗ α i ∇ θ l i ( W i , θ ) \nabla_\theta^S\mathcal{L}=\frac{I}{r}\sum_{i=1}^I P(i)*\alpha_i\nabla_{\theta}l_i(W_i,\theta) θSL=rIi=1IP(i)αiθli(Wi,θ)
P ( i ) = { 1 if    i ∈ I t 0 if    i ∉ I t P(i)=\begin{dcases} 1&\text{if }\ \ i\in \mathcal{I}_t \\ 0 &\text{if }\ \ i\notin \mathcal{I}_t \end{dcases} P(i)={10if   iItif   i/It
我们来计算均值:
E ( ∇ W i S L ) = P ( i ) ∗ I r ∇ W i l ( W i , θ ) I = ∑ i ∈ I t ∇ W i l ( W i , θ ) r \begin{aligned} \mathbb{E}(\nabla_{W_i}^S\mathcal{L}) &=\frac{P(i)* \frac{I}{r}\nabla_{W_i}l(W_i,\theta)}{I}\\ &=\frac{\sum_{i\in \mathcal{I}_t}\nabla_{W_i}l(W_i,\theta)}{r} \end{aligned} E(WiSL)=IP(i)rIWil(Wi,θ)=riItWil(Wi,θ)
可以发现其就是对r个客户端的梯度值的平均,同理对 θ \theta θ也是,因此可以作为对精确梯度的求解。

(本次代码没有找到,如果作者之后补充了代码,我会添加进来的)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值