机器学习中的隐私保护

负责任地使用 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 优化器实现,用于通过 DP 训练机器学习模型。其目标是使使用标准 TensorFlow API 的机器学习从业者只需更改几行代码,即可训练出具备隐私保护功能的模型。

差分隐私优化器可以与使用 Optimizer 类的高级 API(尤其是 Keras)结合使用。此外,您还可以找到一些 Keras 模型的差分隐私实现。所有优化器和模型均可在 API 文档中找到。