物理攻擊「損害」深度學(xué)習(xí)系統(tǒng),CV、語音領(lǐng)域如何防御?(2)
與關(guān)注 “攻擊” 的上一篇文章不同,這篇文章關(guān)注的是“防御”。本文提出了:LanCe—一種全面和輕量級(jí)的 CNN 防御方法,以應(yīng)對(duì)不同的物理對(duì)抗性攻擊。通過分析和論證 CNN 存在的漏洞,作者揭示了 CNN 的決策過程缺乏必要的定性語義辨別能力(qualitative semantics distinguishing ability):輸入的非語義模式可以顯著激活 CNN 并壓倒輸入中的其它語義模式,其中,語義模式是指表示語句成分之間的語義關(guān)系的抽象格式,而非語義模式是指不包含任何語義關(guān)系信息的抽象格式。利用對(duì)抗性攻擊的特征不一致性,作者增加了一個(gè)自我驗(yàn)證階段來改進(jìn) CNN 的識(shí)別過程?;仡檲D 1,對(duì)于每張輸入圖像,經(jīng)過一次 CNN 推理后,驗(yàn)證階段將定位重要的激活源(綠圈),并根據(jù)預(yù)測結(jié)果計(jì)算出輸入語義與預(yù)期語義模式的不一致性(右圈)。一旦不一致性值超過預(yù)定的閾值,CNN 將進(jìn)行數(shù)據(jù)恢復(fù)過程以恢復(fù)輸入圖像。我們的防御方法涉及最小的計(jì)算組件,可以擴(kuò)展到基于 CNN 的圖像和音頻識(shí)別場景。
2.1 對(duì)抗性攻擊分析和防御的解釋
2.1.1 CNN 漏洞解讀
解釋和假設(shè)。在一個(gè)典型的圖像或音頻識(shí)別過程中,CNN 從原始輸入數(shù)據(jù)中提取特征并得出預(yù)測結(jié)果。然而,當(dāng)向原始數(shù)據(jù)注入物理對(duì)抗性擾動(dòng)時(shí),CNN 將被誤導(dǎo)出一個(gè)錯(cuò)誤的預(yù)測結(jié)果。為了更好地解釋這個(gè)漏洞,作者以一個(gè)典型的圖像物理對(duì)抗性攻擊—對(duì)抗性補(bǔ)丁攻擊為例進(jìn)行分析。
在圖 1 中,通過與原始輸入的比較,我們發(fā)現(xiàn)一個(gè)對(duì)抗性補(bǔ)丁通常在顏色 / 形狀等方面沒有限制約束。這樣的補(bǔ)丁通常會(huì)犧牲語義結(jié)構(gòu),從而導(dǎo)致明顯的異常激活,并壓倒其他輸入模式的激活。因此,作者提出了一個(gè)假設(shè):CNN 缺乏定性的語義辨別能力,在 CNN 推理過程中可以被非語義的對(duì)抗性補(bǔ)丁激活。
假設(shè)驗(yàn)證。根據(jù)上述假設(shè),輸入的非語義模式會(huì)導(dǎo)致異常的激活,而輸入的語義模式會(huì)產(chǎn)生正常的激活。作者提出通過調(diào)查 CNN 中每個(gè)神經(jīng)元的語義來評(píng)估這種差異,并引入一種可視化的 CNN 語義分析方法—激活最大化可視化(Activation Maximization Visualization,AM)。AM 可以生成一個(gè) pattern,將每個(gè)神經(jīng)元最活躍的語義輸入可視化。圖案 V((N_i)^l)的生成過程可以被看作是向 CNN 模型合成一個(gè)輸入圖像,使第 l 層中的第 i 個(gè)神經(jīng)元(N_i)^l 的激活度最大化。該過程可以表征為:
其中,(A_i)^l(X)為輸入圖像 X 的(N_i)^l 的激活,(A_i)^l 表征第 l 層的第 i 個(gè)神經(jīng)元對(duì)應(yīng)的激活,(N_i)^l 為第 l 層的第 i 個(gè)神經(jīng)元,η為梯度下降步長。
圖 4 展示了使用 AM 的可視化輸入的語義模式。由于原始的 AM 方法是為語義解釋而設(shè)計(jì)的,在生成可解釋的可視化模式時(shí),涉及許多特征規(guī)定和手工設(shè)計(jì)的自然圖像參考。因此,我們可以得到圖 4(a)中平均激活幅度值為 3.5 的三個(gè) AM 模式。這三種模式中的對(duì)象表明它們有明確的語義。然而,當(dāng)我們在 AM 過程中去除這些語義規(guī)定時(shí),我們得到了三種不同的可視化 patterns,如圖 4(b)所示。我們可以發(fā)現(xiàn),這三個(gè) patterns 是非語義性的,但它們有明顯的異常激活,平均幅值為 110。這一現(xiàn)象可以證明作者的假設(shè),即 CNN 神經(jīng)元缺乏語義辨別能力,可以被輸入的非語義模式顯著激活。
圖 4. 通過激活最大化可視化神經(jīng)元的輸入模式
2.1.2 輸入語義和預(yù)測激活的不一致性度量
不一致性識(shí)別。為了識(shí)別用于攻擊檢測的輸入的非語義模式,我們通過比較自然圖像識(shí)別和物理對(duì)抗性攻擊,檢查其在 CNN 推理過程中的影響。圖 5 展示了一個(gè)典型的基于對(duì)抗性補(bǔ)丁的物理攻擊。左邊圓圈中的圖案是來自輸入圖像的主要激活源,右邊的條形圖是最后一個(gè)卷積層中的神經(jīng)元的激活。從輸入模式中我們識(shí)別出原始圖像中的對(duì)抗性補(bǔ)丁和主要激活源之間的顯著差異,稱為輸入語義不一致(Input Semantic Inconsistency)。從預(yù)測激活量級(jí)方面,我們觀察到對(duì)抗性輸入和原始輸入之間的另一個(gè)區(qū)別,即預(yù)測激活不一致(Prediction Activation Inconsistency)。
圖 5. 圖像對(duì)抗性補(bǔ)丁攻擊
不一致性度量的表述。作者進(jìn)一步定義兩個(gè)指標(biāo)來表述上述兩個(gè)不一致的程度。
1)輸入語義不一致度量:該度量用于衡量非語義對(duì)抗性補(bǔ)丁與自然圖像的語義局部輸入模式之間的輸入語義不一致性。具體定義為:
其中,P_pra 和 P_ori 分別代表來自對(duì)抗性輸入和原始輸入的輸入模式(input patterns)。Φ:(A_i)^l(p)和Φ:(A_i)^l(o)分別表征由對(duì)抗性補(bǔ)丁和原始輸入產(chǎn)生的神經(jīng)元激活的集合。R 將神經(jīng)元的激活映射到主要的局部輸入模式。S 代表相似性指標(biāo)。
2)預(yù)測激活不一致度量:第二個(gè)不一致度量指標(biāo)是在激活層面上,它用于衡量最后一個(gè)卷積層中對(duì)抗性輸入和原始輸入之間的激活幅度分布的不一致性。我們也使用一個(gè)類似的指標(biāo)來衡量,具體如下:
其中,f_pra 和 I_ori 分別代表最后一個(gè)卷積層中由對(duì)抗性輸入和原始輸入數(shù)據(jù)產(chǎn)生的激活的幅度分布。
對(duì)于上述兩個(gè)不一致度量中使用到的信息,我們可以很容易地得到 P_pra 和 f_pra,因?yàn)樗鼈儊碜杂谳斎霐?shù)據(jù)。然而,由于自然輸入數(shù)據(jù)的多樣性,P_ori 和 f_ori 并不容易得到。因此,我們需要合成能夠提供輸入的語義模式和激活量級(jí)分布的標(biāo)準(zhǔn)輸入數(shù)據(jù)。可以從標(biāo)準(zhǔn)數(shù)據(jù)集中獲得每個(gè)預(yù)測類別的合成輸入數(shù)據(jù),以及,通過向 CNN 輸入一定數(shù)量的標(biāo)準(zhǔn)數(shù)據(jù)集,我們可以記錄最后一個(gè)卷積層的平均激活幅度分布。此外,我們可以定位每個(gè)預(yù)測類別的主要輸入的語義模式。
2.1.3 基于 CNN 自我驗(yàn)證和數(shù)據(jù)恢復(fù)的物理對(duì)抗性攻擊防御
上述兩個(gè)不一致展示了物理對(duì)抗性攻擊和自然圖像識(shí)別之間的區(qū)別,即輸入模式和預(yù)測激活。通過利用不一致性指標(biāo),作者提出了一種防御方法,其中包括 CNN 決策過程中的自我驗(yàn)證和數(shù)據(jù)恢復(fù)。具體來說,整個(gè)方法流程描述如下。
自我驗(yàn)證。(1)首先將輸入項(xiàng)輸入到 CNN 推理中,獲得預(yù)測類別結(jié)果。(2) 接下來,CNN 可以從實(shí)際輸入中定位主要激活源,并在最后一個(gè)卷積層中獲得激活。(3)然后,CNN 利用所提出的指標(biāo)來衡量實(shí)際輸入與預(yù)測類別的合成數(shù)據(jù)之間的兩個(gè)不一致指標(biāo)。(4) 一旦任何一個(gè)不一致指標(biāo)超過了給定的閾值,CNN 將認(rèn)為該輸入是一個(gè)對(duì)抗性輸入。
數(shù)據(jù)恢復(fù)。(5) 在自我驗(yàn)證階段檢測到物理對(duì)抗性攻擊后,進(jìn)一步應(yīng)用數(shù)據(jù)恢復(fù)方法來恢復(fù)被攻擊的輸入數(shù)據(jù)。具體來說,作者利用圖像修復(fù)和激活去噪方法分別來恢復(fù)輸入的圖像和音頻。
2.2 對(duì)圖像物理對(duì)抗攻擊的防御
2.2.1 圖像場景中的防御過程
主要激活模式定位。對(duì)于圖像物理對(duì)抗性攻擊的防御,主要依賴于輸入模式層面的輸入語義不一致。因此,作者采用 CNN 激活可視化方法—類別激活映射(Class Activation Mapping,CAM)來定位輸入圖像的主要激活源 [8]。令 A_k(x, y) 表示在空間位置 (x, y) 的最后一個(gè)卷積層的第 k 個(gè)激活值。我們可以計(jì)算出最后一個(gè)卷積層中空間位置 (x, y) 的所有激活的總和,即:
其中,K 是最后一個(gè)卷積層中激活的總數(shù)。A_T(x, y)的值越大,表明輸入圖像中相應(yīng)空間位置 (x, y) 的激活源對(duì)分類結(jié)果越重要。
不一致推導(dǎo)。根據(jù)初步分析,輸入的對(duì)抗性補(bǔ)丁比自然輸入的語義模式包含更多的高頻信息。因此,作者用一系列的變換來轉(zhuǎn)換這些 patterns,如圖 6 所示。經(jīng)過二維快速傅里葉變換(2D-FFT)和二進(jìn)制轉(zhuǎn)換,我們可以觀察到對(duì)抗性輸入和語義合成輸入之間的顯著差異。
圖 6. 二維快速傅里葉變換后的結(jié)果
作者將 S(I_pra, I_ori)替換為 Jaccard 相似性系數(shù)(Jaccard Similarity Coefficient,JSC),并提出如下圖像不一致性指標(biāo):
其中,I_exp 是具有預(yù)測類別的合成語義模式,P_pra ∩ P_exp 為 P_pra 和 P_exp 的像素值都等于 1 的像素?cái)?shù)?;谏鲜霾灰恢滦灾笜?biāo),作者提出了具體的防御方法,包括自我驗(yàn)證和圖像恢復(fù)兩個(gè)階段。整個(gè)過程在圖 7 中描述。
圖 7. 對(duì)抗性補(bǔ)丁攻擊防御
檢測的自我驗(yàn)證。在自我驗(yàn)證階段,應(yīng)用 CAM 來定位每個(gè)輸入圖像中最大模型激活的源頭位置。然后對(duì)圖像進(jìn)行裁剪,以獲得具有最大激活度的 pattern。在語義測試期間,計(jì)算 I_pra 和 I_exp 之間的不一致性。如果該不一致性指標(biāo)高于預(yù)定義的閾值,我們認(rèn)為檢測到了一個(gè)對(duì)抗性輸入。
圖像的數(shù)據(jù)恢復(fù)。檢測到對(duì)抗性補(bǔ)丁后,通過直接從原始輸入數(shù)據(jù)中刪除補(bǔ)丁的方式來進(jìn)行圖像數(shù)據(jù)恢復(fù)。在該案例中,為了確保輕量級(jí)的計(jì)算工作量,作者利用最近鄰插值 --- 一種簡單而有效的圖像插值技術(shù)來修復(fù)圖像并消除攻擊效果。具體來說,對(duì)于對(duì)抗性補(bǔ)丁中的每個(gè)像素,利用該像素周圍八個(gè)像素的平均值取代該像素。插值處理后,將恢復(fù)的圖像反饋給 CNN,再次進(jìn)行預(yù)測。通過以上步驟,我們可以在 CNN 推理過程中保護(hù)圖像的物理對(duì)抗性攻擊。
2.3 對(duì)音頻物理對(duì)抗攻擊的防御
不一致推導(dǎo):作者利用預(yù)測激活的不一致性來檢測音頻中的物理對(duì)抗性攻擊,即,衡量預(yù)測類別相同的實(shí)際輸入和合成數(shù)據(jù)之間的激活幅度分布不一致性指標(biāo)。作者利用皮爾遜相關(guān)系數(shù)(Pearson Correlation Coefficient,PCC)定義不一致度量如下:
其中,I_pra 和 I_exp 分別代表最后一個(gè)卷積層對(duì)實(shí)際輸入和合成輸入的激活。μ_a 和μ_o 表示 f_pre 和 f_exp 的平均值,σ_pra 和σ_exp 是標(biāo)準(zhǔn)差,E 表示總體期望值。
自我驗(yàn)證的檢測。進(jìn)一步的,將自我驗(yàn)證應(yīng)用于 CNN 的音頻物理對(duì)抗性攻擊。首先,通過用標(biāo)準(zhǔn)數(shù)據(jù)集測試 CNN,獲得最后一個(gè)卷積層中每個(gè)可能的輸入詞的激活值。然后,計(jì)算不一致度量指標(biāo) D(I_pra, I_exp)。如果模型受到對(duì)抗性攻擊,D(I_pra, I_exp)會(huì)大于預(yù)先定義的閾值。作者表示,根據(jù)他們用各種攻擊進(jìn)行的初步實(shí)驗(yàn),對(duì)抗性輸入的 D(I_pra, I_exp)通常大于 0.18,而自然輸入的 D(I_pra, I_exp)通常小于 0.1。因此,存在一個(gè)很大的閾值范圍來區(qū)分自然和對(duì)抗性的輸入音頻,這可以有利于我們的準(zhǔn)確檢測。
音頻數(shù)據(jù)恢復(fù)。在確定了對(duì)抗性的輸入音頻后,對(duì)這部分音頻進(jìn)行數(shù)據(jù)恢復(fù)以滿足后續(xù)應(yīng)用的需要。作者提出了一個(gè)新的解決方案—"激活去噪" 作為音頻數(shù)據(jù)的防御方法,其目標(biāo)是從激活層面消除對(duì)抗性影響。激活去噪利用了上述最后一層的激活模式,這些模式與確定的預(yù)測標(biāo)簽有穩(wěn)定的關(guān)聯(lián)性。對(duì)抗性音頻數(shù)據(jù)恢復(fù)方法如圖 8 所示?;跈z測結(jié)果,我們可以識(shí)別錯(cuò)誤的預(yù)測標(biāo)簽,并在最后一層獲得錯(cuò)誤類別的標(biāo)準(zhǔn)激活模式。然后我們可以找到具有相同索引的激活。這些激活最可能是由對(duì)抗性噪聲引起的,并取代了原始激活。因此,通過壓制這些激活就可以恢復(fù)原始激活。
圖 8. 音頻對(duì)抗性攻擊防御
2.4 實(shí)驗(yàn)分析
2.4.1 圖像場景
在本文實(shí)驗(yàn)中,作者使用 Inception-V3 作為基礎(chǔ)模型生成對(duì)抗性補(bǔ)丁,然后利用由此生成的高遷移性的補(bǔ)丁攻擊兩個(gè) CNN 模型:VGG-16 和 ResNet-18。然后將本文提出的防御方法應(yīng)用于所有三個(gè)模型,并測試其檢測和恢復(fù)的成功率。實(shí)驗(yàn)中的基準(zhǔn)方法是 Patch Masking,這是一種最先進(jìn)的防御方法[7]。不一致性的閾值設(shè)為 0.46。
表 7 給出了總體檢測和圖像恢復(fù)性能。在所有三個(gè)模型上,LanCe 的檢測成功率始終高于 Patch Masking。進(jìn)一步,本文提出的圖像恢復(fù)方法可以幫助糾正預(yù)測,在不同的模型上獲得了 80.3%~82% 的準(zhǔn)確度改進(jìn),而 Patch Masking 的改進(jìn)僅為 78.2% ~79.5%。
表 7. 圖像對(duì)抗性補(bǔ)丁攻擊防御評(píng)估
2.4.2 音頻場景
對(duì)于音頻場景,作者在谷歌語音命令數(shù)據(jù)集上使用命令分類模型(Command Classification Model)進(jìn)行實(shí)驗(yàn)。對(duì)抗性檢測的不一致性閾值是通過網(wǎng)格搜索得到的,在本實(shí)驗(yàn)中設(shè)置為 0.11。作為比較,作者重新實(shí)現(xiàn)了另外兩種最先進(jìn)的防御方法:Dependency Detection [8]和 Multiversion[9]。
LanCe 對(duì)所有的音頻物理對(duì)抗性攻擊都能達(dá)到 92% 以上的檢測成功率。相比之下,Dependency Detection 平均達(dá)到 89% 的檢測成功率,而 Multiversion 的平均檢測成功率只有 74%。然后,作者評(píng)估了 LanCe 的恢復(fù)性能。TOP-K 指數(shù)中的 K 值被設(shè)定為 6。由于 Multiversion[9]不能用于恢復(fù),作者重新實(shí)現(xiàn)了另一種方法 Noise Flooding[10]作為比較。作者使用沒有數(shù)據(jù)恢復(fù)的原始 CNN 模型作為基線方法。
表 8 給出了整體的音頻恢復(fù)性能評(píng)估。應(yīng)用本文提出的恢復(fù)方法 LanCe 后,預(yù)測準(zhǔn)確率明顯提高,從平均 8% 提高到了平均 85.8%,即恢復(fù)準(zhǔn)確率為 77.8%。Dependency Detection 和 Noise Flooding 的平均準(zhǔn)確率都較低,分別為 74% 和 54%。
表 8. 音頻對(duì)抗性攻擊數(shù)據(jù)恢復(fù)評(píng)估
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。