【2020 ICAIS】How To Backdoor Federated Learning
原文链接:https://arxiv.org/abs/1807.00459
介绍
攻击者可以是一个或者多个参与者,使用约束和归一化技术在后门数据上训练一个模型,并提交结果模型,该模型取代联合模型作为联邦平均的结果,参与者可以直接影响联合模型的权重,且以任何有利于攻击的方式进行训练,例如任意修改其局部模型的权重和,后门攻击如下图所示。

后门攻击者开发了一种通用的约束和归一化技术,将规避异常检测纳入攻击者的损失函数,由此产生的模型甚至可以避开相对复杂的检测器。
相关工作
传统中毒攻击会破坏训练数据,以前的后门攻击通过数据中毒或者直接将后门组件插入模型,只有在特定输入下才会改变模型行为,而这些攻击对于联邦学习是无效的,因为攻击者的模型是和成千上百的良性模型聚合在一起的。
中毒防御从训练数据移除异常值,或者在分布式设置中从参与者的模型中移除异常值,或者要求参与者提交它们的数据进行集中训练,针对后门的防御是精细修剪、过滤或者各种类型的聚类技术。
所有这些防御机制要么要求检查训练数据,要么检查模型,这都会泄露训练数据。
Bhagoji等人提出了对抗性训练算法的一种修改,就是提高后门训练的学习率,这会导致灾难性的遗忘,因此需要攻击者参与到每一轮的联邦学习防止遗忘之前训练的结果,来保持联合模型的后门准确率。相比之下,我们的后门攻击如果由单个参与者在单轮上进行攻击,则是有效的,结论就是,为了避免灾难性遗忘,攻击者的学习率应该降低,而不是提高。
安全的多方计算可以帮助训练模型,同时保护训练数据的隐私,但是不能保护模型的完整性。
模型更新的安全聚合对于隐私保护至关重要,因为模型更新会泄露参与者训练数据的敏感信息。安全聚合使我们的攻击更容易,因为它阻值了中央服务器检测到异常更新并跟踪到特定的参与者。
联合学习
联合学习通过迭代将局部模型聚合为联合全局模型,将深度神经网络的训练分部到n个参与者,它的优势在于效率(n可以是数百万)和隐私。本地训练数据永远不会离开参与者的机器,因此联邦模型可以在敏感的私人数据上训练。
方法 | |
---|---|
L c l a s s ( L , D ) \mathcal L_{class}(L,D) Lclass(L,D) | 在训练集D,模型L上的分类损失函数 |
∇ l \nabla l ∇l | 损失函数l的梯度 |
全局服务器输入 | |
G t G^t Gt | 第t轮联合全局模型的训练结果 |
E E E | 客户端迭代次数 |
l r lr lr | 学习率 |
b s bs bs | 每次训练学习的样本个数 |
客户端输入 | |
D l o c a l \mathcal D_{local} Dlocal | 本地需训练数据分割成大小为bs的块 |
D b a c k d o o r D_{backdoor} Dbackdoor | 后门数据 |
算法一(本地训练模型)

