引流:https://www.cnblogs.com/setdong/p/16300720.html
很多机器学习和神经网络模型会将对抗样本(adversarial examples)错误分类。对此,早期的解释集中于非线性性和过拟合这两点。但作者认为主要的原因是模型的线性特征,这种观点也得到了实验结果的支持。作者还解释了对抗样本在不同训练集和不同模型结构上的泛化,并提出了一种快速生成对抗样本的方法-FGSM。
对抗样本与正确分类的样本差别很小,但是很多先进的模型都将其错误分类。一些人认为这是由于深度模型的非线性性或model averaging不足和正则不足。作者认为高维空间中的线性行为是可以导致对抗样本的,基于这种观点,作者提出了FGSM并进行对抗训练。结果表明,对抗训练可以提供除dropout外额外的正则化作用。通用的正则(如dropout,pretraining,model averaging)不能显著增强模型对对抗样本的抵抗性,但是可以增强非线性模型(如RBF网络)对其的抵抗性。
神经网络的(与本文相关的)有趣特征:
这些暴露了深度模型存在缺陷,知道了缺陷的存在就提供了修复它们的机会,下面进入正文。
输入特征的精度(precision)是有限的,所以,如果
∣
∣
η
∣
∣
∞
<
ϵ
||\eta||_{\infty}<\epsilon
∣∣η∣∣∞<ϵ (
ϵ
\epsilon
ϵ 是一个很小,任务的数据存储设备或sensor可以将其丢弃的值)分类器应该对输入
x
x
x和对抗输入
x
~
=
x
+
η
\widetilde{x}=x+\eta
x
=x+η 的分类结果一致。权重
w
w
w与对抗样本
x
~
\widetilde{x}
x
的点积为:
w
T
x
~
=
w
T
x
+
w
T
η
w^T\widetilde{x}=w^Tx+w^T\eta
wTx
=wTx+wTη
w
T
η
w^T\eta
wTη 是增量,可以令
η
=
s
i
g
n
(
w
)
\eta={\rm sign}(w)
η=sign(w)来最大化这个增量,前提是保证无穷范数限制(即
∣
∣
η
∣
∣
∞
<
ϵ
||\eta||_{\infty}<\epsilon
∣∣η∣∣∞<ϵ)。这里可以发现,
w
T
η
=
w
T
s
i
g
n
(
w
)
=
∣
∣
w
∣
∣
1
w^{T}\eta=w^T{\rm sign}(w)=||w||_1
wTη=wTsign(w)=∣∣w∣∣1。
如果
w
w
w的维度为
n
n
n,元素的平均大小为
m
m
m,那么增量为
ϵ
m
n
\epsilon mn
ϵmn。
∣
∣
η
∣
∣
∞
||\eta||_\infty
∣∣η∣∣∞不随
n
n
n改变,但增量随
n
n
n线性增长,所以对于高维问题,可以对输入进行许多很小的改变,合起来对输出就是一个很大的改变。作者将其描述为"accidental steganography"。
作者这部分的假设基于线性模型,也表明了如果一个简单的线性模型的输入的维度足够大,它就可以具有对抗性样本。
假设
θ
\theta
θ 为模型的参数,
x
x
x 为模型的输入,
y
y
y 为目标输出,
J
(
θ
,
x
,
y
)
J(\theta,x,y)
J(θ,x,y) 为用于训练神经网络的损失函数。根据目前的
θ
\theta
θ 值对损失函数进行线性化,得到优化的、无穷范数限制的扰动:
η
=
ϵ
s
i
g
n
(
▽
x
J
(
θ
,
x
,
y
)
)
\eta=\epsilon{\rm sign}(\bigtriangledown_x J(\theta,x,y))
η=ϵsign(▽xJ(θ,x,y))
基于此公式,作者提出FGSM(fast gradient sign method)用于生成对抗样本,其中梯度可以根据BP算出。

