Slide 1

Slide 1 text

Introduction to TensorFlow Privacy Asei Sugiyama

Slide 2

Slide 2 text

まとめ Differential Privacy は Privacy の概念を形式的に定義したもので、個別 のデータに推論結果が依存する度合いに制限を加えたもの DPSGD (Differential Private SGD) は SGD を拡張したもので、勾配に正 則化とノイズ付加を行うもの TensorFlow Privacy を用いることで DPSGD を Keras の API で実装でき る DPSGD については高速化や Fairness とのトレードオフなどの研究が進 行中

Slide 3

Slide 3 text

TOC Differential Privacy <- TensorFlow Privacy 発展的な話題

Slide 4

Slide 4 text

Differential Privacy 問題提起 Differential Privacy の定義 Differentially Private SGD

Slide 5

Slide 5 text

問題提起 言語の生成モデルにおいて発見され た問題 データセットに個人番号があった場 合、その番号が生成されてしまう Penn Treebank dataset に意図的に 個人番号を混入させたところ、たし かにその番号が生成された [1802.08232] The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks

Slide 6

Slide 6 text

Differential Privacy の定義 Differential Privacy: A Survey of Results

Slide 7

Slide 7 text

Differential Privacy の解 釈 (1/2) 「高々1要素だけ異なるデー タベースからある値の出力 される確率 (密度) の対数の -距離が で抑えられる」 のときには全く確率 が変わらない L1 ϵ ϵ = 0 注目のプライバシー Differential Privacy

Slide 8

Slide 8 text

Differential Privacy の解 釈 (2/2) 差分プライバシーとは何 か? (定義 & 解釈編) とい うスライドがわかりやすい のでオススメ 差分プライバシーとは何か? (定義 & 解釈編)

Slide 9

Slide 9 text

Differentially Private SGD (1/2) Membership inference attack against differentially private deep learning model.

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

日本語による解説 Idein によるブログ記事が公 開されている 記述がわかりやすくオスス メ 引用元の資料を確認しやす い Idein Ideas — 機械学習におけるDifferential Privacyについて

Slide 12

Slide 12 text

TOC Differential Privacy TensorFlow Privacy <- 発展的な話題

Slide 13

Slide 13 text

TensorFlow Privacy 設計方針 使い方

Slide 14

Slide 14 text

設計方針 実装者は差分プライバシーの専門家 ではないし、モデルのコードは大概 の場合作られたあと ミニバッチの作成などは既存のロジ ックを利用し、そのあと Privacy の ための計算をする 上記を踏まえて -DP を実現す る (ϵ, δ) A General Approach to Adding Differential Privacy to Iterative Training Procedures

Slide 15

Slide 15 text

使い方 (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) ])

Slide 16

Slide 16 text

使い方 (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'])

Slide 17

Slide 17 text

使い方 (3/3) Optimizer 以外は通常通りの Keras model.fit( train_data, train_labels, epochs=FLAGS.epochs, validation_data=(test_data, test_labels), batch_size=FLAGS.batch_size)

Slide 18

Slide 18 text

TOC Differential Privacy TensorFlow Privacy 発展的な話題 <-

Slide 19

Slide 19 text

発展的な話題 DPSGD の高速化 Privacy と Fairness のトレードオフ

Slide 20

Slide 20 text

DPSGD の高速化 (1/2) DPSGD は「通常の SGD と 比較して10-100倍くらい遅 い」 Vectorization と JIT コンパ イルによる高速化が提案さ れている Enabling Fast Differentially Private SGD via Just-in-Time Compilation and Vectorization

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

Privacy と Fairness のト レードオフ Fairness のためにはマイノ リティのデータを収集し学 習することが重要 Privacy を実現するためにノ イズを乗せると、全体に対 して少数のデータが利用さ れなくなる Can a Model Be Differentially Private and Fair?

Slide 23

Slide 23 text

まとめ Differential Privacy は Privacy の概念を形式的に定義したもので、個別 のデータに推論結果が依存する度合いに制限を加えたもの DPSGD (Differential Private SGD) は SGD を拡張したもので、勾配に正 則化とノイズ付加を行うもの TensorFlow Privacy を用いることで DPSGD を Keras の API で実装でき る DPSGD については高速化や Fairness とのトレードオフなどの研究が進 行中