매거진 AI

FedAvg 실험 정리

Federated learning

by 소토리

스마트폰 키보드에서 자동완성 기능이 점점 똑똑해지고 있다는 걸 느껴보신 적 있나요?
내가 자주 쓰는 말투와 단어를 학습해서, 다음에 칠 단어를 미리 제안해주는 기능 말이죠.

그런데 이 기능이 어떻게 작동하는지 궁금해 본 적 있나요?
혹시 내 데이터를 서버로 전부 보내서 학습하는 건 아닐까, 걱정된 적도 있을 겁니다.

실제로, 요즘 AI는 사용자의 기기 안에서 데이터를 직접 학습하는 방식, 즉 연합학습(Federated Learning) 을 통해 개인 정보를 보호하면서도 똑똑해지는 중이에요.


∎ 여기서 등장하는 핵심 알고리즘이 바로 FedAvg (Federated Averaging)에요

여러 사용자가 각자의 데이터를 가지고 자기 기기에서 로컬 모델을 학습하고, 그 모델의 가중치만 서버로 보내서 평균을 내는 방식입니다.
20250715_163829.png 데이터는 모바일 환경에 두고, 모바일 컴퓨팅 파워로 글로벌 모델 학습 모델 학습의 결과를 서버에서 종합 → 데이터 대신 모델 weights를 서버와 교환

즉, 데이터는 사용자 기기에 머물고,
서버는 오직 '모델 파라미터 평균'만 계산하는 구조죠.


하지만 질문이 생깁니다:

이 방법, 진짜 잘 작동할까?

클라이언트마다 데이터가 너무 다르면?

모델을 빨리, 통신 적게 하면서도 잘 학습할 수 있을까?


이런 물음에 답하기 위해, Google AI 연구진은 2017년 논문에서 다양한 데이터셋과 모델, 분할 방식으로 수천 번의 실험을 진행했습니다.

이 블로그에서는 그 유명한 논문


∎ “Communication-Efficient Learning of Deep Networks from Decentralized Data”
의 실험 파트를 쉽게 정리해봅니다.


∎ 어떻게 구성되어 있나요?

아래에서 소개할 다섯 가지 실험은 FedAvg가 얼마나 견고하고 효율적인지를 검증한 결과들입니다.

MNIST: 숫자 분류에서 기본 성능 확인

Shakespeare: 모바일 타이핑처럼 편향된 데이터 실험

CIFAR-10: 이미지 분류의 일반적인 벤치마크

클라이언트 수/연산량 실험: 어떻게 더 빨리, 더 적게 통신하며 학습할까?

대규모 LSTM: 실제 모바일 환경에서의 확장 가능성 확인


∎ FedAvg의 핵심 하이퍼파라미터 정리

실험에 앞서, 반복적으로 등장하는 핵심 하이퍼파라미터들인 E, C, B에 대해 알아보겠습니다.

E는 클라이언트 내 학습 횟수, B는 한 번에 처리할 데이터 크기, C는 몇 명의 클라이언트를 참여시킬지 결정하는 통신 효율의 열쇠입니다!


∎ 왜 FedAvg 실험이 중요한가?

Federated Learning의 핵심 과제는 적은 통신으로도 성능 좋은 모델을 학습하는 것입니다.

이를 입증하기 위해 FedAvg 논문은 **다양한 모델, 데이터셋, 클라이언트 수, 분포 조건(IID/Non-IID)**을 실험적으로 분석했습니다

이 포스트에서는 해당 논문에서 진행한 다섯 가지 주요 실험을 순서대로 소개할게요.


1️⃣ MNIST – 간단한 MLP와 CNN으로 FedAvg의 기본 효과 검증

모델: 2층 MLP (2NN) CNN (2 conv + FC layers)


데이터 분할: IID (랜덤 분할) vs Non-IID (두 숫자에만 편향된 shard 분할)


결과: Non-IID에도 불구하고 FedAvg는 견고하게 수렴 C=0.1, E=5, B=10 설정이 통신 효율성과 성능 균형 가장 우수


2️⃣ Shakespeare – 실사용 환경을 모사한 LSTM 실험

문제: 다음 문자 예측 (character-level language modeling)


분할: 각 **배우(클라이언트)**의 대사로 클라이언트 분리 → Unbalanced & Non-IID


모델: 2-layer LSTM (256 노드) + softmax 약 86만 파라미터


주요 결과: E=1보다 E=5가 오히려 수렴이 느려짐 → local epoch가 클수록 좋지는 않음 적절한 E, B, C 설정의 중요성 확인


3️⃣ 클라이언트 병렬성 실험 – C 조절 실험

핵심 질문: 한 라운드에 클라이언트를 얼마나 참여시켜야 효율적일까?


결과: C=0.1이 가장 합리적인 계산-성능 균형 특히 B=10과 결합 시, Non-IID 환경에서 훨씬 효과적


4️⃣ Local Computation 실험 – E와 B 변화 실험

목적: 한 라운드 동안 클라이언트 계산량을 늘리면 어떤 이점이 있는가?


실험: B ↓, E ↑ → local update 수 u 증가


결과: MNIST: 최대 46배 통신 라운드 감소 Shakespeare: Non-IID 구조에도 95배 속도 향상 하지만 E가 너무 크면 과적합/발산 가능 → 후반부에 E 감소 전략 추천


5️⃣ CIFAR-10 – 이미지 분류에서의 확장성 실험

환경: Balanced IID / 100명 클라이언트 / 각 500개 학습 샘플


모델: CNN (TF 튜토리얼 기반), 약 100만 파라미터


결과: FedAvg는 FedSGD 및 중앙 SGD보다 50배 이상 통신 효율 우수 E=5, B=50, C=0.1 조합이 실제 환경에서도 잘 작동함


6️⃣ 대규모 LSTM – 소셜 미디어 기반 단어 예측 실험

환경: 10M개 소셜 글, 50만 명 이상의 사용자 각 클라이언트 5,000단어 이내 제한


모델: 1-layer LSTM, vocab 10,000, 495만 파라미터


결과: FedAvg: 35 라운드만에 정확도 10.5% 달성 FedSGD보다 23배 빠름, 더 안정적인 정확도 분산


✅ 결론: 무엇을 배울 수 있었나?

FedAvg는 다양한 모델과 환경에서 우수한 통신 효율성과 수렴 안정성을 보여줍니다.


하지만 E를 지나치게 키우면 오히려 발산하거나 수렴 실패 가능 → 적절한 local/global trade-off 중요


실험은 단순히 모델 정확도가 아닌 통신 비용, 수렴 속도, 안정성까지 평가해야 함.


연합학습은 단지 분산된 학습을 의미하지 않습니다.
FedAvg의 실험들은 어떻게 통신 효율성과 학습 성능의 균형을 잡아갈 수 있는지, 그리고 무엇이 실제 환경에서 중요한지를 우리에게 보여줍니다!


keyword
매거진의 이전글Superintelligence. 초지능