본문으로 건너뛰기
김신건의 로그

[FL] Personalized Federated Learning

· 수정 · 📖 약 6분 · 2,224자/단어 #ml #federated-learning #personalization #meta-learning
Personalized FL, Personalized Federated Learning, pFedMe, Ditto, Per-FedAvg, MAML FL, 개인화 연합 학습, 개인화 FL, meta-learning FL

정의

Personalized FL 은 모든 클라이언트가 동일한 글로벌 모델을 쓰지 않고, 각 클라이언트가 자신의 데이터 분포에 맞춰 조정된 모델 을 학습하는 연합 학습 계열입니다. Non-IID 극심한 환경에서 글로벌 모델을 억지로 수렴시키는 대신, 자연스러운 이질성을 받아들이고 개인화 성능 을 최적화합니다.

McMahan et al. 의 FedAvg 는 단일 글로벌 모델이 목표였지만, 실전에서 키보드 (다국어), 추천, 헬스 등 사용자별 특성이 강한 도메인에서는 개인화가 필수임을 깨닫게 되었습니다.

왜 필요한가

Non-IID 의 근본 딜레마

극심한 non-IID 에서 FedAvg 는 두 가지 문제:

  1. 글로벌 모델 수렴 실패: Client drift 로 정확도 저하
  2. 클라이언트별 fit 부족: 수렴해도 각 클라이언트 로컬 분포에는 잘 안 맞음

Personalized FL 은 문제 2 를 정면 공략. 글로벌 모델을 완전히 포기하지 않고, 각 클라이언트가 그 위에 로컬 조정을 얹습니다.

실전 사례

  • Gboard: 사용자별 이모지 추천, 단어 예측
  • Siri / Google Assistant: 음성 명령 개인화
  • Netflix / Amazon 추천: 사용자별 성향
  • 의료 wearable: 개인별 정상 baseline
  • 헬스케어 fedeated: 환자군 특성 반영

주요 접근법

1. Local Fine-tuning (가장 단순)

Global model 학습 후 클라이언트가 로컬 데이터로 몇 step fine-tune.

w_local = w_global.copy()
for step in range(local_steps):
    x, y = local_batch()
    w_local = w_local - eta * grad(loss(w_local, x, y))

Trade-off:

  • 간단, 파라미터 추가 없음
  • 하지만 언제 stop 할지 (overfit vs underfit) 결정 어려움
  • 각 클라이언트가 개별 모델 저장 필요

2. Personalization Layers (FedPer, LG-FedAvg)

공유 부분 (representation extractor) + 개인 부분 (classifier head) 로 분리:

  • 서버가 학습하는 부분: representation (conv/transformer body)
  • 클라이언트가 로컬에 유지: personalization head (fully connected + softmax)
Global: [Body: shared conv/transformer]  → aggregated
Local:  [Head: personal FC + softmax]    → kept per client

FedPer (Arivazhagan et al., 2019): head 만 로컬. LG-FedAvg: 반대로 body 로컬 + head 공유.

Trade-off:

  • 명확한 구조 분리, 통신량 감소 (head 안 전송)
  • 어느 layer 를 로컬로 할지 도메인 지식 필요
  • Head 규모가 크면 로컬 학습 데이터 부족 문제

3. Meta-Learning (Per-FedAvg)

Fallah et al. (2020) 은 MAML (Model-Agnostic Meta-Learning) 스타일로 접근. 글로벌 모델이 “한 step 만 로컬 SGD 를 돌리면 잘 맞도록” 학습.

  • : meta-parameter (글로벌)
  • : 클라이언트 가 한 step 학습 후의 로컬 파라미터
  • 이 로컬 파라미터가 잘 맞도록 를 최적화

배포 시: 각 클라이언트가 를 받아 자기 데이터로 한 step 파인튜닝하면 즉시 개인화.

Trade-off:

  • 이론적으로 매우 우아
  • Second-order gradient (Hessian) 필요 -> 계산 비용
  • FOMAML (first-order approximation) 로 완화 가능

4. Regularized Local Model (pFedMe, Ditto)

pFedMe (T. Dinh et al., 2020): 각 클라이언트가 로컬 모델 를 유지하되 글로벌 근처에 있도록 정규화.

는 서버에서 aggregated 로컬 모델들. 큰 -> 글로벌에 가까움 (드리프트 방지). 작은 -> 개인화 자유.

