机器学习中的隐私

负责任的 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 隐私

Tensorflow 隐私 (TF 隐私) 是 Google Research 团队开发的开源库。该库包含用于使用 DP 训练 ML 模型的常用 TensorFlow 优化器的实现。其目标是使使用标准 Tensorflow API 的 ML 从业人员能够通过更改几行代码来训练保护隐私的模型。

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