모델

연합학습

Federated Learning

데이터를 한곳에 모으지 않고 모델이 데이터가 있는 곳으로 가서 학습한 뒤, 모델 업데이트만 모아 합치는 학습 방식이다. 병원의 환자 기록, 금융 정보, 스마트폰 속 개인 메시지처럼 밖으로 내보내기 어려운 데이터로 AI를 학습시켜야 할 때 쓴다.

항목일반 학습연합학습
데이터 위치서버 한곳에 모음각 기기·기관에 그대로
서버로 가는 것원본 데이터모델 업데이트만
운영 난이도단순하다통신·기기 관리가 복잡하다

한 라운드는 네 단계로 돈다

연합학습은 아래 과정을 한 라운드로 삼아 여러 번 반복한다. 서버가 업데이트를 합치는 가장 기본적인 방법은 참여자들의 결과를 데이터 양에 맞춰 평균 내는 것(FedAvg)이다. Google은 Android 키보드의 다음 단어 예측을 이렇게 학습시켰는데, 사용자가 친 문장은 폰 밖으로 나가지 않았다.

단계하는 일
1. 배포서버가 현재 모델을 참여 기기에 보낸다
2. 로컬 학습각 기기가 자기 데이터로 모델을 조금 학습한다
3. 업로드바뀐 가중치만 서버로 보낸다
4. 집계서버가 업데이트를 합쳐 새 모델을 만든다

직접 해보려면 시뮬레이션부터

처음에는 실제 기기 없이 컴퓨터 한 대에서 여러 참여자를 흉내 내는 시뮬레이션으로 시작하는 게 보통이다. Flower(flwr)는 기존 PyTorch·TensorFlow 학습 코드를 감싸 클라이언트와 서버를 만들 수 있고, TensorFlow Federated는 TensorFlow 기반으로 연합 알고리즘을 실험하는 라이브러리다. PySyft도 프라이버시 보호 학습 실험에 쓰인다.

순서는 데이터를 참여자별로 나누고, 로컬 학습 코드를 정하고, 집계 방식과 라운드 수를 정해 돌려 보는 식이다. 참여자마다 데이터 성격을 일부러 다르게 나눠 봐야 실제 환경에 가까운 결과가 나온다.

데이터가 안 나가도 안전이 끝은 아니다

업데이트에도 원본 데이터의 흔적이 남아서, 이를 분석해 일부 정보를 되살리는 공격이 알려져 있다. 그래서 업데이트에 잡음을 섞는 차등 프라이버시나, 서버가 개별 업데이트를 보지 못하고 합계만 보게 하는 보안 집계를 같이 쓰는 게 안전하다.

주의할 점왜 문제인가대응
업데이트로 정보 유출기울기로 데이터를 추정할 수 있다차등 프라이버시, 보안 집계
통신 비용매 라운드 모델을 주고받는다업데이트 압축, 라운드 줄이기
데이터 불균형참여자마다 데이터 성격이 다르다집계 방식 조정, 참여자별 맞춤

모을 수 있으면 일반 학습이 낫다

데이터를 한곳에 모을 수 있고 규제 부담도 없다면, 일반 학습이 훨씬 단순하고 성능을 내기도 쉽다. 연합학습은 데이터를 모을 수 없거나 모으면 안 될 때 고르는 방식이다.

폰 속 데이터와 기관 간 협업에 주로 쓴다

가장 흔한 쓰임은 두 갈래다. 수많은 스마트폰의 사용 기록으로 기기 속 모델을 개선하는 경우와, 데이터를 서로 넘길 수 없는 여러 기관이 함께 모델 하나를 키우는 경우다.

어디서어떻게 쓰나
스마트폰 키보드입력한 문장은 폰에 두고, 다음 단어 예측 모델의 업데이트만 모아 개선한다
병원 공동 연구병원마다 자기 환자 데이터로 학습하고, 업데이트만 합쳐 진단 보조 모델을 만든다
금융 기관 협업고객 정보를 공유하지 않고 이상 거래 탐지 모델을 여러 기관이 함께 학습한다
#프라이버시#분산학습#온디바이스
참고 자료
관련 영상
← AI Wiki에서 더 보기
updated at 2026-10-20