對抗樣本的反思:僅僅設置更小的擾動閾值 ε,或許並不夠
- 2019 年 10 月 4 日
- 筆記
作者:栗峰
編輯:叢末
對抗樣本是各種機器學習系統需要克服的一大障礙。它們的存在表明模型傾向於依賴不可靠的特徵來最大限度的提高性能,如果受到干擾,可能會導致錯誤分類,帶來潛在的災難性後果。對抗性樣本的非正式定義可以認為是,輸入被以一種人類難以察覺的方式修改後,機器學習系統會將它們錯誤分類,而沒有修改的原始輸入卻能被正確分類。下圖就說明了這種情況:

圖 1:原始影像(左),對抗雜訊(中間),被干擾的影像被錯誤地分類為 2(右)
左側的「7」是原始輸入,模型能夠正確地將它識別為「7」,但將它與中間的對抗雜訊疊加後,模型卻將它錯誤地識別為「2」。
對抗樣本的正式定義如下:

圖 2:對抗性樣本的定義
其中 ? 是我們嘗試最大化的損失函數,?_orig 是原始影像,δ 是干擾因子,y 是基準標籤,選擇 ε 以確保被擾動影像看起來不太嘈雜,並且看起來仍然像是人類的原始影像。一些攻擊(例如 FGS,IGS 和 PGD)會使用 L-∞ 範數來約束被擾動的影像和原始影像之間的距離。在這篇文章中,我們將探討為 MNIST 數據集挑選合適 ε 的難點。我們還將研究「生成對抗樣本」的最新技術,這種技術不依賴於擾動原始影像,但我認為這種技術事實上並不嚴格符合對抗樣本的定義。
1.MNIST 距離分析
讓我們先來簡單分析一下同類和不同類影像之間的平均距離。也許這些距離可以幫助我們以一種更客觀的、量化的方式來選擇 ε 。
我們從每一個類中抽取 100 個隨機影像,並計算在不同範數下影像之間的平均成對距離。下圖只顯示了 L-2 範數(以避免混亂),主要是因為 L-∞範數熱圖在每個單元格中只有一個 1,並沒有其它資訊。

圖 3:L-2 規範訓練集距離,相應程式碼可查看 ipynb 文件:http://bit.ly/2Q82Feo
一個合理的假設是,這個熱圖的對角線元素(類內距離)應該低於同一行或同一列中的非對角線元素(類間距離)。然而,與上面說到的情況會有一些不同,類「2」更接近類「1」,而類「8」也更接近類「1」。這猛一看會讓人很吃驚,但它其實表明給定數字的樣式變化可能導致比在數字之間的切換造成更多的像素差異。我們可以這樣來理解,對於每一個數字,都會有一組像素不因該數字的不同樣式而改變,但當兩個不同數字的不變組具有很高的重疊時,就會出現上述的意外結果。
那麼這對 ε 的選擇有什麼影響呢?
2.選擇 ε
根據 Madry 等人[1]的研究,當使用 L-∞範數時,ε一般設置為 0.3;而當使用 L-2 範數時,一般設置為 4.5 這樣大的數值。
如果我們在 L-∞範數下取極端值ε= 1.0,我們將無法控制被擾動影像的基本真值類,並可能最終生成一個無論對於人類還是我們的分類模型來說都是不同類的影像。
於是這就允許我們在訓練集和測試集影像之間進行插值:x'= rx_train *(1-r)x_test。如果我們的模型碰巧對 x_test 進行錯誤分類,那麼它將被標記為對抗性的。因此,下面這兩個條件應當得到保證:
- 在將原始影像 x 與其擾動版本 x'並列比較時,人類無法察覺到這種擾動;
- 擾動不會導致相同數字的影像之間進行插值,否則會使對抗魯棒性與泛化性能相混淆。 對於給定的數字 d 和測試集影像 x_correct 和 x_false,我們的模型分別對它們進行了正確和錯誤的分類,一個簡單的對抗攻擊就是將 x_correct 轉換為 x_false。
對於觀察者來講,條件(1)通常意味著條件(2)。那麼,條件(2)是否意味著條件(1)呢?ε= 0.3 當然滿足條件(2),因為所有影像的 L-inf 距離都接近 1.0。讓我們來看看如果生成如下 2 個類的組合的影像會發生什麼。

圖 4:在 L-∞距離約束下的平均影像
將原始影像和精製影像之間的 L-∞距離限定為 ε ,但任何人類都可以輕鬆區分兩個影像之間的差異,如下圖所示:

圖 5:在原始ε= 0.3 L-inf 距離內製作的影像
很明顯,最右邊的影像有一些不足之處。事實上,如果沒有被告知這是一個由 0 和 1 組合而成的影像,有些人可能會說它只是一個抽象的符號。
因此,通過這個簡單的例子,我們可以看出 ε= 0.3 違反條件(1)。其它較小的值如 ε= 0.2 也會得到類似的結果。MNIST 數據集允許輕鬆識別被擾動的像素。在很多情況下,僅通過簡單地檢查是否對背景像素進行了修改,就可以為對抗樣本創建檢測機制。但如果攻擊者知道有這種檢測機制,那麼他們可以繞過這種(Carlini and Wagner[ 2 ])。
那我們又該怎麼選擇 ε 呢?
一種方案就是對不同的影像使用不同的ε。對於某些類,很容易判斷在數字本身的邊界框內是否已經更改了像素,如上面的例子所示。對於這些類,ε 應該設置為較小的值。
此外,當用於計算影像空間中的距離時,諸如 L-2 或 L-∞的典型範數沒有語義相似性的概念。如果他們能夠在輸入空間中給出影像之間的語義相似性,那麼就有可能構建一個簡單的 KNN 影像分類器,並能輕鬆超越過去 7 年中卷積神經網路的成就。
一個可能的方案是使用度量學習中的技術。通過學習嵌入,這些嵌入之間的 L-2 或 L-∞距離包含語義相似性的概念,那麼我們可以在這個嵌入空間(而不是輸入空間)中調整ε。

圖 6:三重網路的作用
有一種被稱為三重網路(triplet networks)的技術使用的正式這種方案。三重網路將 3 幅影像同時傳遞給同一個嵌入網路來並行運行,並通過類 y 的錨,以及同一類的正例(+)和不同類 y'的負例(-)。損失函數確保了錨和正例之間的距離至少小於錨和負例之間的距離。
使用像三重網路這樣的度量學習技術仍然需要手動驗證,以確保選擇的ε不會太大,以至於允許在類上發生變化。此外,我們必須考慮條件(2),它表示我們不應該使用擾動從數據集中的一個影像跳轉到同一個類的另一個影像。
PGD 的攻擊是在損失函數梯度方向上迭代增加損失,然後將得到的影像投影到滿足原始影像距離約束的輸入子空間上。在這裡,我們可以不在輸入子空間上進行投影,而是在剛才提到的使用度量學習演算法的嵌入空間進行投影。
3.生成對抗樣本
傳統上,對抗樣本都是通過使用反向製造噪音的方法干擾一些已經存在的影像。而 Song 等人[3]則提出了一種非常酷的生成對抗樣本的方法,他們使用 GAN 直接從頭開始生成能夠欺騙被攻擊模型的影像。
具體來說就是,他們使用了一個輔助分類器 GAN(AC-GAN),能夠對影像類進行條件設置,以便控制正在生成的影像類型。這導致會生成「不受限制的對抗樣本」,因為沒有約束距離(影像是從頭開始生成的)。
不過這裡需要強調,他們的方法既不滿足前面提到的條件(1)也不滿足條件(2)。
雖然他們的技術非常有用,並且用生成能夠欺騙模型的新影像可以進行模型調試以及數據增強,但他們的分析卻將泛化性能和對抗性魯棒性看做一回事。
事實上,若想正確分析模型的魯棒性,我們需要能夠將泛化性能和對抗魯棒性這兩個指標分開,因為它們並不一樣,具體可以參看 Tsipras 等人[4]最新的研究工作。
因此,儘管人們可能會放棄「基於干擾的對抗樣本」的定義,但就目前而言,它們是唯一允許以獨立的、非混淆的方式研究對抗魯棒性的方法。
4. 總結
對於諸如 MNIST 這類的數據集,對抗樣本的當前定義還存在著些許不足,但是對於類似 ImageNet 的內容還是很有意義的,因為在 ImageNet 中干擾因子很難被注意到,也不會使影像看起來像是奇怪的組合。對每個影像或每類影像使用相同的閾值 ε 可能是一種懲罰性要求,因為這會更容易檢測特定類別影像的雜訊。
影像是一種可視化的數據類型,人類自然容易分析和判斷是否有可疑的東西存在。然而,在很多領域中,數據都是以數字的抽象向量的形式出現,這些向量很難理解和可視化。在這些領域中定義什麼是對抗可能已經超出了我們想像的範圍,因為我們一開始就無法理解原始數據。在這種情況下,提出 ε 的定量方法是必須的。
via:http://1t.click/akDc
參考文獻:
[1] Madry et al. https://arxiv.org/pdf/1706.06083.pdf
[2] Carlini and Wagner, https://arxiv.org/pdf/1705.07263.pdf
[3] Song et al. https://arxiv.org/pdf/1805.07894.pdf
[4] Tsipras et al. https://arxiv.org/pdf/1805.12152.pdf