1、对抗样本
如下图所示,在原始图片(57.7%的概率识别为panda)上加一个非常微小的噪声,加完之后人体视觉上看不出区别,但是再次输入同一个神经网络,它就会以99.3%的概率将其识别为gibbon。
作者认为,高维空间的线性足够产生对抗样本,由此作者也设计了一种新的快速产生对抗样本的方法FGSM。
对抗样本的线性解释:
如果向样本x中的每个元素值添加的扰动值
η
\eta
η小于样本输入特征精度时,直观理解上模型分类器可能会无法将样本x和对抗样本
x
ˉ
\bar x
xˉ = x +
η
\eta
η区分开来,但事实并不是这样。
在神经网络模型中都会引入权重向量w:
w
T
x
ˉ
=
w
T
x
+
w
T
η
w^T\bar x=w^Tx+w^T\eta
wTxˉ=wTx+wTη 其中|
η
\eta
η| <
ϵ
\epsilon
ϵ,从该式可以看出,这时的对抗扰动会使激活函数的输入相应增加
w
T
η
w^T\eta
wTη,假设权重向量w有n个维度,并且权重向量中元素平均值是m,那么激活函数将会最多增加
ϵ
\epsilon
ϵnm。这种情况下,虽然扰动不会随着维度n的变化而变化,但是由
η
\eta
η导致的激活函数的增加量
ϵ
\epsilon
ϵnm会随着维度n线性增长。因此在高维问题上,即使对输入进行非常小的更改,对应的输出也会产生很大的变化。
以上表明,如果线性模型的输入样本具有足够大的维度,那么线性模型也同样会容易受到对抗样本的攻击。
2、非线性模型的线性扰动
作者利用上面对抗样本的线性解释提出了一个快速产生对抗样本的方法FGSM。
假设模型参数为
θ
\theta
θ(包含模型加权平均向量w、偏置量b等),输入、输出分别为x,y,J(
θ
\theta
θ, x, y)是损失函数,FGSM将损失函数近似线性化,
η
=
ϵ
s
i
g
n
(
▽
x
J
(
θ
,
x
,
y
)
)
\eta=\epsilon sign(\bigtriangledown_xJ(\theta, x, y))
η=ϵsign(▽xJ(θ,x,y))。
这里首先回顾一下正常的模型训练过程,训练时通常都要让损失函数越来越小,因此需要对损失函数求导(梯度),如果为正,说明参数太大,所以在下一轮训练前就需要将参数变小(减去这个梯度),从而使损失函数越来越小,模型预测正确的概率越来越大。但是这里对抗样本的目的是,模型预测正确的概率越小越好,和正常训练过程中参数更新的操作相反,因此只需要在输入图像中加上计算得到的梯度方向,这样得到的损失值才会更大,模型预测正确的概率才会更小。
如文章最开始的图片所示,在输入图片上添加了一个不明显的小向量,该向量的元素等于损失函数相对于输入图片元素的梯度,这样就让神经网络产生了误分类。
总结一下FGSM主要有两点:一是计算梯度的时候,是基于输入图像来计算的,二是更新输入图像的时候加上梯度,这和模型训练时的减去梯度正好相反。
通过一系列的实验,发现FGSM确实可以导致各种模型将其输入错误分类:
当
ϵ
\epsilon
ϵ=0.25时,在mnist数据集上,逻辑回归模型的错误率为99.9%(原始区分3和7的错误率仅为1.6%),maxout网络的对抗样本错误率为89.4%;当
ϵ
\epsilon
ϵ=0.1时,在CIRAF-10数据集上,maxout卷积神经网络的错误率最高为87.15%。但是RBF神经网络对对抗扰动不敏感,其对应的置信度也很低。
参考链接:
https://blog.csdn.net/u014380165/article/details/90723948 https://zhuanlan.zhihu.com/p/25462317
https://blog.csdn.net/u014038273/article/details/78773515
https://blog.csdn.net/qq_35414569/article/details/80770121
https://arxiv.org/pdf/1412.6572.pdf
https://zhuanlan.zhihu.com/p/166364358