通过基于对象的多样化输入提高目标对抗样本的可移植性
链接:https://arxiv.org/abs/2203.09123
代码:https://github.com/dreamflake/ODI
Abstract
对抗样本的可迁移性允许对黑盒模型进行欺骗,基于迁移的target攻击由于其实际适用性而引起了很多兴趣。为了最大化迁移成功率,对抗样本应避免过拟合源模型,而图像增强是实现此目的的主要方法之一。然而,先前的工作使用简单的图像转换,例如调整大小,这限制了输入的多样性。为了解决这个限制,我们提出了基于对象的多样化输入(ODI)方法,该方法在 3D 对象上绘制对抗图像,并将渲染图像归类为目标类。我们的动机来自于人类对打印在 3D 物体上的图像的卓越感知。如果图像足够清晰,人类可以在各种观看条件下识别图像内容。同样,如果对抗样本看起来像模型的目标类,模型也应该将 3D 对象的渲染图像分类为目标类。 ODI 方法通过利用多个源对象的集合和随机化查看条件来有效地多样化输入。在我们对 ImageNet-Compatible 数据集的实验结果中,与最先进的方法相比,该方法将平均目标攻击成功率从 28.3% 提高到 47.0%。我们还展示了 ODI 方法对人脸验证任务的对抗样本的适用性及其卓越的性能改进。
Motivation
在基于迁移的攻击中,为了最大限度地提高迁移成功率,对抗样本应避免对源模型过拟合,图像增强是实现这一目标的主要方法之一。
上图解释了本文动机。当2D图像被投影到3D物体上时,原始图像是弯曲的,并且它的光照、颜色和视角等都发生了变化。但是人类可以在各种观看条件下识别3D物体上的图像内容。 同样地,如果一个对抗样本看起来确实像源模型的目标类,那么模型也应该将打印在3D对象上的图像识别为目标类。
基于此,本文提出了基于对象的多样化输入(ODI)方法,引入3D对象,在对象的表面上投影一个对抗样本,并诱导呈现的图像被分类为目标类。ODI方法通过利用多个源对象的集成和随机查看条件,有效地使输入多样化。
Method
首先在源对象池中随机选择一个对象,得到它的纹理映射,边框(画布区域),3D网格。
用随机纯色填充纹理映射,将调整过大小的输入图像x插入到纹理图的边框里。
然后进行渲染环境设置:在预设的范围中随机选择倾斜度、仰角、方位角以及光照等信息的参数。 使用随机选择的参数渲染修改后的3D网格,得到二维图像,整个过程可以通过pytorch3D的可微分渲染器实现。
将其与随机生成的背景图像混合,得到最终的输出图像。
得到输出对象后利用一些已有的白盒攻击方法生成对抗样本,去攻击目标模型。 这种输入多样化更加符合现实,更多样,可以避免源模型的“过拟合”,能提高对抗样本的迁移性。
Code
首先初始化Xadv, 在每次迭代中,用ODI方法对Xadv做一个图像增强,计算出它的分类结果与目标类的交叉熵损失。
再结合动量迭代攻击、平移不变攻击、快速梯度攻击这三种经典的方法,最小化与目标类的分类损失算出对抗样本。
最后对对抗样本进行一个剪切操作,限制它的大小。(T取300)
Experiments
表1显示了使用四种源模型对9个黑盒目标模型的目标攻击成功率。 几种攻击方法采用组合的形式,可以看到,加入了本文的这个方法后,攻击效果都有了较大的提升 右侧报告了生成一个对抗样本所需的平均时间。
ODI方法比前两个方法需要更多的计算成本。但是与后两个相比,ODI-MI-TI将所需时间缩短了一半,攻击成功率也提高了很多。 当使用VT或SI时,所需的计算量显著增加,因为每个循环需要更多的推理与尺度和样本的数量成比例
- DI多样化输入方法:对图像应用随机调整大小和填充
- RDI调整大小-多样化输入方法:类似于DI方法,但它在DI的最后一步将扩展和填充的图像调整回原始大小。
- SI:图像和缩放后的图像(像素值乘以一个系数),在同一个模型上的loss很接近,将这种特性视为一种模型增强。
- VT方差调整方法:侧重于梯度方差,定义为图像的梯度与附近图像的平均梯度之间的差异。通过减小梯度方差,来稳定更新方向。