机器学习中的隐私
负责任的 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 文档 中找到。