機器學習中的隱私權

負責任的 AI 使用方式中,重要的一環是確保 ML 模型不會洩漏潛在的敏感資訊,例如人口統計資訊或訓練資料集中的其他屬性,這些資訊可能會被用來辨識個人身分。達成此目標的方法之一是使用差分隱私隨機梯度下降 (DP-SGD),這是對機器學習中標準隨機梯度下降 (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 Research 團隊開發的開放原始碼程式庫。此程式庫包含常用 TensorFlow Optimizer 的實作,可用於訓練具有 DP 的 ML 模型。目標是讓使用標準 Tensorflow API 的 ML 從業人員只需變更幾行程式碼,即可訓練可保護隱私的模型。

差分隱私最佳化工具可以與使用 Optimizer 類別的高階 API (尤其是 Keras) 搭配使用。此外,您也可以找到某些 Keras 模型的差分隱私實作。所有 Optimizer 和模型都可以在 API 文件中找到。