梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

機器之心發表於2019-12-12

梯度交換是現代多機訓練常用的通訊方式(分散式訓練,聯邦學習)。長期以來,人們認為梯度是可以安全共享的,即訓練資料不會因梯度交換而洩漏。但是 MIT 的一項研究表明,隱私的訓練資料可以通過共享的梯度來獲取。

研究人員將此命名為深度梯度洩漏(Deep Leakage from Gradients),並在計算機視覺自然語言處理任務上進行了驗證。實驗結果表明,他們的攻擊比以前的方法要強大得多,在各種資料集和任務上,DLG 只需幾個梯度步驟即可完全恢復訓練資料。對於影像,他們的方法可以實現畫素(pixel)級別的恢復;對於文字,可以達到詞條(token)級別的匹配。

該論文已經被 NeurIPS 2019 接受。研究者希望通過這篇工作引起大家的警惕並重新考慮梯度的安全性。他們還在論文中討論了防止這種深度洩漏的幾種可能策略,其中最有效的防禦方法是梯度壓縮

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

  • 網站:https://dlg.mit.edu

  • 論文:https://arxiv.org/abs/1906.08935

此外,他們還將在 NeurIPS 2019 大會上介紹這項工作。

背景

在協同學習 (collabrative learning) 和聯邦學習 (federated learning) 中,每個使用者的資料始終儲存在本地,僅有模型的梯度在不同裝置之前傳播。這類演算法不需要將資料集中到一處,可以在保護使用者隱私的同時,也讓模型從海量資料中受益。例如多家醫院可以共同訓練一個醫療模型而無需共享患者的醫療資料。

然而,「梯度共享」方案是否真的可以保護參與者的私人資料?在大多數情況下,人們認為梯度是可以安全共享的:因為數值形式的梯度並沒有直接包含有意義的訓練資料。最近的一些研究指出,梯度揭示了訓練資料的某些屬性(例如是否戴眼鏡)。在這篇文章中,研究者考慮了一個更具挑戰性的案例:我們可以從梯度中竊取完整訓練資料嗎?傳統觀點認為答案是否定的,但 MIT 的研究表明這實際上是可行的。

與之前研究中的弱攻擊(使用類標籤的屬性推斷和生成模型)相比,這種深度梯度洩漏是第一次被討論並給現有的多節點機器學習系統帶來了挑戰。如果是帶引數伺服器(Parameter server)的訓練(下圖左側),中心伺服器能夠竊取所有參與者的隱私資料。對於無引數伺服器的訓練(下圖右側),情況甚至更糟,因為任何參與者都可以竊取其相鄰節點的訓練資料。研究者在視覺(影像分類)和語言任務(隱蔽語言模型)上的驗證了攻擊的有效性。在各種資料集和任務上,DLG 只需幾個梯度步驟即可完全恢復訓練資料。

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

方法

在這項工作中,研究者提出深度梯度洩漏演算法(DLG):公開的梯度會洩漏個人的隱私資料。他們提出了一種優化演算法,只需幾次迭代即可從梯度中獲得訓練輸入和標籤。

為了進行攻擊,研究者首先隨機生成一對「虛擬的」輸入和標籤(dummy data and label),然後執行通常的前向傳播和反向傳播。從虛擬資料匯出虛擬梯度之後,他們沒有像傳統優化那樣更新模型權重,而是更新虛擬輸入和標籤,以最大程度地減小虛擬梯度和真實梯度之間的差異。當攻擊結束後,私人資料便完全暴露了出來。值得注意的是,整個過程不需要訓練資料集的任何額外資訊。

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

上圖中的 ||∇w' - ∇w|| 對於虛擬資料和標籤可導,因此可以使用標準梯度下降方法來優化。請注意,此優化需要二階導數(梯度的導數)。因此假設模型是兩次可微。這適用於大多數現代機器學習模型(例如大多數神經網路)和任務。實現該演算法並不難,只要選擇的平臺支援二階導數即可。此處,研究者選擇 PyTorch 作為實驗平臺,並提供一個僅需 20 行程式碼的實現

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

結果

研究者在常用的圖片分類任務和語言模型上測試了該深度洩漏的效果。在圖片分類任務上,他們觀察到具有乾淨背景(MNIST)的單色影像最容易恢復,而像人臉這樣的複雜影像則需要更多的迭代來恢復(下圖)。優化完成後,儘管有一些可見的噪聲點,但恢復結果基本與原始資料相同。

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

在視覺上,他們比較了其他洩漏演算法與 DLG。先前方法 (Melis et al) 基於 GAN 模型。在 SVHN 上,雖然洩漏的結果還可依稀識別出是數字「9」,但這已不是原始訓練影像。LFW 的情況更糟,CIFAR 上則完全失敗。DLG 展現的洩漏程度遠遠強於以往的「淺」洩漏演算法。

語言模型上,研究者選用最近流行的 BERT 模型作為實驗平臺。不同於影像模型的連續輸入,語言模型的文字輸入往往是離散的。因此他們將 DLG 應用在詞條(Token)上,在還原出詞條之後再去反向推斷原句的構成。他們從 NeurIPS 主頁上選取了三句話作為實驗物件。

與視覺任務類似,他們從隨機初始化的嵌入開始:迭代 0 處的反向查詢結果毫無意義。在優化過程中,虛擬詞條產生的梯度逐漸向原始詞條產生的梯度靠攏。在之後的迭代中,部分原句中的單詞逐漸出現。在下表的例 3 中,在第 20 輪迭代中,出現了「annual conference」,在第 30 輪迭代中,得到了與原始文字非常相似的句子。儘管有少部分由於分詞本身歧義引起的不匹配,但是原始訓練資料的主要內容已經完全洩漏。

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

防禦

深度梯度洩漏(DLG)的攻擊程度是之前從未討論過的。因此,MIT 的研究者也測試了幾種防禦的方法。

他們們首先實驗了梯度擾動(Noisy gradients)並嘗試了高斯噪聲(Gaussian noise)和拉普拉斯噪聲(Laplacian noise)。如下圖所示,防禦並不是很理想:只有在噪聲大到使準確率降低時(> 10^-2),該策略才能夠成功防禦深度梯度洩漏(DLG)。

他們也測試了低精度梯度對於深度梯度洩漏(DLG)的防禦效果。遺憾的是兩種常用單精度格式(IEEE Float 16, B Float 16)都不能阻止洩漏。8-bit 資料雖然能阻止該洩漏,然而模型的效能卻也明顯降低。在多種嘗試後,他們發現最有效的防禦方法是梯度壓縮,只要稀疏性大於 20% 即可成功防禦。DGC(Lin 2017)的研究表明可以在梯度的稀疏性達到 99% 以上時,依舊訓練出效能相近的模型。因此,壓縮梯度是一種對抗深度梯度洩漏(DLG)的有效手段。

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

梯度會洩漏訓練資料?MIT新方法從梯度竊取訓練資料只需幾步

他們將在 NeurIPS 2019 大會上介紹這項工作,Poster Session 將在溫哥華當地時間 5pm 到 7pm 在 East Exhibition Hall B + C 154 號展位進行,歡迎感興趣的老師、同學、工業界同事前去交流。

相關文章