上學期末至今為止,閱讀了很多有關於VFL中標籤和特徵推理攻擊的方案,以及在分割學習中的一些相似的方案,看看是否有值得借鑑和遷移的點。此外對於防禦也看了一些。目前對該領域有一個比較全面的瞭解和思考,目前想到的也只是結合幾個方案放到不同場景當中去,也復現了幾篇論文的實驗,發現效果不是很好,當前的方案感覺創新性也不大,有點像糅合一樣。打算先將目前該領域做的點整理一下以及接下來想做的點。
特徵推理攻擊
dlg
idlg
Inverting gradients
See through gradients: Image batch recovery via gradinversion
首先說一說分割學習中,伺服器要竊取客戶端的隱私輸入。這個領域最經典的方案是聯合學習中的這篇論文《Model inversion attacks against collaborative inference 》,文中提出的RMLE、逆轉網路和影子模型構建一直在分割學習和聯邦學習中不斷借鑑和最佳化,引用率非常地高。
《Unleashing the Tiger: Inference Attacks on Split Learning》
在分割學習中,最先出現的是模型劫持攻擊,主要是透過篡改伺服器傳送給客戶端的梯度,讓客戶端朝著我們預先設計好的模型特徵空間訓練,比如假定竊取後的模型為\(\tilde{f}\)(真實模型為\(f\)) 。透過對抗性訓練讓客戶端模型\(f\)的特徵空間接近\(\tilde{f(X)}\)。這類修改和擬合特徵空間的論文大部分都使用了生成式對抗網路GAN的思想,即Min-Max的對抗博弈思路。
經過對抗性訓練後,實際上\(\tilde{f}\)的特徵空間就和\(f\)有重疊了,也就是說功能一樣,那麼\(\tilde{f}\)就當作竊取到的模型,然後再訓練一個逆模型\(\tilde{f}^{-1}\)。
特點:對輔助資料\(X_{pub}\)的分佈要求較高。有一些可以檢測到不正常梯度的方案從而規避攻擊
《UnSplit: Data-Oblivious Model Inversion, Model Stealing, and Label Inference Attacks against Split Learning》
UnSplit相比FSHA比較暴力,直接初始化客戶端模型和輸入\(\tilde{f}_1(\tilde{\theta_1},\tilde{x})\),來和原始模型的輸出\(f_1(\theta_1,x)\)計算損失最佳化這兩項,採用的方法是固定其中一項最佳化另一項。對於影像恢復來說,大多數都會加上一個總變異項Total Variation來使生成的影像更加平滑。相比FSHA,此方案不需要輔助資料,只需要收集客戶端的中間結果(粉碎資料)即可訓練,但是可能效果差一些。
要求:需要知道客戶端模型結構和中間粉碎資料,但不需要輔助資料,透過座標梯度下降法在由所有可能的輸入值和客戶端網路引數組成的空間內進行搜尋。
《PCAT: Functionality and Data Stealing from Split Learning by Pseudo-Client Attack》
本文的目標是竊取模型和輸入。它利用的是經過訓練的伺服器模型可以提供足夠的知識,然後利用一些有限的訓練樣本訓練出中間的偽客戶端模型,其實這篇文章就是《Model inversion attacks against collaborative inference 》中影子竊取,這篇文章就是換了種說法,搬到了分割學習中用了大量文字來修飾,相比改進的是利用分割學習訓練過程中的知識,即便訓練邊竊取,說明中間伺服器對最終的偽客戶端的訓練也有幫助,此外還提出了一些改善pcat的細節,如對齊訓練資料和輔助資料的標籤,跳過一些批次訓練\(\tilde{f}\)。
SL:直接在私有資料\(X_{priv}\)上訓練的受害者客戶端模型,也就是正常經過訓練後的客戶端模型。
論文實驗做的比較足,如iid和nonii、每個class擁有的樣本數、真實特徵空間和偽特徵空間的MSELoss、伺服器擁有的訓練樣本數量引起的效能變化。noiid實驗中伺服器的資料集缺少一類樣本的情況下看pcat能否適應、伺服器擁有的資料\(X_{server}\)的分佈情況的影響、分割學習客戶端分割層的影響、對nopeek和差分隱私噪聲防禦的效果。
arxiv上出現了一篇針對pcat的改進的文章(《Passive Inference Attacks on Split Learning via Adversarial Regularization》),只是新增了兩個正則化,一個是對偽客戶端模型\(\tilde{f}\)和正常模型\(f\)的特徵空間新增一個鑑別器,利用GAN的思想使\(\tilde{f}\)的特徵空間\(\tilde{f}(X')\)更接近原始特徵空間,第二個是對解碼器\(\tilde{f}^{-1}\)進行對抗性正則化,讓\(\tilde{f}^{-1}(Z_s)\)更接近真實資料,方法是將\(\tilde{f}^{-1}(Z_s)\)標記為假,輔助資料\(X'\)標記為真,再使用一個鑑別器進行對抗訓練。
分割學習一般場景都是一個客戶端擁有所有特徵,伺服器擁有標籤,它設計的初衷只是為了減輕客戶端的計算資源壓力,所以很多論文攻擊時一般都帶有竊取模型,然後再進行攻擊的習慣,而在VFL中,一般特徵都是分割在兩方或多方的,它最初也是為了特徵垂直分割而衍生出來的。不知道分割學習中的方案能不能借鑑到VFL中,目前已經有幾篇論文這樣做了,但很少,像《Active Data Reconstruction Attacks in Vertical Federated Learning》這篇論文也運用了GAN的思想,但是和FSHA又不太一樣,FSHA中是利用客戶端的特徵空間和偽模型的特徵空間接近來進行GAN訓練,進而偽造梯度。但是VFL多方場景下有很多客戶端,那就對應很多個特徵空間,這樣的話就顯得很繁瑣。本文的操作是收集所有中間特徵,然後生成器G利用這些中間特徵生成使用者輸入和真實的資料(同分布)區分,讓生成器的輸出儘可能接近真實分佈的資料。生成器的輸入中還有主動方的已知特徵,類似於條件GAN,這也就能對應上真實的資料。
如果要在VFL中實現類似的操作,可以嘗試訓練一個編碼器代替所有被動方的模型,然後運用SL中的一些操作和思路,但是這樣的思路是否算作一種創新呢,恐怕實驗效果也不會很好。最好是再結合一些其他論文中的正則化項,讓實驗結果更準確。
縱向聯邦學習中