본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 01. 00:22

연합 학습 (Federated Learning) 및 차분 프라이버시 (Differential Privacy)에 관한 노트

요약

연합 학습(Federated Learning)의 핵심 메커니즘과 Non-IID 데이터 환경에서의 한계점을 다룹니다. FedProx, SCAFFOLD와 같은 해결책을 비교 분석하며, 실제 구현 시 발생하는 클라이언트 드리프트 문제와 차분 프라이버시의 필요성을 설명합니다.

핵심 포인트

  • 연합 학습은 원시 데이터를 이동시키지 않고 모델 업데이트만 집계함
  • Non-IID 데이터 환경에서는 클라이언트 드리프트 현상이 발생함
  • FedProx는 근사 항을 통해, SCAFFOLD는 제어 변수를 통해 드리프트를 해결함
  • 복잡한 알고리즘이 항상 FedAvg보다 우월한 것은 아님을 실험으로 증명

연합 학습 (Federated Learning) 및 차분 프라이버시 (Differential Privacy)에 관한 노트

2026-05-31 · privacy-preserving ML

연합 학습 (Federated Learning, FL)을 처음부터 구축하는 과정, Non-IID 데이터 환경에서 실제로 무엇이 문제가 되는지, 그리고 차분 프라이버시 (Differential Privacy, DP) 및 **보안 집계 (Secure Aggregation)**가 어떻게 그 위에 적용되는지에 대한 작업 노트입니다. 마케팅 슬라이드에서는 생략되는 정직한 부정적 결과들도 포함되어 있습니다. 이 노트는 다음의 구현체를 따릅니다:
federated-learning-lab
(FedAvg / FedProx / SCAFFOLD, DP-SGD, 보안 집계; 33/33 테스트 완료, 문헌 교차 검증됨).

1. 연합 학습 (Federated Learning)이란 실제로 무엇인가

데이터는 절대 이동하지 않습니다. 모든 사람의 데이터를 하나의 서버에 모으는 대신, 각 클라이언트가 로컬에서 학습을 수행하고 이를 집계하는 서버로 **모델 업데이트 (Model Updates)**를 전송합니다. 전형적인 루프(FedAvg)는 다음과 같습니다:

  1. 서버가 글로벌 모델을 브로드캐스트(Broadcast)합니다.
  2. 각 클라이언트는 자신의 데이터로 몇 번의 로컬 SGD 에포크(Epoch)를 수행합니다.
  3. 각 클라이언트는 업데이트된 가중치(Weights)를 다시 보냅니다.
  4. 서버는 가중치를 평균냅니다 (클라이언트 데이터 크기에 따라 가중치 부여) → 새로운 글로벌 모델이 생성됩니다.

이것이 전부입니다. 우아한 점은 원시 데이터(Raw data)가 기기에 그대로 남아 있다는 것이며, 어려운 점은 클라이언트들의 데이터 분포가 동일하지 않다는 것입니다.

2. Non-IID 문제 (FedAvg가 문제를 일으키기 시작하는 지점)

FedAvg는 모든 클라이언트가 대략적으로 동일한 분포를 본다고 암묵적으로 가정합니다. 실제 클라이언트는 그렇지 않습니다. 한 병원이 보는 사례는 다른 병원과 다를 수 있으며, 한 휴대폰의 키보드가 접하는 언어도 다를 수 있습니다. Non-IID 데이터 환경에서는 각 클라이언트의 로컬 최적점(Local optimum)이 서로 다른 방향으로 끌어당기기 때문에, 업데이트를 평균내면 **클라이언트 드리프트 (Client Drift)**가 발생합니다. 즉, 글로벌 모델이 그들 중 누구도 원하지 않는 지점에 도달하게 됩니다.

실험실에서 구현 및 측정된 두 가지 잘 알려진 해결책은 다음과 같습니다:

  • FedProx — 글로벌 모델 (global model)로부터 너무 멀리 벗어나는 것에 페널티를 주는 근사 항 (proximal term)을 추가합니다. 클라이언트가 이질적 (heterogeneous)일 때 학습을 안정화합니다.
  • SCAFFOLD — 드리프트 (drift) 방향을 추정하고 차감하는 제어 변수 (control variates) (보정 항)를 추적합니다. 통신해야 할 상태 (state)는 더 많지만, FedProx가 단순히 억제만 하는 편향 (bias)을 교정합니다.

반복할 가치가 있는 정직한 발견은 다음과 같습니다: 강력한 비독립 동일 분포 (Non-IID) 분할 (예: 레이블 왜곡이 있는 MNIST) 환경에서, 화려한 방법들이 항상 일반적인 FedAvg를 크게 능가하는 것은 아니며 — 때로는 지배적인 레버가 단순히 더 많은 통신 라운드 (communication rounds)일 뿐입니다. 자신의 방법이 승리하지 못하는 사례를 보고하는 것이 실험실과 브로셔를 구분 짓는 차이입니다.

