论文链接:http://proceedings.mlr.press/v97/xie19b/xie19b.pdf
基于怀疑容错的分布式SGD
Abstact
zeno优势在于只需要假设系统中存在一个正常节点。
核心思想:怀疑有潜在缺陷的worker。可能会怀疑错误,因此加入了使用排名的偏好机制
Introduction
使用stochastic zero-order oracle计算分数,这个分数代表在迭代中该节点的可信度。然后取分数最高(最值得信任)的节点的均值。
论文贡献点:
- 系统中仅需存在一个正常节点
- 收敛速度与分布式同步SGD相同
- 适用于不相同分布的数据集
Model
Failure Model
最坏的情况即错误梯度将最后的平均梯度的方向带偏到与正确梯度完全相反的方向。
Methodology
Definition(Stochastic Descendant Score):
\(f_r(x)=\frac{1}{n_r}\sum_{n=1}^{n_r}f(x;z_i)\)
\(z_i\): i.i.d, 从完整数据集\(D\)中取样
\(n_r\): 批训练大小
\(Score_{\gamma, x}(u,x)=f_r(x)-f_r(x-\gamma{u})-\rho||u||^2\)
\(f_r(x)-f_r(x-\gamma{u})\)为损失函数的下降差值,下降越多且距离越近,得分越高,可信度越高。
在算出所有节点的得分后,进行从大到小的排序,然后选取得分最高的\(m-b\)个节点的梯度取平均作为中心服务器的更新。
详细算法:
实验结果
评估速度:
Zeno与Mean的收敛速度近似
Label-flipping failure:
bit-flipping failure:
控制浮点数符号的位被翻转,错误的worker将负梯度而不是真实梯度推送到服务器。
在bit-flipping failure和label-flipping falure中,当q = 8时,Mean似乎有很好的性能,而它不应该是容错的。原因是标签翻转和位翻转失败都不会改变梯度的大小。当故障梯度的数量q小于一半时,有可能故障梯度被非故障梯度抵消。
non-i.i.d: