熱線電話:13121318867

登錄
首頁精彩閱讀你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義
你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義
2019-10-10
收藏
你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

作者 | Alex Adam

來源 | 機器之心

很多人都大概了解對抗樣本是什么:在數據中加入人眼不可察覺的擾動,使得模型對數據的標簽預測發生混淆和錯誤。但是,這句話背后的技術細節是什么?怎樣才能確保生成的對抗樣本符合這樣的定義?本文深入解析了對抗樣本背后的數學定義,并幫助讀者重新理解對抗樣本的定義。

對抗樣本是各種機器學習系統需要克服的一大障礙。對抗樣本的存在表明模型傾向于依賴不可靠的特征來最大化性能,如果特征受到干擾,那么將造成模型誤分類,可能導致災難性的后果。對抗樣本的非正式定義:以人類不可感知的方式對輸入進行修改,使得修改后的輸入能夠被機器學習系統誤分類,盡管原始輸入是被正確分類的。這一修改后的輸入即被稱為對抗樣本。下圖闡明了這一概念:

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

原始圖像(左圖),對抗噪聲(中圖),擾動后的圖片即對抗樣本(右圖)被錯誤地分類為數字 2

對抗樣本的正式定義如下所示:

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

對抗樣本的定義

其中 L 是我們試圖最大化的損失函數,x_orig 是原始圖像,是擾動,y 是真實標簽,所選的ε用于確保擾動后的圖像看上去沒有那么雜亂,并且對于人類來說仍然像是原始類別的圖片。

一些攻擊,如 FGS,IGS 和 PGD 都使用 L-∞范數來約束擾動圖像和原始圖像之間的距離。在這篇文章中,我們將探討對于 MNIST 數據集選擇ε的難點。我們也將看看最近有關不依賴于在原始圖像上進行擾動而生成對抗樣本的技術,探究這樣生成的圖片是否滿足對抗樣本的定義。

MNIST 圖像距離分析

讓我們首先簡單分析一下相同類別圖像以及不同類別圖像之間的平均距離。也許這些距離能夠幫助我們以一種更量化更客觀的方式選擇ε。我博客上有一個包含這一分析的 Jupyter notebook (http://alexadam.ca/ml/2019/09/05/adversarial-examples-rethinking-the-definition.html)。

我們從每個類別中隨機采樣了 100 張圖片,在不同的范數下計算兩兩圖像距離的平均值。這里只展示 L-2 范數的結果以避免混亂,同時也因為 L-∞范數的熱力圖在每個 cell 中都是 1,沒有提供什么有用的信息。

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

L-2 范數訓練集距離

一個合理的假設是處于熱力圖對角線上的元素值(類內圖像的距離)應該要比同一行/列中的非對角線上的元素(類間圖像距離)小。然而,上圖的結果中數字 2 的類內距離 10.1 大于數字類別 2 與數字類別 1 的類間距離 9.8,數字類別 8 的類內距離 9.4 大于數字類別 8 與 1 之間的距離 9.3。這起初讓人驚訝,但它只是表明,對于一個給定的數字,相比切換成另一個類別的數字,樣式上的變化可能會可能會造成更多像素上的差異??梢哉J為對于每一個數字,有一個不變的像素集,它不會隨圖片而改變,當兩個數字的不變集高度重合時,像上圖那種意料之外的結果就有可能發生。

選擇ε

當談到選擇ε的時候,這一切意味著什么呢?當使用 L-∞范數時,ε最常見的值是 0.3,對于 L-2 范數而言一個比較大的值是 4.5 。對于 L-∞范數,如果我們考慮最極端的值ε=1.0,我們將無法控制擾動圖像的真實類別,并可能最終生成一個使得人類和圖像分類模型都誤識別為其它類別的圖像。這也允許我們在訓練集和測試集之間任意篡改圖像 x』 = rx_train * (1-r)x_test,如果我們的模型恰好錯誤分類了 x_test,那么該圖像將被標記為對抗樣本。這里有很多限制條件必須要滿足:

  1. 我們希望所允許的擾動對于人類而言是不可感知的,哪怕當原始圖像 x 和擾動版本 x' 進行并排比較時,擾動也難以發現。
  2. 我們希望擾動不會導致相同數字的圖像之間的篡改。否則這會混淆對抗攻擊中的魯棒性和泛化性。對于一個給定的數字,測試集圖像 x_correct 和 x_false 分別被我們的模型正確和錯誤分類,一個普通的對抗攻擊將把 x_correct 轉換為 x_false。

根據觀察,(1) 通常暗含 (2)。ε=0.3 當然滿足 (2),因為所有圖像的 L-∞距離接近 1.0。讓我們看看如果我們生成如下的結合了兩個類別的圖像將會發生什么。

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

在 L-∞距離約束下的均值圖像

將原始圖像和精心擾動的圖像之間的 L-∞距離限制到ε,但是任意一個人類觀察者都能輕易地發現兩張圖之間的區別,如下圖所示:

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

與原始圖像的 L-∞距離在ε=0.3 之內精心制作的擾動圖像

很明顯,最右邊的圖像有一些不足。事實上,如果沒有被告知這是一張數字 0 和數字 1 圖片的組合,有的人可能會說它只是一個抽象的符號。因此,用這樣一個簡單的例子,我們已經表明 ε=0.3 違反了條件 (1)。即使給一個更小的值,比如ε=0.2,也會得到類似的結果。MNIST 讓我們輕易地識別出擾動的像素。在許多情況下,通過簡單檢查背景像素是否修改來為對抗樣本創建檢測機制是微不足道的。如果攻擊者知道了這種檢測機制,就能夠繞過它。那我們要如何選擇ε呢?

這里給出一個對每張圖片并不使用相同ε的例子。對于一些類別,數字本身圍成的框內是否發生了像素的變化更容易被發現,就像上圖中的 0 那樣。對于這種類別,ε應該設置成一個更小的值。

此外,對于像 L-2 或者 L-∞這樣的典型范數用于計算圖像距離時是沒有包含圖像的語義相似性的。如果能夠在輸入空間中給出圖像間的語義相似度,那么構造一個簡單的 KNN 圖像分類器就能干掉卷積神經網絡在過去 7 年來的進步。對于這個問題,可能的解決方案是使用度量學習(metric learning)。通過學習嵌入,這些嵌入之間的 L-2 或者 L-∞距離包含語義相似性,那么我們就可以在這個空間而不是輸入空間中調整ε。

還有種這樣的技術叫做三胞胎網絡 (triplet networks)。三胞胎網絡通過同時將 3 張圖片一次傳遞到三個相同的嵌入網絡并行運行。類別 y 的 anchor 通過時,會伴隨著一個同類別的正樣本和一個不同類別 y』的負樣本。損失函數將確保 anchor 和正樣本之間的距離至少比 anchor 和負樣本之間的距離小。

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

三胞胎網絡示意

使用像三胞胎網絡這樣的度量學習技術仍舊需要手動實驗驗證以確保ε沒有過大以至于類別發生改變。此外,我們必須考慮條件 (2),我們不能利用擾動使得我們數據集中的一張圖像被分為另外一張相同類別的圖像。像 PGD 這樣的攻擊方法是在損失函數的梯度方向迭代地移動以增加損失,然后將結果圖像映射到滿足原始圖像距離約束的輸入子空間。不是在輸入空間中做這一映射,而是使用我們的度量學習算法在嵌入空間上完成。

你真的懂對抗樣本嗎?一文帶你重新認識對抗樣本背后的含義

生成式對抗樣本

有篇非??岬恼撐慕榻B了一種新的制作對抗樣本的方法。不是使用精心制作的對抗性噪聲擾動已有的圖片,而是使用 GAN 從頭生成能夠愚弄目標模型的圖片。

具體來說,他們使用一個輔助分類器 GAN(AC-GAN),能夠對圖像類別進行調節,以便控制所生成圖像的類別。這產生了「無約束對抗樣本」,因為從頭生成的圖像沒有距離可供約束。

然而,這并不滿足先前提及的標準 (1) 或 (2)。盡管他們的方法很有用,也允許模型調試和通過生成新的能使模型失敗的圖片進行數據增強,但他們的分析將泛化性能和對抗的魯棒性看作同一件事。為了恰當地分析模型的魯棒性,我們需要能夠分開泛化性能和對抗魯棒性兩個指標,因為它們彼此不一致 。因此,盡管拋棄對抗樣本的基于擾動的定義是十分誘人的,但是現在它們是唯一能夠以獨立的、非混淆的方式研究對抗魯棒性的方法。

總結

對抗樣本的當前定義對于像 MNIST 這樣的數據集來說存在些微的缺陷。盡管對于 ImageNet 這樣的數據集來說更有意義,因為向它添加擾動更難被人注意到,也不會使得圖片看上去像是不同類別的奇怪組合。

對于每張圖片或類別使用相同的閾值ε并不是一個好的打算,因為很容易就能檢測出特定類別圖像上的噪聲。圖像是一種對于人類而言很輕易就能分析和評判出是否有可疑痕跡的數據類型。然而,在許多領域里的數據是以數字的抽象向量形式出現的,這些向量很難理解和可視化。在這些領域中定義什么是對抗樣本可能會超出我們的想象極限,因為我們本來就不理解原始數據。在這樣的情況下,用定量的方法選取ε是十分必要的。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