3. 차분 프라이버시 (Differential privacy): 모델은 여전히 정보를 유출한다

데이터를 기기 내에 유지하는 것이 프라이버시를 보장하는 것은 아닙니다. 모델 업데이트는 해당 데이터를 생성한 정보에 대한 정보를 유출합니다 — 멤버십 추론 (membership inference) 및 그래디언트 역전 (gradient-inversion) 공격은 그래디언트 (gradients)로부터 학습 샘플을 재구성합니다. 진정한 보장을 얻으려면 **차분 프라이버시 (differential privacy)**를 추가해야 합니다.

DP-SGD는 다음과 같은 방식으로 각 학습 단계를 프라이버시를 보호하도록 만듭니다:

  1. 샘플별 그래디언트 클리핑 (Per-sample gradient clipping) — 각 예시의 기여도를 최대 노름 (max norm) C로 제한합니다.
  2. 가우시안 노이즈 (Gaussian noise) — 합산된 그래디언트에 C에 맞춰 조정된 노이즈를 추가합니다.

그 결과는 공식적인 (ε, δ) 보장입니다: 학습된 모델은 단일 예시가 데이터에 포함되었는지 여부와 관계없이 증명 가능할 정도로 거의 동일합니다. 그 대가는 **프라이버시-유용성 트레이드오프 (privacy–utility trade-off)**입니다 — ε이 작을수록 (더 강력한 프라이버시) 노이즈가 많아지고 정확도가 낮아집니다. 공짜 점심은 없습니다; 이 연구의 기여는 프라이버시가 비용이 들지 않는다고 주장하는 것이 아니라, 그 곡선을 측정하는 데 있습니다.

4. 보안 집계 (Secure aggregation): 개별 업데이트를 숨기기

DP는 *최종 모델 (final model)*이 유출하는 정보를 제한합니다. **보안 집계 (Secure aggregation)**는 이와 다른 위협, 즉 호기심 많은 서버가 각 클라이언트의 개별적인 (individual) 업데이트를 훔쳐보는 문제를 다룹니다. 보안 집계를 사용하면 클라이언트들은 자신의 업데이트를 마스킹(masking)하여 서버가 오직 **합계 (sum)**만을 계산할 수 있게 합니다. 즉, 단일 클라이언트의 기여도는 보이지 않지만, 집계 시에는 마스크가 상쇄됩니다. DP(모델이 유출하는 것)와 보안 집계(서버가 보는 것)는 대체재가 아니라 **상호 보완적 (complementary)**인 관계입니다.

5. 왜 "처음부터 (from scratch)" 구현하고 "33/33 테스트"를 수행하는가

프라이버시 ML (Privacy ML)은 미묘하게 잘못된 구현이 거짓된 안전감을 주는 바로 그 영역입니다. 예를 들어, 클리핑(clipping) 버그나 잘못 보정된 노이즈 승수(noise multiplier)는 $\epsilon$ 보장(guarantee)을 소리 없이 무효화합니다. 그래서 이 연구실은 다음과 같이 진행합니다:

  • 각 알고리즘을 처음부터 직접 구현합니다 (FedAvg / FedProx / SCAFFOLD, 그리고 FedPer / Byzantine-robust / FedAdam / FedLoRA 포함),
  • **기존 문헌과 교차 검증 (cross-validates against the literature)**하여 동작이 발표된 결과와 일치하는지 확인하며,
  • 33/33 테스트 통과 및 명시적인 부정적 결과 (negative results)를 함께 제공합니다.

프라이버시 및 보안 작업에 있어, 테스트 스위트와 재현성(reproduction) 자체가 곧 신뢰성입니다.

요약 (Takeaway)

연합 학습 (Federated learning)은 데이터가 아닌 모델을 이동시키지만, 온디바이스 (on-device)라고 해서 반드시 프라이빗 (private)한 것은 아닙니다. 비독립 동일 분포 (Non-IID) 데이터는 단순 평균 방식을 무너뜨리며 (FedProx/SCAFFOLD가 도움이 되지만, 때로는 아주 조금만 도움이 됩니다), DP-SGD는 측정 가능한 정확도 손실을 대가로 공식적인 $(\epsilon, \delta)$ 보장을 제공합니다. 보안 집계는 서버로부터 개별 업데이트를 숨깁니다. 이 세 가지 모두의 신뢰할 수 있는 버전은 테스트와 정직한 곡선(curves)을 갖춘 버전입니다.

→ 처음부터 구현한 코드, 테스트, 그리고 부정적 결과들:
github.com/waynehacking8/federated-learning-lab

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0