57

# Introduction to TensorFlow Privacy

March 14, 2022

## Transcript

2. ### まとめ Differential Privacy は Privacy の概念を形式的に定義したもので、個別 のデータに推論結果が依存する度合いに制限を加えたもの DPSGD (Differential Private

SGD) は SGD を拡張したもので、勾配に正 則化とノイズ付加を行うもの TensorFlow Privacy を用いることで DPSGD を Keras の API で実装でき る DPSGD については高速化や Fairness とのトレードオフなどの研究が進 行中

5. ### 問題提起 言語の生成モデルにおいて発見され た問題 データセットに個人番号があった場 合、その番号が生成されてしまう Penn Treebank dataset に意図的に 個人番号を混入させたところ、たし

かにその番号が生成された [1802.08232] The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks

7. ### Differential Privacy の解 釈 (1/2) 「高々1要素だけ異なるデー タベースからある値の出力 される確率 (密度) の対数の

-距離が で抑えられる」 のときには全く確率 が変わらない L1 ϵ ϵ = 0 注目のプライバシー　Differential Privacy
8. ### Differential Privacy の解 釈 (2/2) 差分プライバシーとは何 か？ （定義 & 解釈編）

とい うスライドがわかりやすい のでオススメ 差分プライバシーとは何か？ （定義 & 解釈編）
9. ### Differentially Private SGD (1/2) Membership inference attack against differentially private

deep learning model.
10. ### Differentially Private SGD (2/2) SGD における勾配の大きさ を制限 勾配に正規分布などの確率 分布からの出力をノイズと して付加

Membership inference attack against differentially private deep learning model.
11. ### 日本語による解説 Idein によるブログ記事が公 開されている 記述がわかりやすくオスス メ 引用元の資料を確認しやす い Idein Ideas

— 機械学習におけるDifferential Privacyについて

14. ### 設計方針 実装者は差分プライバシーの専門家 ではないし、モデルのコードは大概 の場合作られたあと ミニバッチの作成などは既存のロジ ックを利用し、そのあと Privacy の ための計算をする 上記を踏まえて

-DP を実現す る (ϵ, δ) A General Approach to Adding Differential Privacy to Iterative Training Procedures
15. ### 使い方 (1/3) # Load training and test data. train_data, train_labels,

test_data, test_labels = load_mnist() # Define a sequential Keras model model = tf.keras.Sequential([ tf.keras.layers.Conv2D( 16, 8, strides=2, padding='same', activation='relu', input_shape=(28, 28, 1)), tf.keras.layers.MaxPool2D(2, 1), tf.keras.layers.Conv2D( 32, 4, strides=2, padding='valid', activation='relu'), tf.keras.layers.MaxPool2D(2, 1), tf.keras.layers.Flatten(), tf.keras.layers.Dense(32, activation='relu'), tf.keras.layers.Dense(10) ])
16. ### 使い方 (2/3) Optimizer だけが通常と異なる optimizer = DPKerasSGDOptimizer( l2_norm_clip=FLAGS.l2_norm_clip, noise_multiplier=FLAGS.noise_multiplier, num_microbatches=FLAGS.microbatches,

learning_rate=FLAGS.learning_rate) # Compute vector of per-example # loss rather than its mean over a minibatch. loss = tf.keras.losses.CategoricalCrossentropy( from_logits=True, reduction=tf.losses.Reduction.NONE) # Compile model with Keras model.compile(optimizer=optimizer, loss=loss, metrics=['accuracy'])
17. ### 使い方 (3/3) Optimizer 以外は通常通りの Keras model.fit( train_data, train_labels, epochs=FLAGS.epochs, validation_data=(test_data,

test_labels), batch_size=FLAGS.batch_size)

20. ### DPSGD の高速化 (1/2) DPSGD は「通常の SGD と 比較して10-100倍くらい遅 い」 Vectorization

と JIT コンパ イルによる高速化が提案さ れている Enabling Fast Differentially Private SGD via Just-in-Time Compilation and Vectorization
21. ### DPSGD の高速化 (2/2) TensorFlow Privacy で確認 (Colab 上で GPU ありで実行)

最適化前は約 90 min に対し、最適化後は 9 min (10x) Method time (total) DPKerasSGDOptimizer 1h 29min 18s VectorizedDPKerasSGDOptimizer (Vectorization) 50min 40s DPSequential (Vectorization + XLA) 8min 57s tensorflow-privacy-mnist-tutorial.ipynb
22. ### Privacy と Fairness のト レードオフ Fairness のためにはマイノ リティのデータを収集し学 習することが重要 Privacy

を実現するためにノ イズを乗せると、全体に対 して少数のデータが利用さ れなくなる Can a Model Be Differentially Private and Fair?
23. ### まとめ Differential Privacy は Privacy の概念を形式的に定義したもので、個別 のデータに推論結果が依存する度合いに制限を加えたもの DPSGD (Differential Private

SGD) は SGD を拡張したもので、勾配に正 則化とノイズ付加を行うもの TensorFlow Privacy を用いることで DPSGD を Keras の API で実装でき る DPSGD については高速化や Fairness とのトレードオフなどの研究が進 行中