AI 的對抗樣本:為什麼加一點雜訊就認錯
二、為什麼一點雜訊就能讓 AI 認錯?揭開模型運作的內幕
很多人第一直覺會認為:模型認錯,應該是因為「訓練資料不夠多」或「模型不夠大」。但對抗樣本最反直覺的地方在於——模型越大、越準,往往同樣脆弱,甚至可能更脆弱。這說明問題不是「學得不夠」,而是「學的方式」本身存在結構性弱點。以下從三個角度拆解。
高維空間的線性假說:雜訊不是雜訊,是方向
2014 年,Goodfellow 等人提出了著名的「線性假說」來解釋對抗樣本。其核心想法是:在深度學習中,模型在局部通常近似線性。假設某個類別的分數可以寫成輸入與權重向量的內積 w·x,那麼如果我們把輸入往 sign(w) 的方向加上一個極小的擾動 ε,每個維度都貢獻一點點,累積起來的內積變化量正比於 ε·||w||₁。
關鍵就在這裡:影像的維度非常高(例如 224×224×3 已經超過十五萬維)。即使每個像素只改動一點點,乘上維度數量後,總效果會被放大到足以跨越決策邊界。對人眼而言,這麼小的改動分散在十五萬個維度上,根本看不出來;但對模型而言,這是一個系統性、方向一致的推力。
換句話說,「一點雜訊」其實一點都不小。它在高維空間中是一個精心選定的方向,而不是隨機抖動。隨機雜訊要被模型忽略比較容易,因為它方向混亂、互相抵銷;但對抗性雜訊是「眾志成城」,每個像素都朝同一個目標貢獻力量。
模型學的是「特徵」還是「捷徑」?分佈外泛化的困境
另一個更根本的原因,是模型學到的可能不是我們以為的「語意特徵」,而是一些人眼不重視、卻在訓練資料中與標籤高度相關的「捷徑特徵」。例如,模型可能靠著背景的顏色、紋理、某個邊角的圖案來判斷類別,而不是真的理解「貓」的形狀。這類特徵在訓練分佈內非常有效,因此測試準確率很高,但一旦遇到稍微偏離分佈的輸入,就會崩潰。
對抗樣本正是利用了這種「特徵選擇的偏差」。攻擊者不需要真的把熊貓變成長臂猿,只需要在模型依賴的那個捷徑特徵上動手腳,就能翻轉預測結果。從這個角度看,對抗樣本暴露的不是模型「不夠聰明」,而是模型「聰明得不是地方」。
近年來關於「紋理偏誤」、「背景偏誤」的研究也呼應了這一點:許多影像模型對紋理極度敏感,對形狀反而不夠重視,這與人類視覺的偏好正好相反。對抗樣本可以說是把這種偏差放大到極致的探針。
決策邊界太靠近資料:一推就過界
第三個角度是幾何的。分類模型的本質是在高維空間中切出決策邊界。如果訓練資料點距離決策邊界太近,那麼只要稍微移動資料點,就會落入錯誤的區域。而深度神經網路的決策邊界往往非常「尖銳」且貼近資料點,這使得模型在訓練資料周圍的容錯半徑極小。
這也解釋了為什麼對抗樣本經常出現在「模型很有信心」的區域:模型不是因為不確定而犯錯,而是因為它的邊界形狀本身就不符合人類的直覺。人類認為「這張圖 99% 是熊貓」,是因為我們看到整體語意;模型認為「這張圖 99% 是長臂猿」,是因為它沿著某個高維方向量測到的數值剛好越過了邊界。
三、對抗攻擊的種類與實戰手法
了解原理之後,我們來看看實務上攻擊是怎麼被執行出來的。這部分對於評估自身系統風險特別有幫助,因為不同攻擊手法的威脅模型(Threat Model)差異很大。
白盒攻擊:FGSM、PGD 與 C&W
白盒攻擊是最基礎也最具代表性的類別,常見演算法包括:
白盒攻擊的意義在於:它代表了「攻擊者完全了解你的模型」這個最壞情況。如果一個防禦方法連白盒攻擊都擋不住,那它在真實世界中的價值就很有限。
黑盒攻擊:遷移攻擊與查詢攻擊
真實世界中,攻擊者通常拿不到模型權重,因此黑盒攻擊更貼近實際威脅。主要策略有兩種:
黑盒攻擊提醒我們:只要模型對外提供服務,就存在被探測的可能。API 的呼叫頻率限制、異常查詢偵測,都是必要的營運層防護。
物理世界攻擊:貼紙、眼鏡與對抗 T 恤
物理世界攻擊把對抗樣本從實驗室帶到現實。經典案例包括:在停車標誌上貼上特定圖案,讓自駕車辨識成「限速標誌」;戴上特殊花紋的眼鏡,騙過人臉辨識系統;穿著帶有對抗紋理的衣物,讓行人偵測模型「看不到」人。
這類攻擊的難點在於要克服視角、光線、距離、解析度等變因,因此研究者通常會使用 EOT(Expectation Over Transformation)等技巧,在生成擾動時就把這些變換納入考量,讓對抗樣本在多种拍攝條件下都能生效。物理攻擊的存在,是 AI 安全從「數位問題」升級為「實體安全問題」的關鍵分水嶺。
四、對抗樣本的風險:從人臉辨識到自駕車
對抗樣本不只是實驗室裡的趣味現象,它對應的是一系列真實世界的風險場景。以下列舉幾個最具代表性的領域:
值得注意的是,這些風險的嚴重程度取決於「攻擊成本」與「防護收益」的比較。對一般應用而言,攻擊者未必有動機與能力進行精密攻擊;但對於高價值目標(金融、國防、關鍵基礎設施),對抗樣本就是必須嚴肅面對的威脅。
五、防禦之道:如何讓 AI 更「穩」
面對對抗樣本,學術界與產業界提出了多種防禦思路。必須先說一個誠實的結論:目前沒有一種防禦能同時保證高準確率與對所有攻擊的穩健性。防禦本質上是一場持續的軍備競賽。以下介紹幾個主要方向。
對抗訓練:讓模型「見怪不怪」
對抗訓練(Adversarial Training)是目前被公認最有效的防禦方法之一。做法是在訓練過程中,即時生成對抗樣本並加入訓練資料,讓模型學會在這些「最壞案例」上仍然給出正確答案。常見的變體包括使用 PGD 生成訓練樣本、或以 TRADES 等方法在準確率與穩健性之間取得平衡。
對抗訓練的代價是訓練成本大幅上升(每次迭代都要多做幾次前向與反向傳播),而且往往會犧牲一部分乾淨資料上的準確率。此外,它主要對「訓練時見過的攻擊類型」有效,面對新型攻擊仍可能失效。
輸入淨化與隨機化:先洗掉雜訊再說
這類防禦不改變模型本身,而是在輸入進入模型前進行處理,例如:壓縮、降噪、量化、隨機縮放與平移、加入隨機雜訊等。其邏輯是破壞對抗擾動中「精心設計的方向性」,讓攻擊失效。
這類方法實作簡單、成本低,對黑盒攻擊有一定效果,但對自適應攻擊(攻擊者知道你有淨化步驟)通常效果有限。此外,過度淨化也可能損害正常輸入的資訊,導致準確率下降。
認證防禦與形式化驗證:給出「保證」
認證防禦(Certified Defense)的目標不是「擋住某種攻擊」,而是數學上保證:在擾動半徑 ε 之內,模型的預測不會改變。常見方法包括隨機平滑(Randomized Smoothing)、區間界限傳播(Interval Bound Propagation)等。
這類方法的優點是提供了可驗證的安全保證,對於安全關鍵系統極具吸引力;缺點是目前能認證的擾動半徑通常仍偏小,且計算成本較高,離大規模實用還有一段距離。
模型架構與訓練策略的調整
除了上述方法,研究者也嘗試從模型設計著手,例如:增加模型容量、使用集成模型(Ensemble)、引入注意力機制以強化語意特徵、或者透過特徵壓縮減少可被攻擊的維度。也有研究嘗試在損失函數中加入梯度正則化,讓模型對輸入擾動不那麼敏感。
需要強調的是,「梯度遮蔽」(Gradient Masking)不是防禦。有些方法只是讓梯度難以計算,營造出「擋住攻擊」的假象,但一旦攻擊者改用遷移攻擊或估計梯度,防線就會崩潰。評估防禦時,一定要用多種攻擊、包含自適應攻擊來檢驗。
防禦的現實挑戰
綜合來看,防禦的困難在於:
未知攻擊的威脅:防禦通常針對已知攻擊設計,但攻擊者會不斷進化。
六、對抗樣本其實是理解 AI 的鑰匙
如果只把對抗樣本視為「AI 的缺陷」,那就錯過了它更大的價值。事實上,對抗樣本已成為研究神經網路內部機制的重要工具。透過觀察哪些微小擾動能改變預測,研究者可以反推模型依賴哪些特徵、決策邊界長什麼樣子、以及不同層級學到了什麼。
例如,對抗樣本幫助我們理解「模型的注意力放在哪裡」;它也促成了對「分佈外泛化」、「捷徑學習」、「特徵脆弱性」等問題的深入討論。從這個角度看,對抗樣本就像是對 AI 系統進行的一次「壓力測試」,逼我們去面對模型的真實行為,而不是只看漂亮的測試準確率。
此外,對抗樣本也有正面應用:例如用對抗擾動保護個人照片不被未經授權的人臉辨識系統辨識;用對抗性輸入來檢測模型是否過度依賴某些偏見特徵;甚至在隱私保護、模型浮水印等領域,對抗技術都找到了新的用途。
七、給開發者與企業的實務建議
對於正在把 AI 導入產品或營運流程的團隊,以下是幾點實務上的建議:
結語:雜訊背後,是我們對「智慧」的理解缺口
「加一點雜訊就認錯」聽起來像是 AI 的荒謬缺陷,但它其實精準地戳中了當前深度學習的核心問題:模型學到的東西,與人類以為它學到的東西,存在落差。對抗樣本把這個落差放大、可視化,讓我們不得不正視模型的脆弱性。
從長遠來看,對抗樣本不會是 AI 發展的終點,而是一個必經的磨合過程。就像軟體工程從「能跑就好」走向「安全開發生命週期」,AI 也正在從「準確率競賽」走向「穩健性與可信度競賽」。誰能更早建立對抗樣本的意識、更早把穩健性納入設計,誰就能在 AI 落地的下半場取得優勢。
下次當你看到一張被加了一點雜訊、卻讓模型徹底認錯的圖片時,不妨換個角度想:那不是 AI 的失敗,而是我們終於有機會看見它真正的樣子。理解雜訊,才能理解模型;理解模型,才能真正讓 AI 變得可靠。
```