图1.在GoogLeNet模型,ImageNet数据集上使用FGSM生成对抗样本的示例。其中 ϵ = 0.007 \epsilon=0.007 ϵ=0.007,对应于GoogLeNet 转换为实数后的 8 位图像编码的最小位。
使用 ϵ = 0.25 \epsilon=0.25 ϵ=0.25,浅层softmax分类器在 MNIST测试集上的错误率为99.9%,平均置信度为 79.3%。在相同的设置中,maxout网络的错误率为89.4%,平均置信度为 97.6%。类似地,使用 ϵ = 0.1 \epsilon=0.1 ϵ=0.1,卷积maxout网络在CIFAR-10测试集的预处理版本上的错误率为87.15%,平均置信度为96.6%。 作者又给出一种生成对抗样本的简单方法:在梯度方向上将输入 x x x 旋转一个小角度。
首先考虑二分类的逻辑回归问题,标签
y
∈
{
−
1
,
1
}
y\in \{-1,1\}
y∈{−1,1},
P
(
y
=
1
)
=
σ
(
w
T
x
+
b
)
P(y=1)=\sigma(w^Tx+b)
P(y=1)=σ(wTx+b),其中
σ
(
z
)
\sigma(z)
σ(z)是sigmoid函数,则训练基于:
E
x
,
y
∼
p
d
a
t
a
ζ
(
−
y
(
w
T
x
+
b
)
)
\mathbb{E}_{x,y\sim p_{data}} \,\,\zeta(-y(w^Tx+b))
Ex,y∼pdataζ(−y(wTx+b))
ζ
(
z
)
=
log
(
1
+
exp
(
z
)
)
\zeta(z)=\log(1+\exp(z))
ζ(z)=log(1+exp(z))为softplus函数,导数为
ζ
′
(
z
)
=
e
z
1
+
e
z
=
σ
(
z
)
\zeta'(z)=\frac{e^z}{1+e^z}=\sigma(z)
ζ′(z)=1+ezez=σ(z)。
η
=
ϵ
s
i
g
n
(
▽
x
J
(
θ
,
x
,
y
)
)
=
ϵ
s
i
g
n
(
▽
x
ζ
(
−
y
(
w
T
x
+
b
)
)
)
=
ϵ
s
i
g
n
(
(
−
y
w
)
σ
(
−
y
(
w
T
+
b
)
)
)
s
i
g
n
{\rm sign}
sign中的第二项大于0,可省略,将第一项中的
y
y
y省略(我也不懂为什么能忽略)可以得到:
η
=
−
ϵ
s
i
g
n
(
w
)
\eta=-\epsilon \, {\rm sign}(w)
η=−ϵsign(w)
结合
w
T
s
i
g
n
(
w
)
=
∣
w
∣
1
w^T{\rm sign}(w)=|w|_1
wTsign(w)=∣w∣1,可得:
E
x
,
y
∼
p
d
a
t
a
ζ
(
−
y
(
w
T
x
~
+
b
)
)
=
E
x
,
y
∼
p
d
a
t
a
ζ
(
−
y
(
w
T
x
+
w
T
η
+
b
)
)
=
E
x
,
y
∼
p
d
a
t
a
ζ
(
−
y
(
−
ϵ
∣
∣
w
∣
∣
1
+
w
T
x
+
b
)
)
这有点类似于 L1 正则化。区别是,L1惩罚项是在对抗的训练期间从模型的激活中减去,而不是添加。 如果模型训练出精确的预测能力以使
ζ
\zeta
ζ饱和,那么惩罚项会开始消失。但不保证一定饱和,在欠拟合的情况下,对抗训练会加剧欠拟合。所以,作者将L1权值衰减视为"worst case"。
考虑多分类的softmax回归问题,L1 权值衰减会变得更加悲观,因为它将softmax的每个输出视为独立的量,而实际上无法找到与所有类的权重向量对齐的单个向量
η
\eta
η。在具有多个隐藏单元的深度网络中,权值衰减高估了扰动造成的损害。L1权值衰减高估了对抗样本能造成的损害,所以应当使用比特征精度
ϵ
\epsilon
ϵ更小的L1权值衰减系数。
在MNIST上训练maxout网络,当
ϵ
=
0.25
\epsilon=0.25
ϵ=0.25时对抗训练得到了不错的结果。在对模型的第一层应用L1权值衰减时,作者发现
ϵ
=
0.0025
\epsilon=0.0025
ϵ=0.0025都太大了,导致模型在训练集上出现超过5% 的误差。很小的权值衰减系数能提高训练的成功率,但是没有起到正则化的作用。
相比于浅层的线性模型,深度网络至少能表示出抵抗对抗扰动的函数。
Szegedy表明,在混合了对抗样本和干净样本的数据集上进行训练可以一定程度的对神经网络正则化。
作者给出了一个基于FGSM的对抗训练方法,这也是一种有效的regularizer:
J
~
(
θ
,
x
,
y
)
=
α
J
(
θ
,
x
,
y
)
+
(
1
−
α
)
J
(
θ
,
x
+
ϵ
s
i
g
n
(
▽
x
J
(
θ
,
x
,
y
)
)
)
\widetilde{J}(\theta,x,y)=\alpha J(\theta,x,y)+(1-\alpha)J(\theta,x+\epsilon\,{\rm sign}(\bigtriangledown_x J(\theta,x,y)))
J
(θ,x,y)=αJ(θ,x,y)+(1−α)J(θ,x+ϵsign(▽xJ(θ,x,y)))
在实验中,作者令
α
=
0.5
\alpha=0.5
α=0.5。这种对抗训练方法意味着不断更新对抗样本,以使它们对抗当前版本的模型。使用此方法来训练使用dropout的maxout网络,错误率为0.84%,而没采用对抗训练的网络错误率为0.94%。
作者在训练集的对抗样本上没有取得过0错误率,他们给出了两个解决方法:
当没采用对抗训练,模型会有些过拟合,测试集上的错误率为1.14%。当使用了对抗训练,验证集的错误率十分缓慢地随着时间趋于平稳。初始的maxout实验使用了early stopping,当验证集的错误率在100个epoch内没有下降后终止学习。作者发现,即使验证集错误率十分平坦,但对抗验证集(adversarial validation set error)并非如此,所以:
采用这两点后,作者在MNIST数据集上进行实验,错误率为0.782%。
对抗样本还可以在两个模型之间转移,但经过对抗训练的模型显示出更高的鲁棒性:模型采用对抗训练,当对抗样本由此模型生成时:模型错误率为19.6%;当对抗样本由另一个模型生成时:模型错误率为40.9%。错误分类的样本的平均置信度为81.4%。 作者还发现模型的权重发生了显着变化,采用对抗训练的模型的权重明显更具本地化和可解释性(见图 3)。

