20251003 筆記,內容可能有錯,請參考來源影片。 [李宏毅機器學習2021影片](https://www.youtube.com/playlist?list=PLJV_el3uVTsMhtt7_Y6sgTHGHp1Vb2P2J) 今天影片內容 [【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (上) – 基本概念](https://youtu.be/xGQKhbjrFRk?si=p6AFwG8hTnaCEUra) [【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (下) – 類神經網路能否躲過人類深不見底的惡意?](https://youtu.be/z-Q9ia5H2Ig?si=JcA6Bn4YTyAgSi40) ### 【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (上) – 基本概念 大綱 **I. 對抗性攻擊的背景與必要性** A. 類神經網路不僅需要高正確率,還需抵抗人類的**惡意**。 B. 惡意行為例子:垃圾郵件發行者試圖欺騙偵測系統。 **II. 對抗性範例 (Adversarial Example) 的定義與實例** A. 核心方法:在圖像上加入**人眼無法察覺**的微小雜訊。 B. 圖像表示:圖像被視為一個**長向量**,雜訊加在每個維度上。 C. 攻擊類型: 1. 沒有目標的攻擊 (Untargeted Attack):只求輸出結果不是原類別。 2. 有目標的攻擊 (Targeted Attack):要求輸出結果變成特定錯誤類別。 D. 圖像辨識實例:以 50 層 ResNet 測試。 1. 貓被成功攻擊成海星 ,且信心分數達 100%。 E. 錯誤性質:對抗性雜訊導致類神經網路產生**不合理**的判斷。 **III. 尋找攻擊雜訊的數學模型 (Optimization)** A. 核心目標:找到一張新圖片 $x$。 B. 損失函數 (Loss Function): 1. **沒有目標攻擊**:最小化一個 Loss $L(x)$,使其輸出 $y$ 與正確答案 $y_{true}$ 差距越大越好。 2. **有目標攻擊**:最小化一個 Loss,使其輸出 $y$ 遠離 $y_{true}$,且接近目標答案 $y_{target}$。 C. 限制條件:新圖片 $x$ 與原始圖片 $x_0$ 的距離必須小於 $\epsilon$(人類可感知極限)。 D. 距離計算方法: 1. $L_2$ 距離 (L2 norm)。 2. $L_{\infty}$ 距離 (L-infinity norm):取差異向量中**絕對值最大**的維度。 3. 人類感知:$L_{\infty}$ 距離被認為更符合人類感知,通常作為攻擊的限制。 **IV. 實施攻擊的方法** A. 解決方法:將輸入圖片 $x$ 視為網路參數,使用梯度下降 (Gradient Descent) 來最小化 Loss。 B. 限制處理:在每次更新後,若 $x$ 超出 $L_{\infty}$ 的允許範圍,就將其**拉回**到符合限制的位置。 C. **快速梯度符號法 (Fast Gradient Sign Method, FGSM)**: 1. 特點:一種**一級必殺**的攻擊方法。 2. 計算:只執行一次更新,將梯度取**符號** (Sign)(正一或負一)後乘上 $\epsilon$ 來更新 $x$。 3. 結果:更新後的 $x$ 必定落在 $L_{\infty}$ 約束範圍的**角落**。 D. 進階方法:可使用多次迭代的 FGSM (I-FGSM),但每次迭代後都需要將結果拉回約束範圍內。 --- ### 一、 對抗性攻擊的動機與目標 1. **實用性要求**:我們期待將訓練好的類神經網路用於真正的應用中。僅有高正確率是不夠的。 2. **惡意抵抗**:類神經網路必須能夠抵禦來自**人類的惡意**。 3. **惡意例子**:例如,在電子郵件偵測系統中,垃圾郵件發行者會想辦法**更動**郵件內容,試圖欺騙類神經網路,讓它不被分類為垃圾郵件。 4. 像是獵人裡面超強的蟻王「梅露艾姆」,即使是強大的存在,但最後因為不講武德的原子彈(薔薇炸彈)而被擊敗。 ### 二、 對抗性範例 (Adversarial Examples) 1. **生成方法**:對一張圖像(可視為一個**長向量**)在**每個維度**上都加入一個**微小的雜訊**。 2. **雜訊特性**:雜訊必須**小到人眼肉眼沒有辦法看出來**。加入雜訊後的圖片稱為**被攻擊的圖片**。 3. **目標**:讓類神經網路的輸出由正確答案(例如貓)變成其他東西。 4. **攻擊類型**: * **Untargeted Attack** (沒有目標的攻擊):只要類神經網路的輸出**不是原來的類別**(例如不是貓),就算成功。 * **Targeted Attack** (有目標的攻擊):要求類神經網路的輸出必須是**特定錯誤的類別**(例如變成海星)才算成功。 5. **實驗結果**:在一個 50 層的 ResNet 實驗中,輸入的貓圖像原本被判斷為 Cat,信心分數為 0.64。加入人眼看不出的雜訊後,類神經網路判斷為海星,且信心分數高達 1。 6. **錯誤的性質**:一般的雜訊會導致類神經網路做出有道理的錯誤,但對抗性雜訊會導致類神經網路產生**莫名的錯誤**。 ### 三、 尋找攻擊訊號的優化問題 尋找攻擊雜訊的過程其實是類似訓練模型的優化問題。 1. **網路與參數**:假設類神經網路是一個函數 $F$,輸入 $x$,輸出分類結果 $y$。此時類神經網路的參數是**固定**的。 2. **優化目標**:我們不再是調整類神經網路的參數,而是調整**輸入圖片** $x$,以最小化 Loss function $L$。 3. **損失函數 L (Loss Function)**: * **Untargeted Attack**:Loss $L$ 旨在使輸出 $y$ 與正確答案 $y_{true}$ 的差距越大越好。 * **Targeted Attack**:Loss $L$ 旨在使輸出 $y$ 與正確答案 $y_{true}$ 距離越遠越好,且與我們設定的**目標答案** $y_{target}$ 距離越近越好。 4. **限制條件**:我們必須限制新圖片 $x$ 與原始圖片 $x_0$ 之間的**距離** $D(x, x_0)$,使其必須小於某個閾值 $\epsilon$,這樣人類的肉眼才不會發現 $x$ 被修改過。 5. **距離計算 D (Distance Metrics)**: * $L_2$ 距離:計算 $x$ 與 $x_0$ 差異向量 $d$ 的 $L_2$ norm。 * $L_{\infty}$ 距離:計算 $x$ 與 $x_0$ 差異向量 $d$ 中,**最大絕對值**的那一個維度。 * **$L_{\infty}$ 的優勢**:在攻擊中,通常使用 $L_{\infty}$ 來當作限制,因為如果單一像素(維度)的變化太大,即使整體 $L_2$ 距離小,人類也可能察覺,而 $L_{\infty}$ 專注於避免最大變化量。 ### 四、 實施攻擊的方法與 FGSM 1. **梯度下降求解**:在沒有限制條件下,可以將輸入圖片 $x$ 視為網路參數,使用梯度下降 (Gradient Descent) 來最小化 Loss。 * **初始化**:從原始圖片 $x_0$ 開始尋找 $x$。 * **更新**:計算 Loss 對於 $x$ 的梯度 $\nabla_x L$,然後用 $\nabla_x L$ 來更新 $x$。 2. **處理 $L_{\infty}$ 限制**:在每次梯度更新之後,如果新的圖片 $x$ 與 $x_0$ 的距離超過了 $\epsilon$ 的限制,就必須執行一個**修復**動作:將 $x$ **拉回**到 $L_{\infty}$ 限制範圍內最接近 $x$ 的位置。 3. **快速梯度符號法 (FGSM)**:這是作業中會用到的簡單基礎攻擊方法。 * **概念**:它是一個**一級必殺**(One-shot)的攻擊。 * **運算**:更新公式中,它會計算 $\nabla_x L$,然後取 $\text{sign}(\nabla_x L)$(符號函數),即將梯度轉換為只有 **+1 或 -1** 的向量。 * **特性**:使用 $\text{sign}(\nabla_x L)$ 更新 $x$ 一次,會使 $x$ 剛好落在 $L_{\infty}$ 限制範圍的四個**角落**之一。 4. **多次迭代 FGSM (I-FGSM)**:雖然 FGSM 是一級必殺,但多跑幾次迭代 通常結果會更好。但在多次迭代中,必須確保每次更新後,若 $x$ 超出 $L_{\infty}$ 範圍,就要將其拉回。 ### 【機器學習2021】來自人類的惡意攻擊 (Adversarial Attack) (下) – 類神經網路能否躲過人類深不見底的惡意? 大綱 **I. 對抗性攻擊的類型** A. **白箱攻擊 (White-box Attack)**: 1. 定義:需要知道模型的參數才能計算梯度並攻擊。 2. 範例:FGSM 攻擊即屬於此類。 B. **黑箱攻擊 (Black-box Attack)**: 1. 定義:在不知道模型參數的情況下實施攻擊。 2. 挑戰:攻擊線上服務時,不知道模型參數 。 **II. 黑箱攻擊的實現方法** A. **方法一:代理網路攻擊 (Substitute Network)**: 1. 訓練:訓練一個替代的網路來模仿目標網路的行為。 2. 基礎:假設兩個網路如果用同樣的訓練資料訓練出來,它們會有一定程度的相似性。 3. 流程:對替代網路發動白箱攻擊,然後將攻擊後的圖像丟給目標網路。 4. 缺乏訓練資料的處理:若無訓練資料,可通過不斷查詢目標網路的輸入/輸出結果來訓練替代網路。 B. **方法二:遷移性/通用性 (Transferability)**: 1. 實證:黑箱攻擊相當容易成功。 2. 實驗比較:多個 ResNet 和 VGG 模型之間的攻擊遷移性。 3. 成功率:黑箱攻擊的成功率(正確率越低表示越成功)雖然比白箱攻擊高,但仍非常低,表明具有成功可能。 4. 限制:有目標的攻擊在黑箱情況下較難成功。 C. **增強黑箱攻擊成功率:集成網路 (Ensemble Network)**: 1. 方法:同時用多個不同的網路訓練出一個通用攻擊訊號。 2. 結果:這種集成攻擊可以大幅提高黑箱攻擊的成功率。 **III. 攻擊的潛在原因 (未解之謎)** A. **普遍性 **:不同網路對攻擊訊號的反應相似。 B. **視覺化證明**:圖像在嵌入空間中,往攻擊方向移動一小步,就會掉出正確辨識範圍。 C. **理論推測**:攻擊成功的根本原因可能源自於**資料集 (Dataset)** 的問題,而非模型本身。 **IV. 極端與通用攻擊類型** A. **One-pixel Attack**: 1. 方法:只更改圖片中一個像素 (pixel) 的顏色。 2. 效果:攻擊成功,但錯誤類型相對「有道理」 (例如,把 A 偵測成 B),不像傳統對抗攻擊那樣產生「不合理」的錯誤。 B. **Universal Attack**: 1. 方法:找到一個單一訊號 (signal) 可以成功攻擊所有圖片。 2. 應用:若成功,可直接將該訊號作用於攝影機,使其整個系統失效。 3. 實證:文獻證明通用攻擊是有可能成功的。 **V. 跨模態攻擊實例** A. **語音**:向合成的語音中加入人耳無法察覺的雜訊,可欺騙語音偵測系統,使其誤判為**真實的聲音**。 B. **文本**:在文章末尾加上特定的詞彙,可操縱問答系統的答案。 C. **物理世界**: 1. 人臉辨識:戴上特殊設計的眼鏡可騙過人臉辨識系統,使其將佩戴者誤判為另一個名人。 2. 交通標誌:通過貼貼紙或微調字體(例如將 35 的 3 拉長)可讓自駕車系統將限速標誌誤判為其他標誌。 **VI. Adversarial Reprogramming 和 Backdoor Attack** A. **Adversarial Reprogramming**:讓模型做它本來未被訓練做的事情。 1. 方法:在輸入圖片周圍加上雜訊,讓圖像分類模型 (ImageNet) 輸出去做**計數方塊**等不同的任務。 B. **Backdoor Attack**: 1. 方法:在訓練資料集中加入帶有微小問題(但標註正常)的圖片。 2. 結果:模型訓練完畢後,只會對該特定圖片辨識錯誤,對其他正常圖片仍保持高準確率。 3. 警示:警告公開資料集可能被植入惡意後門。 **VII. 防禦機制** A. **被動防禦 (Passive Defense)**:在模型前加一個**過濾器 (Filter)**,不改變模型參數。 1. 模糊 (Blurring):輕微模糊圖片即可有效破壞攻擊訊號。 2. 壓縮/解壓縮:對圖像進行壓縮再解壓縮,利用失真破壞攻擊訊號。 3. 生成器 (Generator) 重繪:利用生成器將圖像重繪 (還原),去除雜訊。 4. 弱點:若攻擊者知道防禦策略(例如知道有模糊層),可調整攻擊訊號,使其失效。 5. 隨機性防禦:引入隨機性操作(例如隨機縮放、隨機貼圖),增加攻擊難度。 B. **主動防禦 (Active Defense) / 對抗性訓練 (Adversarial Training)**: 1. 方法:在訓練過程中,用模型生成攻擊性圖片,並用正確標籤重新訓練模型。 2. 作用:相當於資料增強 (Data Augmentation),能強化模型並減少過度擬合 (Overfitting)。 3. 缺點:計算資源消耗大,且不一定能抵擋從未見過的新型攻擊方式。 --- ### 一、 對抗性攻擊的類型:白箱與黑箱 1. **白箱攻擊 (White-box Attack, Ybox)**: * 攻擊的前提是**必須知道**模型的參數。 * 需要計算梯度 (Gradient) 來確定攻擊訊號 (例如 FGSM 方法),計算梯度需要知道網路的參數。 * 因為需要知道模型參數,所以被認為在實際應用中(例如攻擊線上服務)的危險性較低。 2. **黑箱攻擊 (Black-box Attack, Blbox)**: * 攻擊時**不知道**目標網路的參數。 * 通常用於攻擊線上服務,使用者不知道參數。 * 黑箱攻擊是**有可能**成功的。 ### 二、 黑箱攻擊的實施方法 #### 1. Substitute Network 攻擊 * **訓練一個模仿網路**:在不知道目標網路參數的情況下,可以訓練一個**替代**的網路。 * **相似性原理**:如果替代網路和目標網路是使用**同樣的訓練資料**訓練出來的,它們之間會有一定程度的相似性。 * **攻擊流程**:對這個**替代網路**進行白箱攻擊(可以計算梯度),然後將攻擊生成的圖像丟到目標網路上,觀察攻擊是否成功。 * **缺乏訓練資料的對策**:如果不知道目標網路使用了什麼訓練資料,可以通過不斷向線上服務發送圖片,收集其**輸入/輸出結果**,將這些結果作為數據來訓練自己的替代網路。 #### 2. 攻擊的遷移性與普遍性 * **容易成功**:文獻結果顯示黑箱攻擊是非常容易成功的。 * **實驗比較**:在多個(ResNet 152、ResNet 101、VGG 等五個網路)的實驗中,非對角線區域代表黑箱攻擊。 * 對角線(白箱攻擊)的成功率(模型正確率)為 $0\%$(即 $100\%$ 攻擊成功)。 * 非對角線(黑箱攻擊)的成功率(模型正確率)雖然比白箱高,但都非常低(例如 $19\%$, $18\%$),這代表黑箱攻擊有相當程度的成功可能性。 * **Targeted Attack 的限制**:黑箱攻擊在要求輸出是**特定類別**(Targeted Attack)時,較難成功。 #### 3. 增強黑箱攻擊成功率:集成網路 (Ensemble Network) * **集成攻擊 (Ensemble Attack)**:同時使用多個不同的網路來訓練攻擊圖像,即要求一個攻擊圖像**能夠成功欺騙多個網路**。 * **效果**:當攻擊圖像成功騙過多個已知網路後,它也能夠非常容易地騙過一個參數未知的黑箱網路。集成攻擊後,模型正確率 (Success Rate) 基本都降到 $10\%$ 以下。 ### 三、 攻擊的潛在原因 1. **普遍性觀察**:研究發現,不同的網路(VGG16, ResNet50, GoogleNet)對於攻擊方向的影響是**非常相似的**。 3. **嵌入空間的可視化**: * 將圖片在高維空間中向一個**隨機方向**移動時,網路通常仍會將其判斷為原始類別。 * 但如果向一個**可攻擊方向**移動,圖片的向量只需稍微移動一下,就會立刻掉出正確辨識的區域範圍。 4. **理論推測**:有些研究者主張,對抗性攻擊之所以成功,其問題根源可能來自於**資料集**(Dataset),而非模型本身。因為在有限的資料上,模型可能學到了資料本身的某些特性,而這些特性容易被微小雜訊所利用。 ### 四、 極端與通用攻擊類型 1. **One-pixel Attack**: * 攻擊只改變圖片中**一個像素**的顏色。 * 在圖像分類任務中,成功讓模型判斷錯誤。 2. **Universal Attack**: * 目標是找到一個**單一的攻擊訊號**(一個雜訊圖案),這個訊號可以成功攻擊**所有圖片**。 * 應用潛力:若成功,可直接將該訊號貼在攝像頭上,使所有通過該攝像頭的影像辨識都失效。 * 文獻證明通用攻擊**是有可能成功**的。 ### 五、 跨模態與物理世界攻擊實例 1. **語音**: * 對一段合成的語音訊號加入**微小雜訊**(人耳聽不出差異),可以欺騙語音偵測系統。 * 結果:原本能被系統正確偵測為**合成音**的音檔,加入雜訊後會被系統判斷為**真實音頻**。 2. **文本**: * 在問答系統中,在文章末尾加入一個特殊短語(例如 "American people")。 * 結果:模型接下來無論被問什麼問題,答案都會變成 "American people",從而操縱系統輸出。 3. **物理世界攻擊 (3D World)**: * **人臉辨識**:有研究展示,戴上特殊設計的**眼鏡**(看似正常的眼鏡,但上面有攻擊訊號),可以騙過人臉辨識系統,使其將佩戴者誤判為另一個知名人物。 * 論文考慮了多個物體因素,例如**多角度觀看**、攝影機的**解析度限制**、以及列印顏色在真實世界的**偏差**等問題。 * **交通標誌**: * 在停車標誌上貼貼紙,讓汽車辨識系統將其辨識為其他交通標誌。 * 更有隱蔽性的攻擊:將標誌上的字體(例如限速 35 的 3)**稍微拉長**,人眼看不出差異,但自駕車系統(例如 Tesla)會將其誤判為限速 85。 ### 六、 進階攻擊 1. **Adversarial Reprogramming**: * 目標:利用現有的模型 (例如 ImageNet 分類器),讓它去做它**從未被訓練**去做的事情。 * 方法:在輸入圖片周圍加上一個攻擊訊號(雜訊),將方塊計數的圖片放入其中。 * 結果:原本只做圖像分類的模型,被操控後開始輸出代表方塊數量的特定類別(例如輸出 $\text{key}$ 代表 4 個方塊),如同模型被植入了**殭屍程式**。 2. **Backdoor Attack**: * 攻擊時間點:在**訓練階段**發動。 * 操作方式:在訓練資料集中,加入**正常標註**但**帶有問題**的圖片(例如帶有微小雜訊的魚圖,標註仍是魚)。 * 結果:訓練出的模型會對該特定圖片辨識錯誤(例如將魚誤判為 $\text{keyboard}$),但對其他圖片辨識仍是正確的。 * 潛在危險:這使得公開的資料集成為一個潛在的危險來源,可能有人植入惡意後門,讓模型在特定條件下被遠端控制。 ### 七、 防禦機制 防禦分為被動防禦和主動防禦兩類: #### 1. 被動防禦 (Passive Defense) * **概念**:模型參數不變,在模型前面增加一個**過濾器 (Filter)** 來削弱攻擊訊號的威力。 * **模糊 (Blurring)**: * **方法**:對輸入圖片進行輕微的模糊。 * **原理**:攻擊訊號是**非常特殊**且**脆弱**的。模糊會改變這個特殊訊號,使其失去攻擊的威懾力,從而讓模型輸出正確的結果。 * **副作用**:過度模糊會影響正常圖片的辨識信心分數。 * **壓縮/解壓縮**: * **方法**:將圖片進行有損壓縮 (Lossy Compression) 再解壓縮。 * **原理**:壓縮產生的失真會對脆弱的攻擊訊號造成較大傷害,從而破壞其攻擊性。 * **生成器還原 (Generator-based Defense)**: * **方法**:利用 **Generator** 重新繪製輸入圖片,使其看起來與輸入圖片一模一樣。 * **原理**:Generator 訓練時沒有看過攻擊雜訊,因此在重繪時會**遺漏**掉那些人眼不可見的微小雜訊,從而達到淨化效果。 * **被動防禦的弱點**:一旦攻擊者知道你使用的防禦機制(例如知道你在前面加了模糊層),他們就可以將防禦機制也納入攻擊的優化過程,從而產生可以**穿透**模糊層的攻擊訊號。 * **隨機性防禦 (Randomization)**:為了抵抗攻擊者猜測,可以在防禦中加入**隨機性**,例如:隨機改變圖片大小或隨機在灰色背景上貼圖。 #### 2. 主動防禦 (Active Defense) / 對抗性訓練 (Adversarial Training) * **概念**:在**訓練模型時**就強化其抵抗攻擊的能力。 * **操作流程**: 1. 訓練一個初始模型。 2. 利用該模型,對訓練資料集中的每張圖片**生成**一個攻擊性版本($X'$)。 3. 將這些被攻擊的圖片 ($X'$) 標上**正確的標籤**($Y$),並將其加入到原始訓練集中。 4. **重新訓練**模型。 * **效益**:這相當於一種**資料增強 (Data Augmentation)**,可以讓模型更健壯 (Robust)。 * **缺點**: * **防禦新攻擊困難**:如果實際攻擊使用的方法(例如 $F$) 在訓練時未被考慮(例如只用了 $A, B, C$ 攻擊),Adversarial Training 仍可能失效。 * **資源消耗大**:需要花費大量時間為訓練集中的每張圖片都生成攻擊性圖片,這是一個運算密集型 (Computationally Intensive) 的方法。 * **優化方案**:有研究提出無需額外計算資源即可達到 Adversarial Training 效果的方法。 [【機器學習2021】01~02 機器學習和深度學習基本概念簡介](https://hackmd.io/@JuitingChen/SyoNXkdslx) [【機器學習2021】03~08 機器學習任務攻略和最佳化技巧](https://hackmd.io/@JuitingChen/BJ6mXy_slg) [【機器學習2021】09~11 CNN 和 Self attention](https://hackmd.io/@JuitingChen/r1ahLgUngl) [【機器學習2021】12~13 Transformer](https://hackmd.io/@JuitingChen/H1tfXy_ige) [【機器學習2021】14~17 GAN](https://hackmd.io/@JuitingChen/S1adiwvhxg) [【機器學習2021】18~21 自監督式學習](https://hackmd.io/@JuitingChen/ryQG7J_sgl) [【機器學習2021】22~23 Auto-encoder](https://hackmd.io/@JuitingChen/r1sLPr92ge) [【機器學習2021】24~25 Adversarial Attack ](https://hackmd.io/@JuitingChen/HJ6jJIq3ge) [【機器學習2021】26~28 Explainable ML 和 Domain Adaptation](https://hackmd.io/@JuitingChen/SJZzQkdslg) [【機器學習2021】29-30 強化學習-1](https://hackmd.io/@JuitingChen/HJYziZR3gx) [【機器學習2021】31~33 強化學習-2](https://hackmd.io/@JuitingChen/Sy5DoWA3xl) [【機器學習2021】34~35 機器終身學習](https://hackmd.io/@JuitingChen/BytWmyuilg) [【機器學習2021】36~37 神經網路壓縮 ](https://hackmd.io/@JuitingChen/Bk7-m1_jlx) [【機器學習2021】37~40 Meta Learning](https://hackmd.io/@JuitingChen/SkkC6rT2gl)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up