对抗样本攻击-CW算法
引言
近年来深度学习在许多领域都越来越有效,但是,Szegedy 等研究人员发现,在图像分类领域存在对抗性样本。例如,只需要对图像进行稍微变换,就可以改变图像的分类结果,而这个"变换"通常足够微小以至于我们甚至无法观测到。
先前最主流的防御方法称为防御蒸馏,可以应用在任何前馈神经网络上。
一般来说,要想证明一个神经网络的鲁棒性,有两种方法。一种是尝试证明下界,也就是尝试各种攻击方法,然后查看模型的最差表现。另外一种是尝试寻找上界,也就是找到一种最为有利的攻击,用来评测模型效果。而在本篇论文中,作者尝试找到了一种上界,也就是一种强有力的攻击方法,希望可以用来作为评估模型鲁棒性的标准。值得注意的是,这种攻击打破了防御蒸馏的方法,因此推动了整个对抗样本领域的进步。
背景
Szegedy 等人讨论了两种攻击方法,设
- 有针对性的对抗样本:设
,可以找到一个类似 的 ,使得 。 - 无针对性的对抗样本:只需要找到类似
的 ,使得 。
其中有针对性的对抗样本攻击性更强,本文也主要讨论这种攻击方法。但是如何选取目标
- 平均:也就是在所有的错误标签中随机选择。
- 最好情况:对于所有的错误标签全部测试,选出最容易攻击的标签。
- 最坏情况:对于所有的错误标签全部测试,选出最难攻击的标签。
前文提到,我们需要找到一个与
具体来说:
距离:也就是改变的特征数目,例如,原来 , 然后 。其中第 2 个和第 4 个特征变化了,一共有 2 个特征进行了变化,因此 距离就是 2。 距离:也就是欧几里得距离。 距离: ,即最大的变化量,例如原来 , 然后 ,则第二个特征变化量为 1,第 4 个特征变化量为 5,因此 距离为 5。
作者提出,没有一种距离度量能否完美符合人眼中的"相似",构建和评估一个好的距离度量是未来的重要工作之一。然而,大部分工作都选择了这 3 种度量的一个,本文也选择了这些度量。
下面简单讲解一下防御蒸馏。
第一步,正常的训练网络。在训练中对 Softmax 进行了平滑操作,即
然后得到了软标签 (硬标签就是直接输出预测标签,比如认为输入是一只猫;而软标签就是多种可能结果和概率,例如认为90%的可能性是猫,10%的可能性是狗)。
第二步,扔掉第一个训练网络,只保留软标签。使用软标签重新训练第二个模型,使第二个网络逼近第一个网络。
CW 攻击算法
目标函数
首先,我们对问题进行公式化表达:
最小化
而
但是有一个问题,约束条件
我们可以设
其中
因此,最终我们将问题转化为
即:
那么,常数 c 该如何选取呢?
论文提到,从经验上讲,c 为满足
盒约束
为了确保生成有效的图像,需要对
这种方法称为盒约束。那么如何满足盒约束呢?论文提到了 3 种方法:
略过
复现
TensorFlow-GPU 环境安装:
注意版本,且必须使用 conda 安装。
1 |
|
参考文献
Papernot, Nicolas, et al. "Distillation as a defense to adversarial perturbations against deep neural networks." 2016 IEEE symposium on security and privacy (SP). IEEE, 2016.