
作者 | Alex Adam
來源 | 機(jī)器之心
很多人都大概了解對抗樣本是什么:在數(shù)據(jù)中加入人眼不可察覺的擾動,使得模型對數(shù)據(jù)的標(biāo)簽預(yù)測發(fā)生混淆和錯誤。但是,這句話背后的技術(shù)細(xì)節(jié)是什么?怎樣才能確保生成的對抗樣本符合這樣的定義?本文深入解析了對抗樣本背后的數(shù)學(xué)定義,并幫助讀者重新理解對抗樣本的定義。
對抗樣本是各種機(jī)器學(xué)習(xí)系統(tǒng)需要克服的一大障礙。對抗樣本的存在表明模型傾向于依賴不可靠的特征來最大化性能,如果特征受到干擾,那么將造成模型誤分類,可能導(dǎo)致災(zāi)難性的后果。對抗樣本的非正式定義:以人類不可感知的方式對輸入進(jìn)行修改,使得修改后的輸入能夠被機(jī)器學(xué)習(xí)系統(tǒng)誤分類,盡管原始輸入是被正確分類的。這一修改后的輸入即被稱為對抗樣本。下圖闡明了這一概念:
原始圖像(左圖),對抗噪聲(中圖),擾動后的圖片即對抗樣本(右圖)被錯誤地分類為數(shù)字 2
對抗樣本的正式定義如下所示:
對抗樣本的定義
其中 L 是我們試圖最大化的損失函數(shù),x_orig 是原始圖像,是擾動,y 是真實標(biāo)簽,所選的ε用于確保擾動后的圖像看上去沒有那么雜亂,并且對于人類來說仍然像是原始類別的圖片。
一些攻擊,如 FGS,IGS 和 PGD 都使用 L-∞范數(shù)來約束擾動圖像和原始圖像之間的距離。在這篇文章中,我們將探討對于 MNIST 數(shù)據(jù)集選擇ε的難點。我們也將看看最近有關(guān)不依賴于在原始圖像上進(jìn)行擾動而生成對抗樣本的技術(shù),探究這樣生成的圖片是否滿足對抗樣本的定義。
MNIST 圖像距離分析
讓我們首先簡單分析一下相同類別圖像以及不同類別圖像之間的平均距離。也許這些距離能夠幫助我們以一種更量化更客觀的方式選擇ε。我博客上有一個包含這一分析的 Jupyter notebook (http://alexadam.ca/ml/2019/09/05/adversarial-examples-rethinking-the-definition.html)。
我們從每個類別中隨機(jī)采樣了 100 張圖片,在不同的范數(shù)下計算兩兩圖像距離的平均值。這里只展示 L-2 范數(shù)的結(jié)果以避免混亂,同時也因為 L-∞范數(shù)的熱力圖在每個 cell 中都是 1,沒有提供什么有用的信息。
L-2 范數(shù)訓(xùn)練集距離
一個合理的假設(shè)是處于熱力圖對角線上的元素值(類內(nèi)圖像的距離)應(yīng)該要比同一行/列中的非對角線上的元素(類間圖像距離)小。然而,上圖的結(jié)果中數(shù)字 2 的類內(nèi)距離 10.1 大于數(shù)字類別 2 與數(shù)字類別 1 的類間距離 9.8,數(shù)字類別 8 的類內(nèi)距離 9.4 大于數(shù)字類別 8 與 1 之間的距離 9.3。這起初讓人驚訝,但它只是表明,對于一個給定的數(shù)字,相比切換成另一個類別的數(shù)字,樣式上的變化可能會可能會造成更多像素上的差異??梢哉J(rèn)為對于每一個數(shù)字,有一個不變的像素集,它不會隨圖片而改變,當(dāng)兩個數(shù)字的不變集高度重合時,像上圖那種意料之外的結(jié)果就有可能發(fā)生。
選擇ε
當(dāng)談到選擇ε的時候,這一切意味著什么呢?當(dāng)使用 L-∞范數(shù)時,ε最常見的值是 0.3,對于 L-2 范數(shù)而言一個比較大的值是 4.5 。對于 L-∞范數(shù),如果我們考慮最極端的值ε=1.0,我們將無法控制擾動圖像的真實類別,并可能最終生成一個使得人類和圖像分類模型都誤識別為其它類別的圖像。這也允許我們在訓(xùn)練集和測試集之間任意篡改圖像 x』 = rx_train * (1-r)x_test,如果我們的模型恰好錯誤分類了 x_test,那么該圖像將被標(biāo)記為對抗樣本。這里有很多限制條件必須要滿足:
根據(jù)觀察,(1) 通常暗含 (2)。ε=0.3 當(dāng)然滿足 (2),因為所有圖像的 L-∞距離接近 1.0。讓我們看看如果我們生成如下的結(jié)合了兩個類別的圖像將會發(fā)生什么。
在 L-∞距離約束下的均值圖像
將原始圖像和精心擾動的圖像之間的 L-∞距離限制到ε,但是任意一個人類觀察者都能輕易地發(fā)現(xiàn)兩張圖之間的區(qū)別,如下圖所示:
與原始圖像的 L-∞距離在ε=0.3 之內(nèi)精心制作的擾動圖像
很明顯,最右邊的圖像有一些不足。事實上,如果沒有被告知這是一張數(shù)字 0 和數(shù)字 1 圖片的組合,有的人可能會說它只是一個抽象的符號。因此,用這樣一個簡單的例子,我們已經(jīng)表明 ε=0.3 違反了條件 (1)。即使給一個更小的值,比如ε=0.2,也會得到類似的結(jié)果。MNIST 讓我們輕易地識別出擾動的像素。在許多情況下,通過簡單檢查背景像素是否修改來為對抗樣本創(chuàng)建檢測機(jī)制是微不足道的。如果攻擊者知道了這種檢測機(jī)制,就能夠繞過它。那我們要如何選擇ε呢?
這里給出一個對每張圖片并不使用相同ε的例子。對于一些類別,數(shù)字本身圍成的框內(nèi)是否發(fā)生了像素的變化更容易被發(fā)現(xiàn),就像上圖中的 0 那樣。對于這種類別,ε應(yīng)該設(shè)置成一個更小的值。
此外,對于像 L-2 或者 L-∞這樣的典型范數(shù)用于計算圖像距離時是沒有包含圖像的語義相似性的。如果能夠在輸入空間中給出圖像間的語義相似度,那么構(gòu)造一個簡單的 KNN 圖像分類器就能干掉卷積神經(jīng)網(wǎng)絡(luò)在過去 7 年來的進(jìn)步。對于這個問題,可能的解決方案是使用度量學(xué)習(xí)(metric learning)。通過學(xué)習(xí)嵌入,這些嵌入之間的 L-2 或者 L-∞距離包含語義相似性,那么我們就可以在這個空間而不是輸入空間中調(diào)整ε。
還有種這樣的技術(shù)叫做三胞胎網(wǎng)絡(luò) (triplet networks)。三胞胎網(wǎng)絡(luò)通過同時將 3 張圖片一次傳遞到三個相同的嵌入網(wǎng)絡(luò)并行運行。類別 y 的 anchor 通過時,會伴隨著一個同類別的正樣本和一個不同類別 y』的負(fù)樣本。損失函數(shù)將確保 anchor 和正樣本之間的距離至少比 anchor 和負(fù)樣本之間的距離小。
三胞胎網(wǎng)絡(luò)示意
使用像三胞胎網(wǎng)絡(luò)這樣的度量學(xué)習(xí)技術(shù)仍舊需要手動實驗驗證以確保ε沒有過大以至于類別發(fā)生改變。此外,我們必須考慮條件 (2),我們不能利用擾動使得我們數(shù)據(jù)集中的一張圖像被分為另外一張相同類別的圖像。像 PGD 這樣的攻擊方法是在損失函數(shù)的梯度方向迭代地移動以增加損失,然后將結(jié)果圖像映射到滿足原始圖像距離約束的輸入子空間。不是在輸入空間中做這一映射,而是使用我們的度量學(xué)習(xí)算法在嵌入空間上完成。
生成式對抗樣本
有篇非??岬恼撐慕榻B了一種新的制作對抗樣本的方法。不是使用精心制作的對抗性噪聲擾動已有的圖片,而是使用 GAN 從頭生成能夠愚弄目標(biāo)模型的圖片。
具體來說,他們使用一個輔助分類器 GAN(AC-GAN),能夠?qū)D像類別進(jìn)行調(diào)節(jié),以便控制所生成圖像的類別。這產(chǎn)生了「無約束對抗樣本」,因為從頭生成的圖像沒有距離可供約束。
然而,這并不滿足先前提及的標(biāo)準(zhǔn) (1) 或 (2)。盡管他們的方法很有用,也允許模型調(diào)試和通過生成新的能使模型失敗的圖片進(jìn)行數(shù)據(jù)增強(qiáng),但他們的分析將泛化性能和對抗的魯棒性看作同一件事。為了恰當(dāng)?shù)胤治瞿P偷聂敯粜裕覀冃枰軌蚍珠_泛化性能和對抗魯棒性兩個指標(biāo),因為它們彼此不一致 。因此,盡管拋棄對抗樣本的基于擾動的定義是十分誘人的,但是現(xiàn)在它們是唯一能夠以獨立的、非混淆的方式研究對抗魯棒性的方法。
總結(jié)
對抗樣本的當(dāng)前定義對于像 MNIST 這樣的數(shù)據(jù)集來說存在些微的缺陷。盡管對于 ImageNet 這樣的數(shù)據(jù)集來說更有意義,因為向它添加擾動更難被人注意到,也不會使得圖片看上去像是不同類別的奇怪組合。
對于每張圖片或類別使用相同的閾值ε并不是一個好的打算,因為很容易就能檢測出特定類別圖像上的噪聲。圖像是一種對于人類而言很輕易就能分析和評判出是否有可疑痕跡的數(shù)據(jù)類型。然而,在許多領(lǐng)域里的數(shù)據(jù)是以數(shù)字的抽象向量形式出現(xiàn)的,這些向量很難理解和可視化。在這些領(lǐng)域中定義什么是對抗樣本可能會超出我們的想象極限,因為我們本來就不理解原始數(shù)據(jù)。在這樣的情況下,用定量的方法選取ε是十分必要的。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認(rèn)知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機(jī)一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進(jìn)行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11CDA 數(shù)據(jù)分析師與戰(zhàn)略 / 業(yè)務(wù)數(shù)據(jù)分析:概念辨析與協(xié)同價值 在數(shù)據(jù)驅(qū)動決策的體系中,“戰(zhàn)略數(shù)據(jù)分析”“業(yè)務(wù)數(shù)據(jù)分析” 是企業(yè) ...
2025-09-11Excel 數(shù)據(jù)聚類分析:從操作實踐到業(yè)務(wù)價值挖掘 在數(shù)據(jù)分析場景中,聚類分析作為 “無監(jiān)督分組” 的核心工具,能從雜亂數(shù)據(jù)中挖 ...
2025-09-10統(tǒng)計模型的核心目的:從數(shù)據(jù)解讀到?jīng)Q策支撐的價值導(dǎo)向 統(tǒng)計模型作為數(shù)據(jù)分析的核心工具,并非簡單的 “公式堆砌”,而是圍繞特定 ...
2025-09-10