原文标题:Obfuscated Gradients Give a False Sense of Security: Circumventing Defenses to Adversarial Examples
摘要
混淆梯度是一种梯度隐蔽方法,用来防御对抗攻击。
混淆梯度有一定效果,但是可以被绕过,而且作者攻击的效果极好。
intro
梯度隐藏:没有梯度,那么攻击者就不能用优化方法完成迭代。
混淆梯度的三种形式:
- 破碎梯度:梯度不存在、不正确,由数值不稳定性/不可微运算引起
- 随机梯度:依赖于时间的随机性,比如网络本身是随机的,在输入到分类器之前是随机变换的
- 爆炸、消失梯度:即梯度爆炸/梯度消失
新的攻击技术:反向传播可微近似(BPDA)
混淆梯度
一个防御方法如果说是梯度隐蔽的话,那么它意味着没有有用的梯度。
混淆梯度的机理:防御措施必然会引入梯度掩蔽。
一些表现:
- 一步攻击比迭代攻击效果好
- 黑盒攻击比白盒攻击效果好
- 无界攻击不是100%成功
攻击技术
BPDA
防御技术的原理:给定一个分类器 f f f,做一个预处理器 g ( x ) g(x) g(x)约等于 x x x,使得 f ( g ( x ) ) f(g(x)) f(g(x))作为加固的分类器。 g g g如果可微,则可以用反向传播日穿它(即根据梯度来生成对抗样本)。但是 g g g不一定是可微的。BPDA就是想把这个 g ( x ) g(x) g(x)近似地认为是 x x x,然后做反向传播。
一般的BPDA就是为无法微分的层找一个近似(因为原来的网络是训练好的,我们如果改动太大的话网络就废了),用这个近似的层来完成反向传播
应用BPDA时,可能需要更多次的迭代。
EOT
如果防御者对输入有随机变换,我们就取期望(做采样)。
重参数化
f ( g ( x ) ) f(g(x)) f(g(x))中 g g g会导致梯度爆炸/消失,则找一个可微 x = h ( z ) x = h(z) x=h(z),使得 g ( h ( z ) ) = h ( z ) g(h(z)) = h(z) g(h(z))=h(z),然后计算 f ( h ( z ) ) f(h(z)) f(h(z))。
验证
攻击防御与构建强大防御之间存在不对称性:为了证明防御可以绕过,只需证明一种方法即可;相反,防御者必须证明任何攻击都不可能成功。