首先初始化模型和损失函数
迭代E次:
提取出batch个本地训练数据:
利用提取到的这个数据更新梯度
返回迭代完后的最终梯度模型
在每一轮迭代t中,中央服务器随机选择m个参与者中的一个子集
S
m
S_m
Sm,并将当前联合模型
G
t
G_t
Gt发送给它们。选择数量m涉及到了训练效果和训练效率的平衡,每个被选中的参与者通过算法1对其本地数据进行训练,将这个模型更新为一个新的本地模型
L
t
+
1
\mathcal L_{t+1}
Lt+1,并将差值
L
t
+
1
−
G
t
\mathcal L_{t+1}-G^t
Lt+1−Gt返回给中央服务器。通过对模型权重进行随机掩码,即少计算一些模型权重,可以减少通信开销。中央服务器对接受到的数据进行平均更新获得新的联合模型:
G
t
+
1
=
G
t
+
η
n
∑
i
=
1
m
(
L
i
t
+
1
−
G
t
)
G^{t+1}=G^t+\dfrac \eta n\sum\limits_{i=1}^m(L_i^{t+1}-G^t)
Gt+1=Gt+nηi=1∑m(Lit+1−Gt)
全局学习率
η
\eta
η控制每一轮更新的模型权重,如果
η
=
m
n
\eta=mn
η=mn,那么全局模型完全替代为局部模型的平均值。与同步分布式SGD相比,联邦学习减少了每轮参与者的数量,收敛速度更快。
联邦学习假设参与者的本地训练数据集合比较少,且来自不同的分布,因此局部模型往往容易过拟合,偏离全局模型,表现较低的精度,对局部模型进行平均可以平衡它们的贡献,从而可以产生一个精确的联合模型。
模型收敛后,学习不会停止,联邦学习模型在整个部署过程中由参与者不断更新,因此,恶意的参与者总是有机会被选中并影响模型的。
对抗性模型替换
攻击者不控制参与者的更新,也不控制任何参与者的训练,我们假设它们通过正确的将联邦学习规定的训练算法应用于它们的本地数据来创建自己的本地模型。
这种设置与传统的中毒攻击区别在于,后者假设攻击者控制了相当一部分训练数据,相比之下,联合学习中,攻击者控制了整个训练过程,但只针对一个或少数几个参与者。
攻击目标
攻击者希望联邦学习产生一个联合模型,该模型在其主任务和攻击者选择的后门子任务上都实现了较高精度,并在攻击后的多轮中在后门子任务上保持了较高的精度。相比之下,传统的数据中毒旨在改变模型在很大一部分输入空间上的性能,而拜占庭攻击旨在防止收敛。
语义后门导致模型在未修改数据输入的前提下产生了攻击者选择的输出,例如,一个后门图像分类模型将攻击者选择的标签分配给所有具有特定特征的图像,例如,所有紫色的汽车被错误地归类为鸟类。
语义后门不需要攻击者在测试时修改数字图像,它会导致模型对没有被攻击者改变地输入进行错误分类,在大规模部署联邦学习模型中,语义后门是很危险的。
攻击模型
攻击者可以在后门输入上训练模型,每个训练样本都应该包括真实标签和后门输入指定的标签,以帮助模型学习到差异,攻击者还可以改变局部学习率和局部迭代次数,来最大限度地对后门数据进行过拟合。
聚合抵消了这种攻击的大部分影响,联合模型很快就会忘记后门,攻击者需要被经常选择到,这样中毒是十分缓慢的,我们使用恶意模型X替代成新的全局模型
G
t
+
1
G^{t+1}
Gt+1:
KaTeX parse error: Expected group after '_' at position 25: …frac \eta n\sum_̲\limits{i=1}^m(…
因为是非
i
.
i
.
d
i.i.d
i.i.d的训练数据,每个局部模型可能与当前全局模型相差很远,随着全局模型的收敛,这些KaTeX parse error: Expected group after '_' at position 5: \sum_̲\limits{i=1}^m(…,因此攻击者可以对需要提交的模型进行以下的操作:
L
~
m
t
+
1
=
n
η
X
−
(
n
η
−
1
)
G
t
−
∑
i
=
1
m
−
1
(
L
i
t
+
1
−
G
t
)
≈
n
η
(
X
−
G
t
)
+
G
t
\widetilde{L}_{m}^{t+1}=\frac{n}{\eta} X-\left(\frac{n}{\eta}-1\right) G^{t}-\sum_{i=1}^{m-1}\left(L_{i}^{t+1}-G^{t}\right) \approx \frac{n}{\eta}\left(X-G^{t}\right)+G^{t}
L
mt+1=ηnX−(ηn−1)Gt−i=1∑m−1(Lit+1−Gt)≈ηn(X−Gt)+Gt
这种攻击通过
γ
=
n
η
\gamma=\dfrac n \eta
γ=ηn扩大后门模型X的权重,以确保后门能在平均聚合中发挥作用,并将全局模型替换成为X,这在任何一轮联邦学习中都有效,但在全局模型接近收敛是更加有效。
提高持久性,规避异常检测
因为攻击者可能只会被选中进行单轮训练,所以它们希望在替换模型后,能够尽可能久的停留在模型中,当模型被良性参与者更新是,防止后门被遗忘是很重要的。
我们的攻击实际上是一种双任务学习,全局模型在正常训练期间学习正常主任务,在攻击者被选中的回合中学习后门任务,目标是在攻击者的回合之后,对这两个任务都保持较高的精度。
约束和归一化
这是一个通用的方法,能够生成一个在主任务和后门任务上都具有很高精度的模型,但不会被聚合器的异常检测器察觉到。我们通过使用一个目标函数:
- 奖励模型的准确性,准确性越高,评分越高
- 惩罚它偏离聚合器认为“正常”的目标函数,将规避异常检测纳入训练,数据越异常,评分越低
根据kerckhoff假设,我们假设异常检测算法对于攻击者来说是已知的。
算法2(约束和归一化方法)
我们通过添加异常检测箱
L
a
n
o
\mathcal L_{ano}
Lano来修改目标函数:
L
m
o
d
e
l
=
α
L
c
l
a
s
s
+
(
1
−
α
)
L
a
n
o
\mathcal L_{model}=\alpha\mathcal L_{class}+(1-\alpha)\mathcal L_{ano}
Lmodel=αLclass+(1−α)Lano
由于攻击者的训练数据既包括良性输入,也包括后门输入,所以
L
c
l
a
s
s
\mathcal L_{class}
Lclass同时捕获了主任务和后门任务的准确性。
L
a
n
o
\mathcal L_{ano}
Lano用于检测异常值,如权重矩阵之间的p范数距离过大而进行惩罚。超参数
α
\alpha
α控制着规避异常检测的重要性,它控制着两个评分之间的比率。