[DL Hacks]tensorflow/privacy 使ってみた

180 Views

February 20, 19

スライド概要

2019/01/31
Deep Learning JP:
http://deeplearning.jp/hacks/

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

(ダウンロード不可)

関連スライド

各ページのテキスト
1.

DL Hacks LT tensorflow/privacy 使ってみた 2019/1/31 理学部情報科学科3年 古賀 樹 1

2.

目次 • • • • tensorflow/privacy • 経緯 • Differential privacy • プライバシーについて • DPの定義 • DPの実現方法 • 機械学習におけるDP • Differentially private SGD Tutorial 動かしてみた • 概要 • 実験結果 まとめ・感想 参考資料・その他 2

3.

tensorflow/privacy 3

4.

tensorflow/privacy / 経緯 • • • 元々は tensorflow/models/research/differential_privacy 以下にあった 最近独立したレポジトリとして 登場(参照:右ツイート) プライバシーロスの計算が tensorflow非依存になった (気がする) 4

5.

Differential privacy / プライバシーについて • 出力プライバシーモデル • 収集した個人情報に関する解析結果を公開 • データセット 𝐷 = (𝑋1 , … , 𝑋𝑛 ) • 解析アルゴリズム(メカニズム)𝑀(𝐷) • メカニズムのプライバシー侵害リスクを知りたい 5

6.

Differential privacy / プライバシーについて • • 出力プライバシーモデルにおける攻撃モデル • 攻撃者が 𝑀(𝐷) から 𝐷 の中の個人情報 𝑋𝑖 を知ること ができる <- プライバシー侵害リスク 攻撃者について • 無限の計算能力と任意の事前知識(𝑋𝑖以外の個人情報 も含む)を持つ 6

7.

Differential privacy / DPの定義 • 個人情報 𝑋𝑖 の如何なる部分情報が漏れないことが理想 • adjacent input: 1つの個人情報のみ異なるデータセット 𝑀(𝐷)と 𝑀(𝐷′ )の分布がどの程度同じかが 𝜖 と 𝛿 が示して いる(どちらも小さいほど強いプライバシーであるこ とを示す) • 7

8.

Differential privacy / DPの実現方法 • • 解析のクエリにノイズを与える (メカニズム) • ex: Laplaceメカニズム、Gaussianメカニズム (どの程度のノイズを与えるかはセンシティビティを 用いて決める) ′ (𝐷, 𝐷 )でクエリの出力が最大で • 隣接データセット組 どの程度変わるか 8

9.

Differential privacy / 機械学習におけるDP • 公開情報はモデルとする • モデルがDPを満たすならば、何回予測してもDP • post-processing theorem • 具体的にはパラメータ(ex: ロジスティック回帰におけ る 𝑊 など) • そのためパラメータの、勾配による更新の際にメカ ニズムを適用 9

10.

tensorflow/privacy / Differentially private SGD • • • 1 sample毎に勾配を 計算 勾配をclip (センシティビティ を抑える) ノイズを加える (Gaussian メカニズム) Abadi et al. (2016) https://arxiv.org/pdf/1607.00133.pdf 10

11.

tensorflow/privacy / Differentially private SGD ? 11

12.

tensorflow/privacy / Differentially private SGD • 実際の実装では… Subsample + Gaussian Mechanism -> (Wang et al. 2018) Renyi DP (IIya 2017) -> (llya 2017) (𝜀, 𝛿)-DP 12

13.

Tutorial 動かしてみた 13

14.

Tutorial 動かしてみた / 概要 • https://github.com/tensorflow/privacy/tree/master/tutorials • MNISTの分類問題をCNNで解く • Optimizer が DP-SGD (以下のパラメータを指定可能) • learning rate • num_microbatches • l2_norm_clip • noise_multiplier 14

15.

Tutorial 動かしてみた / 概要 • DPの 𝜀を知るだけなら https://github.com/tensorflow/privacy/blob/master/privacy /analysis/compute_dp_sgd_privacy.py を動かせば良い (tensorflow 非依存) 15

16.

Tutorial 動かしてみた / 実験結果 • • https://github.com/tensorflow/privacy/tree/master/tutorials#selectparameters に沿って実験 (1回のみ) (batch_size: 256, ) −5 𝛿 = 10 追加で時間を計測 Time noise_ m l2_norm_ c num_ micro Number of Privacy Accurac per epochs eps y epoch lr ultiplier lip batches (sec) no 0.1 256 10 98.9% 1.87 privacy 0.32 1.2 1.0 256 10 1.20 95.3% 42.5 0.08 1.12 1.0 256 60 2.92 96.4% 41.8 0.4 0.6 1.0 256 30 9.74 97.2% 41.7 16

17.

まとめ・感想 17

18.

まとめ・感想 • • • • ようやくコードとしてしっかりと整備されている状態に • 誰でも使えるように Utility vs Privacy のトレードオフがあるが、時間のかかるタスク で実験を繰り返すのは時間的にしんどそう (約20倍くらいの時間がかかった) • 一度学習が済んでしまえば良いという見方もある この分野ではtensorflowが他のフレームワークの先を行っている • PyTorch実装欲しい… (tensorflow x docker とても使いやすかった) 18

19.

参考・その他 19

20.

参考資料 • • 論文 • Deep Learning with Differential Privacy (Abadi et al. 2016) https://arxiv.org/abs/1607.00133 • Renyi Differential Privacy (IIya 2017) https://arxiv.org/abs/1702.07476 • Subsampled Renyi Differential Privacy and Analytical Moments Accountant (Wang et al. 2018) https://arxiv.org/abs/1808.00087 書籍 • データ解析におけるプライバシー保護 (佐久間先生) • 機械学習プロフェッショナルシリーズ 20

21.

動かす際の注意点 • Python 2系(?) 21