使用對抗樣本攻擊機器學習
TL;DR
對抗樣本是故意設計的輸入,會導致機器學習模型出錯,就像機器的「光學幻覺」。其存在表明即使是簡單的現代演算法也可能以設計者未預期的方式行為,這代表著 AI 安全的一個具體且緊迫的挑戰。
理解對抗樣本
對抗樣本是專門製作的輸入,旨在欺騙機器學習模型錯誤分類數據或執行錯誤操作。這些擾動通常非常微妙,以至於人類難以察覺,但對 AI 系統卻非常有效。
跨媒介漏洞
對抗攻擊具有穩健性,並可在多種格式中顯現:
- 數位影像:在熊貓圖像上添加微小擾動,可導致模型高度確信地將其識認為長臂猿。
- 實體世界:對抗樣本可印在普通紙上並用智慧手機拍照,仍能成功欺騙分類器(例如將「洗衣機」標記為「保險箱」)。
- 關鍵基礎設施:攻擊者可能使用貼紙或塗料修改停車標誌,導致自動駕駛車輛將其解讀為「讓道」標誌或其他標記。
對強化學習(RL)的影響
除了圖像分類,強化學習代理也容易受到影響。涉及 DQN、TRPO 和 A3C 演算法的研究顯示,對抗輸入會降低性能,導致代理在彈球遊戲中將板子朝錯誤方向移動,或在 Seaquest 中無法發現敵人,即使擾動對人類而言太微細無法感知。
嘗試的防禦方法及其局限性
傳統的穩健技術,如權重衰減和 dropout,通常對對抗樣本無效。只有兩種專門方法提供了顯著的防禦,儘管兩者仍易受攻擊者增加運算能力的影響。
有效的防禦策略
- 對抗訓練:一種暴力方法,模型會明確地在大量生成的對抗樣本上進行訓練,以防止被它們欺騙。
- 防禦蒸餾:一種策略,模型被訓練為輸出不同類別的機率,而不是硬決策。這些機率來自先前在同一任務上訓練的模型,這會平滑模型的表面,使攻擊者更難找到可利用的調整。
Gradient Masking 的失敗
「Gradient masking」描述一類失敗的防禦,試圖阻止攻擊者獲得有用的梯度。由於多數攻擊利用模型的梯度來決定如何擾動輸入以增加錯誤類別的機率,遮蔽梯度(例如僅輸出最可能的類別而非機率)看似有效。
然而,gradient masking 失敗的原因有:
- Persistence of Vulnerabilities:模型防禦中的「漏洞」仍然存在;攻擊者只是尋找它們的線索變少了。
- Substitute Models:攻擊者可以訓練一個「替代模型」——一個平滑的副本,透過觀察其標籤來模仿被防禦的模型。然後攻擊者使用該替代模型的梯度來生成對抗樣本,這些樣本常能成功欺騙原始被防禦的模型。
OpenAI 指出,對抗訓練和防禦蒸餾無意間執行了一種 gradient masking 的形式,常導致模型變平坦,而不是確保更多點被正確分類。
為什麼防禦對抗樣本很困難
保護機器學習模型免受對抗攻擊是一個複雜的研究問題,原因有以下幾個基本因素:
- 理論模型不足:對抗樣本是非線性與非凸優化問題的解。由於缺乏描述這些解的理論工具,很難證明某種防禦能排除特定的一組對抗樣本。
- 輸入空間複雜度:模型必須對所有可能的輸入產生正確輸出,但目前多數模型僅在它們可能遇到的所有輸入的一小部分上表現良好。
- 非自適應防禦:多數目前的策略不是自適應的;它們可能阻擋特定的攻擊,但對了解防禦機制的攻擊者而言,其他漏洞仍然開放。