論文連結: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: