人工智能安全基礎復習用:對抗樣本檢測與防御

一、對抗樣本(Adversarial Examples)

  1. 定義:對輸入樣本添加人眼無法察覺的細微干擾,導致模型以高置信度輸出錯誤結果。對抗樣本的分布通常偏離自然數據分布,與正常樣本在模型中間層/輸出層的分布存在差異。

  2. 核心目標:使模型輸出與真實標簽不同,破壞模型可靠性。

二、對抗樣本防御方法

完全防御:

在檢測到對抗樣本的基礎上, 同時還能夠修正標簽,輸出 一個正確的標簽給用戶。

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. 初始化一個對抗樣本(如隨機噪聲被誤分類)。

    2. 沿邊界移動,逐步減少擾動幅度。

六、黑盒攻擊方法

1. 基于梯度估計的攻擊(如ZOO)

利用算法根據模型的輸出對其梯度進行近似估計, 從而利用近似梯度生成對抗樣本。

使用了零階隨機坐標下降、降維、多尺度攻擊、 重要性采樣技術來進行攻擊

2. 基于遷移性的攻擊

  • 核心思想:對抗樣本可跨模型遷移(因模型決策邊界相似性)。

  • 步驟

    1. 訓練替代模型(Surrogate Model)模擬目標模型。

    2. 用白盒方法生成對抗樣本,攻擊目標模型。

3. 基于局部搜索的攻擊(如POBA-GA)

  • 原理:遺傳算法局部搜索最優擾動:

    • 變異:隨機修改像素。

    • 選擇:保留使模型置信度下降的擾動。


七、LLM(大語言模型)對抗攻擊

攻擊方式描述示例
Token操縱微調輸入中的關鍵Token(如同義詞替換),保持語義但導致模型錯誤。將"無害"改為"無害(拆字)"。
梯度攻擊基于梯度優化對抗文本(需可微分token嵌入,如BERT)。TextFooler
越獄提示設計繞過安全機制的提示(如"假設你是黑客...")。DAN(Do Anything Now)提示
紅隊攻擊人工或輔助模型模擬攻擊,測試模型魯棒性。OpenAI紅隊測試

八、對抗樣本分類

基于攻擊方掌握的信息:白盒攻擊、黑盒攻擊

基于攻擊的目標:誤分類、目標導向誤分類

基于處理過程:數據投毒、后門攻擊、提示攻擊

基于處理對象:圖像對抗樣本、聲音對抗樣本、文本對抗樣本

基于模型架構:機器學習模型、深度學習模型、聯邦學習模型?

基于攻擊效果:隱私攻擊、后門攻擊、誤導攻擊

基于應用場景:人臉識別攻擊、聲音識別攻擊、目標識別攻擊、自動駕駛攻擊?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/88139.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/88139.shtml
英文地址,請注明出處:http://en.pswp.cn/web/88139.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[數學基礎] 矩陣的秩及其應用

深入淺出:矩陣的秩及其應用 文章目錄深入淺出:矩陣的秩及其應用一、數學定義二、核心作用三、計算方法與步驟方法1:高斯消元法(最常用)方法2:奇異值分解(SVD)方法3:行列式…

LKH-3算法求解TSP問題基本原理與應用

通俗理解LKH-3算法 LKH-3(Lin-Kernighan-Helsgaun)是求解**旅行商問題(TSP)**的最強啟發式算法之一,由丹麥計算機科學家Keld Helsgaun在LKH-2基礎上改進而來。它的核心思想是:通過智能的“局部破壞與修復”…

游戲開發學習記錄

初始化只是第一次實例化的時候調用,show和unshow是打開界面和關閉界面的時候,會多次調用 在一個腳本里面show是每一次打開界面的時候需要做的事情,而Init是初始化。UIMgr里面的數據結構:為什么我要先從數據結構入手呢?…

一級緩存與二級緩存深度剖析:作用域、配置與同步方案全解析

引言 在分布式系統與高并發場景下,緩存機制已成為提升系統性能的關鍵技術。本文從作用域、失效機制、配置實踐到同步方案,系統化解析一級緩存與二級緩存的核心差異與工程實踐。 一、一級緩存:會話級數據加速器 1.1 作用域與生命周期 作用域&a…

OneCode MQTT插件開發實戰:基于Paho.Client的物聯網通信解決方案

引言 在物聯網應用開發中,MQTT協議因其輕量、低帶寬占用的特性被廣泛采用。OneCode平臺提供的xui.MQTT插件基于Eclipse Paho.Client實現了完整的MQTT通信能力,本文將從插件用途、核心實現、開發要點和功能擴展四個維度,詳解如何基于該插件構建…

1.1_5_1 計算機網絡的性能指標(上)

在這個小節中我們要學習計算機網絡的性能指標,我們在考研當中主要掌握這樣的七個性能指標,分別是速率、帶寬、吞吐量、時延、時延帶寬積、往返時延和信道利用率。我會把相關性比較緊密的性能指標放在一起講解。在這個視頻中,我們先來學習前三…

Python 性能優化指南:深入剖析代碼分析與優化工具

Python 性能優化指南:深入剖析代碼分析與優化工具 在 Python 的廣泛應用場景中,性能優化既是挑戰,也是機遇。無論是構建 Web 應用還是處理數據分析,理解代碼性能瓶頸并有效優化至關重要。本文將探討 Python 代碼性能分析的核心方法,并逐步解析關鍵工具的使用技巧,帶您從…

