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."