目录
Explaining and harnessing adversarial examples
前言
本专栏收集了我在做OOD检测过程中阅读的一些文章,并附加了个人的理解和对文章思路的分析,希望能够帮助到做相关研究的朋友们。另外,此专栏会比较长,持续更新最新的研究进展,有需要的点个关注哦!
Explaining and harnessing adversarial examples
论文链接:https://arxiv.org/pdf/1412.6572.pdf
虽然本篇文章并不是做OOD检测的,但是其中的思想对于后续的OOD检测算法改进以及高效采样等等都有着非常大的帮助,因此OOD专栏从这一篇文章开始。
提起生成对抗网络,也就是GAN,大家一定都非常熟悉,而本次我们记录的这篇文章也正是GAN的作者Ian Goodfellow的工作。在这篇文章中,作者提出了对抗样本的概念。目前深度学习模型已经被广泛应用到各行各业中,但是,研究者们发现了一个令人担忧的现象,那就是over- confidence的问题,也就是说,神经网络对于自己的判断过于自信。
我们不妨用来表示一个卷积神经网络,其中
是网络的参数;
是网络的输入,也就是一张图像;
代表神经网络的预测标签。通常,我们会使用多元交叉熵损失来训练网络,使得它能够在训练数据集上最小化经验损失。我们不妨用
来表示损失函数,多元交叉熵具有以下形式:
其中,代表样本的索引,
代表训练数据的标签,
代表卷积神经网络输出的当前样本为类别
的概率。为了得到这个概率值,通常需要对最后的输出层使用
或者是softmax激活函数进行映射。
在实验中,作者观察到一个现象:对于一个类别属性十分明确的样本,即使在像素空间添加及其微小的抖动,也会使得一个训练好的神经网络出现误判,并且这种误判的方向性是可以人为操控的。这种样本被称作对抗样本,仅凭肉眼,在视觉上很难感受到它于原是图像的差异。
对抗样本的获取可以通过FGSM方法,也就是Fast Gradient Sign Method。我们知道,对于一个函数来讲,它的负梯度方向是使得函数值下降最快的方向,因此,沿着梯度方向前进,会最快增加函数的取值,这便是FGSM方法的理论依据。对于真实图像,其真实类别标签为
,现在对于一个训练好的卷积神经网络
,它可以很容易的将图像正确分类。但是,我们在真实图像
上添加一个微小的扰动,为了最大程度的混淆网络
,我们沿着损失函数上升最快的方向添加噪声,也就是沿着当前结果对输入图像的梯度方向添加噪声:
其中,代表的是符号函数。我们用
来控制输入图像变化的幅度,保证肉眼无法察觉,这样便得到了一个对抗样本
,虽然视觉上与原始图像
并没有差异,但是神经网络的行为将会发生很大的变化,下面的示意图展示了这一对抗样本的生成过程:
在上述图像中,原图中的熊猫在加入噪声之后,网络的输出由panda变化为gibbon,但是在视觉上并觉察不到显著的差异。对抗样本的出现极大的引起了人们对于AI也就是人工智能的担忧,这也是AI Safety越来越被人们重视的原因之一,除了安全问题,一些伦理道德方面的问题也是每一门新兴科学需要考虑且不可忽视的。
另外,根据上述的表达式,我们很容易的能够生成某一类的对抗样本。例如,我们想要特异性生成让卷积网络误判为的一组样本,那么我们就要修正样本,使得它被错分为
的时候,损失最小,从而得到特异性的对抗样本:
这样,通过指定期望的标签,我们可以生成一系列被误判为
的样本,同时,我们选择较小的
使得对抗样本与原始图片在视觉上没有显著差异。
在意识到这个问题之后,我们在训练神经网络的时候,可以通过加入对抗损失来增强分类网络的鲁棒性,但是这并不能完全解决神经网络在开放世界的应用问题,这个主题将会在后续的OOD检测中详细讨论。下面是在文章中,作者提出的一种用于增加网络对对抗样本鲁棒性的补救措施:
上述损失函数的目的在于,网络不仅要将样本分类正确,也要将它的一系列对抗样本分类正确。