일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Federated Transfer Learning
- Federated Learning
- OSR
- q-FedAvg
- value shaping
- FedProx
- data maximization
- ML
- Analysis
- FL
- 머신러닝
- PPML
- DP
- Machine learning
- Differential Privacy
- 딥러닝
- OoDD
- convergence
- Agnostic FL
- deep learning
- q-FFL
- free rider
- 기계학습
- 연합학습
- Fairness
- OOD
- FedAvg
- ordered dropout
- Open Set Recognition
- 개인정보
- Today
- Total
Federated Learning
[AAAI 2022] SplitFed - (2) 본문
논문 제목: SplitFed: When Federated Learning Meets Split Learning
출처: https://arxiv.org/abs/2004.12088
지난 포스트에서 Split Learning이 무엇인지, 그리고 SL과 FL이 어떻게 다른지 확인한 후, 이 둘을 결합한 SplitFed(SFL)에 관해서 알아보았습니다. (이전 글 보기) 이번 포스트에서는 저자들이 제안하는 SFL의 유형 두 가지에 관해서 이야기해보겠습니다.
3. SFLV1, SFLV2
SFL의 pseudo code는 위와 같습니다. (여기에서 윗첨자 $\text{C}$는 Client, $\text{S}$는 Server를 의미합니다.) 이전 포스트에서 언급한 것과 거의 동일한 방식으로 진행되는 것을 알 수 있는데, 언급되지 않은 부분에 관한 설명은 다음과 같습니다.
(1) SL은 dataset의 label을 Server와 공유하는 방식, 공유하지 않는 방식으로 크게 나뉘는데, 저자들이 제안하는 알고리즘은 전자를 채택하고 있습니다. (이전 포스트의 그림을 참조 바랍니다.) 만약 후자의 방식을 사용하고 싶다면, 현재 두 파트로 split되어 있는 것을 세 파트로 split하여 Client - Server - Client 순으로 학습을 진행하면 됩니다.
(2) ClientUpdate를 처음 진행할 때에는 받아올 parameter가 없기 때문에, random한 $\phi$로 intiailize합니다. SL을 처음 제안한 논문[1]에는 Xavier 혹은 Gaussian으로 initialize하도록 되어 있는데, 해당 논문에서는 별도의 언급이 없었습니다.
(3) ClientUpdate 진행 과정 중에 noise layer라는 것이 등장하는데, 이는 PixelDP라는 concept를 학습 과정에 적용한 것입니다. 또한, ClientBackprop 진행 과정 중에 calibrated noise라는 것이 등장하는데, 이는 Differential Privacy를 model에 적용하는 과정입니다. 이에 관한 이야기는 다음 포스트에서 다루도록 하겠습니다. (저자들은 공정한 비교를 위해서 SL, FL 등 기존 방법들과 SFL을 비교할 때에는 이러한 Privacy Preserving method들을 적용하지 않았다고 밝혔습니다.)
(4) FL의 aggregation method는 다양하게 존재하지만, 저자들은 FedAvg를 사용하였습니다. 또한, 저자들은 SFLV1과 SFLV2, 이렇게 두 가지의 SFL 알고리즘을 제안하고 있는데, SFLV1은 위의 pseudo code를 완전히 따르는 방식을 의미하며, SFLV2는 SFLV1에서 Server 단의 FedAvg 과정을 제거한 것입니다. SFLV1의 Server단 FedAvg는 SL과 동일하게 Main Server에서 진행되며, Fed Server가 Client단의 FedAvg만 수행한다는 점을 고려했을 때, SL의 Server가 "Main Server"로 이름 붙은 것은 자연스럽다고 볼 수 있습니다. SFLV2는 Server단의 FedAvg만 생략한 구조이며, Client단에서는 기존과 동일하게 FedAvg를 수행합니다. (즉, 이전 포스트의 설명은 SFLV2에 해당하는 것입니다.) 저자들은 Server단의 aggregation을 제거하는 것이 model accuracy 향상에 도움이 될 것이라고 판단하였는데, 과연 그러할지에 관해서는 추후 experiments에서 확인해보겠습니다.
4. 학습에 요구되는 Total Cost 비교
오른쪽 표는 네 가지 알고리즘(FL, SL, SFLV1, SFLV2)의 1회 global update에 요구되는 total cost를 비교한 것입니다. (제일 오른쪽 column을 보면 됩니다.) notation에 대한 설명은 다음과 같습니다.
$\text{K}$: 학습에 참여한 client의 수
$\textbf{W}$: global model
$\beta$: $\textbf{W}$의 client-side fraction (따라서, $|\textbf{W}^C| = \beta |\textbf{W}|$)
$p$: dataset 전체의 크기
$q$: smashed layer의 크기 (따라서, $\frac {pq} {K}$는 smashed data의 크기)
$T$: 크기 $p$ 만큼의 dataset을 가지고 1회 forward / backword propogation하는 데에 걸리는 시간
$T_{\text{fedavg}}$: 1회(Client + Server)의 model aggregation에 걸리는 시간
$R$: communication rate
표를 자세하게 살펴보면, SL이 다른 알고리즘에 비해 $K$ term의 영향을 크게 받는 것을 확인할 수 있습니다. 이는, SL이 sequential한 방식으로 학습한다는 점을 고려했을 때, 직관적으로 당연한 부분입니다. 한편, SFLV2는 $T_{\text{fedavg}}$ term이 절반으로 줄어들었는데, 이는 (비록 완벽하게 절반은 아니겠지만) Server단의 aggregation이 생략되었기 때문입니다. 그러므로, FL은 직접적으로 비교하기 어렵겠지만, $K$가 충분히 클 때의 total cost는 SL > SFLV1 > SFLV2 순으로 크다는 것을 알 수 있습니다.
오른쪽 그래프는 Normal(centralized case)까지 포함하여 총 5개 알고리즘의 학습 시간을 비교한 것입니다. $K=1$일 때에는 별 차이가 없지만, $K$가 커질수록 SFLV1과 SFLV2가 SL보다 훨씬 빠른 속도로 학습된다는 것을 확인할 수 있고, 이는 앞서 살펴 본 바와 일치합니다. 또한, Normal은 $K$의 크기에 관련 없이 동일한 속도로 학습되는 모습을 보이는데, 이는 직관적으로 자연스러운 현상입니다. (FL은 task에 따라 학습 속도가 상이한 모습을 보입니다.) 한편, SFLV2는 aggregation을 절반만 수행하기 때문에 SFLV1보다 빠르게 학습이 되고 있는데, aggregation이 total cost에서 차지하는 비중이 크지 않아서 둘 간의 차이가 그렇게 유의미하게 나타나지는 않는 모습입니다. 따라서 cost를 줄이는 목적으로 SFLV1 대신 SFLV2를 선택할 필요는 없을 듯합니다.
다음 포스트에서는 잠시 뒤로 미루었던 noise layer와 calibrated noise에 관한 이야기를 해보겠습니다. Differential Privacy 관련 내용은 설명할 backgroung가 다소 많아서 별도의 paper review로 다루도록 하겠습니다. (현재, calibrated noise와 관한 이야기는 여기에서 확인할 수 있습니다.) 다음 포스트에서는 experiments를 바로 다룰 예정입니다.
참고 자료:
[1] [JNCA 2018] https://arxiv.org/abs/1810.06060
'Federated Learning > Papers' 카테고리의 다른 글
[NeurIPS 2021] FjORD - (1) (0) | 2022.09.07 |
---|---|
[AAAI 2022] SplitFed - (3) (0) | 2022.09.05 |
[AAAI 2022] SplitFed - (1) (0) | 2022.08.31 |
[ICLR 2020] Convergence of FedAvg - (7) (0) | 2022.08.30 |
[ICLR 2020] Convergence of FedAvg - (6) (0) | 2022.08.28 |