赞
踩
经典论文、对抗样本领域的开山之作
发布时间:2014
论文链接: https://arxiv.org/pdf/1312.6199.pdf
作者:Christian Szegedy, Wojciech Zaremba, Ilya Sutskever, Joan Bruna, Dumitru Erhan, Ian Goodfellow, Rob Fergus
写在前面:该文章已经发表10年了,该领域的发展十分迅速,本文中的一些观点可能并不准确
深度神经网络是高度表达性 (highly expressive models) 的模型。由于其复杂和多层次的结构,深度神经网络能够捕捉到数据中极其微妙和复杂的模式。然而,这种复杂性同时也意味着网络内部的决策过程很难被人类理解,对人们来说有些违反直觉 (counter-intuitive)。
在这篇论文中,作者介绍了两个十分有趣的属性:
在深度神经网络的高层中,重要的不是单个的单元,而是单元们形成的整体空间。这个空间以一种我们还不完全理解的方式,包含了输入数据的抽象和高级的语义信息。
在安全性方面,攻击者可能利用这一点生成扰动,以误导模型做出错误的决策;在鲁棒性方面,推动了对神经网络鲁棒性研究,即如何设计出能够抵抗这类细微扰动影响的模型。
总的来说,局部泛化关注点是模型对训练数据的微小变化的响应,而非局部泛化关注的是模型对于新的、可能在训练数据中没有直接例子的情况的处理能力。
在传统的计算机视觉系统中,颜色直方图 (histogram of colors) 和量化的局部导数 (quantized local derivatives) 是常见的特征.
这些特征容易理解,因为它们是从人类的视觉经验中抽象出来的基础视觉属性。颜色和边缘是人类用来理解世界的基本视觉线索,所以这些特征可以与我们对图像内容的直观理解直接相连。在机器学习模型中使用这些特征可以帮助系统在一定程度上模仿人类的视觉识别过程。
Kernel methods 是一类算法,在机器学习和统计学中被广泛用于模式识别、分类和回归问题。这些方法的核心思想是通过一个函数(即“核函数”)将输入数据映射到一个高维特征空间,在这个高维空间中,数据点可能更容易被线性分割或分类。Kernel方法的一个关键特性是,它们能够处理非线性关系而无需显式地定义高维映射,这是通过核技巧(kernel trick)实现的。
Kernel技巧利用核函数来计算输入数据点之间的相似度,核函数对应于高维特征空间中的内积。这允许算法在原始输入空间中间接计算出高维特征空间中的关系,而不需要进行实际的映射,从而避免了直接在高维空间中计算的高昂计算成本。
最著名的kernel方法之一是支持向量机(SVM),它使用核函数来找到最佳的决策边界,或者说超平面,该超平面可以将数据分割成不同的类别。
当文中提到“对于深度神经网络,许多核方法所依赖的平滑性假设不成立”时,它可能是在指出与传统的核方法(这些方法假设通过合适的核函数可以在高维空间实现平滑的决策边界)相比,深度神经网络在学习数据表示时表现出不同的特性。这暗示了深度网络可能能够学习出更复杂的模式或决策边界,这些模式或边界在核方法的传统框架下可能无法捕捉。
在解决盒约束优化问题时,通常会使用一些特定的算法,如梯度投影法(projected gradient method)、有界限制的BFGS(L-BFGS-B)等,这些算法能够在搜索最优解的同时保持所有变量在约束的范围内。
本论文在几个不同的网络和三个数据集上进行了大量的实验:
对于MNIST实验,我们使用了带有权重衰减 λ λ λ 的正则化。此外,在一些实验中,我们将MNIST训练数据集分成两个互不相交的数据集 P 1 P_1 P1 和 P 2 P_2 P2,每个数据集包含30000个训练样本。
传统计算机视觉通常依赖于特征提取 (feature extraction),通常来说,一个简单的特征很容易理解,就比如:颜色直方图和量化的局部导数,这也使得人们可以将特征空间中的各个坐标与输入域中的有意义的变化联系起来。
在深度神经网络中,类似的推理也被应用于尝试解释计算机视觉问题。在这些工作中,研究者们将隐藏单元的激活解释为有意义的特征,并寻找能够最大化这个单个隐藏单元激活值的输入图像。简单地说,他们试图找到哪些输入图像会引发神经网络中某个特定单元的最强激活反应,这样的激活被认为是捕捉到了某个重要特征,可以表示如下:
x
′
=
arg max
x
∈
I
⟨
ϕ
(
x
)
,
e
i
⟩
x'=\underset{x \in \mathcal{I}}{\text{arg max}} \langle \phi(x), e_i \rangle
x′=x∈Iarg max⟨ϕ(x),ei⟩
x
′
x'
x′ 表示满足(或接近)最大可达值(attainable value)的图像视觉检查
e i e_i ei 表示第 i i i 个隐藏单元相关联的自然基向量
I \mathcal{I} I 表示保留集,是从数据分布中选取的,但网络没有在其上训练的图像集合
arg max x f ( x ) \text{arg max}_x f(x) arg maxxf(x) 表示函数 f ( x ) f(x) f(x) 取最大值时对应的自变量 x x x 的值,在这个具体公式中表示,寻找集合 I \mathcal{I} I 中的一个元素 x x x,使得内积 ⟨ ϕ ( x ) , e i ⟩ \langle \phi(x), e_i \rangle ⟨ϕ(x),ei⟩最大。换句话说,它找的是哪一个 x x x 与向量 e i e_i ei 有最大的“匹配度”或“相关性”。在深度学习的应用中,这通常意味着找到使某个特定神经网络层的激活最大化的输入 x x x。
单位级别的检查 (unit-level inspection) 几乎没什么作用,而全局的、网络级别的检查方法在解释模型做出分类决策上可能会是有用的。就比如,用于识别输入中能使得给定输入实例进行正确分类的那部分(换言之,可以使用经过训练的模型进行弱监督定位),这种全局分析使我们更好地理解训练后的网络所代表的从输入到输出的映射。
通常来说,神经网络的输出层单元是其输入的一个高度非线性函数。当它使用交叉熵损失训练时(使用Softmax激活函数),它代表了给定输入(以及到目前为止呈现的训练集)标签的条件分布。有人认为,输入与神经网络输出单元之间的深层非线性层堆叠是模型编码输入空间上的非局部泛化先验的一种方式。换句话说,输出单元能够给输入空间中那些没有训练示例在其附近的区域分配极小的概率。例如,从不同视角看相同对象,虽然这些视角在像素空间中距离相对较远,但它们既共享标签也共享原始输入的统计结构。
具体解释如下:
上述论证中隐含着这样一个论点:在非常接近训练示例的情况下,局部泛化按照预期那样正常工作。在这种假设下,如果给定一个很小的半径 ε > 0 \varepsilon>0 ε>0 和输入样本 x x x ,对于满足 r + x r+x r+x, ∣ ∣ r ∣ ∣ < ε ||r||<\varepsilon ∣∣r∣∣<ε ( r r r 表示微小变化) 的输入样本依然有机会被正确的分类。这种平滑先验通常对计算机视觉问题是有效的,即给图像细微扰动通常不会改变它本来的类别。但是对于深层神经网络,这篇文章的得到的结果是上述的平滑假设并不成立。并且可以通过简单的优化过程找到对抗样本(对正确分类的输入图像进行不明显的微小扰动),让神经网络不能再正确分类。
对于深度神经网络而言,我们发现许多核方法 (kernel methods) 所依赖的平滑性假设并不成立。具体来说,我们展示了通过使用一个简单的优化过程,我们能够找到对抗样本,这些是通过对正确分类的输入图像进行微小的、几乎察觉不到的扰动得到的,从而使得它不再被正确分类。
从某种意义上讲,我们描述的是一种通过优化以高效方式遍历神经网络所代表的流形 (traverse the manifold),并在输入空间中找到对抗样本 (adversarial examples) 的方法。
对抗样本代表了流形中这个高维空间的特定区域,这些区域的存在可能会导致模型的预测错误,但这些区域出现的概率很低,使得通过随机采样来发现这些区域变得非常困难。已经有许多计算机视觉模型在训练过程中采用输入变形(比如旋转、缩放、剪切图像),以提高模型的鲁棒性和收敛速度。这些变形从统计上来看对于给定示例是低效的:它们高度相关,并且在整个模型训练过程中都来自同一个分布。
然而,尽管这些输入变形能增加数据的多样性,但从统计学的角度来看,它们是低效的。原因是这些变形高度相关,而且整个训练过程中,这些变形产生的数据都来自于同一个分布。这意味着,尽管数据通过变形在表面上看起来不同,但从根本上讲,它们带给模型学习的信息是有限的,因为这些变化是可预测的,且在整个训练过程中没有本质的变化。如果在训练过程中一直重复使用相同的变形方法,模型可能会过于适应这些特定的变形而不是学会从根本上理解图像的内容。
我们提出了一种方案,利用模型及其在训练数据周围局部空间建模方面的不足,使这一过程自适应。这种方法能够识别出模型在理解训练数据特别是数据的局部细节方面存在的问题或不足。利用这种识别出来的信息,该方法能够自动调整训练过程,使其更加针对性地解决这些问题,从而提高模型的性能。
我们的方案与硬负采样(hard-negative mining)有密切的联系,因为它们在想法上是接近的:在计算机视觉中,“硬负例”指的是那些模型错判为负例(即非目标类)的正例样本,或者说,它们是模型预测错误的案例,但按理应该被正确分类的。这些样本对于模型来说是“难题”,因为模型很难准确地将它们分类到正确的类别中。即,被模型错误地判断为低概率(即模型认为它们属于某一类的可能性很低)的示例,但实际上,这些示例应该被判断为高概率(即应该很容易被识别为某一类)。通过识别这些模型当前处理不好的示例,并在训练集中对它们给予更多的重视(例如,通过增加它们的权重或更频繁地将它们纳入训练批次中),可以促使模型更加关注于改进其在这些特定情况下的表现。正如所述的那样,本工作提出的优化问题也以一种类似于硬负采样的方式被使用。
f : R m → { 1 , … , k } f:\mathbb{R}^m \rightarrow \{1, \ldots, k\} f:Rm→{1,…,k}为分类器,接收一个 m m m 维的图像像素值向量作为输入,将其映射到一个离散的标签集 1... k {1 ... k} 1...k 中, k k k 为类别数。
给定图片 x ∈ R m x \in \mathbb{R}^m x∈Rm 以及目标标签 l ∈ { 1 , … , k } l \in \{1, \ldots, k\} l∈{1,…,k},我们想解决如下的盒约束优化问题 (box-constrained optimization problem):
Minimize ∣ ∣ r ∣ ∣ 2 subject to: 1. f ( x + r ) = l 2. x + r ∈ [ 0 , 1 ] m \text{Minimize $||r||_2$ subject to:} \\ 1.f(x+r) = l \\ 2.x+r \in [0,1]^m Minimize ∣∣r∣∣2 subject to:1.f(x+r)=l2.x+r∈[0,1]m
存在约束:
D ( x , l ) D(x,l) D(x,l) 用来寻找距离原始图像 x x x 最近的、被分类器 f f f 错误分类的图像。最小值 r r r 可能并不唯一,我们用 x + r x+r x+r 表示通过 D ( x , l ) D(x,l) D(x,l) 任意选择的一个最小值。很明显, D ( x , f ( x ) ) = f ( x ) D(x,f(x))=f(x) D(x,f(x))=f(x),因此当 f ( x ) ≠ l f(x)≠l f(x)=l 时,这个任务才是有意义的。
通常,$ D(x,l) $ 的精确计算是一个困难问题,因此我们使用盒约束L-BFGS (box-constrained L-BFGS) 对其进行近似。我们通过进行线性搜索来找到最小值
c
>
0
c>0
c>0,对于该最小值,以下问题的极小值
r
r
r 满足
f
(
x
+
r
)
=
l
f(x+r)=l
f(x+r)=l
Minimize
c
∣
r
∣
+
loss
f
(
x
+
r
,
l
)
subject to
x
+
r
∈
[
0
,
1
]
m
\text{Minimize } c|r| + \text{loss}_f(x + r, l) \quad \text{subject to } x + r \in [0, 1]^m
Minimize c∣r∣+lossf(x+r,l)subject to x+r∈[0,1]m
在凸损失 (convex losses) 的情况下,这种惩罚函数方法 (penalty function method) 将给出精确解,但是神经网络通常是非凸的,因此在这种情况下我们会得到一个近似值。
我们的最小失真 (minimum distortion) 函数 D D D 具有以下有趣特性,我们将在本节中通过非正式证据和定量实验加以说明:
上述结果表明,对抗样本在某种程度上是普遍的,而不仅仅是过度拟合特定模型或特定选择训练集的结果。并且,将对抗样本用于训练可能会提高结果模型的通用性。我们的初步实验也为MNIST提供了积极的证据来支持这一假设:我们通过保留一组对抗样本作为随机子集,成功地训练了测试误差低于1.2%的两层100-100-10非卷积神经网络,通过维护了一个动态对抗样本池,在每次训练迭代中,一部分对抗样本会被新生成的对抗样本替换。
我们使用了权重衰减 (weight decay),但没有使用 (dropout)。作为比较,仅通过权重衰减进行正则化,该规格的识别误差为1.6%,但通过使用精心设计的 Dropout 可将其降低至1.3%左右。一个很关键的细节是在训练过程中,针对每一层的输出生成对抗样本并用这些样本来训练该层以上的所有层。该网络以交替的方式进行训练,除了原始训练集之外,还分别维护和更新每一层的对抗样本库。根据观察,高层的对抗样本似乎比输入层或较低层的对抗样本有用得多。在未来的工作中,我们计划系统地比较这些影响。
出于空间考虑,我们只介绍我们执行的MNIST实验的代表性子集(参见下表)的结果。此处显示的结果与各种非卷积模型的结果一致。 对于MNIST,我们尚无卷积模型的结果,但我们与 AlexNet 进行的首次定性实验让我们有理由相信卷积网络的行为也可能相似。我们的每个模型都经过L-BFGS训练直至收敛。前三个模型是具有不同权重衰减参数 λ λ λ 的线性分类器,将二次权重衰减 l o s s d e c a y = λ ∑ w i 2 / k loss_{decay}=\lambda \sum w_i^2/k lossdecay=λ∑wi2/k ( k k k 是一层中单元的数量)填加至总损失中。
具体来看该表格,左侧是具体的模型,前三个是没有隐藏层的简单 softmax 分类器 FC10( λ λ λ ) , 其中 FC10(1) 表示以 λ = 1 λ = 1 λ=1 这种极端情况进行训练,来测试是否仍然可以产生对抗样本。另外两个模型是具有两个隐藏层和一个分类器的简单 sigmoidal 神经网络。最后一个模型AE400-10 是由具有Sigmoid型激活的单层稀疏自动编码器 (sparse autoencoder) 和带有 Softmax 分类器的400个节点组成的。该网络已经过训练获得了非常高质量的第一层过滤器并且没有对该层进行微调。
最后一列测量在训练集上达到 0% 精度所需的最小平均像素级别失真 (the minimum average pixel level distortion),也就是100%分类失败,这个失真是通过 ∑ ( x i ′ − x i ) 2 n \sqrt{\frac{\sum(x_i'-x_i)^2}{n}} n∑(xi′−xi)2 来衡量的,其中 n 是图像像素的数目,像素值缩放到 [ 0 , 1 ] [0,1] [0,1] 范围内。
在我们的第一个实验中,我们为给定的网络生成了一组的对抗样本,并为每个其他网络提供这些实例来测量误分类实例的比例。结果如下,最后两行用给定量的高斯噪声所引起的失真误差作为参考。除了一个模型以外的所有模型,即使标准差为0.1的噪声也大于我们对抗性噪声的标准差。图7展示了该实验中使用的两个网络生成的对抗样本的可视化。总的来说,即使对于使用不同超参数训练的模型,对抗样本也有所影响。尽管基于自动编码器的版本似乎可以对抗敌手,但也不能完全避免。
接下来研究有关数据集的问题,生成对抗样本的难度是否仅取决于训练集的特定选择吗,而且以上部分的使用都是在相同的数据集进行训练的,那么对抗样本的效果可以推广到在完全不同的训练集上训练的模型吗?
为了研究交叉训练集的泛化,我们将60000个MNIST训练图像划分为30000个每组的 P 1 P_1 P1 和 P 2 P_2 P2 两个部分,并训练了三个具有 Sigmod 激活函数的非卷积网络:在 P 1 P_1 P1 上训练 FC100-100-10 和 FC123-456-10,在 P 2 P_2 P2 上训练 FC100-100-10。在 P 1 P_1 P1 上训练两个网络的原因是要研究同时更改超参数和训练集的累积效应。FC100-100-10 和 FC100-100-10’ 共享相同的超参数:它们都是100-100-10网络,而FC123-456-10 具有不同数量的隐藏单元。表3总结了有关这些模型的基本参数。
在为测试集生成具有100%错误率且失真最小的对抗样本之后,我们将这些示例提供给每个模型。
在最后的实验中,我们衡量失真的效应为 x + 0.1 x ′ − x ∣ ∣ x ′ − x ∣ ∣ 2 x+0.1\frac{x'-x}{||x'-x||_2} x+0.1∣∣x′−x∣∣2x′−x 而不是 x ′ x' x′。这将失真平均提高了40%,stddev 从0.06扩大到 0.1。我们可以得出结论:即使在不相交的训练集上训练的模型,对抗样本依旧也所影响,尽管其有效性大大降低。
本部分涉及许多数学公式证明,一个专门讲解这部分的证明过程的视频链接如下:https://www.youtube.com/watch?v=df_NZyGeVXg
文章证明了深度神经网络在个体单元的语义含义以及在不连续性方面都表现出了一些违反直觉的属性。对抗负例 (adversarial negatives) 的存在似乎与网络达到高泛化性能的能力相矛盾。也确实是这样,虽然这些样例确实不太容易与常规样例区分,但如果神经网络真的泛化很好,怎么会被这些对抗样本所混淆呢?一个可能的解释是,对抗负例集的出现具有极低的概率,因此在测试集中从未(或很少)被观察到,但它却是稠密的(类似于有理数的分布),因此几乎在每一个测试案例的附近都能找到对抗负例。然而,我们对其出现的频率还缺乏深入理解,因此这个问题应该在未来的研究中得到关注。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。