머신러닝에서의 개인 정보 보호

책임감 있는 AI 사용에서 중요한 측면은 사용자를 식별하는 데 사용될 수 있는 학습 데이터 세트의 인구통계 정보나 기타 속성 등 잠재적으로 민감한 정보를 ML 모델이 노출하지 않도록 하는 것입니다. 이를 달성하는 방법 중 하나는 머신러닝의 표준 확률적 경사하강법(SGD) 알고리즘을 수정한 개인 정보 차등 보호 확률적 경사하강법(DP-SGD)을 사용하는 것입니다.

DP-SGD로 학습된 모델은 개인 정보 차등 보호(DP)가 눈에 띄게 향상되어 민감한 학습 데이터가 노출될 위험을 줄입니다. DP의 목적은 개별 데이터 포인트가 식별되지 않도록 하는 데 있으므로 DP로 학습된 모델은 학습 데이터 세트의 단일 학습 예로 인해 영향을 받아서는 안 됩니다. DP-SGD 기법은 제휴 학습에도 사용되어 사용자 수준의 개인 정보 차등 보호를 제공할 수 있습니다. 개인 정보 차등 보호 딥 러닝에 관한 자세한 내용은 논문 원본을 참고하세요.

import tensorflow as tf
from tensorflow_privacy.privacy.optimizers import dp_optimizer_keras

# Select your differentially private optimizer
optimizer = tensorflow_privacy.DPKerasSGDOptimizer(
    l2_norm_clip=l2_norm_clip,
    noise_multiplier=noise_multiplier,
    num_microbatches=num_microbatches,
    learning_rate=learning_rate)

# Select your loss function
loss = tf.keras.losses.CategoricalCrossentropy(
    from_logits=True, reduction=tf.losses.Reduction.NONE)

# Compile your model
model.compile(optimizer=optimizer, loss=loss, metrics=['accuracy'])

# Fit your model
model.fit(train_data, train_labels,
  epochs=epochs,
  validation_data=(test_data, test_labels),
  batch_size=batch_size)
  

TensorFlow Privacy

Tensorflow Privacy(TF Privacy)는 Google 연구팀에서 개발한 오픈소스 라이브러리입니다. 라이브러리에는 DP를 사용하는 ML 모델을 학습시키기 위해 흔히 사용되는 TensorFlow 옵티마이저 구현이 포함됩니다. 목표는 표준 TensorFlow API를 사용하는 ML 실무자가 단 몇 줄의 코드만 변경하여 개인 정보 보호 모델을 학습할 수 있도록 하는 것입니다.

개인 정보 차등 보호 옵티마이저는 Optimizer 클래스(특히, Keras)를 사용하는 상위 수준 API와 함께 사용할 수 있습니다. 또한 일부 Keras 모델의 개인 정보 차등 보호 구현을 찾을 수 있습니다. 모든 옵티마이저와 모델은 API 문서에서 찾을 수 있습니다.