F32~F34을 관통한 전제 — 데이터가 한곳에 모여 있다는 가정
지금까지 다룬 모든 방법은 암묵적으로 데이터를 한 서버·한 저장소에 모을 수 있다고 가정했습니다. 그런데 실제 유전체 데이터의 상당수는 병원·바이오뱅크·국가 규제 때문에 기관 밖으로 원본을 반출할 수 없습니다. UK Biobank나 병원 EHR 연계 유전체 데이터가 대표적입니다. F35에서는 원본 데이터를 옮기지 않고도 여러 기관이 함께 하나의 모델을 학습시키는 연합학습(Federated Learning)을 다룹니다.
원리 — 모델을 보내고, 데이터는 그대로 둔다
FedAvg — 가장 기본적인 연합학습 알고리즘
중앙 서버가 초기 모델 파라미터 를 각 사이트(병원 A, B, C...)에 보냅니다. 각 사이트는 자기 데이터로 몇 스텝 로컬 학습을 수행해 업데이트된 파라미터 를 계산하고, 파라미터만 중앙 서버로 돌려보냅니다. 서버는 이를 데이터 크기 가중 평균으로 합칩니다.
여기서 는 사이트 의 샘플 수, 는 참여 사이트 수입니다. 원본 유전형·표현형 데이터는 각 사이트 내부에 그대로 남고, 오가는 것은 모델 파라미터(또는 그 경사)뿐입니다.
손 계산 예제: 3개 사이트 FedAvg 한 라운드
병원 A(샘플 500명, 로컬 학습 후 파라미터 ), 병원 B(샘플 300명, ), 병원 C(샘플 200명, )가 참여했다고 합시다.
샘플이 가장 많은 병원 A의 파라미터에 가장 가까운 값으로 수렴하는 것을 확인할 수 있습니다. 이 가중치 때문에, 특정 사이트의 데이터가 다른 사이트와 인구집단 구성이 크게 다르면(비-IID 데이터) 그 사이트의 특성이 전체 모델에 과소 반영될 수 있다는 점이 실무적 한계로 지적됩니다.
파라미터만 보내도 충분히 안전할까 — 차등 프라이버시의 필요성
파라미터나 경사(gradient)만 주고받는다고 해서 완전히 안전하지는 않습니다. 경사 정보로부터 원본 데이터를 역으로 추정하는 공격(gradient inversion)이 알려져 있습니다. 이를 완화하기 위해 각 예제의 경사 크기를 제한한 뒤 통제된 잡음을 더하는 **차등 프라이버시 확률적 경사하강법(DP-SGD)**을 적용할 수 있습니다.
여기서 는 예제별 경사 clipping 기준, 는 noise multiplier입니다. 보호 수준은 잡음 하나만으로 정해지지 않고 샘플링률·학습 라운드와 함께 privacy accountant로 누적 계산합니다. 같은 조건에서는 프라이버시 예산 이 작을수록 강한 보호를 뜻하지만, 보통 모델 효용과 트레이드오프가 생깁니다.
연합 GWAS — 유전체 통계 분석에서의 적용
전장유전체 연관 분석(GWAS, S42~S43)도 연합 방식으로 재구성할 수 있습니다. 각 기관이 로컬 코호트에서 요약통계(효과 크기, 표준오차)만 계산해 중앙에 보내고, 중앙에서 메타분석(S45~S50에서 다룬 방식과 유사한 역분산 가중 평균)으로 합치면, 개별 유전형 데이터를 한 곳에 모으지 않고도 사실상 더 큰 표본 크기의 검정력을 얻을 수 있습니다.
실습: 2-사이트 FedAvg 시뮬레이션 (Colab)
# Colab에서 실행. 두 개의 가상 사이트가 각자 로컬 데이터로 선형 회귀를 학습하고# 파라미터만 평균 내는 최소 FedAvg 시뮬레이션입니다.import numpy as np
np.random.seed(42)
def make_site_data(n, true_beta, noise=0.5): X = np.random.randn(n, 1) y = true_beta * X.flatten() + np.random.randn(n) * noise return X, y
# 두 사이트의 진짜 효과 크기가 약간 다르다고 가정 (인구집단 이질성 모사)X_a, y_a = make_site_data(500, true_beta=0.42)X_b, y_b = make_site_data(300, true_beta=0.55)
def local_train(X, y, lr=0.1, steps=200): beta = 0.0 n = len(y) for _ in range(steps): pred = beta * X.flatten() grad = -(2 / n) * np.sum(X.flatten() * (y - pred)) beta -= lr * grad return beta
beta_a = local_train(X_a, y_a)beta_b = local_train(X_b, y_b)
n_a, n_b = len(y_a), len(y_b)beta_fedavg = (n_a * beta_a + n_b * beta_b) / (n_a + n_b)
print(f"사이트 A 로컬 beta: {beta_a:.3f} (n={n_a})")print(f"사이트 B 로컬 beta: {beta_b:.3f} (n={n_b})")print(f"FedAvg 결합 beta: {beta_fedavg:.3f}")이 실습에서는 두 사이트의 원본 X_a, y_a와 X_b, y_b가 로컬 학습 함수 내부에만 머물고, 함수 밖으로 나가는 것은 beta_a, beta_b 스칼라 값뿐입니다. 다만 Flower·PySyft 같은 프레임워크를 선택했다고 전송 암호화·보안 집계·차등 프라이버시가 자동 보장되는 것은 아닙니다. 실제 배포에서는 TLS, 인증, secure aggregation, DP와 감사 정책을 요구사항에 맞게 별도로 구성하고 검증해야 합니다.
CS 매핑
- 분산 집계(reduction): 여러 노드의 로컬 업데이트를 하나의 전역 파라미터로 축약한다는 점에서 map-reduce의 reduction과 닮았습니다. FedAvg는 장애·악성 노드를 견디는 분산 합의 알고리즘은 아닙니다.
- 통신 효율 최적화: 매 라운드 전체 파라미터를 주고받는 대신 압축·양자화된 업데이트만 교환하는 기법은 분산 시스템의 대역폭 최적화 기법과 같은 문제의식을 공유합니다.
- 경사하강법의 분산 확장: FedAvg는 미니배치 확률적 경사하강법(SGD)을 여러 사이트·여러 로컬 스텝으로 확장한 형태로 볼 수 있습니다.
자주 만나는 결함
- 파라미터 교환만으로 완전한 프라이버시가 보장된다고 가정: gradient inversion 공격이 보여주듯, 원본 데이터가 오가지 않는다는 사실만으로 안전을 보장하지 않습니다. 차등 프라이버시나 보안 집계(secure aggregation) 같은 추가 장치 없이는 완전한 보호로 간주하면 안 됩니다.
- 비-IID 데이터의 영향을 과소평가: 사이트 간 인구집단·측정 프로토콜이 크게 다르면 단순 가중 평균이 어느 한쪽 사이트의 특성을 지워버릴 수 있습니다. 사이트별 개인화(personalized FL) 기법을 고려할 필요가 있습니다.
더 깊게 파고 싶다면
본문은 BPD 연구진이 직접 재구성한 서술입니다. 원 논문과 공식 자료로 심화해봅시다.
- FedAvg 원 논문 (McMahan et al., 2017): "Communication-Efficient Learning of Deep Networks from Decentralized Data".
- Flower 공식 문서: 연합학습 프레임워크 실무 구현 레퍼런스.
- NIH 유전체 데이터 공유 윤리 가이드라인: 다기관 유전체 연구의 프라이버시 규제 배경.
- 차등 프라이버시 개론 자료: -차등 프라이버시 정의와 실무 적용.
F2 티어의 "미래 편" 묶음(F32~F35)이 여기서 마무리됩니다. 다음은 D01~D05, 특정 플랫폼·데이터베이스를 실무에서 바로 활용하는 개별 도구편으로 이어집니다.