一、對抗樣本(Adversarial Examples)
定義:對輸入樣本添加人眼無法察覺的細微干擾,導致模型以高置信度輸出錯誤結果。對抗樣本的分布通常偏離自然數據分布,與正常樣本在模型中間層/輸出層的分布存在差異。
核心目標:使模型輸出與真實標簽不同,破壞模型可靠性。
二、對抗樣本防御方法
完全防御:
在檢測到對抗樣本的基礎上, 同時還能夠修正標簽,輸出 一個正確的標簽給用戶。
1. 輸入層面防御
核心思想:破壞對抗樣本的擾動結構,恢復原始特征。
方法:
輸入變換:去噪、旋轉、裁剪、濾波等預處理操作。
特點:依賴對抗樣本的弱魯棒性,可能影響正常樣本性能。
2. 修改網絡結構
方法:
對抗訓練:在訓練集中加入對抗樣本,提升模型魯棒性。
梯度掩蔽:遮蓋Softmax層與前一層之間的梯度,防御基于梯度的攻擊(但可能被替代模型繞過)。
局限性:無法防御遷移攻擊(攻擊者通過替代模型生成對抗樣本)。
3. 附加網絡
(1)防御性蒸餾
流程:
1. 教師網絡:用真實標簽訓練原始模型。
????????????????2. 學生網絡:學習教師網絡Softmax輸出的概率分布(非真實標簽),平滑分類邊界。
?具體流程:
? ? ? ? 1. 教師網絡使用標準的真實標簽(Hard Labels)進行訓練。例如,在分類任務中,真實標簽是 one-hot 編碼(如?[0, 0, 1, 0]
?表示類別3)。訓練完成后,教師網絡會對輸入樣本輸出一個概率分布(Soft Labels),即 Softmax 層的輸出(如?[0.1, 0.2, 0.6, 0.1]
)。這個概率分布包含了模型對各類別的“置信度”,比 one-hot 標簽更豐富(例如,模型可能認為某張圖片有 60% 是貓,30% 是狗,10% 是其他)。
? ? ? ? 2. 學生網絡不再直接學習原始的真實標簽,而是學習教師網絡生成的 Softmax 概率分布(Soft Labels)。例如,如果教師網絡對某張圖片的輸出是?[0.1, 0.2, 0.6, 0.1]
,學生網絡的目標是讓自己的輸出盡可能接近這個分布。用相同的訓練數據輸入教師網絡,得到 Softmax 概率分布(Soft Labels)。學生網絡以這些 Soft Labels 為監督信號進行訓練(而不是原始的 Hard Labels)。
關鍵點:學生網絡學習的是概率分布之間的相似性(如 KL 散度),而非單純的正確類別。
為什么能提高魯棒性?
平滑分類邊界:
教師網絡的 Softmax 輸出(如?
[0.1, 0.2, 0.6, 0.1]
)比 Hard Labels(如?[0, 0, 1, 0]
)更平滑,能反映類別間的相似性(例如“貓”和“狗”可能有一定相似性)。學生網絡通過模仿這種平滑分布,會學到更穩健的決策邊界,減少對輸入微小擾動的敏感度。
對抗樣本的擾動失效:
對抗樣本依賴模型的“尖銳”梯度(如通過微小擾動讓模型從?
[0, 0, 1, 0]
?突變為?[1, 0, 0, 0]
)。但學生網絡的輸出是平滑的,微小擾動難以顯著改變概率分布(例如從?
[0.1, 0.2, 0.6, 0.1]
?到?[0.2, 0.2, 0.5, 0.1]
),因此攻擊更難成功。
僅檢測方法:
模型能夠識別輸入的信息 是對抗樣本,從而可以拒 絕對該樣本的服務,例如 拋出錯誤或者不進行輸出
1. 輸入層面防御&附加網絡
二分類器檢測:
訓練二分類器區分正常樣本與對抗樣本。
問題:泛化性差,易被新攻擊繞過。
MagNet:
使用正常樣本訓練自編碼器,檢測重構誤差。
去噪自編碼器還原小擾動樣本。
以圖像數據為例,具體流程如下:
(1)編碼器(Encoder)
輸入圖像(如?
28x28
?的 MNIST 圖片)通過卷積層或全連接層逐步降維。最終輸出一個低維的潛在向量(Latent Code),例如長度為 32 的向量。
這一步驟可以理解為“提取圖像的核心特征”。
(2)解碼器(Decoder)
將潛在向量通過反卷積層或全連接層逐步上采樣,恢復原始尺寸。
(3)重構誤差計算
通過損失函數(如 MSE)計算輸入圖像?x?和重構圖像?x′?的差異:
最終輸出重構圖像,盡量接近輸入圖像。
問題:檢測能力有限,結構復雜。
2. 附加網絡
Feature Squeezing:
對輸入進行多種特征壓縮(如降采樣、平滑),比較壓縮前后輸出的差異。
差異超過閾值則判定為對抗樣本。
問題:需針對不同數據集設計變換,實用性低。
三、防御方法總結對比
類型 | 代表方法 | 防御效果 | 局限性 |
---|---|---|---|
輸入變換 | 去噪、濾波 | 完全防御 | 可能影響正常樣本精度 |
對抗訓練 | 加入對抗樣本訓練 | 完全防御 | 計算成本高 |
梯度掩蔽 | 遮蓋Softmax梯度 | 部分防御 | 易被替代模型攻擊 |
防御性蒸餾 | 教師-學生網絡 | 完全防御 | 依賴概率分布遷移 |
二分類器檢測 | 二元分類 | 僅檢測 | 泛化性差 |
MagNet | 自編碼器重構誤差 | 僅檢測 | 結構復雜,檢測能力有限 |
Feature Squeezing | 多變換比較差異 | 僅檢測 | 需定制化設計,適應性差 |
四、攻擊者能力
類型 | 攻擊者掌握信息 | 典型方法 | 特點 |
---|---|---|---|
白盒攻擊 | 完整模型結構、參數、梯度 | FGSM、PGD、C&W | 攻擊最強,計算成本高 |
黑盒攻擊 | 僅輸入輸出接口(API訪問) | 遷移攻擊、梯度估計、局部搜索 | 依賴查詢或替代模型 |
灰盒攻擊 | 部分信息(如模型架構但無參數) | 結合白盒與黑盒方法 | 實際場景常見(如知道模型類型) |
五、白盒攻擊方法
1. 基于優化的攻擊(如C&W攻擊)?
模型及其參數固定不變,輸入數據進行調整?
特點:攻擊擾動比較小,攻擊計算量大
2. 基于梯度的攻擊(如FGSM/PGD)
通過目標模型的梯度方向,指導對抗樣本的生成過程,直到生成模型能夠,輸出造成目標模型產生錯誤分類但與輸入視覺相似的樣本,即對抗樣本。
特點:速度快但攻擊較弱(僅沿梯度符號方向添加固定幅度的擾動(??),未考慮梯度的具體數值大小,可能導致擾動不夠精準。且遷移性差)。
3. 基于邊界的攻擊(如Boundary Attack)
從已存在的對抗樣本出發,沿決策邊界隨機游走,尋找最小擾動。
步驟:
初始化一個對抗樣本(如隨機噪聲被誤分類)。
沿邊界移動,逐步減少擾動幅度。
六、黑盒攻擊方法
1. 基于梯度估計的攻擊(如ZOO)
利用算法根據模型的輸出對其梯度進行近似估計, 從而利用近似梯度生成對抗樣本。
使用了零階隨機坐標下降、降維、多尺度攻擊、 重要性采樣技術來進行攻擊
2. 基于遷移性的攻擊
核心思想:對抗樣本可跨模型遷移(因模型決策邊界相似性)。
步驟:
訓練替代模型(Surrogate Model)模擬目標模型。
用白盒方法生成對抗樣本,攻擊目標模型。
3. 基于局部搜索的攻擊(如POBA-GA)
原理:遺傳算法局部搜索最優擾動:
變異:隨機修改像素。
選擇:保留使模型置信度下降的擾動。
七、LLM(大語言模型)對抗攻擊
攻擊方式 | 描述 | 示例 |
---|---|---|
Token操縱 | 微調輸入中的關鍵Token(如同義詞替換),保持語義但導致模型錯誤。 | 將"無害"改為"無害(拆字)"。 |
梯度攻擊 | 基于梯度優化對抗文本(需可微分token嵌入,如BERT)。 | TextFooler |
越獄提示 | 設計繞過安全機制的提示(如"假設你是黑客...")。 | DAN(Do Anything Now)提示 |
紅隊攻擊 | 人工或輔助模型模擬攻擊,測試模型魯棒性。 | OpenAI紅隊測試 |
八、對抗樣本分類
基于攻擊方掌握的信息:白盒攻擊、黑盒攻擊
基于攻擊的目標:誤分類、目標導向誤分類
基于處理過程:數據投毒、后門攻擊、提示攻擊
基于處理對象:圖像對抗樣本、聲音對抗樣本、文本對抗樣本
基于模型架構:機器學習模型、深度學習模型、聯邦學習模型?
基于攻擊效果:隱私攻擊、后門攻擊、誤導攻擊
基于應用場景:人臉識別攻擊、聲音識別攻擊、目標識別攻擊、自動駕駛攻擊?