版权归原作者所有,如有侵权,请联系我们

[科普中国]-对抗样本

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

对抗样本由Christian Szegedy等人提出,是指在数据集中通过故意添加细微的干扰所形成的输入样本,导致模型以高置信度给出一个错误的输出。在正则化背景下,通过对抗训练减少原有独立同分布的测试集的错误率——在对抗扰动的训练集样本上训练网络。

基本定义对抗样本(Adversarial examples)是指在数据集中通过故意添加细微的干扰所形成的输入样本,会导致模型以高置信度给出一个错误的输出。

在精度达到人类水平的神经网络上通过优化过程故意构造数据点,其上的误差率接近100%,模型在这个输入点 的输出与附近的数据点非常不同。在许多情况下, 非常近似,人类观察者不会察觉原始样本和对抗样本之间的差异,但是网络会作出非常不同的预测。1

发展动态Christian Szegedy等人2提出了对抗样本(Adversarial examples)的概念,即在数据集中通过故意添加细微的干扰所形成的输入样本,受干扰之后的输入导致模型以高置信度给出一个错误的输出。他们发现包括卷积神经网络(Convolutional Neural Network,CNN)在内的深度学习模型对于对抗样本都具有极高的脆弱性。他们的研究提到,很多情况下,在训练集的不同子集上训练得到的具有不同结构的模型都会对相同的对抗样本实现误分,这意味着对抗样本成为了训练算法的一个盲点。

Anh Nguyen等人在CVPR2015上发表的论文3中,他们发现面对一些人类完全无法识别的样本(Fooling Examples),可是深度学习模型会以高置信度将它们进行分类。这些研究的提出,迅速抓住了公众的注意力,有人将其当做是深度学习的深度缺陷。

可是kdnuggets上的一篇文章(Deep Learning’s Deep Flaws)’s Deep Flaws4指出,事实上对于对抗样本的脆弱性并不是深度学习所独有的,在很多的机器学习模型中普遍存在,因此进一步研究有利于抵抗对抗样本的算法实际上有利于整个机器学习领域的进步。

对抗样本产生原因这些对抗样本的主要原因之一是过度线性。 神经网络主要是基于线性块构建的。因此在一些实验中,它们实现的整体函数被证明是高度线性的。这些线性函数很容易优化。不幸的是,如果一个线性函数具有许多输入,那么它的值可以非常迅速地改变。如果我们用 改变每个输入,那么权重为 的线性函数可以改变之多,如果是高维的这会是一个非常大的数。对抗训练通过鼓励网络在训练数据附近的局部区域恒定来限制这一高度敏感的局部线性行为。这可以被看作是一种明确地向监督神经网络引入局部恒定先验的方法。5

对抗训练所谓深度学习对抗训练,就是通过在对抗样本上训练模型。既然深度学习的对抗样本是由于模型的线性特征所导致,那就可以设计一种快速的方法来产生对抗样本进行对抗训练。Szegedy等人的研究认为对抗样本可以通过使用标准正则化技术解决,可是Goodfellow等人使用常见的正则化方法,如dropout,预训练和模型平均进行测试,并没能显著地提高深度模型对于对抗样本的抗干扰能力。根据神经网络的Universal Approximation Theory,至少拥有一个隐层的神经网络只要拥有足够的隐层单元,就可以任意逼近任何一个非线性函数,这是浅层模型所不具备的。因此,对于解决对抗样本问题,Goodfellow等人认为深度学习至少有希望的,而浅层模型却不太可能。Goodfellow等人通过利用对抗样本训练,对抗样本上的误分率被大大降低。同时他们发现选择原始模型产生的对抗样本作为训练数据可以训练得到具有更高抵抗力的模型。此外,他们还发现,对于误分的对抗样本,对抗训练得到的模型的置信度依然很高。所以通过对抗训练能够提高深度学习的对于对抗样本的抗干扰能力。

对抗训练有助于体现积极正则化与大型函数族结合的力量。纯粹的线性模型,如逻辑回归,由于它们被限制为线性而无法抵抗对抗样本。 神经网络能够将函数从接近线性转化为局部近似恒定,从而可以灵活地捕获到训练数据中的线性趋势同时学习抵抗局部扰动。5

对抗样本积极作用对抗样本也提供了一种实现半监督学习的方法。在与数据集中的标签不相关联的点 处,模型本身为其分配一些标签。模型的标记 未必是真正的标签,但如果模型是高品质的,那么 提供正确标签的可能性很大。我们可以搜索一个对抗样本 ,导致分类器输出一个标签 。不使用真正的标签,而是由训练好的模型提供标签产生的对抗样本被称为虚拟对抗样本(virtual adversarial example)1。我们可以训练分类器为 分配相同的标签。这鼓励分类器学习一个沿着未标签数据所在流形上任意微小变化都很鲁棒的函数。驱动这种方法的假设是,不同的类通常位于分离的流形上,并且小扰动不会使数据点从一个类的流形跳到另一个类的流形上。5

本词条内容贡献者为:

王慧维 - 副研究员 - 西南大学