力扣打卡第二十一天 中后遍歷+中前遍歷 構造二叉樹

106. 從中序與后序遍歷序列構造二叉樹 給定兩個整數數組 inorder 和 postorder ,其中 inorder 是二叉樹的中序遍歷, postorder 是同一棵樹的后序遍歷,請你構造并返回這顆 二叉樹 。 示例 1: 輸入:inorder [9,3,15,20,7], postor…

Notepad++正則表達全解

摘要:Notepad正則表達式符號大全包含11類常用語法:基礎符號(.^$?等)、預定義字符類(\d\w\s等)、錨點(\b\B)、量詞({n,m})、分組引用(()$1)、字符…

前后端分離(java) 和 Nginx在服務器上的完整部署方案(redis、minio)

一、準備工作 服務器環境要求 銀河麒麟 V10 操作系統 開放端口:MinIO (9000、9001)、 Redis (6379)、應用服務 jar包(18888)、前端服務(8080) 系統用戶:具有 sudo 權限的用戶 操作:需要先有必備的工具前端的vsCode,webStrom、后臺的idea&…

貪心算法:簡單而高效的求解策略C++

貪心算法詳解及C實現 1. 什么是貪心算法 貪心算法(Greedy Algorithm)是一種在每一步選擇中都采取在當前狀態下最好或最優(即最有利)的選擇,從而希望導致結果是全局最好或最優的算法策略。 貪心算法與動態規劃不同在于它…

IDEA 中使用 <jsp:useBean>動作指令時,class屬性引用無效

問題&#xff1a;在 IDEA 中創建 Java Web項目&#xff0c;在src/model包下存在一個Student類該類中包含&#xff1a;全參構造器、私有屬性的get/set方法。然后在 jsp 頁面中使用 <jsp:useBean>創建Student類的對象&#xff1a;訪問頁面時報錯&#xff1a;原因&#xff1…

【網絡】Linux 內核優化實戰 - net.core.flow_limit_table_len

目錄參數作用查看與修改調優建議相關警告net.core.flow_limit_table_len 是 Linux 內核中的一個網絡參數&#xff0c;用于控制**流限制表&#xff08;Flow Limit Table&#xff09;**的大小。這個表主要用于限制網絡流量中單個"流"&#xff08;通常指來自同一源IP、端…

前端開發常見問題技術文章大綱

前端開發常見問題技術文章大綱 常見性能優化問題 頁面加載速度慢的原因及解決方案渲染阻塞資源的優化方法內存泄漏的檢測與修復 跨瀏覽器兼容性問題 不同瀏覽器對CSS和JavaScript的支持差異Polyfill和Shim的使用場景如何利用工具檢測兼容性問題 響應式設計挑戰 媒體查詢的最佳實…

Redis常見性能問題和解決方案有哪些?

Redis 作為高性能的內存數據庫&#xff0c;在實際使用中可能會遇到性能問題。以下是常見的性能問題及其解決方案&#xff0c;用中文總結如下&#xff1a; 1. 高延遲問題 問題描述&#xff1a;客戶端請求響應時間過長&#xff0c;可能由于網絡、命令復雜度或服務器負載導致。 解…

閃測儀應用案例丨手機中框如何突破「尺寸檢測」瓶頸?

越來越多的手機中框&#xff0c;正改為更復雜的鏤空設計&#xff0c;這種設計不僅保持了手機中框的結構強度&#xff0c;還進一步減輕了機身重量&#xff0c;同時提升了散熱性能。這讓手機中框的自動化生產增加了很多難點&#xff0c;其中的尺寸檢測就遇到了許多瓶頸。? 尺寸精…

【字節跳動】數據挖掘面試題0011:介紹下時間序列分析常用知識點

文章大綱時間序列分析全面解析一、時間序列分析的基本概念二、時間序列分析的主要方法1. 描述性分析2.統計分析方法3.預測模型&#xff08;1&#xff09;傳統統計模型&#xff08;2&#xff09;現代機器學習模型三、時間序列分析的應用場景四、模型評估五、在字節跳動的應用場景…

ubuntu中交叉編譯iperf3到目標平臺xilinx

注&#xff1a;此文為ubuntu x86系統編譯程序到xilinx aarch64系統中。 一、工具準備 x86上編譯aarch64的編譯器 sudo apt install gcc-aarch64-linux-gnu g-aarch64-linux-gnu #保證編譯器在環境變量中&#xff0c;嘗試執行aarch64-linux-gnu-gcc 目標平臺的根文件系統rootf…

Java-數據結構-集合框架

什么是集合框架集合本質是java所實現的一組數據結構&#xff0c;提供了不同的增刪改查方法。集合就是定義了接口&#xff0c;再通過不同的類去實現定義的接口&#xff0c;這些實現了接口的類就是集合類&#xff0c;例如list&#xff0c;stack&#xff0c;map。集合框架的重要性…

黑馬點評系列問題之基礎篇16jedis redis依賴引入后仍然還是報錯

問題描述依賴已經導入進去了&#xff0c;在倉庫里有***.jar和***.pom這兩個文件&#xff0c;但是點開右面的maven還是有很多爆紅。點擊maven里的更新還是不行。解決點到配置文件pom.xml在lombok這個依賴的代碼下面&#xff0c;添加上版本號&#xff0c;刷新一下右鍵單擊pom.xml…