[FL] Non-IID Data & Client Drift
정의
Non-IID data 는 연합 학습에서 각 클라이언트의 데이터가 서로 다른 분포에서 추출되는 상황을 말합니다. FedAvg 를 비롯한 대부분 FL 알고리즘의 최대 난관이며, client drift (각 클라이언트가 자기 로컬 optimum 으로 이탈해 평균이 잘못된 방향으로 이동) 를 유발합니다.
Non-IID 의 유형
Kairouz et al. (2021) 서베이 분류:
1. Feature distribution skew (covariate shift)
, but 는 동일.
- 예: 여러 병원의 X-ray 데이터. 라벨 (질병) 규칙은 같지만 촬영 장비/환자군이 달라 이미지 통계가 다름.
2. Label distribution skew (prior probability shift)
, but 는 동일.
- 예: MNIST 를 100명에게 나눠주되 각자는 특정 숫자 3-4개만 받음. 클래스 사전 분포가 극단적으로 다름.
- 실전에서 흔한 유형. 사용자별 관심사 편중.
3. Same label, different features (concept shift)
.
- 예: 여러 나라의 “긴급 상황” 라벨 데이터. 라벨은 같지만 특성 분포가 다름.
4. Same features, different label (concept drift)
.
- 예: 다국어 감정 분석. 같은 단어가 나라마다 다른 감정.
5. Quantity skew (unbalancedness)
가 클라이언트별로 크게 다름. 대형 클라이언트 몇 개가 지배.
실무에서는 이 유형들이 혼합 되어 나타납니다.
Non-IID 상황 시각화
flowchart TB
subgraph IID["IID (이상적 분포)"]
C1["클라이언트 A\n클래스 0~9 균등"]
C2["클라이언트 B\n클래스 0~9 균등"]
C3["클라이언트 C\n클래스 0~9 균등"]
end
subgraph NonIID["Non-IID (Label Skew)"]
D1["클라이언트 A\n클래스 0,1,2 만"]
D2["클라이언트 B\n클래스 5,6,7 만"]
D3["클라이언트 C\n클래스 8,9 만"]
end
IID -->|"FedAvg 잘 수렴"| GoodGlobal["좋은 글로벌 모델"]
NonIID -->|"client drift 발생"| BadGlobal["편향된 글로벌 모델"]
Client Drift 의 수학적 원인
로컬 objective 는 클라이언트 의 로컬 데이터에 대한 손실. 글로벌 objective 는:
로컬 SGD 를 epoch 돌리면 클라이언트 는 의 로컬 minimum 에 접근합니다.
Non-IID 상황에서 들은 서로 멀리 흩어져 있고, 그들의 평균은 글로벌 minimum 와 무관 할 수 있습니다.
이것이 client drift. E 가 클수록 더 심해집니다.
완화 전략
A. Reduce local computation
- E 축소 (극단적으로는 E=1, 즉 FedSGD): drift 감소, 대신 통신 폭증
- B 확대: 배치를 크게 (분산 감소, 하지만 GPU 메모리 요구 증가)
Trade-off: 통신 vs drift.
B. Proximal Regularization (FedProx)
Li et al. (2020) 의 FedProx 는 로컬 objective 에 proximal term 을 추가:
- : 하이퍼파라미터 (0.001 ~ 1)
- 로컬 update 가 글로벌 모델에서 멀리 벗어나지 못하도록 제약
- Straggler (느린 클라이언트) 가 partial work 만 해도 안전
Pros: 구현 간단 (loss 에 term 하나 추가), FedAvg 대비 안정성 향상. Cons: 튜닝 필요, drift 를 완전히 없애진 못함.
C. Control Variate (SCAFFOLD)
Karimireddy et al. (2020) 의 SCAFFOLD 는 각 클라이언트의 drift 방향을 control variate 로 추적하고 로컬 gradient 에서 빼줍니다.
로컬 SGD update:
- : 클라이언트 의 로컬 correction (drift 방향)
- : 서버 correction (모든 클라이언트 평균)
- : “이 클라이언트가 평균보다 얼마나 편향된가”
라운드 종료 시 를 업데이트하고 서버가 를 재집계.
Pros: 이론적으로 IID 급 수렴 rate 회복. Cons: 통신량 2배 (weight + control variate 모두 전송), 메모리 2배.
D. Objective Consistency (FedNova)
Wang et al. (2020) 의 FedNova 는 각 클라이언트의 로컬 step 수 가 다를 때 정규화. FedAvg 는 클라이언트별로 step 수가 달라도 그냥 평균하지만, 이는 objective inconsistency 를 야기.
FedNova 는 normalized gradient 를 집계:
- : 클라이언트 의 delta
- : 클라이언트 의 로컬 step 수
- : 유효 step 수 (스케일 조정)
특히 system heterogeneity (느린/빠른 클라이언트 혼재) 상황에 강함.
E. Server-side adaptive optimizer
Reddi et al. (2020) 의 FedAdam, FedYogi, FedAdagrad. 서버에서 pseudo-gradient 를 Adam/Yogi/Adagrad 로 적용.
Non-IID 하에서 학습 안정성 향상.
F. Data augmentation / Mixup
클라이언트가 로컬에서 data augmentation 을 강하게 하면 로컬 분포가 완화되어 drift 감소. Mixup, CutMix, RandAugment 등이 흔히 결합.
G. Personalization (개인화)
Non-IID 를 없애려 하지 말고 각 클라이언트가 자기 분포에 맞게 개인화 모델을 갖도록 함. 자세한 것은 Personalized FL 참조.
벤치마크 데이터셋
Non-IID FL 연구에 자주 쓰이는:
- Federated MNIST / FEMNIST: 필기 데이터를 작가별로 자연 분할
- Federated CIFAR-10 (Dirichlet split): Dirichlet 파라미터 로 non-IID 정도 조절
- Shakespeare: 극중 인물별 대사, 언어 모델링
- StackOverflow: 사용자별 질문/답변
- iNaturalist: 지역별 야생동물 이미지
- Reddit: user별 댓글
Dirichlet split: 라벨 의 클라이언트 분포를 로 샘플. 가 작을수록 극단적 non-IID.
BatchNorm 특별 주의 (FedBN)
Non-IID 에서 Batch Normalization 은 특히 취약합니다. 각 클라이언트의 배치 통계 (mean, variance) 가 달라서 글로벌 집계 후 BN 레이어가 “틀린 통계” 로 추론합니다.
해결책:
- FedBN (Li et al., 2021): BN 레이어는 집계하지 않고 각 클라이언트에서 로컬 통계를 유지
- GroupNorm / LayerNorm 대체: 배치 통계에 의존하지 않아 Non-IID 에 강함
- InstanceNorm: 각 샘플마다 정규화, 배치 크기에 무관
모델 설계 단계에서 FL 을 고려하면 처음부터 GroupNorm 을 쓰는 것이 좋습니다.
알고리즘 선택 가이드
flowchart TD
Start["Non-IID 문제 진단"]
Start --> Q1{"극심한 label skew?"}
Q1 -->|"Yes"| Q2{"통신량 허용 2배?"}
Q1 -->|"No"| Q3{"system heterogeneity?"}
Q2 -->|"Yes"| SCAFFOLD["SCAFFOLD"]
Q2 -->|"No"| FedProx["FedProx (mu=0.01~0.1)"]
Q3 -->|"Yes"| FedNova["FedNova"]
Q3 -->|"No"| Q4{"서버 optimizer 도입?"}
Q4 -->|"Yes"| FedAdam["FedAdam / FedYogi"]
Q4 -->|"No"| FedAvg["FedAvg (E 줄이기)"]
FedProx --> Eval{"클라이언트별 accuracy 편차?"}
FedAvg --> Eval
Eval -->|"크다"| Personalized["Personalized FL 검토"]
Eval -->|"OK"| Done["배포"]
| 상황 | 권장 |
|---|---|
| Mild non-IID + IID 근접 | FedAvg (그대로) |
| 표준 non-IID (label skew) | FedProx ( = 0.01) |
| 극심한 drift, 클라이언트 다수 | SCAFFOLD |
| System heterogeneity (다양한 로컬 step) | FedNova |
| 서버 최적화 여지 | FedAdam / FedYogi |
| BatchNorm 통계 문제 | FedBN or GroupNorm 대체 |
| 개인화가 목적 | Personalized FL |
실험 체크리스트
Non-IID FL 논문/프로젝트에서 반드시 보고해야 하는 항목:
- Non-IID 정도 정량화: Dirichlet , 클라이언트당 클래스 수, Earth Mover’s Distance 등
- 클라이언트 참여율: 라운드당 샘플링 비율 (full participation vs partial participation)
- 로컬 epoch E: drift 의 직접 파라미터
- 글로벌 accuracy 뿐 아니라 per-client accuracy 분포: worst-10% 클라이언트 성능 필수
- 통신 라운드 수 vs 성능: 총 통신량 비교 (알고리즘마다 라운드당 비용 다름)
- SCAFFOLD 는 통신 2배 반영: 단순 accuracy 비교는 불공평
함정
WARNING
Non-IID 를 IID 처럼 다루면 수렴 실패. 처음부터 데이터 분포를 EDA 로 파악.
CAUTION
BN 은 non-IID 에서 특히 취약. 로컬 통계가 글로벌 분포를 대표하지 않아 성능 저하. GroupNorm 또는 FedBN 을 첫 손에 검토.
WARNING
극심한 non-IID + partial participation 은 이론적 수렴 보장이 약함. 실전에서 learning rate decay + warm-up 이 필수.
IMPORTANT
개인화 지표를 평가. 글로벌 모델의 accuracy 뿐 아니라 클라이언트별 accuracy 분포도 함께 리포트. 평균은 좋지만 최악의 클라이언트가 안 되면 UX 실패.
CAUTION
Fairness 함정. Non-IID FL 은 소수 그룹 (소량 데이터 클라이언트) 이 대형 클라이언트에 종속될 수 있음. 가중 평균 외에도 min-max fairness (q-FFL 등) 검토.
관련 위키
- Federated Learning - 상위 개념
- FedAvg - 기본 알고리즘 (drift 의 배경)
- Personalized FL - Drift 대신 개인화
- Secure Aggregation - 프라이버시 강화
- Differential Privacy - Non-IID 상 DP 는 특히 어려움
- FL Frameworks - 구현 도구
이 글의 용어 (6개)
- [FL] FedAvg (Federated Averaging)ml
- 정의 FedAvg (Federated Averaging) 는 McMahan et al. (2017) 이 제안한 연합 학습의 기본 알고리즘 입니다. 원본 데이터를 중앙 서버로 보내…
- [FL] Frameworks (Flower, TFF, NVFlare, FATE, PySyft)ml
- 정의 연합 학습 프레임워크 는 서버-클라이언트 통신, 집계 알고리즘, 프라이버시 도구, 시뮬레이션 환경, 실 배포 인프라를 제공하는 라이브러리/플랫폼입니다. 알고리즘을 직접 구현…
- [FL] Personalized Federated Learningml
- 정의 Personalized FL 은 모든 클라이언트가 동일한 글로벌 모델을 쓰지 않고, 각 클라이언트가 자신의 데이터 분포에 맞춰 조정된 모델 을 학습하는 연합 학습 계열입니다…
- [FL] Secure Aggregationml
- 정의 Secure Aggregation 은 연합 학습 서버가 개별 클라이언트 업데이트 를 보지 못하고 오직 합 (또는 평균) 만 볼 수 있도록 보장하는 암호학 프로토콜입니다. 서…
- Differential Privacy: (ε, δ) 로 정량화하는 프라이버시 보장ml
- 정의 Differential Privacy (DP, 차분 프라이버시) 는 데이터셋에 대한 질의 (query) 결과에 calibrated noise 를 추가함으로써, 한 개인의 데…
- Federated Learning: 분산 학습 without central dataml
- 정의 Federated Learning (FL) 은 데이터를 중앙에 모으지 않고 각 클라이언트 (edge device, 병원, 은행 등) 가 로컬 데이터로 모델을 학습한 뒤 모델…
💬 댓글