코코와 나
Communication-Efficient Learning of Deep Networks from Decentralized Data (FedAVG) 본문
Communication-Efficient Learning of Deep Networks from Decentralized Data (FedAVG)
코코빵댕이 2022. 12. 20. 04:04이 글에서는 Federated learning과 FedAVG에 대해서 알아봅니다.
본문 : https://arxiv.org/pdf/1602.05629.pdf
1. Federated Learning
점점 더 AI는 추천 시스템, 감시 카메라, 의료 시스템 등과 같은 컴퓨팅 자원이 있는 많은 곳에서 볼 수 있는 다양한 서비스에 점진적으로 적용되고 있습니다. 다시 말해 AI 기반 프로그램은 점차 더 많은 데이터를 사용하여 모델을 훈련합니다. 그러나 종국적인 문제는 민감하고 사적인 사용자 데이터입니다. 개인 정보의 프라이버시와 보안에 대한 우려가 점점 커지는 가운데 더 높은 성능의 model을 얻기위한 특별한 데이터에 접근하는것은 점차 어려워 지고 있습니다. 연합 학습(FL)은 이에 대한 훌륭한 대안으로 떠오릅니다.

연합 학습의 기본 개념은 중앙 집중식 모델을 분산 장치로 가져와 사용자 데이터 수집의 필요성을 없애는 것입니다. 모바일 인터넷 기술의 발달로 모바일 기기는 점점 더 가볍고, 휴대가 간편하며, 컴퓨팅 파워 또한 지속적으로 상승하고 있습니다. 연합 학습에서 훈련 과정은 중앙 서버에 의해 조정되는 로컬 장치(클라이언트)에 의해 수행됩니다. 각 클라이언트에는 로컬데이터가 있습니다. 각 데이터는 개인의 민감한 정보를 담고 있으므로 serverside로 업로드 되는것을 피해야 합니다. 이에 FL은 기존 알고리즘과 같은 훈련절차를 위해 서버에 데이터를 업로드하는 대신 모델을 복사본을 통해 여러 에포크 동안 모델을 훈련하고 훈련된 매개변수를 집계를 위해 중앙 서버로 전송합니다.
이 접근 방식의 주요 이점은 원시 교육 데이터에 직접 액세스해야 하는 필요성에서 모델 훈련을 분리할 수 있다는 것입니다. 훈련을 조율하는 서버와의 통신은 모델의 복사본과 업데이트 결과에 국한됩니다. 그러므로 각 클라이언트에서 사용 가능한 데이터를 기반으로 훈련 목표를 지정할 수 있는 특정 job의 경우에서 FL은 공격가능한 외부의 접근을 장치와 클라우드 양방에서 장치로만 제한하여 개인 정보 보호 및 보안 위험을 크게 줄일 수 있습니다.
2. FedAVG

위 그림은 FedAVG의 동작 형태를 잘 보여줍니다.
기계학습에서 최적화를 위한 과정은 일반적으로 다음과 같습니다.

여기서 함수 f_i(w) = loss(x_i, y_i, w) 는 파라미터 w에 대한 특정 (x_i, y_i)의 예측 손실입니다.
분할된 데이터를 가진 k개의 client가 있다고 하면 각 client는 전체에 대해 다음과 같은 비례적인 값을 갖습니다.

이는 FedAVG가 IID setting에서 가장 강력한 형태를 보이는 Weighted Sum을 표현합니다.

알고리즘을 통해 알아보면 다음과 같습니다.
1.먼저 서버는 가중치를 초기화 하고 global iteration을 수행합니다.
2.각 라운드가 수행됨에 따라 전체 client 중에서 일부 (고정 비율)을 뽑아 참여 client로 선정합니다.
이를 S_t 라고 합니다.
3.이 S_t 내부의 client에게 병렬적으로 모델의 복사본을 송부합니다.
4.각 client는 전송된 복사본을 local data를 통해 update 하고 그 결과를 업로드 합니다.
5.중앙서버는 업로드 결과를 aggregation 하고 업데이트 합니다.
2-5과정을 반복합니다.
3. 결과

실험결과는 Fragment C의 영향을 보여줍니다.

통신 라운드에 대한 global model의 test 정확도를 보여줍니다.

여기서 저자는 각 작업당 client가 갖는 local update 횟수와 B를 조절하며 실험 합니다.
'논문리뷰' 카테고리의 다른 글
| FEDERATED OPTIMIZATION IN HETEROGENEOUS NETWORKS (0) | 2022.12.21 |
|---|---|
| SplitFed: When Federated Learning Meets Split Learning (0) | 2022.12.21 |
| SplitNN-driven Vertical Partitioning (0) | 2022.12.21 |
| Federated Learning with Fair Averaging (3) | 2022.12.21 |
| Federated learning (0) | 2022.12.20 |