與其他應用程序相比,深度學習模型似乎不太可能成為隱私攻擊的受害者。然而,存在確定實體是否用於訓練集中的方法(稱為成員推理的對抗性攻擊),並且包含在“模型反演”下的技術允許僅在給定模型輸出(有時還有上下文信息)的情況下重建原始數據輸入。這篇博文展示了模型反轉的端到端示例,並探討了使用 TensorFlow Privacy 的緩解策略。
在機器學習模型的背景下,個人數據的私密性如何?例如,用於訓練模型的數據。有些模型的答案很簡單。以 k-最近鄰為例。有沒有即使沒有完整的數據集的模型。或者支持向量機。沒有支持向量就沒有模型。但是神經網絡呢?它們只是一些函數的組合,不包括數據。
饋送到已部署的深度學習模型的數據也是如此。人們不太可能反轉來自大型 ResNet 的最終 softmax 輸出並取回原始輸入數據。
從理論上講,“入侵”一個標准的神經網絡來監視輸入數據聽起來很虛幻。然而,在實踐中,總會有一些現實世界的背景。上下文可能是其他公開可用的數據集,可以鏈接到所討論的“私人”數據。這是一個用於倡導差異隱私的流行展示(Dwork 等人,2006 年):采用“匿名”數據集,從公共來源挖掘補充信息,並隨意取消匿名記錄。這種意義上的某些上下文通常用於“黑盒”攻擊,即假設沒有關於被黑客入侵的模型的內部信息的攻擊。
但是上下文也可以是結構性的,例如在這篇文章中演示的場景中。例如,假設一個分布式模型,其中的層集運行在不同的設備上——例如嵌入式設備或移動電話。(這樣的場景有時被視為“白盒” (Wu 等人,2016 年),但在普遍的理解中,白盒攻擊可能預設了一些更多的內部知識,例如訪問模型架構甚至權重。我因此,我更願意稱其為“白人”。)——現在假設在這種情況下,可以攔截執行模型更深層的系統並與之交互。基於該系統的中級輸出,可以執行模型反演(Fredrikson et al. 2014),即重構饋入系統的輸入數據。
在這篇文章中,我們將演示這種模型反演攻擊,基本移植在給定的辦法筆記本中發現PySyft庫。然后我們嘗試不同級別的ε- 隱私,探索對重建成功的影響。第二部分將利用之前的博文中介紹的 TensorFlow Privacy 。
第 1 部分:操作中的模型反演
示例數據集:世界上所有的字母 1
這里使用的模型反演的整體過程如下。由於沒有或幾乎沒有關於模型的內部知識,但有機會重復查詢它,我想學習如何僅根據模型輸出重建未知輸入。獨立於原始模型訓練,這也是一個訓練過程;但是,一般不會涉及原始數據,因為這些數據不會公開。盡管如此,為了獲得最大的成功,攻擊者模型的訓練數據與假設的原始訓練數據盡可能相似。例如,考慮圖像,並假設連續層代表連續粗粒度特征的流行觀點,我們希望代理數據與真實數據共享盡可能多的表示空間——直到最終分類之前的最高層.
如果我們想以經典的 MNIST 為例,我們可以做的一件事就是只使用一些數字來訓練“真實”模型;其余的,用於訓練對手。不過,讓我們嘗試一些不同的事情,這可能會使工作變得更難,同時也更容易。更難,因為數據集的特征樣本比 MNIST 數字更復雜;由於同樣的原因,更容易:對手可能從復雜的任務中學到更多。