对抗样本

对抗样本#

[Szegedy et al., 2014] 发现对数据添加一些微小的扰动就可以改变模型的分类结果,甚至还可以通过添加扰动让模型对不同的数据产生相同的分类结果。他们将这种人眼看来没有区别,但是模型却分错了样本称为对抗样本。

寻找对抗样本的过程被他们定义为优化问题:

对数据 x 和错误标签 l,寻找最小的扰动 r 使得分类器 f:\Rm{1,,k}x+r 错误分类为 l,即

r=argminr||r||2s.t.f(x+r)=l,x+r[0,1]m

生成的扰动 r 即对抗扰动,扰动后的数据 x+r 即是对抗样本。

不过,他们实际求解的是下面这个优化问题:

r=argminrc|r|+L(θ,x+r,l)s.t.f(x+r)=l,x+r[0,1]m

其中 L 是损失函数, θ 是模型的参数。

这个形式非常有意思,因为如果把优化的对象换成 θ,再把错误标签 \mathbf{l} 换成数据对应的正确标签 \mathbf{y},那这就是训练模型的标准优化过程。何为对抗?不再优化参数,而是优化输入——更加确切地说,优化输入数据的噪声。