本文提出了针对Denfensive distillation这种防御措施的C&W算法(基于三种不同距离的对抗样本生成算法),同时也具有一定的迁移性。
本文把构建对抗样本的过程转化为一个最优化问题:
其中是衡量原始图像与对抗样本之间的距离, 三种不同距离分别为范数范数和范数。
但由于这个问题很难直接求解,因此作者通过构造函数 使得在时,此条件满足。
则问题转换为:进一步可简化为:
本文给出了7种符合此条件的函数:
为了保证输出能够产生一个合理的图像,需要,这实际上被称为盒约束 (box constraints)。
本文提出了三种盒约束优化问题的解决方法:
- 投影梯度下降(Projected gradient descent):每实施一步梯度下降,就把计算结果限制在box内,这种方法对于具有复杂更新步骤的梯度下降方法(例如,具有动量的梯度下降)效果不太好,在剪切真实的时也修改了下一次迭代的输入。
- 裁剪梯度下降法(Clipped gradient descent):与每一步迭代裁剪xx的值不同的,该方法将裁剪直接放入了优化目标,即用代替原目标函数。但这种方法,只是对目标函数进行了约束,可能会存在 超过最大值的情况,这样就会出现梯度为0的结果,以至于即使减少,梯度上也无法检测到。
- 改变变量(Change of variables):通过引入变量 ,使得:
且满足。
据此,本文提出了对应与三种范数约束的求解方法:
-
attack
可以通过调整来控制错误分类发生的置信度。 参数鼓励求解器找到一个对抗样本,被高度置信地归类为类。还可以使用多次随机初始化来减少陷入局部最优解的概率。对于攻击中常量,本文提出:可以从很小的值开始,例如;如果没找到就将翻倍,直至找到或者达到最大值,例如;如果找到就使用该值。 -
attack
由于范数不可微,因此不能使用标准的梯度下降法来进行求解。可以基于攻击来生成攻击。具体而言,就是先根据攻击生成扰动向量,并且令,然后根据评估函数选择像素(实际上评估的是像素ii对于输出的影响),然后固定像素,再利用攻击生成对抗样本,直至无法找到对抗样本为止。
实际上攻击效果并不是很好。 -
attack
对于无穷范数,假设使用公式:
发现梯度下降法的效果并不理想,这是由于只会惩罚向量中最大的那个元素,而对于其余元素没有任何影响。因此,梯度下降很快就会停滞在两个次优解之间。 考虑一个情况,其中和。只会惩罚而不会惩罚。并且在该点的值为0,因此梯度仍然会增大,尽管它已经很大。 因此在下一次迭代中,可能会移动到比略大的位置,比如和,这就可能陷入僵局。 换句话说,梯度下降可能在==0.5的线上来回摆动。
因此可将问题优化如下:
在每次迭代之后,如果对所有的都有,可以将减少0.9倍并重复; 否则,终止搜索。
假设必须选择一个好的常数用于攻击。 可以采用与攻击相同的方法:首先将设置为非常低的值,然后以此值运行攻击。 如果失败,加倍并重试,直到成功。 如果超过固定阈值,我们中止搜索。
在每次迭代中使用“热启动”进行梯度下降,则该算法的速度与之前的算法(使用单个起点)一样快。
实验结果: