對抗樣本生成的PGD和C W方法

2021-10-12 01:18:49 字數 1921 閱讀 9314

projected. gradient algorithm

先記錄幾個常見的單詞

convex set

凸集convergence rate

收斂速率

convex

凸函式interpretation

理解l0範數是指向量中非0的元素的個數。(l0範數很難優化求解)

l1範數是指向量中各個元素絕對值之和

l2範數是指向量各元素的平方和然後求平方根

就是求f(x)的最小值,但是x的取值範圍有限制。

如果x沒有取值的限制,那麼直接用梯度下降法(gd)即可。

有了限制,就需要用到投影了,就是投影梯度下降法(pgd)

就是在求出乙個x後,如果x不在取值範圍內,就找p(x),就是距離x最近的區域中的點。

經過k次迭代後,收斂速率是和(1/k)同階。

(證明還不太理解)

參考知乎專欄

該演算法的損失函式設計,要求x

xx與x′x'

x′之間的距離較小,同時f()

f()f(

)函式,保證了x′x'

x′向t類靠近。

演算法流程

迭代攻擊

c&w演算法與ifgsd同屬於一種迭代攻擊演算法,它使用乙個變數w

nw_n

wn​ 輔助尋找最小擾動r

nr_n

rn​:

tanh是雙曲正切函式。

定義域:r,值域:(-1,1)。y=tanh x是乙個奇函式,其函式影象為過原點並且穿越ⅰ、ⅲ象限的嚴格單調遞增曲線,其影象被限制在兩水平漸近線y=1和y=-1之間。

基於w

nw_n

wn​可以寫出c&w優化過程的損失函式:

​ 其中f()

f()f(

) 被定義為:

上面公式的z(x

′)iz(x')_i

z(x′)i

​ 是類別i

ii的對應概率輸出,當max

(z(x

′)i:

i≠t)

max(z(x')_i:i \neq t)

max(z(

x′)i

​:i

​=t)

大於z(x′

)tz(x')_t

z(x′)t

​時函式得到正值,損失函式變大,不是優化的方向。當max

(z(x

′)i:

i≠t)

max(z(x')_i:i \neq t)

max(z(

x′)i

​:i

​=t)

小於z(x′

)tz(x')_t

z(x′)t

​時,函式得到負值時,這意味著x′x'

x′在原神經網路系統中被認定為t類,那就是梯度下降前進的方向。

按理來說,這個x′x'

x′會是在邊界的地方,屬於i類(這個次大值很有可能是原來認定的label)和t類的可能性都比較大,設定κ

κ ,如果κ

κ越大,說明越允許這個x′x'

x′導致的i類向t類的轉變。

​ 圖四 c&w演算法進行有目標攻擊示意圖

​ 圖四展示了c&w演算法按照不同的攻擊目標生成的不同的對抗樣本,例如第八行第四列,表示c&w演算法向原本應該識別為數字8的新增擾動,所生成的對抗樣本,被分類器判定為數字4,但是這樣的擾動並沒有對人眼的識別造成誤導,我們還是很容易看出該中的數字為8。

對抗樣本生成演算法之C W演算法

c w演算法原理 2017oakland towards evaluating the robustness of neural networks.之前有人提出蒸餾網路,說是可以為目標網路模型提供很強的魯棒性,能夠把已出現的攻擊的成功率從95 銳減到0.5 作者提出了新的攻擊方法,成功攻擊了蒸餾網路...

對抗樣本生成演算法之BIM演算法

2017iclr adversarial examples in the physical world.相對於fgsm的單步攻擊,i fgsm分多步新增雜訊,更能擬合模型引數,因此通常表現出比fgsm更強的白盒能力。fgsm裡面,每次尋找對抗樣本的時候,直接是x sig n x j x,y x ep...

生成和打上patch的方法

在團隊開發的過程中,經常需要生成patch,或者打上別人提供的patch,那麼一般情況是如何操作的呢。首先生成patch需要有兩個工程,乙個修改前的a工程,乙個修改後的b工程。使用linux命令diff就可以生成patch了。格式如下 1 diff naur path to a projectpat...