Ditto (Li et al., 2021): 유사하지만 강건성 + 공정성 초점. Global + local 이중 objective:

Byzantine 공격에도 robust. Fair FL 계열의 대표.

5. Multi-Task Learning (MTL)

각 클라이언트 = 하나의 task. 클라이언트 간 관계 (task graph) 를 학습하며 관련 task 간 정보 공유.

  • MOCHA (Smith et al., 2017): dual formulation, 관계 행렬 학습
  • FedMTL: 최근 확장

6. Clustered FL

극심한 non-IID 에서는 하나의 글로벌 대신 여러 클러스터 별 모델. 유사 클라이언트끼리 같은 클러스터에 배정.

  • IFCA (Ghosh et al., 2020): Iterative Federated Clustering
  • HypCluster: Hypothesis-based 그룹핑

Trade-off: 클러스터 수 하이퍼파라미터, 클라이언트가 어느 클러스터 소속인지 privacy 함의.

7. Mixture of Experts / Adapter

Adapter layer 를 로컬로 유지 (LoRA 스타일). 글로벌은 base + shared params. 대형 모델 시대에 자연스러운 확장.

알고리즘 비교

방법로컬 저장통신이론대표 논문
Local Fine-tune로컬 모델표준 FedAvg약함(Baseline)
FedPerHeadBody 만중간Arivazhagan 2019
Per-FedAvg (MAML)없음 (배포 시 1-step)표준 FedAvg강함 (meta)Fallah 2020
pFedMe로컬 모델표준강함 (Moreau)T. Dinh 2020
Ditto로컬 모델표준 + robust강함 (fair/robust)Li 2021
Clustered클러스터 모델클러스터별중간Ghosh 2020

시각화: 개인화 접근법 구조

flowchart LR
    G["글로벌 서버"] --> FA["FedAvg<br/>단일 글로벌"]
    G --> FP["FedPer<br/>레이어 분리"]
    G --> PF["Per-FedAvg<br/>메타 초기화"]
    G --> PM["pFedMe<br/>Moreau 정규화"]
    G --> DT["Ditto<br/>공정성 강조"]
    FA --> CA["클라이언트: 동일 모델"]
    FP --> CB["클라이언트: Head 개인화"]
    PF --> CC["클라이언트: 1-step 적응"]
    PM --> CD["클라이언트: 로컬 모델 유지"]
    DT --> CD

접근법 선택 기준

데이터, 인프라, 목표에 따라 적합한 방법이 달라진다:

조건권장 방법이유
신규 프로젝트, 빠른 실험Local Fine-tune설정 최소, 기준점 수립
모바일 배포, 통신 절약FedPerHead 만 로컬, Body 공유
즉시 개인화, MAML 경험 있음Per-FedAvg배포 후 1-step 으로 즉시 맞춤
Non-IID 심하고 수렴이 목적pFedMeλ 로 글로벌/개인화 균형 조절
공정성, 악의적 클라이언트 우려DittoRobust + Fair FL
클러스터 구조 의심Clustered FL분포 유사 그룹끼리 집계
대형 모델 기반LoRA / Adapter파라미터 효율 개인화

λ 하이퍼파라미터 선택 (pFedMe, Ditto)

λ 는 글로벌 모델에 얼마나 당겨올지를 결정한다:

  • λ → ∞: 로컬 모델이 글로벌 모델로 수렴. FedAvg 와 동일 효과.
  • λ → 0: 완전 로컬 학습. 과적합 위험.
  • 실전 탐색 범위: λ ∈ {0.001, 0.01, 0.1, 1, 10} 에서 cross-validation.
# pFedMe 로컬 학습 (단순화)
def local_train(w_global, local_data, lam, lr, steps):
    theta = w_global.clone()
    for _ in range(steps):
        x, y = sample(local_data)
        grad = compute_grad(theta, x, y)
        reg = lam * (theta - w_global)  # Moreau 정규화 항
        theta = theta - lr * (grad + reg)
    return theta

Fine-tune step 수 선택 (Per-FedAvg)

배포 시 몇 step 을 돌릴지 결정 기준:

  • 1 step: 논문 기본값. 계산 빠름. 데이터 적은 클라이언트에 안정적.
  • 5~10 step: 데이터 충분한 클라이언트는 더 많이 적응 가능.
  • 조기 종료: validation loss 모니터링으로 over-adaptation 방지.
  • 실전: 클라이언트별 데이터 크기에 비례한 step 수 적용.

평가 프로토콜 표준화

같은 방법도 평가 방식에 따라 숫자가 크게 달라진다. 논문 비교 시 주의:

방법평가 시점평가 데이터
FedAvg글로벌 모델로IID test set
FedPer개인화 Head 적용 후로컬 test set
Per-FedAvg1-step fine-tune 후로컬 test set
pFedMe / Ditto로컬 모델로로컬 test set

비교할 때 항상 동일 프로토콜 을 사용해야 한다. 평균 accuracy 만 보면 개인화 이득을 놓친다. per-client 분포 (min, max, std) 도 함께 보고해야 한다.

평가 지표

중요: Personalized FL 은 글로벌 accuracy 만 보면 오독합니다. 반드시:

  • Per-client accuracy 분포: 평균 + std + 최악 (min)
  • Fairness metric: q-FFL, EFL 등
  • Personalization gain: 로컬 fine-tune 후 vs 전
  • Communication cost: 개인화 부분 저장/전송 비용

실전 팁

  1. 단순부터 시작: FedAvg + Local fine-tune 부터. Meta / pFedMe 는 튜닝 부담 큼.
  2. 개인화 부분 크기 신중히: Head 만인지 여러 layer 인지가 성능/저장 크게 좌우.
  3. cold-start client: 새 클라이언트는 데이터가 없어 개인화 어려움. Global 만으로 시작 후 시간 지나 개인화.
  4. 개인화 모델 크기: 모바일 배포는 로컬 모델 저장 공간 제약. Adapter/LoRA 가 유리.
  5. 평가 데이터 도 non-IID 하게: 학습과 동일 분포의 로컬 val set 사용.

함정

WARNING

개인화가 항상 이득은 아닙니다. Non-IID 가 mild 하면 FedAvg 만으로도 충분. 개인화가 오히려 overfitting 유발 가능.

CAUTION

개인화 모델의 privacy 함의. 개인 모델을 로컬에 저장하면 device 손실 시 개인 정보 유출 위험. 모델 자체가 학습 데이터의 정보를 포함.

WARNING

Cold client. 데이터가 매우 적은 신규 클라이언트는 개인화가 오히려 성능 저하. Threshold 를 두고 데이터 축적 후 개인화 전환.

IMPORTANT

평가 프로토콜 명확히. Meta-learning 계열은 “1-step 후” 평가하고, pFedMe 는 “로컬 학습 완료 후” 평가. 논문 비교 시 프로토콜 통일 필수.

CAUTION

서버 저장 필요: FedPer 등은 서버가 global body 만 저장, but pFedMe 는 사실상 클라이언트 개별 상태 관리. Cross-device 대규모에서는 클라이언트 side 상태 관리가 부담.

관련 위키

이 글의 용어 (7개)
[FL] FedAvg (Federated Averaging)ml
정의 FedAvg (Federated Averaging) 는 McMahan et al. (2017) 이 제안한 연합 학습의 기본 알고리즘 입니다. 원본 데이터를 중앙 서버로 보내…
[FL] Frameworks (Flower, TFF, NVFlare, FATE, PySyft)ml
정의 연합 학습 프레임워크 는 서버-클라이언트 통신, 집계 알고리즘, 프라이버시 도구, 시뮬레이션 환경, 실 배포 인프라를 제공하는 라이브러리/플랫폼입니다. 알고리즘을 직접 구현…
[FL] Non-IID Data & Client Driftml
정의 Non-IID data 는 연합 학습에서 각 클라이언트의 데이터가 서로 다른 분포에서 추출되는 상황을 말합니다. FedAvg 를 비롯한 대부분 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, 병원, 은행 등) 가 로컬 데이터로 모델을 학습한 뒤 모델…
Transfer Learning: pre-training, fine-tuning, domain adaptationml
정의 Transfer Learning 은 source task/domain 에서 학습한 지식을 target task/domain 에 재사용 하여 학습 효율을 높이는 패러다임입니다…

💬 댓글

사이트 검색 / 명령어

검색

스크롤 = 확대/축소 · 드래그 = 이동 · 0 = 원래 크기 · ESC = 닫기