图3. 在MNIST上训练的maxout网络的权重可视化。每行展示了单个maxout单元的filter。 左)无对抗训练的模型;右)使用对抗性训练的模型。
噪声会导致目标函数值降低,可以将对抗训练视为在一组有噪输入中进行样本挖掘,以便通过仅考虑那些强烈抵制分类的噪声点来更有效地训练。作为对照实验,作者训练了一个带有噪声的maxout网络,训练的噪声为:1.随机添加 ± ϵ \pm \epsilon ±ϵ到每个像素; 2.添加噪声(噪声服从 U ( − ϵ , ϵ ) U(-\epsilon,\epsilon) U(−ϵ,ϵ))到每个像素。在FGSM生成的对抗样本上,1的错误率为86.2%,置信度为97.3%;2的错误率为90.4%,置信度为97.8%。
符号函数的导数处处为0或未定义(原点处),因此基于FGSM对抗训练的模型无法预测adversary将如何对参数的变化做出反应。如果改为基于小幅度旋转或添加缩放梯度(scaled gradient)的对抗样本,那么扰动过程本身是可微的,并且学习过程中可以看到adversary的反应。
这里提到了一个问题:扰动输入更好,还是扰动隐藏层更好,或是二者都被扰动?这里的结论是不一致的。Szegedy等人通过对sigmoidal网络实验总结出:当对抗扰动应用在隐藏层时,正则效果最好。文本中作者的实验基于FGSM,他们发现具有无界激活(unbounded activation functions)的隐藏单元的网络只是通过使隐藏单元的激活非常大来做出响应,因此通常最好只扰动原始输入。在Rust模型等饱和模型上,输入的扰动与隐藏层的扰动相当。基于旋转隐藏层的扰动解决了无界激活增长的问题,从而使扰动相对更小。使用隐藏层的旋转扰动,作者成功地训练了maxout网络。然而,这并没有产生与输入层一样正则化效果。神经网络的最后一层(linear-sigmoid或linear-softmax层)不是隐藏层最后一层的通用近似,这表明在对隐藏层最后一层应用对抗扰动时可能会遇到欠拟合问题。作者得到的最佳结果是使用对隐藏层的扰动进行训练,但是没涉及到隐藏层的最后一层。
人们直觉上认为capacity低的模型无法准确预测,但并非如此,如RBF网络:
p
(
y
=
1
∣
x
)
=
exp
(
(
x
−
μ
)
T
β
(
x
−
μ
)
)
p(y=1|x)=\exp((x-\mu)^T\beta(x-\mu))
p(y=1∣x)=exp((x−μ)Tβ(x−μ))
只能准确预测
μ
\mu
μ附近
y
=
1
y=1
y=1的类,RBF预测对抗样本的置信度很低:作者选择无隐藏层的浅层RBF对(MNIST上用FGSM生成的)对抗样本进行实验,错误率为55.4%,置信度为1.2%,对干净样本的置信度为60.6%。这种低capacity的模型错误率高是正常的,但它们通过在自己不"理解"的点上大大降低其置信度来做出正确的反应。
RBF的泛化能力不好。可以将RBF网络中的线性单元和RBF单元视为精确度-召回率(precision-recall)曲线上的不同点,线性单元召回率高,精确度低;RBF单元精确度高,召回率低。受这个想法的启发,作者在下文对一些包含二阶单元(quadratic units 如RBF单元中有二次项)的模型进行探索。

图4 简单训练的maxout网络:左)在单个输入样本上改变 ϵ \epsilon ϵ的值,观察10个MNIST类中每个softmax层的参数(未归一化的log概率)。正确的类是4。可以看到每个类别的概率与 ϵ \epsilon ϵ呈分段线性,错误的分类存在于 ϵ \epsilon ϵ值的广泛区域。右)用于生成左图的输入。左上为负数的 ϵ \epsilon ϵ,右下为正值得 ϵ \epsilon ϵ,黄框中的为正确分类的输入。
1.对抗样本特别多,且泛化能力强,同一对抗样本会被不同模型错误分类:线性的观点是,对抗样本出现在广泛的子空间中。如图4,通过追踪
ϵ
\epsilon
ϵ不同的值可以看到,对抗样本出现在由FGSM定义的一维子空间的连续区域中,而不是特定的区域。
2.一个对抗样本还会被不同的模型错误分成同一类:这是因为机器学习算法的泛化性,在训练集的不同子集上训练时,模型能学到大致相同的权重,所以,分类权重的稳定性返回来引起了对抗样本的稳定性。
作者反驳了两个假设:
1.生成训练可以在训练过程中提供更多的约束或限制,或者使模型学习如何分辨 “real” 或 “fake” 的数据,并且只对"real"的数据更加自信。
2.单个模型有奇怪的行为特点(strange quirks),但对多个模型进行平均(模型平均)可能会抵抗对抗样本的干扰。
此篇论文提出了以下结论: