-
Notifications
You must be signed in to change notification settings - Fork 1
Description
一言でいうと
ビザンチン将軍問題(ノードが故障した時に正しく情報を伝えられるかどうか)にロバストな符号化手法、ELECTION CODINGを提案。
論文リンク
https://proceedings.neurips.cc/paper/2020/file/a7f0d2b95c60161b3f3c82f764b1d1c9-Paper.pdf
著者/所属機関
Jy-yong Sohn
Dong-Jun Han
Beongjun Choi
Jaekyun Moon
School of Electrical Engineering,
Korea Advanced Institute of Science and Technology (KAIST)
投稿日付(yyyy/MM/dd)
NIPS 2020
概要
学習の並列分散化におけるボトルネックとして、通信とビザンチン将軍問題が挙げられる。攻撃を受けたノードは任意の値をパラメータサーバに送るが、これは学習を悪化させる。各ノードの平均集約でさえ影響を受けてしまうので、中央値によって集約勾配を得る方法が提案されているが、これはノードが増えると計算コストがとてもかかる。そのため、各ノードでビザンチン攻撃を許容する方法が研究されている。
SIGN-SGDなどの量子化手法におけるビザンチンロバストな手法が存在しない。
具体的には、votingによって更新方向を決めるときに、中間投票所のようなものを設けることで、ロバストな階層型投票を行う。
新規性・差分
量子化手法におけるビザンチンロバストな手法を提案。
手法
各ノードで計算された勾配を、他のノードにも伝搬する。この伝搬は行列Dに従い、(i, j) = 1ならノードiはノードjのデータも持つことになる。その後、各ノードでローカルにボーティング、マスタに送信、送信後、Nノードの勾配でまたボーティング

G(i,j)の決定方法として二つ提案
- Random Bernoulli codes : G(i,j)は確率pを持つベルヌーイ分布から決定される。完全にビザンチンロバストではない。最悪時はbノードが全て反転したビットを送ると想定する。
- Deterministic codes : bノードがビザンチンアッタクを受けているときにビザンチンロバストになるアルゴリズム。
結果
Amazon EC2 でクラスタを立てて実験.
ResNet18 - Cifar10 と logistic regression - kaggle datasetを用意
2つのビザンチン攻撃を想定
- 攻撃を受けたノードの値を全フリップ
- 攻撃を受けたノードの値を全部1
全フリップ攻撃時のモデルの収束率(resnet)
対策なしよりも収束が速い
攻撃を受けているノードが多いほど、効果が出ている


全部1にする攻撃時のモデルのAUC推移(logistic regerssion)


