论文:《Obfuscated Gradients Give a False Sense of Security:Circumenting Defenses to Adversarial Examples》
链接: https://arxiv.org/abs/1802.00420
也算是争议和亮点并存的一篇论文了。ICML2018的best paper,也一度引起各路大神在reddit和推特上讨论。因此打算花一段时间研究一下这篇文章。
P.S.由于毕设选题作大死选了“对抗样本”(Adversarial Examples)这一部分的内容,据我所知实验室乃至本校对这方面的研究也是少之又少,也希望我能够在短暂的数月时间内完成毕设,并彻底的搞明白这部分内容吧。
也欢迎各位有相关研究经历的老师同学们不吝赐教,给我一点学习方向上的指导。
简介:
现有的一些基于对抗样本攻击的防御模型看似可以抵挡基于优化策略的攻击,实际上,这只是一种假象;在迭代的攻击中,我们会遇到一种类似梯度掩码(gradient masking)的现象,我们称这种现象为 “混淆梯度”(obfuscated gradients)。基于混淆梯度进行的迭代训练将无法获得最优化的loss,从而给人一种攻击失败的假象。
混淆梯度这一现象可分为下面三种,解决方法对应如下:
破碎梯度(Shattered Gradients):Back Pass Differentiable Approximation(BPDA)
随机梯度(Stochastic Gradients):Expectation Over Transformation
梯度消失、梯度爆炸(Vanishing/Exploding Gradients):重新参数化或在梯度爆炸/消失之外的空间进行最优化
预定义:
我们定义一个分类网络 f ( ⋅ ) f(\cdot) f(⋅), f ( x ) i f(x)_i f(x)i代表图片 x x x被分类器识别为类别 i i i的概率。
定义图片 x ∈ [ 0 , 1 ] w ⋅ h ⋅ c x\in [0,1]^{w\cdot h\cdot c} x∈[0,1]w⋅h⋅c代表长为 h h h,宽为 w w w的 c c c通道图片。
定义 f j ( ⋅ ) f^j(\cdot) fj(⋅)是神经网络的第 j j j层。
定义 c ( x ) = a r g m a x i f ( x ) i c(x)=argmax_if(x)_i c(x)=argmaxif(x)i是分类器选择的类别, c ∗ ( x ) c^{*}(x) c∗(x)是正确的分类。
定义对抗样本 x ′ x' x′, D ( x , x ′ ) \mathcal{D}(x,x') D(x,x′)空间距离相差无几,但 c ( x ) ≠ c ( x ′ ) c(x)\neq c(x') c(x)