Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Election Coding for Distributed Learning: Protecting SignSGD against Byzantine Attacks #17

Open
mitsuhiko-nozawa opened this issue Jun 4, 2021 · 0 comments

Comments

@mitsuhiko-nozawa
Copy link
Contributor

mitsuhiko-nozawa commented Jun 4, 2021

一言でいうと

ビザンチン将軍問題(ノードが故障した時に正しく情報を伝えられるかどうか)にロバストな符号化手法、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ノードの勾配でまたボーティング
image
G(i,j)の決定方法として二つ提案

  • Random Bernoulli codes : G(i,j)は確率pを持つベルヌーイ分布から決定される。完全にビザンチンロバストではない。最悪時はbノードが全て反転したビットを送ると想定する。
  • Deterministic codes : bノードがビザンチンアッタクを受けているときにビザンチンロバストになるアルゴリズム。

image
image

結果

Amazon EC2 でクラスタを立てて実験.
ResNet18 - Cifar10 と logistic regression - kaggle datasetを用意
2つのビザンチン攻撃を想定

  • 攻撃を受けたノードの値を全フリップ
  • 攻撃を受けたノードの値を全部1

全フリップ攻撃時のモデルの収束率(resnet)
対策なしよりも収束が速い
攻撃を受けているノードが多いほど、効果が出ている
image
image

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

コメント

@mitsuhiko-nozawa mitsuhiko-nozawa self-assigned this Jun 4, 2021
@mitsuhiko-nozawa mitsuhiko-nozawa changed the title [WIP] Election Coding for Distributed Learning: Protecting SignSGD against Byzantine Attacks Election Coding for Distributed Learning: Protecting SignSGD against Byzantine Attacks Jun 4, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant