日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Towards Evaluating the Robustness of Neural Networks

發布時間:2023/12/15 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Towards Evaluating the Robustness of Neural Networks 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是一篇論文閱讀筆記,論文原文:神經網絡的魯棒性評價

寫在前面

??本人在閱讀這篇論文的時候也參考了別人的博文,參考博文的鏈接我會在文章最后的參考資料中列舉出來,如有侵權請聯系我刪除。本文主要是對這篇論文的一些思想的理解,包括公式推導還有一些總結。除此之外發現原文在論文第6頁中提出的7個目標函數中,第5個目標函數有錯誤,主要是對數里面的式子寫反了,如果是仔細看的話是能夠看出來的。原來的式子如下面的公式1所示,修改之后應該如公式2所示。在文中提到FFF就是經過了softmax輸出的概率,那么FFF的取值范圍為[0,1][0,1][0,1],那么對于下面的(1)式來說,就不滿足對數函數的定義域大于0,所以這個式子有問題。而(2)式則滿足其定義域,并且相關意義,這個在后面會解釋。
f5(x′)=?log?(2F(x′)t?2)(1)\begin{aligned} f_5(x') = -\log (2F(x')_t-2) \tag{1} \end{aligned} f5?(x)=?log(2F(x)t??2)?(1)

f5(x′)=?log?(2?2F(x′)t)(2)\begin{aligned} f_5(x') = -\log (2-2F(x')_t) \tag{2} \end{aligned} f5?(x)=?log(2?2F(x)t?)?(2)

文章簡介

??雖然神經網絡在大多數的機器學習任務上取得了SOTA的效果,但是存在這樣的一個事實,那就是神經網絡容易受到對抗樣本的攻擊。也就是說,對于輸入的x,能夠找到一個x′x'x,使得x′x'xxxx十分接近,但是會被神經網絡誤分類成另外一個類別(非正確的類別)。所以使我們訓練出的神經網絡能夠防御對抗樣本的攻擊顯得意義重大。而防御蒸餾就是最近被提出的一個方法,對于任何一個神經網絡,使用對抗蒸餾提高其魯棒性,降低對抗攻擊的準確率。沒有使用防御蒸餾之前,對抗攻擊的成功率為95%,但是使用了防御蒸餾之后,對抗攻擊的成功率降到了0.5%。
??但是在這篇文章當中,作者通過提出三種對抗攻擊算法,證明了防御蒸餾也不過爾爾嘛。(這里提一嘴,作者這種寫作手法著實厲害,先說防御蒸餾怎么怎么牛皮,然后第二段就說,在我們的文章中,我們提出了三種算法成功擊破防御蒸餾,所以這也不過爾爾嘛🐶,潛臺詞就是之前的對抗攻擊算法都是什么trash)。作者提出的三種對抗攻擊算法是根據使用到的三種不同的距離劃分的,分別是L0范數、L2范數、無窮范數。并且與先前提出的對抗攻擊算法相比通常都更有效。除此之外,作者還建議在簡單的可遷移性測試中使用高置信度的對抗樣本,這也可以被用于攻破防御蒸餾。
??作者在這篇文章的contributions如下:

  • 他們提出了三個新的攻擊算法,分別使用L0范數、L2范數、無窮范數來進行度量。并且作者提出的使用L0范數進行攻擊的算法是第一個在ImageNet上能使網絡錯分類。
  • 作者將這些攻擊算法應用到防御蒸餾上面,并且發現使用了防御蒸餾和沒有使用防御蒸餾在面對這些攻擊是同樣的效果,也就是都沒有防御住。
  • 作者提出,在簡單的遷移性測試中,使用高置信度的對抗樣本來評估防御,并且表明該測試打破了防御蒸餾。
  • 對于尋找對抗樣本,作者系統地評價了目標函數的選擇并且表明目標函數的選擇明顯地影響了攻擊效果。

防御蒸餾

