Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Introduction to TensorFlow Privacy

Introduction to TensorFlow Privacy

機械学習における Privacy について、TensorFlow Privacy を例に調査しまとめた資料です。Money Forward 社内で開かれた MLOps についての勉強会のために作成しました。

Asei Sugiyama

March 14, 2022
Tweet

More Decks by Asei Sugiyama

Other Decks in Technology

Transcript

  1. Introduction to TensorFlow Privacy Asei Sugiyama

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

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

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

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

    かにその番号が生成された [1802.08232] The Secret Sharer: Evaluating and Testing Unintended Memorization in Neural Networks
  6. Differential Privacy の定義 Differential Privacy: A Survey of Results

  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について
  12. TOC Differential Privacy TensorFlow Privacy <- 発展的な話題

  13. TensorFlow 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)
  18. TOC Differential Privacy TensorFlow Privacy 発展的な話題 <-

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

  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 とのトレードオフなどの研究が進 行中