本文主要是介绍Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 概
- 主要内容
- Auto-PGD
- Momentum
- Step Size
- 损失函数
- AutoAttack
Croce F. & Hein M. Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks. In International Conference on Machine Learning (ICML), 2020.
概
作者改进了PGD攻击方法, 并糅合了不同种类的攻击方法于一体, 使得AA的估计更为有效可靠. 特别是不需要调参.
主要内容
Auto-PGD
Auto-PGD, 其最大的改进的地方就是不需要调节参数(其实作者自己调得比较好啦). 普通的PGD:
x ( k + 1 ) = P S ( x ( k ) + η ( k ) ∇ f ( x ( k ) ) ) , x^{(k+1)} = P_S (x^{(k)} + \eta^{(k)}\nabla f(x^{(k)})), x(k+1)=PS(x(k)+η(k)∇f(x(k))),
其中 P P P是投影算子, η \eta η 是学习率, f f f是损失函数.
Momentum
z ( k + 1 ) = P S ( x ( k ) + η ( k ) ∇ f ( x ( k ) ) ) x ( k + 1 ) = P S ( x ( k ) + α ⋅ ( z ( k + 1 ) − x ( k ) ) + ( 1 − α ) ⋅ ( x ( k ) − x ( k − 1 ) ) ) . z^{(k+1)} = P_S (x^{(k)}+\eta^{(k)}\nabla f(x^{(k)})) \\ x^{(k+1)} = P_S(x^{(k)}+\alpha \cdot (z^{(k+1)}-x^{(k)})+(1-\alpha) \cdot (x^{(k)}-x^{(k-1)})). z(k+1)=PS(x(k)+η(k)∇f(x(k)))x(k+1)=PS(x(k)+α⋅(z(k+1)−x(k))+(1−α)⋅(x(k)−x(k−1))).
注: 作者选择 α = 0.75 \alpha=0.75 α=0.75
Step Size
首先确定总的迭代次数 N i t e r N_{iter} Niter, 然后确定一些检查的结点 w 0 = 0 , w 1 , ⋯ , w n w_0=0, w_1, \cdots, w_n w0=0,w1,⋯,wn, 在每一个检查结点检查如下条件
-
∑ i = w i − 1 w i − 1 1 f ( x ( i + 1 ) > f ( x ( i ) ) ) < ρ ⋅ ( w j − w j − 1 ) \sum_{i={w_{i-1}}}^{w_{i}-1} 1_{f(x^{(i+1)}> f(x^{(i)}))}< \rho \cdot (w_j - w_{j-1}) ∑i=wi−1wi−11f(x(i+1)>f(x(i)))<ρ⋅(wj−wj−1);
-
η w j − 1 ≡ η w j \eta^{w_{j-1}}\equiv \eta^{w_j} ηwj−1≡ηwj and f m a x ( w j − 1 ) ≡ f m a x ( w j ) . f_{max}^{(w_{j-1})}\equiv f_{max}^{(w_j)}. fmax(wj−1)≡fmax(wj).
其中 f m a x ( k ) f_{max}^{(k)} fmax(k)是前 k k k个结点前的最高的函数值, 若其中条件之一满足, 则对之后的迭代的学习率减半, 即
η ( k ) : = η ( w j ) / 2 , ∀ k = w j + 1 , … w j + 1 . \eta^{(k)}:= \eta^{(w_j)} /2, \forall k=w_j+1, \ldots w_{j+1}. η(k):=η(wj)/2,∀k=wj+1,…wj+1.
注: 学习率 η ( 0 ) = 2 ϵ \eta^{(0)}=2\epsilon η(0)=2ϵ.
- 条件1是为了检查这一阶段的迭代是否有效(即损失是否升高的次数), 这里作者选择 ρ = 0.75 \rho=0.75 ρ=0.75;
- 条件二如果成立了, 说明这一阶段相较于之前的阶段并没有提升, 所以需要减半学习率.
注: 一旦学习率减半了, 作者会令 x ( w j + 1 ) : = x m a x x^{(w_j+1)}:=x_{max} x(wj+1):=xmax, 从最好的结果处restart.
剩下一个问题是, 如何选择 w i w_i wi, 作者采取如下方案
w j = [ p j N i t e r ] ≤ N i t e r p j + 1 = p j + max { p j − p j − 1 − 0.03 , 0.06 } , p 0 = 0 , p 1 = 0.22. w_j = [p_jN_{iter}] \le N_{iter} \\ p_{j+1} = p_j + \max \{p_j - p_{j-1} - 0.03, 0.06\}, p_0=0, p_1=0.22. wj=[pjNiter]≤Niterpj+1=pj+max{pj−pj−1−0.03,0.06},p0=0,p1=0.22.
损失函数
一般来说, 大家用的是交叉熵, 即
C E ( x , y ) = − log p y = − z y + log ( ∑ j = 1 K e z j ) , \mathrm{CE}(x, y) = -\log p_y = -z_y + \log (\sum_{j=1}^K e_{z_j}), CE(x,y)=−logpy=−zy+log(j=1∑Kezj),
其梯度为
∇ x C E ( x , y ) = ( − 1 + p y ) ∇ x z y + ∇ i ≠ y p i ∇ x z i , \nabla_x \mathrm{CE}(x, y) = (-1 + p_y) \nabla_x z_y + \nabla_{i\not=y} p_i \nabla_xz_i, ∇xCE(x,y)=(−1+py)∇xzy+∇i=ypi∇xzi,
若 p y p_y py比较接近于 1 1 1, 也就是说分类的置信度比较高, 则会导致梯度消失, 而置信度可以单纯通过 h = α g h=\alpha g h=αg来提高, 即这个损失对scale是敏感的. 替代的损失使用DLR损失
D L R ( x , y ) = − z y − max i ≠ y z i z π 1 − z π 3 , \mathrm{DLR} (x, y) = -\frac{z_y -\max_{i \not=y}z_i}{z_{\pi_1}-z_{\pi_3}}, DLR(x,y)=−zπ1−zπ3zy−maxi=yzi,
其中 π i \pi_i πi是按照从大到小的一个序. 这个损失就能避免scale的影响, 同时还有一个target版本
T a r g e t e d − D L R ( x , y ) = − z y − z t z π 1 − ( z π 3 + z π 4 ) / 2 . \mathrm{Targeted-DLR}(x, y) = - \frac{z_y-z_t}{z_{\pi_1}- (z_{\pi_3}+z_{\pi_4})/2}. Targeted−DLR(x,y)=−zπ1−(zπ3+zπ4)/2zy−zt.
AutoAttack
AutoAttack糅合了不同的攻击方法:
- A P G D C E \mathrm{APGD_{CE}} APGDCE
- A P G D D L R \mathrm{APGD_{DLR}} APGDDLR
- F A B \mathrm{FAB} FAB
- S q u a r e A t t a c k \mathrm{Square \: Attack} SquareAttack: black-box
这篇关于Reliable evaluation of adversarial robustness with an ensemble of diverse parameter-free attacks的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!