Federated Variance-Reduced Stochastic Gradient Descent with Robustness to Byzantine Attacks
对拜占庭攻击具有鲁棒性的联邦方差减少随机梯度下降
Abstract
针对拜占庭攻击,目前主流抗攻击方法为:随机梯度下降(SGD)与不同的鲁棒聚合规则相结合。
缺点:SGD噪声过大,无法区分拜占庭攻击者发送的恶意消息和“诚实的”客户端发送的有噪声的随机梯度。
本文优化:提出Byrd-SAGA,减少随机梯度的方差。分布式SAGA 采用平均值,Byrd-SAGA使用几何中值聚合客户端发送的校正随机梯度。
渐进学习误差由拜占庭客户端数量决定。
INTRODUCTION
针对联邦学习中拜占庭攻击,近年来开发了集中鲁棒聚合规则,主要用于改进底层优化任务的分布式随机梯度下降求解器。
将随机梯度与几何中值、中值、修剪均值、迭代滤波聚合,能容忍少量受拜占庭攻击的设备。
聚合规则Krum:从给定数量的最近随机梯度中选择具有最小累积平方距离的随机梯度。
聚合规则RSA:通过惩罚局部和全局模型参数之间的差异来聚集随机梯度以外的模型。
相关工作:分布式主成分分析中的对抗学习、拜占庭攻击下非凸分布式学习中的靶点逃逸、利用冗余梯度提高鲁棒性。
本文:通过减少随机梯度引起的噪声来更好地区分恶意信息和随机梯度
现有的随机优化方差减少技术有小批量,并简要列出了SAG、SVRG、SAGA、SDCA、SARAH、Katyusha等。
PROBLEM STATEMENT
A. Federated finite-sum optimization in the presence of Byzantine attacks拜占庭攻击下的联合有限和优化
一个网络包括:一个主节点,W个worker,其中B个worker是拜占庭攻击者,主节点不知道身份。
数据样本均匀分布在诚实的工作节点W上(不包含B),每个诚实节点有J个数据样本, f w , j ( x ) {f_w,_j(x)} fw,j(x)表示第 j 个数据样本在诚实工作节点 w w w 处的损失相对于模型参数 x x x的损失。
有限求和优化问题记为:
主要难点:拜占庭攻击者可以串通,向主节点发送任意恶意消息,使优化过程产生偏差,本文假设
B
<
W
2
B<\frac W2
B<2W,并证明所提出的拜占庭攻击算法能够容忍来自最多半数工作节点的攻击。
B. Sensitivity of distributed SGD to Byzantine attacks分布式SGD对拜占庭攻击的敏感性
当所有客户端诚实,一个流行解算器为SGD。
在时隙(迭代)k处,主节点向客户端广播 x k x^k xk,客户端w接收后均匀随机选取索引为 i w k i^k_w iwkd的局部数据样本,以获取随机梯度 f w ′ , i w k ( x k ) f'_w,_{i^k_w}(x^k) fw′,iwk(xk),将其返回主节点。
从所有客户端收集随机梯度后,主节点模型更新为:
其中,
γ
k
\gamma^k
γk是非负步长。
分布式SGD可以扩展到其小批量版本,由此,每个客户端在每次迭代中均匀随机地选择一小批数据样本,并将平均的随机梯度传递回主节点。
诚实客户端发送真实随机梯度,拜占庭式客户端发送任意恶意消息,以干扰优化过程。
用
m
w
k
m^k_w
mwk表示客户端
w
w
w在迭代
k
k
k发送的消息:
∗
*
∗表示
p
×
1
p\times1
p×1向量,分布式SGD更新为:
即使有一个拜占庭攻击者,分布式SGD也会失败。
C. Byzantine attack resilient distributed SGD拜占庭攻击弹性分布式SGD
现有工作通常在主节点接收客户端消息时合并鲁棒聚合规则来增强分布式SGD的鲁棒性。本文采用并分析几何中值。其他稳健聚合规则也是可行的[9][10]。
Banach空间中的几何中值和鲁棒估计
对抗环境下的分布式统计机器学习:拜占庭梯度下降
[9] S. Minsker, “Geometric median and robust estimation in Banach spaces,” Bernoulli, vol. 21, no. 4, pp. 2308-2335, Nov. 2015.
[10] Y. Chen, L. Su, and J. Xu, “Distributed statistical machine learningin adversarial settings: Byzantine gradient descent,” Proceedings of SIGMETRICS, Phonenix, Arizona, USA, Jun. 2019
使用
{
z
,
z
∈
Z
}
\lbrace z,z \in Z \rbrace
{z,z∈Z}表示法线空间中的一个子集,几何中位数为
基于此,分布式 SGD 可以被修改成抗拜占庭式攻击的形式:
当拜占庭工作节点的数量
B
<
W
2
B<\frac W2
B<2W时,几何中位数可以很好地接近均值
{
m
w
k
}
\lbrace m^k_w\rbrace
{mwk}。这一特性使 抗拜占庭攻击的 SGD 算法 能够收敛到最优解的邻接点。图1示出随机梯度噪声对几何中位数聚集的影响。蓝点表示诚实的工作节点发送的随机梯度。红点表示拜占庭工作节点发送的恶意信息。加号表示基于几何中位数的鲁棒聚合的输出。五角星表示诚实工作节点发送的随机梯度的均值。诚实工作节点发送的随机梯度的方差在左图大,右图小。
D. Impact of stochastic gradient noise on robust aggregation随机梯度噪声对鲁棒聚集的影响
分布式SGD中,由于数据样本选择的随机性,诚实客户端的随机梯度具有噪声。仅使用稳健的聚合规则无法区分恶意消息与诚实客户端噪声。
在[10]和[18]中,工人被分为几个组,组内取平均值,组间取几何中值。这种方法减少了方差,从而增强了区分恶意消息的能力。
[10] Y. Chen, L. Su, and J. Xu, “Distributed statistical machine learning in adversarial settings: Byzantine gradient descent,” Proceedings of SIGMETRICS, Phonenix, Arizona, USA, Jun. 2019.
[18] L. Chen, H. Wang, Z. Charles, and D. Papailiopoulos, “DRACO:Byzantine-resilient distributed training via redundant gradients,” arXiv Preprint arXiv:1803.09877, Mar. 2018
在拜占庭无攻击的情况下,通过方差减少来缓解SGD中的随机梯度噪声是一种有效的方法。通过补偿随机梯度噪声,方差减少技术比SGD具有更快的收敛速度。
重点关注SAGA,它可以减少有限和优化[24]的随机梯度噪声。
ALGORITHM DEVELOPMENT
A. Distributed SAGA with mean aggregation具有平均聚集的分布式SAGA
在分布式SAGA中,与分布式SGD类似:
“在时隙(迭代)k处,主节点向客户端广播 x k x^k xk,客户端w接收后均匀随机选取索引为 i w k i^k_w iwkd的局部数据样本,以获取随机梯度 f w ′ , i w k ( x k ) f'_w,_{i^k_w}(x^k) fw′,iwk(xk)。”
但并不把随机梯度返回给主节点,而是先减去先前存储的第
i
i
i个数据样本的随机梯度,然后在局部数据样本中添加存储的随机梯度的平均值来校正
f
w
′
,
i
w
k
(
x
k
)
f'_w,_{i^k_w}(x^k)
fw′,iwk(xk)。
然后客户端将校正后的随机梯度发送到主节点,并将
f
w
′
,
i
w
k
(
x
k
)
f'_w,_{i^k_w}(x^k)
fw′,iwk(xk)存储为第
i
w
k
i^k_w
iwk个数据样本的随机梯度。
收集完所有客户端的随机梯度后,主节点更新模型 x k + 1 x^{k+1} xk+1。
值得注意: 每个worker将梯度修正后返回主节点,中心节点 使用均值聚合,本文改进使用几何中值进行聚合。B. Distributed SAGA with geometric median aggregation具有几何中值聚合的分布式SAGA
分布式SAGA有多种实现。
[29]建议将随机梯度表存储在主节点中,客户端只需要上传随机梯度及其索引,而主节点执行聚合。
除几何中值外,还有稳健的聚合,包括中值[11]、Krum[14]、边缘修剪均值[12]和迭代滤波[13]。
此外,其他方差减少技术,如mini batch[21]、SAG[22]、SVRG[23]、SAGA[24]、SDCA[25]、SARAH[26]和Katyusha[27]也可用于缓解梯度噪声。
将当前的工作扩展到其他鲁棒聚合规则和方差减少技术,是未来的研究议程。
Remark
由于获得精确的几何中值的成本很高,使用近似值
用
z
ϵ
∗
z^*_\epsilon
zϵ∗表示
{
z
,
z
∈
Z
}
\lbrace z,z \in Z \rbrace
{z,z∈Z}的近似几何中值。
将证明,近似几何中值对Byrd-SAGA的收敛性影响很小。
THEORETICAL ANALYSIS
(1)证明了减少随机梯度噪声有助于在鲁棒聚合中识别恶意消息的直观想法,特别是本文中的几何中值。
(2)证明了ByrdSAGA在拜占庭攻击下以线性速率收敛到最优解的邻域,并且渐近学习误差由拜占庭攻击者的数量决定。
A. Importance of reducing stochastic gradient noise降低随机梯度噪声的重要性
W
W
W中所有客户端发送消息集
Z
Z
Z
B
B
B中拜占庭攻击者发送消息集
Z
′
Z'
Z′
z
ˉ
\bar{z}
zˉ表示由随机梯度的集合平均值给出的真实梯度
左侧是相对于真实梯度的几何中值的均方误差。
右侧是两项的总和:第一项为诚实客户端发送的局部随机梯度的方差(内部方差),第二项为诚实客户端处的局部梯度相对于真实梯度的变化(外部方差)。
在拜占庭攻击弹性SGD中,由于SGD的随机梯度噪声较大,上界可能较大。通过减少内部变化或外部变化的随机梯度噪声,能够在恶意攻击下获得更高的准确性。
B. Convergence of Byrd-SAGA and comparison with Byzantine attack resilient SGD Byrd-SAGA收敛性以及与拜占庭攻击弹性SGD的比较
数学证明,略
NUMERICAL EXPERIMENTS
将数据平均分配到 W − B = 50 W-B=50 W−B=50个诚实客户端,额外启动 B = 20 B=20 B=20个拜占庭客户端。
本文给出了凸和非凸学习问题的数值实验。本文使用 IJCNN1 和 COVTYPE 数据集。
IJCNN1 包含 49,990 个训练数据样本,p=22 个维度。
COVTYPE 包含 581012 个训练数据样本,p=54 个维度。
在实验中考虑三种类型的攻击,包括:高斯、符号翻转和零梯度攻击。
高斯: m w k m^k_w mwk来源于高斯分布 1 W − B ∑ w ′ ∉ B m m ′ k \frac{1}{W-B}\sum_{w'\notin B}m^k_{m'} W−B1∑w′∈/Bmm′k,方差30
符号翻转: m w k = u ⋅ 1 W − B ∑ w ′ ∉ B m m ′ k m^k_w=u\cdot \frac {1}{W-B}\sum_{w'\notin B}m^k_{m'} mwk=u⋅W−B1∑w′∈/Bmm′k
零梯度: m w k = − 1 B ∑ w ′ ∉ B m m ′ k m^k_w=-\frac 1B \sum_{w'\notin B}m^k_{m'} mwk=−B1∑w′∈/Bmm′k,令主服务器上信息综合为零
近似几何中值: ϵ = 1 × 1 0 − 5 \epsilon =1 \times 10^{-5} ϵ=1×10−5
实验中利用均值和几何中位数聚集规则 ,对 SGD、mini-batch (B)SGD(BSGD)和 SAGA 进行比较。
与 SGD 相比,BSGD 的随机梯度噪声较小,但计算成本较高。相比之下,SAGA 也降低了随机梯度噪声,但其计算成本与 SGD 相同。
对于每个算法采用一个恒定的步长大小。
A. l 2 l_2 l2-regularized logistic regression正则化逻辑回归
随机梯度噪声
f
(
x
k
)
−
f
(
x
∗
)
f(x^k)-f(x^*)
f(xk)−f(x∗)和计算代价
D
W
∉
B
[
m
w
k
]
D_{W\notin B}[m^k_w]
DW∈/B[mwk]
数据集:IJCNN1 和 COVTYPE
图一:IJCNN1,对比均值和几何均值 聚合规则 ,SGD、BSGD、SAGA的随机梯度噪声和计算代价。
图二:COVTYPE,对比均值和几何均值 聚合规则 ,SGD、BSGD、SAGA的随机梯度噪声和计算代价。
图三:IJCNN1,几何中值情况下,对比SGD、BSGD、SAGA随机梯度噪声和计算代价(证明SAGA是最优聚合规则)
图四:IJCNN1 和 COVTYPE,SAGA聚合规则下,对比 均值、几何中值、Krum、中值 的 随机梯度噪声。(证明几何中值是最优减小方差方法)
SAGA geomed 代表 Byrd-SAGA。
从上至下:诚实信息的最优性差距和方差。
从左至右:无攻击、高斯攻击、符号翻转攻击和零梯度攻击。
在拜占庭攻击下,使用平均聚合的三种算法都失败了。
使用几何中位数聚合的算法中,Byrd-SAGA 明显优于其他两种,而 BSGD 则优于 SGD。这表明了减少方差对处理拜占庭攻击的重要性。在诚实信息的方差方面,Byrd-SAGA、抗击拜占庭攻击 BSGD 和抗击拜占庭攻击 SGD 在 IJCNN1 数据集中的方差分别为 1 0 − 3 10^{-3} 10−3、 1 0 − 2 10^{-2} 10−2、 1 0 − 1 10^{-1} 10−1。
B. Neural network training神经网络训练
训练一个具有50个神经元的隐藏层和“tanh”激活函数的神经网络。
M N I S T 数据 集 4 MNIST数据集^4 MNIST数据集4上的多类分类,该数据集包含60000个数据样本,每个样本的维数p = 784。
SGD:步长0.1
BSGD:步长0.5,批大小50
SAGA:步长0.1
15000次迭代
在平均聚合的情况下,所有算法在拜占庭攻击下的准确率都很低。
在几何中值聚合的帮助下,BSGD和SAGA都具有较强的鲁棒性,表现优于SGD。注意,相对于拜占庭攻击弹性BSGD, Byrd-SAGA的每次迭代计算成本要低得多。
CONCLUSIONS
今后研究方向将是在完全去中心化的网络上开发和分析抗拜占庭攻击方法。
代码实现
Jupyter Notebook 启动 Kernel 错误
解决方式
[W 16:10:10.955 NotebookApp] 404 GET /api/kernels/cc25d37a-c8d9-495b-87a0-c47617cc83c3/channels?session_id=cf1152580bc641a59de9e9d2722286eb (127.0.0.1): Kernel does not exist: cc25d37a-c8d9-495b-87a0-c47617cc83c3
[W 16:10:10.961 NotebookApp] 404 GET /api/kernels/cc25d37a-c8d9-495b-87a0-c47617cc83c3/channels?session_id=cf1152580bc641a59de9e9d2722286eb (127.0.0.1) 6.980000ms referer=None
解决方案
打开终端,输入下面的指令:
pip install --user --ignore-installed jupyter
pip install --upgrade ipykernel