Adaptive Personalized Federated Learning 论文解读+代码解析
Posted 编程龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Adaptive Personalized Federated Learning 论文解读+代码解析相关的知识,希望对你有一定的参考价值。
一. 介绍
联邦学习强调确保本地隐私情况下,对多个客户端进行训练,客户端之间不交换数据而交换参数来进行通信。目的是聚合成一个全局的模型,使得这个模型再各个客户端上读能取得较好的成果。联邦学习中FedAvg方法最为广泛,但由于本地数据分片之间的固有多样性和数据再客户端的高度非iid(独立同分布),FedAvg对超参数非常敏感,不能从良好的手链保证中获益。因此在设备异质性存在的情况下,全局模型不能很好的概括每个客户单独的本地数据。
随着客户端数据的多样性增加,全局模型和个性化(客户端)模型的误差将会越来越大,好的全局模型回导致一个差的本地客户端的模型。
在这项工作中,作者提出了一个新的联邦学习框架,该框架优化了所有客户急的性能。减少泛化误差依赖于局部数据的分布特征。因此,该模型目标为倾向于学习一种混合了全球模式和本地模式的个性化模式。但难点在于如何确保局部数据是适合所有客户的全局模型。
二. 相关工作
联邦学习的主要目标为学习一个全局模型,这个全局模型对与尚未看到的数据足够好,并且能快速收敛到局部最优,这一点和元学习有一些相似之处。但尽管存在这种相似性,元学习方法主要是常识学习多个模型,针对每个新任务进行个性化学习,而在大多数联邦学习中,更关注单个全局模型。而全局模型和本地模型的差异性就是个性化的重要表现。联邦学习中个性化主要有三大类,本地微调,多任务学习和情景化。
本地微调(Local fine tuning): 本地微调即每个客户端接收到一个全局模型,并使用自己的局部数据和几个梯度下降步骤对其进行调优,这种方法主要结合了元学习。
多任务学习(multi_task learning): 对个性化问题的另一种观点是视为多任务学习问题。这种设置下对每个客户端的优化可以看做是一个新的任务。
情景化(Contextualization): 个性化联邦学习中的一个重要应用是在不同情境下使用模型。我们需要在不同的环境下对一个客户端进行个性化的模型。
通过模型混合进行个性化(Personalization via mixing models): 通过混合全局和局部的模型引入不同的个性化方法来进行联邦学习。基于此,有三种不同的个性化方法,即客户聚类、数据插值和模型插值。而前两种对数据隐私性造成破坏,只有第三种是较为合理的模式。
三. 个性化联邦学习
3.1 定义:
D
i
:
D_i :
Di:第i个客户端上数据集(有标签)
D
ˉ
=
(
1
/
n
)
∑
i
=
1
n
D
i
\\barD = (1/n)\\sum_i=1^nD_i
Dˉ=(1/n)∑i=1nDi:所有客户端的平均分布
L
D
i
(
h
)
=
E
(
x
,
y
)
∈
D
i
[
l
(
h
(
x
)
,
y
)
]
:
\\mathcalL_D_i(h) = \\mathbbE_(x,y)\\in D_i[\\mathcall(h(x),y)]:
LDi(h)=E(x,y)∈Di[l(h(x),y)]:在客户端i上的真实风险。
L
^
D
i
(
h
)
:
\\widehat\\mathcalL_D_i(h):
L
Di(h):在客户端i上对于h的经验风险
3.2 个性化模型
在一个标准的联邦学习场景中,目的是为所有设备合作学习一个全局模型。同时各个客户端存在着本地模型,在自适应个性化联邦学习中,目标是找到全局模型和局部模型的最优组合,以实现更好的针对客户的模型。在这种设置中,每个用户训练一个局部模型,同时合并部分全局模型,并使用一些混合权重,数学表达如下:
h
α
i
=
α
i
h
^
i
∗
+
(
1
−
α
i
)
h
ˉ
∗
h_\\alpha_i = \\alpha_i \\widehath_i^*\\ +\\ (1 -\\alpha_i )\\barh^*
hαi=αih
i∗ + (1−αi)hˉ∗
其中
h
ˉ
∗
=
a
r
g
min
h
∈
H
L
^
D
ˉ
(
h
)
\\barh^* = arg\\min_h\\in\\mathcalH\\widehat\\mathcalL_\\barD(h)
hˉ∗=argminh∈HL
Dˉ(h)为全局的经验优化最小,
h
^
i
∗
=
a
r
g
min
h
∈
H
L
^
D
ˉ
(
α
i
h
+
(
1
−
α
i
)
h
ˉ
∗
)
\\widehath_i^* = arg\\min_h\\in\\mathcalH\\widehat\\mathcalL_\\barD(\\alpha_ih+(1-\\alpha_i)\\barh^*)
h
i∗=argminh∈HL
Dˉ(αih+(1−αi)hˉ∗)是一个在第i个客户端上取得最小损失的混合模型。
(这里我解释一下,就是说我们的模型由两部分组成,一个是全局的模型,另一个是客户端的模型,至于为什么客户端的模型又是由一个混合组成呢?这里考虑成多轮训练即可,假设t-1轮全局模型为w,本地模型为v,然后我们融合成混合模型为h=w+v。在t轮的时候,全局模型为新的w,而本地模型则是继承t-1轮的混合模型h,所以对应的v可以代指为本地模型)
3.3 APFL算法
就像传统的联邦学习意义,服务器需要解决目标如下:
min
w
∈
R
d
[
F
(
w
)
=
1
n
∑
i
=
1
n
f
i
(
w
)
=
E
ξ
[
f
i
(
w
,
ξ
i
)
]
]
\\min_\\mathcalw\\in \\mathbbR^d[F(w)=\\frac1n\\sum_i=1^n\\f_i(w)=\\mathbbE_\\xi[f_i(w,\\xi_i)]\\]
w∈Rdmin[F(w)=n1i=1∑nfi(w)=Eξ[fi(w,ξi)]]
而客户端采取上面的方式(个性化)
min
v
∈
R
d
f
i
(
α
i
v
+
(
1
−
a
l
p
h
a
i
)
w
∗
)
\\min_\\mathcalv\\in \\mathbbR^df_i(\\alpha_iv+(1-alpha_i)w^*)
v∈Rdminfi(αiv+(1−alphai)w∗)
其中
w
∗
=
a
r
g
min
w
F
(
w
)
w^*=arg\\min_w F(w)
w∗=argminwF(w)
具体步骤如下:
对于参与训练的客户端来说,存在着两个参数。一个是w:全局参数,一个是v:自己的参数。首先根据数据集对w进行更新(用t-1轮的参数)。对v更新方式也是如此,v通过混合参数(
v
ˉ
\\barv
vˉ)计算梯度来进行更新,之后将新的w和v合成我们当前的混合参数,再把w传到服务端进行合并。
3.4 α \\alpha α的取值
直观来看,当本地数据较为均匀,每个客户端的局部模型接近全局模型时我们需要较小的
α
\\alpha
α;相反,当本地数据多样性较强时,
α
\\alpha
α应该接近1。我们需要再不同分布的场景下更新我们的
α
\\alpha
α:
α
i
∗
=
a
r
g
min
α
i
∈
[
0
,
1
]
f
i
(
α
i
v
+
(
1
−
α
i
)
w
)
\\alpha^*_i = arg\\min_\\alpha_i \\in[0,1]f_i(\\alpha_iv+(1-\\alpha_i)w)
αi∗=argαi∈[0,1]minfi(αiv+(1−每日一读Efficient Personalized PageRank Computation: A Spanning Forests Sampling Based Approach
阅读笔记 Pain-FL: Personalized Privacy-Preserving Incentive for Federated Learning