什么是对抗样本?
对抗样本一般基于深度学习神经网络,其实际意义为通过对原始样本的修改,在人眼仍可以识别的情况下,让模型对加入对抗扰动后的原始输入进行高置信度的分类,而这种分类实际上与常识不符,人类无法认同。
深度学习简例
如上图,我们开了一个三个隐藏层的全连接网络,目标是你和右侧空间的图像。其中点为正负样本或测试数据,背景的蓝色和橙色为映射空间的学习结果。
经过1000轮学习,我们可以看到,右侧的背景已经基本符合样本点的分布。
现在我们将注意力放在这个学习好的分布上:
我们看到,在没有数据点的地方,在数据正负样本中间的地方,模型给出的结果是十分模棱两可的。我们暂且不关注数据没有分布的地方的结果,仅仅关注正负样本间的问题。
请看这个局部图:
如果我们可以通过数学的方法,在途中的蓝色样本点上加上一些人眼难以判别的像素扰动,让样本点在映射空间上偏移,就可以让模型以高置信度误分类样本,从而达到对抗攻击的目的。
常见对抗样本生成方法及其代码演示
攻击目的
攻击方法
白盒--常见的对抗攻击算法
单步
迭代
黑盒
其中 L 是我们试图最大化的损失函数,x_orig 是原始图像,𝛿是扰动,y 是真实标签,所选的ε用于确保扰动后的图像看上去没有那么杂乱,并且对于人类来说仍然像是原始类别的图片。
数据投毒:后门攻击