当前位置: 首页 > 科技观察

深度神经网络中的对抗样本与学习详解

时间:2023-03-20 17:34:32 科技观察

概述在过去的六个月里,人工智能领域已经成为科技领域中被提及频率最高的术语之一。在kdnuggets之前发表的文章(DeepLearning'sDeepFlaws)的DeepFlaws中,深度学习大神YoshuaBengio和他的博士生谷歌科学家IanGoodfellow在评论中就AdversarialExamples与作者进行了热烈的讨论。在讨论中,kdnuggets的编辑邀请了IanGoodfellow写一篇文章来解释他的观点和他在这方面的工作。那么什么是对抗样本,对抗样本是如何生成的呢?对抗样本(AdversarialExamples)的概念最早是在ChristianSzegedy等人发表的一篇论文中提出的。在ICLR2014中,即通过刻意加入微妙的扰动来形成输入样本,扰动的输入导致模型给出错误的高置信度输出。在他们的论文中,他们发现包括卷积神经网络(CNN)在内的深度学习模型极易受到对抗性示例的攻击。他们的研究提到,在很多情况下,在训练集的不同子集上训练的具有不同结构的模型会对相同的对抗样本进行错误分类,这意味着对抗样本成为训练算法的盲点。二是将矛头指向深度学习,这似乎是为深度学习热潮降温的一种方式。在AnhNguyen等人发表的论文中。在CVPR2015上,面对一些人类根本无法识别的样本(论文中称为FoolingExamples),深度学习模型会以很高的置信度对它们进行分类,比如将噪声识别为狮子。针对上述漏洞,研究提出,一方面促使人们更深入地思考机器视觉与人类视觉的真正区别。学习,但深有瑕疵。对于深度学习来说,这是有些不公平的指责,因为kdnuggets(DeepLearning'sDeepFlaws)上的一篇文章指出,深度学习对对抗样本的脆弱性并不是深度学习独有的,事实上,这在很多机器学习中是普遍存在的models(刚才MasterBox说的,所有的模型都是错的,但有些是有用的),而深度学习可能是目前为止最抗对抗训练的技术。如下图,原图判断为“熊猫”,置信度为60%,但加入了一个小的干扰,在人眼看不到的情况下,被归类为长臂猿,执行率为99%根本看不出区别。对抗样本的根本问题那么,深层模型无法应对对抗样本的真正原因是什么?一般来说,我们知道泛化能力不足可能是因为模型过拟合,而泛化能力不足可能是因为模型同质化或正则化不够。然而,尝试通过更多模型平均和使用更多噪声进行训练来处理对抗性示例的尝试都失败了。另一种猜测是该模型是高度非线性的。深度模型的参数数量为数千万。确实很不舒服,但是IanGoodfellow在解释和利用对抗样本的论文中,通过给一个线性模型加入抗干扰,发现只要线性模型的输入有足够的维度(其实在大多数情况下,模型输入的维数比较大,因为维数太小的输入会导致模型精度低,即欠拟合),线性模型也会表现出明显的对抗样本脆弱性,反驳了解释对抗性例子是由于模型的高度非线性。事实上,该论文指出,高维空间中的线性足以引起对抗性示例,而深度模型无法对抗性示例主要是由于其线性部分的存在。下图显示了线性设计引起的电阻和干扰模型之间的关系。对抗样本的使用针对以上问题,对抗样本无疑给深度学习带来了质疑,但实际上它也提供了一个修改深度模型的机会,因为我们可以反过来使用对抗样本来改进模型的阻力。干扰能力,所以就有了对抗训练的概念。随着对对抗样本研究的深入,对抗样本可以用来生成对抗网络(GANs)。在GAN中,包含生成模型G和判别模型D。D需要区分样本是来自G还是真实数据集,而G的目标是生成可以愚弄D的对抗样本。G可以看作是假币生产者。D是警察。通过G和D之间的不断战斗,彼此的技能会逐渐提高,最终可以将G制作的假币与真币混淆。防御对抗样本Papernot等人。表明蒸馏技术(使用概率分布作为目标进行训练)也可用于大大降低网络对扰动的脆弱性。对于在MNIST数据集上训练的DNN,防御性蒸馏将对抗样本的成功率从95.89%降低到0.45%!对于CIFAR数据集,成功率从87.89%下降到5.11%。事实上,防御性蒸馏可以降低DNN对输入扰动的敏感性。以下是来自MNIST和CIFAR的一些示例,展示了合法示例和对抗示例:以下是防御性蒸馏的工作原理和原因。考虑到一般的对抗框架,首先找出围绕给定输入样本的工作方向,然后使用此信息来选择输入维度之间的扰动。如果梯度方向陡峭,会对小的扰动产生很大的影响。为了防止这种扰动,在训练期间学习的模型必须由网络平滑,以更好地泛化到训练数据集之外的样本。DNN对对抗性示例的“鲁棒性”与在给定示例邻域的情况下始终如一地对输入进行分类有关。为了实现这种平滑,蒸馏防御首先以正常方式训练分类网络,然后使用从第一个模型中学习到的概率向量来训练另一个具有完全相同架构的新模型。下图显示了蒸馏温度如何影响模型对对抗性示例的防御。直觉上,温度越高,防御越好。防御蒸馏仅适用于基于能量概率分布的DNN模型,因此它是构建通用对抗样本鲁棒机器学习模型的重要步骤。