原文連結:Deep Learning with Differential Privacy
abstract:新的機器學習演算法,差分隱私框架下隱私成本的改良分析,使用非凸目標訓練深度神經網路。
數學中最優化問題的一般表述是求取$ x * \in \chi $ 使得 $ f(x * ) = min\{ f(x):x \in \chi \} $,其中x是n維向量, $ \chi $ 是x的可行域,f是$ \chi $ 上的實值函式。凸優化問題是指$ \chi $ 是閉合的凸集且f是$ \chi $ 上的凸函式的最優化問題,這兩個條件任一不滿足則該問題即為非凸的最優化問題。
Part1 introduction:
我們訓練模型使用非凸目標、多個層次、上萬個引數
相比來說:以往的工作對引數較少的凸模型和隱私損失較大的複雜神經網路都取得了較好的結果
contribution:
1.跟蹤隱私丟失細節,我們可以從漸進和經驗兩方面獲得對整體隱私損失的更嚴格的估計。
2.提出獨立訓練樣本計算梯度的高效演算法,任務分成小堆,輸入層使用差分隱私策略投影。
3.機器學習框架TensorFlow建立DP模型,MNIST/CIFAR測試資料集(機器學習公認測試集),在軟體複雜度、訓練效率和模型質量方面,深度神經網路的隱私保護可以以適當的成本實現。
規範化技術避免對訓練樣本過擬合。
一個特定的敵手很可能是提取部分訓練資料,逆模型攻擊(恢復影像)只需要黑盒訪問模型
假設敵手對訓練機制有完全瞭解且完全訪問模型引數。
Part2 Background
2.1差分:
相鄰資料集的定義 例如,在我們的實驗中,每個訓練資料集是一組影像-標籤對;如果這兩個集合在單個項中不同,也就是說,如果一個影像-標籤對存在於一個集合中,而另一個集合中不存在,我們就說它們是相鄰的。
Dierential隱私有幾個特性:可組合性、組隱私和對輔助資訊的健壯性。
組隱私意味著如果資料集包含相關的輸入,比如由同一個人提供的輸入,隱私保證的完美減低。
對輔助資訊的魯棒性是指隱私保證不受對手可用的任何輔助資訊的影響。
preliminary:設計一個差分隱私額外噪聲機制的基本流程:
1.通過限定敏感度函式的順序組合逼近函式性。
2.選擇額外噪聲的引數。
3.執行隱私分析的結果機制。
2.2深度學習:
深度神經網路,在許多機器學習任務中非常有效,定義從輸入到輸出的引數化函式為許多基礎模組的組合,比如仿射轉換和簡單的非線性函式,後者常用的例子是S型和改正線型單元。通過改變這些模組的引數,我們可以訓練一個引數化函式,這個函式的目的是適應任何給定的有限輸入輸出例子。
我們定義了一個損失函式,表徵與訓練資料不匹配的懲罰。
訓練包含尋找到θ,產生可接受的最小損失。
the minimization is often done by the mini-batch stochastic gradient descent(SGD) algorithm.
在這個演算法中,每一步生成一組隨機數,並計算梯度。然後θ根據梯度方向更新,直到損失函式達到區域性最小。
我們的工作基於TensorFlow,一個谷歌釋出的開源資料流引擎。TensorFlow允許程式設計師從基本運算子定義大型計算圖,並在異構的分散式系統中分佈它們的執行。TensorFlow自動建立梯度的計算圖形;它還使批處理計算變得容易。
3.Our Approach
本節描述了我們對神經網路進行差分私有訓練的方法的主要組成部分:差分私有隨機梯度下降(SGD)演算法,矩陣計算和超引數調整。
3.1 Differentially Private SGD Algorithm
人們試圖保護訓練資料,通過僅僅對最終引數工作,視整個過程為黑盒子,但是沒有對這些引數對訓練資料依賴性有用準確的定義
對引數加入過度保守的噪聲,這些噪聲根據最差情況選擇,會破壞學習模型的實用性。因此,我們選擇更加精細的方法,旨在控制訓練過程中訓練資料的影響,特別是在SGD的計算中。
演算法實現:剪下每個梯度的L2範數,計算平均值,新增噪聲以保護隱私。然後對此平均噪聲梯度逆梯度操作一步。最後,除了提出模型,我們計算根據隱私計算的隱私損失。
標準裁剪:
出於非隱私原因,對於深層網路,此形式的梯度裁剪是SGD的一種流行成分,儘管在這種情況下,通常取平均值後就足以裁剪。
每層與時間相關引數:
演算法的虛擬碼將所有引數放在損失函式$ \mathcal{L} (\cdot)$的輸出$ \theta $,
對於多層次神經網路我們分別考慮每個層次,允許設定不同的閾值和噪聲範圍
削減和噪聲引數隨著訓練步驟t不同
分組Lots:
像普通的SGD演算法一樣,本演算法通過計算一組例子的梯度並取平均估算L的梯度。這個平均值提供了一個無偏差的估算值,它的變化隨著資料量的增加迅速減少。我們稱這個組合為lot,與通常的計算組合batch區別開。
為了限制記憶體消耗,我們設定batch的容量遠小於lot,batch是演算法的參量。我們對batch進行計算,然後將batch放在一個lot中為了新增噪聲。
隱私計算:
差分隱私的可組合性允許我們執行可累加過程:先計算每種到達訓練資料的方式的隱私,然後將這些隱私累加作為訓練過程。
訓練的每一步驟要求多個層次的梯度,然後計算器累加對應於它們的所有成本。
Moments accountant:
對於特定噪聲分佈下的隱私損失以及隱私損失的構成進行了大量的研究
產生最佳整體限制的結果是強組合理論
強組合理論可能是不準確的,無法將特殊噪聲分佈納入考慮
這允許我們證明該演算法1是差分隱私的,如果選擇合適的噪聲範圍和削減閾值。
3.2 The Moments Accountant: Details
時刻計算追蹤隱私損失隨機變數,它概括了追蹤(ε,δ)的傳統方法和使用強組合理論
直接從它組合可能導致結果是鬆的。我們轉而計算隱私損失隨機變數時刻的log,這是線性組合的
一個普遍的設計方法是更新狀態,通過有序的運用差分隱私機制
前一個機制的輸出作為下一個的附加輸入。
當機制本身根據前一個機制的(公共)輸出選擇時,保持不變
3.3 Hyperparameter Tuning
我們可以調節的超引數,從而平衡隱私、準確性和效能。
我們發現對於神經網路模型結構的準確性對訓練引數更敏感,比如batch的容量、噪聲水平
凸目標函式的差分隱私優化是使用小到1的批處理大小來最佳實現的,非凸學習本身固有的穩定性較差,這受益於聚整合較大的Batch。
當模型收斂到區域性最優時,非私有訓練中的學習率通常會向下調整。
我們永遠不需要把學習率降低到一個很小的值,因為從本質上講,差分隱私訓練永遠不會達到一個需要被判斷的領域。
Part4.implementation
我們需要在使用梯度去更新引數前對它們進行清洗
我們需要根據清洗是如何完成的來跟蹤隱私成本
因此,我們的實現主要由兩個元件組成:sanitizer和privacy_accountant,前者對梯度進行預處理以保護隱私,後者在訓練過程中跟蹤隱私開銷。
在許多情況下,神經網路模型可以通過將輸入投影在主方向(PCA)上或通過卷積層進行輸入來從輸入處理中受益。 我們實施差分私有PCA,並應用預訓練的卷積層(從公共資料中學到)。
Sanitizer:
執行兩個操作:通過裁剪每個示例的梯度範數來限制每個示例的靈敏度;在更新網路引數之前,將噪聲新增到一批的梯度中。
我們當前的實現支援損失函式L的bacthed計算,其中每個xi都單獨連線到L,允許我們處理大多數隱藏層,但不能處理卷積層。
一旦我們能夠訪問每個示例的梯度,就很容易使用TensorFlow操作符來剪輯它的範數和新增噪聲。
Privacy accountant:
我們實施的主要組成部分是PrivacyAccountant,它在訓練過程中跟蹤隱私開銷。
第一種方法恢復了一般的高階組合定理,後兩種方法對隱私損失進行了更準確的計算。
根據Theorem2.2在訓練期間的任何時候,都可以使用(epslion,delta)隱私更可解釋的概念查詢隱私損失.
我們通過提前確定迭代次數和隱私引數,避免他們的攻擊和負面結果。隱私計算的更一般實現必須正確區分作為隱私距離或隱私過濾器的兩種操作模式
Differentially private PCA:Principal component analysis(PCA) is a useful method for capturing the main features of the input data.
捕獲輸入資料的主要特徵的有用方法
We take a random sample of the training examples, treat them as vectors, and normalize each vector to unit l2 norm to form the matrix A, where each vector is a row in the matrix. We then add Gaussian noise to the covariance matrix ATA and compute the principal directions of the noisy covariance matrix.
Then for each input example we apply the projection to these principal directions before feeding it into the neural network.
我們從訓練樣本中隨機抽取一個樣本,將它們視為向量,然後將每個向量歸一化為2範數以形成矩陣A,其中每個向量都是矩陣中的一行。 然後,我們將高斯噪聲新增到協方差矩陣ATA並計算有噪協方差矩陣的主要方向。
然後,對於每個輸入示例,我們將投影應用於這些主要方向,然後再將其提供給神經網路。
由於執行PCA,我們產生了隱私成本。然而,我們發現它對於提高模型質量和減少訓練時間都是有用的,正如我們在MNIST資料上的實驗所表明的那樣。
Convolutional layers:
卷積層對深度神經網路很有用。然而,一個有效的per-example梯度計算卷積層TensorFlow框架內仍然是一個挑戰,它激勵建立一個單獨的工作。例如,最近的一些研究表明,即使是隨機的卷積也滿足。
另外,我們遵循Jarrett等人的觀點探索在公共資料上學習卷積層的想法。 這樣的卷積層可以基於用於影像模型的GoogLeNet或AlexNet功能,或者基於語言模型中的預訓練word2vec或GloVe嵌入
Part5 Experiment Results
Part6 Related Work
現有的文獻可以沿著幾個軸進行廣泛的分類:模型的類別、學習演算法和隱私保證。
Privacy guarantees
隱私保護學習的早期研究是在安全函式評估的框架下進行的(SFE)和安全多方計算(MPC),其中輸入在兩個或更多方之間分割,重點是使在某些已達成共識的功能的聯合計算過程中洩漏的資訊最小化。 相反,我們假設資料集中儲存,並且我們擔心功能輸出(模型)的洩漏。
另一種方法是k-匿名性和緊密相關的概念[53],它試圖通過歸納和抑制某些識別屬性來對基礎資料提供一定程度的保護。該方法具有很強的理論和經驗限制[4,9],這使其幾乎不適用於高維,多樣化輸入資料集的去匿名化。與其保持輸入原始狀態不變,我們不破壞基礎原始記錄,而擾亂派生資料。
差分隱私理論為我們的工作提供了分析框架,已被應用於大量的機器學習任務,這些任務在訓練機制或目標模型上都與我們的不同。
moments accountant與R'enyi差異隱私概念密切相關[42],後者提出了(定標)α(λ)作為量化隱私保證的一種手段。在併發且獨立的工作中,Bun和Steinke [10]通過α(λ)的線性上限定義了放寬的差分隱私(概括了Dwork和Rothblum [20]的工作),這些工作證明了moments accountant是一種用於複雜隱私保護演算法的理論和實證分析的有用技術。
Learning algorithm
隱私學習的一個共同目標是一類可應用多種技術的凸優化問題。
在並行工作中,Wu等人通過凸經驗風險最小化在MNIST上實現了83%的準確率。
多層神經網路的訓練是非凸的,通常通過SGD的應用來解決,其理論保證很少被理解。
對於CIFAR神經網路,我們分別對主成分分析投影矩陣[23]進行私有訓練,用於降低輸入的維數。
Model class
第一個端到端的差分隱私系統評估在Netflix Prize資料集[39],一個版本的協同過濾的問題。
儘管該問題與我們的高維輸入有很多相似之處,但非凸目標函式的使用由McSherry和Mironov所採用的方法明顯不同。 他們確定了學習任務的核心,即有效的足夠的統計資料,可以通過高斯機制以差分隱私的方式進行計算。 在我們的方法中,沒有足夠的統計資料。
在最近的工作中,Shokri和Shmatikov [50]設計和評估了用於深度神經網路的分散式訓練的系統。 緊密保持資料的參與者將經過sanitized處理的更新傳達給central authority。 sanitization依賴於基於敏感性估計的加性噪聲機制,可以將其改進為硬性敏感性保證。 他們計算每個引數的隱私損失(不適用於整個模型)。 按著我們的標準,MNIST資料集上每個參與者的總隱私損失超過數千。
Phan等人[45]探討了另一種最新的差分隱私深度學習方法。這項工作的重點是學習自動編碼器。隱私是基於干擾這些自動編碼器的目標函式。