??首先我們先來了解一下什么是防御蒸餾。首先防御蒸餾的原文在這里,防御蒸餾的過程如下圖所示。有一個初始網絡和一個蒸餾網絡,對于初始網絡而言,輸入訓練數據X以及訓練的標簽Y,然后以溫度T來訓練模型F。接著將初始網絡輸出的概率作為軟標簽去蒸餾網絡中去訓練,蒸餾網絡與初始網絡完全一樣,唯一不同的就是蒸餾網絡的訓練標簽是初始網絡輸出的概率值。這里的溫度T是什么意思呢?我們看下面的公式(1)就能明白了,對于分類的深度神經網絡來說,最后一層是將logit值輸入到softmax函數中實現歸一化,所以最終輸出的也就是概率。而在這里引入溫度T,我們可以看到公式(1)中溫度T的位置,其實也就是將邏輯值縮放相應的倍數。不過在下面那張圖中可以看到(水印還沒去hhh)隨著溫度T的升高,概率的分布越平緩,而這概率的分布也就是類的分布,所以說T越大,類的分布越平緩。我們知道我們的logit值是要被送到softmax函數中去歸一化的。如果只是T為1,從下面的圖中我們可以看出,最后F(X)輸出的概率肯定是后面的極大,前面的極小(因為圖中就是這樣的一個趨勢,前面的很小,并且幾乎沒有改變什么,后面的劇烈改變,并且極大)。但是如果T增大了,那么最終得到的概率也是平穩增長的。
F(X)=[eZi(X)/T∑l=0N?1ezl(X)/T]i∈0..N?1(1)\begin{aligned} F(X) = \left[\frac{e^{Z_i(X)/T}}{\sum_{l=0}^{N-1}e^{z_{l}(X)/T}}\right]_{i \in 0..N-1} \tag{1} \end{aligned} F(X)=[l=0N?1?ezl?(X)/TeZi?(X)/T?]i0..N?1??(1)

??接下來我們就該思考,這樣就能夠防御對抗攻擊了嗎?其中的原理是什么?首先訓練過程中增加溫度常數T會使得模型產生的標簽分布更加均勻的預測輸出,可以預見,當溫度系數接近無窮大的時候softmax接近均勻分布。這樣做的目的是什么呢?其實使輸出的概率更加平滑是為了蒸餾模型在訓練之后能夠得到更好的泛化能力。怎么理解?舉個例子,softmax層的輸出,除了正例之外,負標簽也帶有大量的信息,比如某些負標簽對應的概率遠遠大于其他負標簽。而在傳統的訓練過程中,所有的負標簽都被統一對待,而使用了溫度T,我們可以明顯地感受到負標簽的信息量被放大了。在手寫數字分類識別的任務中,假設某個輸入的”2“更加形似”3“,softmax的輸出值中”3“對應的概率為0.1,而其它負標簽對應的值都很小,而另一個”2“更加形似”7“,”7“對應的概率為0.1.這兩個”2“對應的硬標簽的值是相同的,但是對應的軟標簽卻是不同的,由此可見軟標簽蘊含著比硬標簽多的信息,并且軟標簽分布的熵相對高時,其軟標簽蘊含的指示就更豐富。
??誠然,這樣做確實增強了模型的泛化能力,那么又是怎么能夠防御住對抗攻擊呢?其實作者在文中給出了說明(這里指的是防御蒸餾這篇文章),首先作者先求模型的敏感性,更確切的說,模型的敏感性是模型對輸入敏感,也就是輸入的改變對模型的影響程度(舉個簡單的例子,假設y=2x+1y=2x+1y=2x+1,與y=3x+1y=3x+1y=3x+1這是兩個線性模型,一個導數為2一個導數為3,則說明第二個模型對輸入更加敏感,因為只要輸入改變一點,輸出改變的就有很多)。一般來說,我們是對模型的輸入求偏導,用Jacobian矩陣來表示或者梯度來表示,如果梯度較大說明輸出對輸入較敏感,如果梯度較小那么輸出對輸入不敏感。在這里作者求了softmax對輸入x的偏導,如下圖,我們可以發現隨著溫度T的升高,模型的梯度減小,說明模型的敏感性降低。既然模型的敏感度降低,那么就說明模型輸入的小小改變對輸出影響不是很大,而對于對抗攻擊算法(比如說FGSM),就是在損失函數中對輸入求偏導,最終取使得損失函數增大方向的梯度,然后添加擾動。但是現在模型的敏感度降低了,那么你添加的擾動自然也就沒有效果了。

