机器学习中的隐私性

负责任地使用 AI 的一个重要方面在于,务必防止机器学习模型泄露可能敏感的信息,例如:受众特征信息或训练数据集中其他可能会用于身份识别的属性。实现此目的的方法之一是采用差分隐私随机梯度下降法 (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 研究团队开发的一个开源库。该库包含一些常用 TensorFlow 优化器的实现,可用于通过 DP 来训练机器学习模型。该库的目标是让使用标准 TensorFlow API 的机器学习从业者只需更改几行代码即可训练能够保护隐私的模型。

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