機器學習過程中的隱私權
為了確保以負責任的態度使用 AI,您應避免機器學習模型洩漏可能的機密資訊,例如可用來辨識身分的客層資訊或訓練資料集中的其他屬性。如要達成這個目標,可使用機器學習中標準隨機梯度下降 (SGD) 演算法的修改版本,也就是差異化隱私隨機梯度下降 (DP-SGD) 演算法。
使用 DP-SGD 來訓練的模型提供經過改善的可量化差異化隱私 (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 說明文件列出了所有最佳化器和模型。