Out-of-distribution Detection系列专栏(一)

目录

前言

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的问题,也就是说,神经网络对于自己的判断过于自信。

我们不妨用\hat{y}=h(x;\theta)来表示一个卷积神经网络,其中\theta是网络的参数;x是网络的输入,也就是一张图像;\hat{y}代表神经网络的预测标签。通常,我们会使用多元交叉熵损失来训练网络,使得它能够在训练数据集上最小化经验损失。我们不妨用J来表示损失函数,多元交叉熵具有以下形式:

J=-\sum_{i=1}^{N}\sum_{c=1}^{C}\mathbb{I}(y_i=c)\log P_\theta(\hat{y}=c)

其中,i代表样本的索引,c代表训练数据的标签,P_\theta(\hat{y}=c)代表卷积神经网络输出的当前样本为类别c的概率。为了得到这个概率值,通常需要对最后的输出层使用\sigma(\cdot)或者是softmax激活函数进行映射。

在实验中,作者观察到一个现象:对于一个类别属性十分明确的样本,即使在像素空间添加及其微小的抖动,也会使得一个训练好的神经网络出现误判,并且这种误判的方向性是可以人为操控的。这种样本被称作对抗样本,仅凭肉眼,在视觉上很难感受到它于原是图像的差异。

对抗样本的获取可以通过FGSM方法,也就是Fast Gradient Sign Method。我们知道,对于一个函数来讲,它的负梯度方向是使得函数值下降最快的方向,因此,沿着梯度方向前进,会最快增加函数的取值,这便是FGSM方法的理论依据。对于真实图像x,其真实类别标签为y,现在对于一个训练好的卷积神经网络h,它可以很容易的将图像正确分类。但是,我们在真实图像x上添加一个微小的扰动,为了最大程度的混淆网络h,我们沿着损失函数上升最快的方向添加噪声,也就是沿着当前结果对输入图像的梯度方向添加噪声:

\hat{x}=x+\epsilon \mathrm{sgn}(\nabla_xJ(\theta,x,y))

其中,\mathrm{sgn}(\cdot)代表的是符号函数。我们用\epsilon来控制输入图像变化的幅度,保证肉眼无法察觉,这样便得到了一个对抗样本\hat{x},虽然视觉上与原始图像x并没有差异,但是神经网络的行为将会发生很大的变化,下面的示意图展示了这一对抗样本的生成过程:

在上述图像中,原图中的熊猫在加入噪声之后,网络的输出由panda变化为gibbon,但是在视觉上并觉察不到显著的差异。对抗样本的出现极大的引起了人们对于AI也就是人工智能的担忧,这也是AI Safety越来越被人们重视的原因之一,除了安全问题,一些伦理道德方面的问题也是每一门新兴科学需要考虑且不可忽视的。

另外,根据上述的表达式,我们很容易的能够生成某一类的对抗样本。例如,我们想要特异性生成让卷积网络误判为\breve{y}的一组样本,那么我们就要修正样本,使得它被错分为\breve{y}的时候,损失最小,从而得到特异性的对抗样本:

\hat{x}=x-\epsilon \mathrm{sgn}(\nabla_xJ(\theta,x,\breve{y}))

这样,通过指定期望的标签\breve{y},我们可以生成一系列被误判为\breve{y}的样本,同时,我们选择较小的\epsilon使得对抗样本与原始图片在视觉上没有显著差异。

在意识到这个问题之后,我们在训练神经网络的时候,可以通过加入对抗损失来增强分类网络的鲁棒性,但是这并不能完全解决神经网络在开放世界的应用问题,这个主题将会在后续的OOD检测中详细讨论。下面是在文章中,作者提出的一种用于增加网络对对抗样本鲁棒性的补救措施:

\tilde{J}(\theta,x,y)=\alpha J(\theta,x,y)+(1-\alpha) J(\theta,x+\epsilon\mathrm{sgn}(\nabla_xJ(\theta,x,y)),y)

上述损失函数的目的在于,网络不仅要将样本x分类正确,也要将它的一系列对抗样本分类正确。

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Out-of-distribution是指在模型训练时未曾出现过的数据分布,也称为“未知数据”。在模型面对未知数据时,其预测结果可能会出现误差或不确定性。因此,对于模型的鲁棒性和泛化能力的提升,需要对out-of-distribution数据进行有效的识别和处理。 ### 回答2: out-of-distribution(OoD)是指模型在测试阶段遇到了其训练数据集之外的样本或类别。当模型只使用特定的数据集进行训练时,它可能无法处理那些与训练数据不同的输入。这些新的样本可能是在颜色、形状、大小等方面与训练数据有所不同,也可能属于未在训练数据中出现过的类别。 遇到OoD样本的问题是模型的泛化能力不足。模型在训练数据中表示和学习的特征可能过于特定,无法推广到训练数据集之外的样本。这可能导致模型的预测不准确或不可靠。 为了解决OoD问题,有几种方法可以采取。一种常见的方法是收集更多来自OoD分布的样本,并将其添加到训练数据中,以使模型能够更好地学习如何处理这些新样本。另一种方法是使用一些先验知识或规则,对OoD样本进行检测和筛选,以避免对其进行错误预测。 同时,一些研究者提出了一些用于检测OoD样本的新颖性评估方法。这些方法通过利用模型在训练样本和OoD样本上的输出差异来判断一个样本是否属于OoD类别。这种方法可以帮助我们识别OoD样本,并采取相应的措施,以提高模型的泛化性能。 综上所述,解决out-of-distribution问题是训练一个具有较强泛化能力的模型的重要步骤。只有当模型能够有效处理新的样本和未见过的类别时,才能提高模型的可靠性和适用性。 ### 回答3: "out-of-distribution"是指数据集中没有包含的数据样本或样本类别。在机器学习和深度学习中,数据集通常用于训练和测试模型的性能。然而,在现实世界中,我们会遇到无法准确分类的新数据,这些数据就属于"out-of-distribution"。这可能是因为这些数据具有与训练数据不同的特征,或者因为数据集的覆盖范围有限。 "out-of-distribution"的出现可能会对模型的性能和鲁棒性产生负面影响。由于模型没有前面没有见过这些类型的数据,它可能会对其进行错误的分类或给出不确定的预测结果。这种情况在实际应用中特别重要,因为我们希望模型能够在各种不同的情况下表现得可靠和准确。 为了解决"out-of-distribution"问题,一种常见的方法是通过收集更多具有代表性的训练数据来增加数据集的覆盖范围。这样模型可以更好地学习不同类型的数据特征,并提高对"out-of-distribution"数据的泛化能力。另外,使用先进的模型架构和优化算法也可以增强模型的鲁棒性。 除了增加训练数据和改进模型架构外,还可以使用一些检测方法来识别"out-of-distribution"的样本。这些方法可以根据模型的置信度、预测熵或数据分布等特征来判断样本是否属于训练集之外的数据。这些方法可以帮助我们发现并处理那些可能造成模型失效的"out-of-distribution"数据。 总之,"out-of-distribution"是指在训练数据之外的数据样本或样本类别。对于机器学习和深度学习任务,了解和解决"out-of-distribution"问题是提高模型性能和鲁棒性的关键。通过增加训练数据、改进模型架构和使用检测方法,我们可以减少"out-of-distribution"带来的负面影响。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值