聚类联邦学习的拜占庭鲁棒性
【2020 ICASSP】On the Byzantine Robustness of Clustered Federated Learning
原文链接:https://ieeexplore.ieee.org/document/9054676
介绍
联邦学习假设:存在一个模型 f θ : X → Y f_\theta:\mathcal X\rightarrow\mathcal Y fθ:X→Y,能够同时满足所有客户端产生的分布 φ i \varphi_i φi,这个假设可以用以下形式表达:
假设1:(FL) 存在参数
θ
∗
∈
Θ
\theta^*\in\Theta
θ∗∈Θ,可以同时使得所有客户端产生的分布损失达到最小:
R
i
(
θ
∗
)
≤
R
i
(
θ
)
∀
θ
∈
B
ε
(
θ
∗
)
,
i
=
1
,
⋯
,
m
R_i(\theta^*)\le R_i(\theta)\ \ \forall\theta\in B_\varepsilon(\theta^*),\ i=1,\cdots,m
Ri(θ∗)≤Ri(θ) ∀θ∈Bε(θ∗), i=1,⋯,m
这里的
R
i
(
θ
)
=
∫
l
(
f
θ
(
x
)
,
y
)
d
φ
i
(
x
,
y
)
R_i(\theta)=\int l(f_\theta(x),y)d\varphi_i(x,y)
Ri(θ)=∫l(fθ(x),y)dφi(x,y)是在分布
φ
i
\varphi_i
φi上的一个损失函数,
l
l
l是一个合适的损失函数。
然而这个假设不一定总是满足,当:
- 一个或多个客户端不满足分布 φ i ( y ∣ x ) ≠ φ j ( y ∣ x ) \varphi_i(y|x)\ne\varphi_j(y|x) φi(y∣x)=φj(y∣x)
- 模型 f θ f_\theta fθ不能同时适应所有的分布
聚类联邦学习(Clustered Federated Learning),简称CFL,产生于上述假设1,并且能够解决客户端持有和聚类结构不一致分布的数据的问题。
**假设2:(CFL) ** 在所有客户端中存在一个集合KaTeX parse error: Expected group after '_' at position 36: …ts,c_k},\bigcup_̲\limits{i=1}^kc…,使得任意一个子集 c ∈ C c\in \mathcal C c∈C满足传统的联邦学习假设。
拜占庭设置: 聚类联邦学习利用FL损失函数的集合特性,来识别聚类结构C,和FL相比,CFL不需要对FL的通信协议进行修改,适用于一般的非凸函数求极值问题,在聚类质量上有很强的数学保证。事实证明,常规的联邦学习在有错误和恶意客户端的存在下无法收敛,一个不良客户端就会损害整个联合训练模型,并且否认了其他所有正确客户端训练的成果。
为了缓解这个问题,现有的解决策略需要对联邦通信协议进行修改,这会使得计算成本很高,在本文中将探讨CFL这个框架在拜占庭式设置中的应用,即客户端存在一个有害子集。我们设置一个良性客户端为 c b e n i g n ∈ C c_{benign}\in \mathcal C cbenign∈C,所有攻击客户端集合为 C a d v \mathcal C_{adv} Cadv,则全体客户端可以表示为 C = { c b e n i g n } ∪ C a d v \mathcal C=\{c_{benign}\}\cup \mathcal C_{adv} C={cbenign}∪Cadv。
左边第一幅图是传统的联邦学习框架,中间是聚合联邦学习框架,是传统联邦学习的扩展,通过自动将客户端分离到联合可训练数据分布的集群中,增加了鲁棒性和灵活性。右图是CFL在拜占庭设置中的应用,可以当作集群设置的特殊情况,只有最大的集群是良性的,其余客户端都是敌对的。
集群联邦学习
集群联邦学习可以通过检查余弦相似度,在客户端及其数据上可以推断出聚类结构C:
α
i
,
j
:
=
<
Δ
θ
i
,
Δ
θ
j
>
∣
∣
Δ
θ
i
∣
∣
∣
∣
Δ
θ
j
∣
∣
\alpha_{i,j}:=\dfrac {<\Delta\theta_i,\Delta\theta_j >} {||\Delta\theta_i||\ ||\Delta\theta_j||}
αi,j:=∣∣Δθi∣∣ ∣∣Δθj∣∣<Δθi,Δθj>
这个结果概括为下面定理:
定理1(分离定理+推论) 设
D
1
,
D
2
,
⋯
,
D
m
D_1,D_2,\cdots,D_m
D1,D2,⋯,Dm是m个客户端不同的本地训练集,每一个训练集都是产生于k个不同数据生成分布
φ
1
,
⋯
,
φ
k
\varphi_1,\cdots,\varphi_k
φ1,⋯,φk中的一个分布,表示为
D
i
∼
φ
I
(
i
)
(
x
,
y
)
D_i \sim\varphi_{I(i)}(x,y)
Di∼φI(i)(x,y),令每个客户端的经验损失
r
i
(
θ
)
r_i(\theta)
ri(θ)都近似于真实风险
R
I
(
i
)
(
θ
)
R_{I(i)}(\theta)
RI(i)(θ)对于每一个联邦学习目标
θ
∗
s
.
t
.
\theta^*\ s.t.
θ∗ s.t.
γ
i
:
=
∣
∣
∇
R
I
(
i
)
(
θ
∗
)
−
∇
r
i
(
θ
∗
)
∣
∣
∣
∣
∇
R
I
(
i
)
(
θ
∗
)
∣
∣
∈
[
0
,
1
)
\gamma_i:=\dfrac {||\nabla R_{I(i)}(\theta^*)-\nabla r_i(\theta^*)||} {||\nabla R_{I(i)}(\theta^*)||}\in[0,1)
γi:=∣∣∇RI(i)(θ∗)∣∣∣∣∇RI(i)(θ∗)−∇ri(θ∗)∣∣∈[0,1)
那么,在联邦学习目标的每一个解
θ
∗
\theta^*
θ∗,
c
1
,
c
2
c_1,c_2
c1,c2将是正确的:
KaTeX parse error: Expected group after '_' at position 37: …g\ \mathop{min}_̲\limits{c_1\cup…
如果:
KaTeX parse error: Expected group after '_' at position 15: \mathop {max}_̲\limits{i\in c_…
其中:
H
i
,
j
=
−
γ
i
γ
j
+
1
−
γ
i
2
1
−
γ
j
2
H_{i,j}=-\gamma_i\gamma_j+\sqrt{1-\gamma_i^2}\sqrt{1-\gamma_j^2}
Hi,j=−γiγj+1−γi21−γj2
一个稍弱,但更加简单的基于最大逼近误差的表述可以是:
推论1: 只要它保持:
γ
m
a
x
:
=
m
a
x
i
=
1
,
⋯
,
m
γ
i
<
s
i
n
(
π
4
(
k
−
1
)
)
\gamma_{max}:=\mathop{max}\limits_{i=1,\cdots,m}\gamma_i<sin(\dfrac \pi {4(k-1)})
γmax:=i=1,⋯,mmaxγi<sin(4(k−1)π)
算法: 聚类联邦学习算法以自顶向下的方式分离客户机群:从最初客户机集合
c
=
{
1
,
⋯
,
m
}
c=\{1,\cdots,m\}
c={1,⋯,m}和初始化参数
θ
0
\theta_0
θ0,客户端通过n次随机梯度下降迭代计算出权重更新
Δ
θ
i
\Delta\theta_i
Δθi,在传统联邦学习中,这些权重更新被传送到中央服务器,将会通过平均算法被聚合成一个全局模型。在CFL中,比前者更有优势,服务器计算出来余弦相似度矩阵
α
\alpha
α,基于这个,得到两个聚类候选者:
KaTeX parse error: Expected group after '_' at position 37: …g\ \mathop{min}_̲\limits{c_1\cup…
如果两个聚类之间的最大相似度
α
c
r
o
s
s
←
m
a
x
i
∈
c
1
,
j
∈
c
2
α
i
,
j
\alpha_{cross}\leftarrow\mathop{max}\limits_{i\in c_1,j\in c_2}\alpha_{i,j}
αcross←i∈c1,j∈c2maxαi,j
低于一个确定的阈值
α
c
r
o
s
s
t
h
e
r
s
h
\alpha_{cross}^{thersh}
αcrossthersh,那么主要的集群将分成两个候选集群,然后对每一个客户机集群分别进行模型聚合,在之后的通信回合也重复这个过程,现有的集群可能会使用相同的机制进一步细化,整个过程如下面算法给出:
算法1:聚类联邦学习(用于拜占庭鲁棒性)
![image-20220722092158984](https://s2.loli.net/2022/07/22/9wP1JtXcbnf8z2A.png)
首先输入初始化向量 θ 0 \theta_0 θ0,阈值 α c r o s s t h r e s h ∈ [ − 1 , 1 ) \alpha_{cross}^{thresh}\in [-1,1) αcrossthresh∈[−1,1),还有迭代次数n,要输出恶意客户端和恶意模型。
初始化集群C,设置初始模型 θ 0 \theta_0 θ0,和初始权重更新向量 Δ θ c ← 0 ∀ c ∈ C \Delta\theta_c\leftarrow 0\ \ \forall c\in\mathcal C Δθc←0 ∀c∈C
如果没有收敛,一直重复:
对于 i = 1 , ⋯ , m i=1,\cdots,m i=1,⋯,m:
第i个客户端做:
随机梯度权重更新
服务端做:
对于所有客户端c,重复:
获得余弦相似度矩阵
得到两个预选集群 c 1 , c 2 c_1,c_2 c1,c2
得到两个集群最大相似度
与阈值进行比较,如果小于阈值:
常规的CFL:
从全体客户端中除去当前客户端c和 c 1 , c 2 c_1,c_2 c1,c2
拜占庭鲁棒式CFL:
C是 c 1 , c 2 c_1,c_2 c1,c2中模最大的一个
对于每一个客户端
计算每一个客户端的权重更新向量 Δ θ c ← 0 1 ∣ c ∣ ∑ i ∈ c Δ θ i \Delta\theta_c\leftarrow 0\ \ \dfrac 1 {|c|} {\sum_{i\in c}\Delta\theta_i} Δθc←0 ∣c∣1∑i∈cΔθi
返回权重向量和全体C