AdvFlow:一种基于标准化流的黑盒攻击新方法,产生更难被发觉的对抗样本 | NeurIPS‘20
本文提出一種新的黑盒對抗攻擊方法AdvFlow,通過利用標準化流來建模對抗樣本的數據分布,使得生成的對抗樣本的分布和正常樣本接近,從而讓對抗樣本更難被檢測出來,打破了對抗樣本和正常樣本的分布大不相同的固有認知。
論文地址:https://arxiv.org/abs/2007.07435
論文代碼:https://github.com/hmdolatabadi/AdvFlow
本文為極市原創投稿,轉載請獲得授權。
引言
雖然神經網絡在很多機器學習任務上都取得了非凡的表現,但是通過對輸入樣本添加微小的擾動,就能使其分類錯誤(這也就是對抗攻擊)。神經網絡對對抗攻擊的脆弱性,大大限制了它們在現實生活中的廣泛應用。因此,設計出有效的對抗攻擊方法來模擬現實世界中可能出現的各種威脅,有利于我們不斷改進神經網絡模型,使得模型對這些攻擊更加魯棒。一般來說,對抗攻擊的方法可以分為兩大類:白盒攻擊和黑盒攻擊。在白盒攻擊中,攻擊者對要攻擊的模型(目標模型)了如指掌,比如目標模型的結構,參數等等都可以獲得。而在黑盒攻擊中,攻擊者對目標模型的內部一無所知,只能通過不斷詢問模型,給定輸入,觀察模型的輸出,來和模型進行互動。因此,黑盒攻擊更加貼近現實場景。在本文中,作者提出了一種有效的黑盒攻擊方法,借助流模型的思想來建模對抗樣本的數據分布,使之接近正常樣本,從而生成了更難被檢測出來的對抗樣本。
論文貢獻
該論文的貢獻可以總結為以下三點:
-
作者提出了一種新的黑盒攻擊方法AdvFlow, 首次將流模型應用到對抗攻擊方法中。
-
作者理論上證明了AdvFlow生成的對抗擾動各成分之間具有依賴性,而類似的攻擊方法NATTACK [1]則不具有這個性質。
-
AdvFlow生成的對抗樣本的數據分布和正常樣本接近,從而更難被對抗樣本檢測器發現。
模型介紹
給定輸入樣本x∈Xdx\ \in X^ozvdkddzhkzdx?∈Xd和目標模型CCC,則xxx的對抗樣本xadvx_{\text{adv}}xadv?可由如下公式生成:
xadv=arg?min?x′∈S(x)L(x′)L(x′)=max?(0,log?C(x′)y?max?c≠ylog?C(x′)c)S(x)={x′∈Xd∣∥x′?x∥p≤?max?}\begin{array}{c} \mathbf{x}_{a d v}=\underset{\mathbf{x}^{\prime} \in \mathcal{S}(\mathbf{x})}{\arg \min } \mathcal{L}\left(\mathbf{x}^{\prime}\right) \\ \mathcal{L}\left(\mathbf{x}^{\prime}\right)=\max \left(0, \log \mathcal{C}\left(\mathbf{x}^{\prime}\right)_{y}-\max _{c \neq y} \log \mathcal{C}\left(\mathbf{x}^{\prime}\right)_{c}\right) \\ \mathcal{S}(\mathbf{x})=\left\{\mathbf{x}^{\prime} \in \mathcal{X}^ozvdkddzhkzd \mid\left\|\mathbf{x}^{\prime}-\mathbf{x}\right\|_{p} \leq \epsilon_{\max }\right\} \end{array} xadv?=x′∈S(x)argmin?L(x′)L(x′)=max(0,logC(x′)y??maxc?=y?logC(x′)c?)S(x)={x′∈Xd∣∥x′?x∥p?≤?max?}?
這里C(x′)y{C(x')}_{y}C(x′)y?表示分類器輸出的第yyy個元素,S(x)S(x)S(x)表示xxx的對抗樣本的定義域。
標準化流(NF)是一種生成模型,目標在于建模給定數據集的概率分布。假設Z,X∈RdZ,\ X \in \mathbb{R}^ozvdkddzhkzdZ,?X∈Rd分別為兩個隨機向量,從ZZZ到XXX的轉換函數為$f:\ \mathbb{R}^ozvdkddzhkzd \rightarrow \ \mathbb{R}^ozvdkddzhkzd\ $, fff可逆并且可微。若已知ZZZ的概率分布為p(z)p(z)p(z), 則XXX的概率分布為:
p(x)=p(z)∣det?(?f?z)∣?1p(\mathrm{x})=p(\mathrm{z})\left|\operatorname{det}\left(\frac{\partial \mathrm{f}}{\partial \mathrm{z}}\right)\right|^{-1} p(x)=p(z)∣∣∣∣?det(?z?f?)∣∣∣∣??1
流模型一般使用可逆神經網絡(INN)來建模轉換函數fff,從而得到XXX的數據分布。在本文中,作者假設隨機向量ZZZ服從正態分布。
標準化流(NF)利用極大似然估計作為目標函數來訓練可逆神經網絡(INN)的參數θ\thetaθ,具體公式為:
θ?=arg?max?θ1n∑i=1nlog?pθ(xi)\boldsymbol{\theta}^{*}=\underset{\boldsymbol{\theta}}{\arg \max } \frac{1}{n} \sum_{i=1}^{n} \log p_{\boldsymbol{\theta}}\left(\mathbf{x}_{i}\right) θ?=θargmax?n1?i=1∑n?logpθ?(xi?)
令f?\text{f\ }f?表示在正常樣本上預訓練的滿足可逆和可微性質的標準化流(NF)模型,則AdvFlow生成對抗樣本的公式為:
x′=proj?S(f(z)),z~N(z∣μ,σ2I)\mathbf{x}^{\prime}=\operatorname{proj}_{\mathcal{S}}(\mathbf{f}(\mathbf{z})), \quad \mathbf{z} \sim \mathcal{N}\left(\mathbf{z} \mid \boldsymbol{\mu}, \sigma^{2} I\right) x′=projS?(f(z)),z~N(z∣μ,σ2I)
這里projS\text{proj}_{S}projS?表示一個映射規則,限制生成的對抗樣本在定義域S(x)S(x)S(x)內。zzz為服從均值為μ\muμ,方差為σ2\sigma^{2}σ2的正態分布的隨機向量。通過前面介紹的標準化流的思想,我們可知*f(z)f(z)f(z)的分布和正常樣本的分布接近,從而生成的對抗樣本的分布也就接近正常樣本。
- AdvFlow生成的對抗擾動的唯一性:
假設f(x)f(x)f(x)為一個可逆并且可微的函數,δz\delta_{z}δz?為一個小的擾動,則有
δ=f(f?1(x)+δz)?x≈(?f?1(x))?1δz\delta=\mathrm{f}\left(\mathrm{f}^{-1}(\mathrm{x})+\delta_{z}\right)-\mathrm{x} \approx\left(\nabla \mathrm{f}^{-1}(\mathrm{x})\right)^{-1} \delta_{z} δ=f(f?1(x)+δz?)?x≈(?f?1(x))?1δz?
作者證明發現AdvFlow生成的對抗擾動各成分之間具有依賴性,而NATTACK生成的對抗擾動各成分之間互相獨立。如下圖所示,?為正常樣本,(b)和(d)分別為AdvFlow和NATTACK生成的對抗樣本,(a)和(d)分別為AdvFlow和NATTACK生成的對抗擾動。我們可以發現AdvFlow生成的對抗擾動捕獲了原始圖片的結構信息,而不僅僅是噪聲。
實驗結果
利用預訓練好的對抗樣本檢測器來檢測不同方法生成的對抗樣本,檢測準確率越低,說明生成的對抗樣本越難被發現。
如上表所示,AdvFlow (un.)表示NF模型的權重沒有經過預訓練,是隨機的。AdvFlow (tr.)表示NF模型的權重是預訓練好的。相比于NATTACK方法,我們可以看到AdvFlow(tr.)模型生成的對抗樣本更難被檢測器發現。
此外,如下圖所示,我們可以發現AdvFlow生成的對抗樣本的分布更加接近原始正常樣本的分布,為其更難被檢測出來提供了有力的依據。
如上表所示,在四種對抗攻擊方法中,AdvFlow的性能基本超越了其他三種方法。
如上圖所示,混淆矩陣中每個數值表示用對應行的分類器生成的對抗樣本去攻擊對應列的分類器所得到的成功率。可以看到,在不同的網絡結構和數據集上,AdvFlow比NATTACK具有更好的遷移性。
發展應用
基于本文工作的另一篇工作Black-box Adversarial Example Generation with Normalizing Flows [2]發表在了ICML 2020 Workshop上。為了使AdvFlow算法更快地收斂,該篇論文給出了如下生成對抗樣本的流程圖。
給定原始輸入樣本xxx,預訓練的標準化流模型f(?)f(·)f(?),首先將樣本xxx通過f?1(?)f^{- 1}( \cdot )f?1(?)映射為分布空間的表征z=f?1(x)z = f^{- 1}(x)z=f?1(x),然后將擾動向量δz=μ+σ?\delta_{z} = \mu + \sigma\epsilonδz?=μ+σ?, ?~N(?∣0,I)\epsilon\sim N(\epsilon|0,\ I)?~N(?∣0,?I)加到zzz上得到對抗樣本在分布空間的表征zadvz_{\text{adv}}zadv?,最后將zadvz_{\text{adv}}zadv?通過流模型f(?)f(·)f(?)再映射回輸入樣本空間,得到對抗樣本xadvx_{\text{adv}}xadv?。得益于標準化流模型所具有的良好性質(可逆性和可微性),在該種方法中,對抗樣本和原始樣本在分布空間的表征足夠接近,因而生成的對抗樣本和原始樣本也十分相似。
此外,近幾個月,作者在博客中介紹了將AdvFlow應用到高分辨率圖像上的方法。由于高分辨率圖像需要更大計算開銷,為了解決這個問題,作者提出了如下的設計方案:
首先對原始高分辨率圖像進行下采樣,然后在下采樣后的低維空間中,應用AdvFlow生成對抗樣本,再計算低維空間中下采樣圖片和對抗樣本之間的差異,將該差異上采樣后加到原始的高分辨率圖像上,從而得到高分辨率對抗樣本,進一步拓寬了AdvFlow的應用場景。
【參考】
[1] Li, Y., Li, L., Wang, L., Zhang, T., and Gong, B. (2019). NATTACK: learning the distributions
of adversarial examples for an improved black-box attack on deep neural networks. In Proceedings
of the 36th International Conference on Machine Learning (ICML), pages 3866–3876
[2] Dolatabadi, H.M., Erfani, S., & Leckie, C. (2020). Black-box Adversarial Example Generation with Normalizing Flows. ArXiv, abs/2007.02734.
[3] https://github.com/hmdolatabadi/AdvFlow
[4] https://hmdolatabadi.github.io/posts/2020/10/advflow
作者東瓠,上海交通大學計算機系碩士研究生在讀。歡迎大家聯系極市小編(微信ID:fengcall19)加入極市原創作者行列
總結
以上是生活随笔為你收集整理的AdvFlow:一种基于标准化流的黑盒攻击新方法,产生更难被发觉的对抗样本 | NeurIPS‘20的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ACCV2020国际细粒度网络图像识别冠
- 下一篇: 英特尔® OpenVINO™中级认证正式