콘텐츠로 이동
Data Prep
상세

Differential Privacy in Machine Learning (차분 프라이버시)

메타 정보

항목 내용
분류 Privacy-Preserving ML / Trustworthy AI / Regulation Compliance
핵심 논문 "Calibrating Noise to Sensitivity in Private Data Analysis" (Dwork et al., 2006), "Deep Learning with Differential Privacy" (Abadi et al., CCS 2016), "Renyi Differential Privacy" (Mironov, CSF 2017)
주요 저자 Cynthia Dwork (DP 창시); Martin Abadi, Ian Goodfellow (DP-SGD); Ilya Mironov (Renyi DP); Borja Balle, Kunal Talwar (Google DP team)
핵심 개념 개인 데이터의 포함/제외가 모델 출력에 미치는 영향을 수학적으로 제한하여 프라이버시 보장
관련 분야 Federated Learning, Secure Computation, Privacy Attacks, Data Anonymization

정의

Differential Privacy (DP)는 데이터베이스 쿼리나 ML 학습 과정에서, 특정 개인의 데이터가 포함되었는지 여부를 외부 관찰자가 구별할 수 없도록 보장하는 수학적 프레임워크다.

(epsilon, delta)-Differential Privacy 정의:

무작위화된 메커니즘 M이 (epsilon, delta)-DP를 만족:

  모든 인접 데이터셋 D, D' (하나의 레코드만 다른)에 대해,
  모든 출력 집합 S에 대해:

  P[M(D) in S] <= e^epsilon * P[M(D') in S] + delta

  epsilon (프라이버시 예산): 작을수록 강한 프라이버시
    epsilon = 0: 완벽한 프라이버시 (무용한 출력)
    epsilon = 1: 강한 프라이버시
    epsilon = 10: 약한 프라이버시

  delta: 실패 확률 (보통 1/n^2 이하, n=데이터 수)

직관:
  "한 사람의 데이터가 있든 없든, 메커니즘의 출력 분포가
   거의 동일하다" --> 개인 정보 유출 불가

핵심 메커니즘

기본 노이즈 메커니즘

1. Laplace Mechanism:
   f(D)의 결과에 Laplace 노이즈 추가
   M(D) = f(D) + Lap(sensitivity(f) / epsilon)

   sensitivity(f) = max_{D,D'} |f(D) - f(D')|
   (인접 데이터셋에서 f 값의 최대 변화량)

   예: 평균 계산 시
   sensitivity = (max_value - min_value) / n
   노이즈 ~ Lap(sensitivity / epsilon)

2. Gaussian Mechanism:
   (epsilon, delta)-DP 보장
   M(D) = f(D) + N(0, sigma^2 * I)
   sigma >= sensitivity(f) * sqrt(2 * ln(1.25 / delta)) / epsilon

   Laplace보다 고차원에서 효율적

3. Exponential Mechanism:
   이산 출력 공간에서 사용
   출력 o를 확률 proportional to exp(epsilon * u(D, o) / (2 * Delta_u))
   로 샘플링 (u: 효용 함수, Delta_u: 효용의 sensitivity)

핵심 성질: Composition

DP의 조합 성질 (여러 번 쿼리 시):

1. Sequential Composition:
   M_1이 epsilon_1-DP, M_2가 epsilon_2-DP이면
   (M_1, M_2)는 (epsilon_1 + epsilon_2)-DP
   --> 쿼리를 반복할수록 프라이버시 예산 소모

2. Advanced Composition (Dwork et al., 2010):
   k번 적용 시:
   epsilon_total = sqrt(2k * ln(1/delta')) * epsilon + k * epsilon * (e^epsilon - 1)
   --> 약 O(sqrt(k))로 증가 (단순 합산보다 효율적)

3. Renyi DP Composition (Mironov, 2017):
   alpha-Renyi divergence 기반
   더 tight한 composition bound 제공
   --> 실무에서 가장 많이 사용

4. Post-Processing Immunity:
   M이 epsilon-DP이면, 임의의 함수 g에 대해
   g(M(D))도 epsilon-DP
   --> DP 출력을 어떻게 가공해도 프라이버시 유지

DP-SGD: 딥러닝에서의 차분 프라이버시

Abadi et al. (2016)이 제안한 DP-SGD는 딥러닝 학습에 DP를 적용하는 표준 방법이다.

DP-SGD 알고리즘:

표준 SGD:
  g_i = grad L(theta, x_i)           -- 개별 gradient
  g = (1/B) * sum g_i                -- 배치 평균
  theta = theta - eta * g            -- 업데이트

DP-SGD:
  1. Per-Sample Gradient Clipping:
     g_i_clipped = g_i * min(1, C / ||g_i||_2)
     --> 각 샘플의 영향력을 C로 제한 (sensitivity 확보)

  2. Noise Addition:
     g_noisy = (1/B) * (sum g_i_clipped + N(0, sigma^2 * C^2 * I))
     --> Gaussian 노이즈 추가

  3. Parameter Update:
     theta = theta - eta * g_noisy

핵심 하이퍼파라미터:
  C (clipping norm): gradient의 최대 L2 노름
    C 작음 --> 강한 프라이버시, 학습 불안정
    C 큼   --> 약한 프라이버시, 학습 안정

  sigma (noise multiplier):
    sigma 큼 --> 강한 프라이버시, 수렴 느림
    sigma 작음 --> 약한 프라이버시, 수렴 빠름

  B (batch size):
    큰 배치 --> 노이즈의 상대적 영향 감소 --> 유틸리티 향상
    (Privacy amplification by subsampling)

Privacy Accountant (프라이버시 회계)

학습 전체의 프라이버시 소모량 추적:

Moments Accountant (Abadi et al., 2016):
  각 스텝의 Renyi divergence를 누적
  최종 (epsilon, delta) 변환

  T 스텝, 서브샘플링 비율 q = B/N 일 때:
  epsilon ~ O(q * sqrt(T) * sigma^{-1})

  --> 같은 epsilon을 달성하려면:
  T가 늘어나면 sigma도 키워야 함

PRV (Privacy Random Variable) Accountant:
  2024-2025 최신 기법
  Moments보다 tighter bound
  Google DP Library, Opacus에서 지원

실무 가이드라인:
  epsilon = 1~3:  강한 프라이버시 (학술 권장)
  epsilon = 3~8:  중간 (산업 기준, Apple/Google 사용)
  epsilon = 8~10: 약한 프라이버시 (최소 기준)
  epsilon > 10:   프라이버시 보장 의미 약화

Privacy-Utility Trade-off

프라이버시-유틸리티 트레이드오프:

  유틸리티 (정확도)
  ^
  |  *                        <-- 비DP 모델 (상한)
  |   *
  |     *
  |       *                   <-- sweet spot (epsilon ~ 3-8)
  |         *
  |            *
  |                *
  |                      *    <-- 극단적 프라이버시 (epsilon < 1)
  +--------------------------> 프라이버시 (1/epsilon)

유틸리티 손실을 줄이는 전략:

1. 큰 배치 사이즈 (B >= 2048)
   - Subsampling amplification 극대화
   - 노이즈의 상대적 영향 감소

2. Pre-training + DP Fine-tuning
   - 공개 데이터로 pre-train (DP 불필요)
   - 민감한 데이터로 DP fine-tune (소수 스텝)
   - 가장 효과적인 전략 (De et al., 2022)

3. Gradient Accumulation
   - 메모리 제한 시 큰 가상 배치 구현
   - 효과적 배치 = accumulation_steps * physical_batch

4. 적응적 Clipping
   - 고정 C 대신 gradient 분포 기반 동적 C
   - 학습 안정성 향상

실무 구현: Opacus (PyTorch)

import torch
from torch.utils.data import DataLoader, TensorDataset
from opacus import PrivacyEngine

# 1. 모델 정의
model = torch.nn.Sequential(
    torch.nn.Linear(784, 256),
    torch.nn.ReLU(),
    torch.nn.Linear(256, 10)
)
optimizer = torch.optim.SGD(model.parameters(), lr=0.1)
criterion = torch.nn.CrossEntropyLoss()

# 2. 데이터 로더
dataset = TensorDataset(X_train, y_train)
dataloader = DataLoader(dataset, batch_size=256, shuffle=True)

# 3. PrivacyEngine 부착
privacy_engine = PrivacyEngine()

model, optimizer, dataloader = privacy_engine.make_private_with_epsilon(
    module=model,
    optimizer=optimizer,
    data_loader=dataloader,
    epochs=10,
    target_epsilon=3.0,           # 목표 epsilon
    target_delta=1e-5,            # delta = 1/N^2 수준
    max_grad_norm=1.0,            # clipping norm C
)

# 4. 학습 루프 (표준 PyTorch와 동일)
for epoch in range(10):
    for batch_X, batch_y in dataloader:
        optimizer.zero_grad()
        output = model(batch_X)
        loss = criterion(output, batch_y)
        loss.backward()
        optimizer.step()

    # 현재 프라이버시 소모량 확인
    epsilon = privacy_engine.get_epsilon(delta=1e-5)
    print(f"Epoch {epoch+1}: loss={loss.item():.4f}, epsilon={epsilon:.2f}")

DP Fine-tuning with LoRA

from peft import LoraConfig, get_peft_model
from opacus import PrivacyEngine

# Pre-trained LLM에 DP fine-tuning
base_model = AutoModelForCausalLM.from_pretrained("meta-llama/Llama-2-7b-hf")

# LoRA 적용 (trainable parameters 최소화 --> 노이즈 영향 감소)
lora_config = LoraConfig(
    r=8,
    lora_alpha=32,
    target_modules=["q_proj", "v_proj"],
    lora_dropout=0.05,
)
model = get_peft_model(base_model, lora_config)

# Opacus로 DP 적용
privacy_engine = PrivacyEngine()
model, optimizer, dataloader = privacy_engine.make_private_with_epsilon(
    module=model,
    optimizer=optimizer,
    data_loader=dataloader,
    epochs=3,
    target_epsilon=8.0,
    target_delta=1e-5,
    max_grad_norm=0.1,  # LoRA는 작은 gradient --> 작은 C 가능
)

# 학습: 비DP 대비 2-5% 정확도 감소로 epsilon=8 달성 가능
# (De et al., 2022: pre-trained model + DP fine-tune 효과 입증)

DP 변형 및 확장

DP 변형 비교:

+---------------------------+-------------------------------------+
| 변형                      | 특징                                |
+---------------------------+-------------------------------------+
| Pure DP (epsilon-DP)      | delta=0, 가장 강한 보장             |
| Approximate DP            | (epsilon, delta)-DP, 실용적        |
| Renyi DP (RDP)            | alpha-Renyi divergence 기반,       |
|                           | tighter composition                 |
+---------------------------+-------------------------------------+
| Zero-Concentrated DP      | RDP의 특수 케이스,                  |
| (zCDP)                    | Gaussian mechanism에 최적화         |
+---------------------------+-------------------------------------+
| Local DP (LDP)            | 각 사용자가 자신의 데이터에 노이즈   |
|                           | 서버 신뢰 불필요, 정확도 낮음       |
| Central DP (CDP)          | 신뢰할 수 있는 aggregator가 노이즈  |
|                           | 더 높은 정확도                      |
+---------------------------+-------------------------------------+
| Shuffle DP                | LDP + Shuffling = 중간 수준 보장    |
+---------------------------+-------------------------------------+
| User-Level DP             | 한 사용자의 모든 레코드 보호         |
| Record-Level DP           | 개별 레코드 보호 (기본)             |
+---------------------------+-------------------------------------+

적용 수준:

Central DP (CDP):
  사용자 --> [평문 데이터] --> 신뢰된 서버 --> [DP 적용] --> 출력
  장점: 높은 정확도
  단점: 서버 신뢰 필요

Local DP (LDP):
  사용자 --> [각자 DP 적용] --> 서버 --> [집계] --> 출력
  장점: 서버 신뢰 불필요
  단점: 정확도 크게 감소 (epsilon^2 배)

  실제 적용: Apple (iOS 키보드 통계), Google (Chrome RAPPOR)

프라이버시 공격과 DP의 방어

DP가 방어하는 공격 유형:

1. Membership Inference Attack:
   "이 데이터가 학습 세트에 있었는가?"
   --> DP: 개별 데이터의 영향 제한 --> 구별 불가

2. Model Inversion Attack:
   모델 출력에서 학습 데이터 복원
   --> DP: 노이즈로 인해 역추적 불가

3. Training Data Extraction:
   LLM에서 학습 데이터 그대로 추출
   (Carlini et al., 2021: GPT-2에서 개인정보 추출)
   --> DP: 특정 데이터의 기여 제한

4. Property Inference Attack:
   학습 데이터의 통계적 속성 추론
   --> DP: 집계 통계에 노이즈 추가

공격 성공률 vs epsilon:
  epsilon=1:  MIA accuracy ~51% (random에 가까움)
  epsilon=3:  MIA accuracy ~55%
  epsilon=8:  MIA accuracy ~62%
  epsilon=inf: MIA accuracy ~75%+ (비DP)

Federated Learning + DP

Federated Learning with DP:

라운드 t:
  1. 서버가 글로벌 모델 theta_t를 K개 클라이언트에 전송
  2. 각 클라이언트 k:
     - 로컬 데이터로 학습: theta_k = LocalTrain(theta_t, D_k)
     - 모델 업데이트 계산: Delta_k = theta_k - theta_t
     - Clipping: Delta_k_clipped = Delta_k * min(1, C / ||Delta_k||)
     - (Optional LDP) 노이즈 추가: Delta_k_noisy = Delta_k_clipped + N(0, sigma^2)
  3. 서버:
     - 집계: Delta = (1/K) * sum Delta_k_clipped
     - (CDP) 노이즈 추가: Delta_noisy = Delta + N(0, sigma^2 / K)
     - 업데이트: theta_{t+1} = theta_t + Delta_noisy

User-Level DP:
  한 사용자의 모든 데이터가 포함/제외되어도
  모델 변화 제한 --> 더 강한 보장, 더 큰 노이즈 필요

산업 적용 사례

+-------------------+------------------+-------------------+
| 기업              | 적용 분야         | epsilon 수준       |
+-------------------+------------------+-------------------+
| Apple             | iOS 키보드 통계   | LDP, epsilon ~2-8 |
|                   | Safari 브라우징   |                   |
+-------------------+------------------+-------------------+
| Google            | Chrome RAPPOR    | LDP, epsilon ~2   |
|                   | Gboard 통계      | CDP + SecAgg      |
+-------------------+------------------+-------------------+
| Meta              | 광고 측정        | CDP, epsilon ~1-5  |
|                   | A/B 테스트       |                   |
+-------------------+------------------+-------------------+
| Microsoft         | Windows 텔레메트리| LDP               |
|                   | LinkedIn 분석    |                   |
+-------------------+------------------+-------------------+
| US Census Bureau  | 2020 인구 조사   | epsilon ~19.6      |
|                   | (TopDown Algorithm)|                 |
+-------------------+------------------+-------------------+

최신 연구 동향 (2024-2025)

1. DP + Pre-training (De et al., 2022; NeurIPS)
   - 공개 데이터 pre-train --> 민감 데이터 DP fine-tune
   - 유틸리티 손실 대폭 감소
   - 현재 가장 실용적인 접근법

2. DP for LLM Fine-tuning
   - LoRA + DP-SGD 조합
   - Parameter-efficient 방법이 DP와 시너지
   - trainable params 감소 --> 필요 노이즈 감소

3. Private Synthetic Data Generation
   - DP로 학습한 생성 모델로 합성 데이터 생성
   - 합성 데이터는 자유롭게 공유 가능
   - PATE-GAN, DP-Diffusion 등

4. Tighter Privacy Accounting
   - PRV (Privacy Random Variable) Accountant
   - f-DP (function DP)
   - 더 정확한 epsilon 추적 --> 불필요한 노이즈 감소

5. DP + Secure Aggregation (FL)
   - PREAMBLE (NeurIPS 2025, Apple)
   - Block-sparse vectors로 효율적 secure aggregation
   - 통신 비용 절감 + 프라이버시 유지

한계와 열린 문제

1. Privacy-Utility Gap:
   - 작은 데이터셋에서 DP 적용 시 유틸리티 급감
   - 특히 소수 클래스/희귀 패턴 학습에 어려움

2. epsilon 선택 기준 부재:
   - "epsilon = 3이면 충분한가?" 에 대한 합의 없음
   - 도메인별 위험 분석 필요하나 방법론 미확립

3. Group Privacy:
   - 한 개인이 여러 레코드를 가진 경우 보호 약화
   - User-level DP 필요하나 노이즈 크게 증가

4. Unlearning과의 관계:
   - DP는 사전(ex-ante) 보호, Machine Unlearning은 사후(ex-post)
   - 두 기법의 통합 프레임워크 미완성

5. Auditing:
   - DP 보장이 실제로 달성되었는지 검증하는 방법론 필요
   - 구현 버그로 인한 프라이버시 침해 위험

참고 자료

  • Dwork, C. et al. (2006). "Calibrating Noise to Sensitivity in Private Data Analysis." TCC.
  • Abadi, M. et al. (2016). "Deep Learning with Differential Privacy." CCS.
  • Mironov, I. (2017). "Renyi Differential Privacy." CSF.
  • De, S. et al. (2022). "Unlocking High-Accuracy Differentially Private Image Classification through Scale." NeurIPS.
  • Yousefpour, A. et al. (2021). "Opacus: User-Friendly Differential Privacy Library in PyTorch."
  • Carlini, N. et al. (2021). "Extracting Training Data from Large Language Models." USENIX Security.
  • Dwork, C. & Roth, A. (2014). "The Algorithmic Foundations of Differential Privacy." Foundations and Trends in Theoretical Computer Science.
  • ACM Computing Surveys (2025). "Recent Advances of Differential Privacy in Centralized Deep Learning: A Systematic Survey."