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