作者的方法

目標函數

??對于作者而言,現在要創建出一種對抗攻擊算法,首先我們得考慮這種對抗攻擊算法要具備什么樣的特點,這些特點總結如下:

  • 在人眼看來,生成的對抗樣本要和原來的圖像沒有什么區別或者對辨別影響不大。
  • 對抗樣本輸入到網絡中,網絡對它的判斷是另外一個類別的(反正只要不是正確的就行了)。
    ??那么針對上面兩個條件,對抗樣本的生成問題就變成了下面這個有約束的優化問題,最小化我們的對抗樣本圖像與原圖像之間的距離,同時要滿足經過網絡之后輸出的目標為t(這里的t只要不是正確的類別就可以),并且限制添加擾動之后還在我們既定的范圍之內(因為對于圖像來說,我們是把像素值歸一化到[0,1],所以添加擾動之后的范圍也需要是[0,1])。這里的距離可以使用L0L_0L0?范數、L2L_2L2?范數、無窮范數。
    minimizeD(x,x+δ)s.t.C(x+δ)=tx+δ∈[0,1]n\begin{aligned} minimize\ D(x,x+\delta) \\ s.t.\ C(x+\delta) = t \\ x+\delta \in [0,1]^n \end{aligned} minimize?D(x,x+δ)s.t.?C(x+δ)=tx+δ[0,1]n?
    ??這個時候作者心里就犯嘀咕了,這怎么求嘛。對于上述的優化問題,利用現有的算法直接求解是不行的。所以我們需要將條件進行等價轉換,轉換成我們能夠求解的形式。對于C(x+δ)=tC(x+\delta) = tC(x+δ)=t來說,由于我們的神經網絡時高度非線性的,所以直接求解行不通,那么我們就將這個條件進行一個等價轉換。作者在這里定義出一個目標函數f,當且僅當C(x+δ)=tC(x+\delta) = tC(x+δ)=tf(x+δ)≤0f(x+\delta)\leq 0f(x+δ)0。所以作者在這里列舉出了7個f,也就是下面的公式(1)到公式(7)?,F在我們一一來進行公式的解讀,其實所有的這些公式的核心思想就是使得我們的模型在輸入x′x'x也就是我們的對抗樣本的情況下給出的置信度最高(輸出的概率值最高),那么肯定就實現了C(x+δ)=tC(x+\delta) = tC(x+δ)=t
    f1(x′)=?lossF,t(x′)+1(1)\begin{aligned} f_1(x') = -loss_{F,t}(x')+1 \tag{1} \end{aligned} f1?(x)=?lossF,t?(x)+1?(1)
    f2(x′)=(max(F(x′)i)i≠t?F(x′)t)+(2)\begin{aligned} f_2(x') = (\underset{i\neq t}{max(F(x')_i)} - F(x')_t)^{+} \tag{2} \end{aligned} f2?(x)=(i?=tmax(F(x)i?)??F(x)t?)+?(2)
    f3(x′)=softplus(max(F(x′)i)i≠t?F(x′)t)?log(2)(3)\begin{aligned} f_3(x') = softplus(\underset{i\neq t}{max(F(x')_i)} - F(x')_t) - log(2) \tag{3} \end{aligned} f3?(x)=softplus(i?=tmax(F(x)i?)??F(x)t?)?log(2)?(3)
    f4(x′)=(0.5?F′(x)t)+(4)\begin{aligned} f_4(x') = (0.5-F'(x)_t)^{+} \tag{4} \end{aligned} f4?(x)=(0.5?F(x)t?)+?(4)
    f5(x′)=?log?(2?2F(x′)t)(5)\begin{aligned} f_5(x') = -\log (2-2F(x')_{t}) \tag{5} \end{aligned} f5?(x)=?log(2?2F(x)t?)?(5)
    f6(x′)=(maxi≠t(Z(x′)i)?Z(x′)t)+(6)\begin{aligned} f_6(x') = (\underset{i\neq t}{max}(Z(x')_i) - Z(x')_t)^+ \tag{6} \end{aligned} f6?(x)=(i?=tmax?(Z(x)i?)?Z(x)t?)+?(6)
    f7(x′)=softplus(maxi≠t(Z(x′)i)?Z(x′)t)?log?(2)(7)\begin{aligned} f_7(x') = softplus(\underset{i\neq t}{max}(Z(x')_i) - Z(x')_t) - \log (2) \tag{7} \end{aligned} f7?(x)=softplus(i?=tmax?(Z(x)i?)?Z(x)t?)?log(2)?(7)

??下面是對上述函數的解讀:

  • 第一個,這個目標函數我比較迷惑,暫不解釋。
  • 第二個,+號表示求括號里面與0的最大值,所以(x)+(x)^{+}(x)+表示max(x,0)max(x,0)max(x,0)。括號里面表示的是經過模型判斷之后,判斷是其它種類的概率與是我們目標概率的差值。如果括號里面的值是負的,那么經過外面的加號,最大值只能小于等于0。所以要想實現f(x+δ)<=0f(x+\delta)<=0f(x+δ)<=0,那么括號里的值必須為負值,括號里面的值為負值,那么就說明輸入x′x'x輸出概率為我們指定類別的概率最高,那么也就是C(x+δ)=tC(x+\delta) = tC(x+δ)=t
  • 我們對第三個式子進行一個化簡假設softplus括號里的值為m,那么有log?(1+em)?log?(2)≤0\log (1+e^{m})-\log (2) \leq 0log(1+em)?log(2)0,也就是1+em≤21+e^{m}\leq 21+em2,也即是em≤1e^{m}\leq 1em1,也就是$m\leq 0 $,所以等價于第二個式子。
  • 第四個,相當于加了個0.5的概率約束希望其成為最大可能類。
  • 第五個,如果實現f(x+δ)<=0f(x+\delta)<=0f(x+δ)<=0,那么?log?(2?2F(x′)t)<=0-\log (2-2F(x')_t)<=0?log(2?2F(x)t?)<=0,等價于log?(2?2F(x′)t)>=0\log (2-2F(x')_t)>=0log(2?2F(x)t?)>=0,注意到這個函數是一個減函數,所以有2?2F(x′)t<=12-2F(x')_t<=12?2F(x)t?<=1,等價于F(x′)t≥0.5F(x')_t\geq 0.5F(x)t?0.5,與上面第四個式子的思想相同。
  • 第六個,思路與第二個是一樣的,不同的是,這里使用的是logit的值。
  • 第七個,相當于第三個的變種,但是使用的是logit的值。

??接著作者就將我們的問題轉化成了如下問題,那么這種問題在數學上是可以用拉格朗日乘數法來進一步轉化,變成求該拉格朗日函數的最值問題。那么使用拉格朗日乘數法之后,就變成了后面的式子。其中δ\deltaδ就是我們的擾動。這里的ccc是一個合適的常量并且c>0c>0c>0,在文對于c的選取,作者做了實驗,從0.01取到100,最終發現c取1的時候效果最好,如下圖所示。
minimizeD(x,x+δ)s.t.f(x+δ)≤0x+δ∈[0,1]n\begin{aligned} minimize\ D(x,x+\delta)\\ s.t.\ f(x+\delta)\leq 0\\ x+\delta \in [0,1]^{n} \end{aligned} minimize?D(x,x+δ)s.t.?f(x+δ)0x+δ[0,1]n?

minimize∣∣δ∣∣p+c?f(x+δ)s.t.x+δ∈[0,1]n\begin{aligned} minimize\ \left| | \delta | \right|_{p} + c·f(x+\delta)\\ s.t.\ x+\delta \in[0,1]^{n} \end{aligned} minimize?δp?+c?f(x+δ)s.t.?x+δ[0,1]n?

??其實上面的函數中還有個約束,那就是x+δ∈[0,1]nx+\delta \in[0,1]^{n}x+δ[0,1]n,也就是擾動后的圖像必須還是得在我們的范圍之內(因為在把圖片輸入到模型中,圖片的像素值會被歸一化到[0,1]而我們添加擾動之后,這個約束仍然成立),在文中作者把這個稱作盒約束。對于盒約束,作者提出三種方式來解決,這里我們就提最后一種方式。作者引入新的變量www,將上述優化δ\deltaδ的問題轉化為優化www,定義如下,首先雙曲正切tanh?x=ex?e?xex+e?x\tanh x = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}tanhx=ex+e?xex?e?x?,其取值范圍為[-1,1],所以12(tanh?(wi)+1)\frac{1}{2}(\tanh (w_i)+1)21?(tanh(wi?)+1)的取值范圍為[0,1],那么將xix_ixi?移過去,則為xi+δix_i+\delta_ixi?+δi?的范圍為[0,1]。
δi=12(tanh?(wi)+1)?xi\begin{aligned} \delta_{i} = \frac{1}{2}(\tanh (w_i)+1) -x_{i} \end{aligned} δi?=21?(tanh(wi?)+1)?xi??
??那么對于使用L2L_2L2?范數進行度量,我們等價求解的問題如下,在這里f(x′)f(x')f(x)這個函數用所有非目標標簽的最大logit值減去目標標簽的logit值,也就是說如果x′x'x被識別到目標標簽,那么maxZ(x′):i≠t?Z(x′)tmaxZ(x'):i\neq t\ - Z(x')_tmaxZ(x):i?=t??Z(x)t?是負的,假如 k = 0,則f(x′)=0f(x')=0f(x)=0,意味著該函數將不會被懲罰,否則如果x′x'x被識別到非目標標簽,該函數將會受到懲罰,通過改變k的值可以得到我們設想的置信度,k的值越模型越容易分錯,并且錯的那一類概率越大。
minimize∥12(tanh?(w)+1)?x∥22+c?f(12(tanh?(w)+1))f(x′)=max(maxZ(x′)i:i≠t?Z(x′)t,?k)\begin{aligned} minimize\ \left\| \frac{1}{2}(\tanh (w) +1) - x \right\|^{2}_{2} + c·f(\frac{1}{2}(\tanh (w) +1))\\ f(x') = max(max{Z(x')_{i}:i \neq t} - Z(x')_{t},-k) \end{aligned} minimize??21?(tanh(w)+1)?x?22?+c?f(21?(tanh(w)+1))f(x)=max(maxZ(x)i?:i?=t?Z(x)t?,?k)?


先寫到這里,以后想到了再更新(挖坑)

參考資料

[1] lan的小餅干,2021.基于優化的CW攻擊方法[DB/OL].[2021-11-14].https://zhuanlan.zhihu.com/p/361169580
[2] 專注于計算機視覺的AndyJiang,2020.深度學習之知識蒸餾[DB/OL].[2021-11-14].https://blog.csdn.net/andyjkt/article/details/108501693

總結

以上是生活随笔為你收集整理的Towards Evaluating the Robustness of Neural Networks的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。