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