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

目录

前言

Learning confidence for out-of-distribution detection in neural networks

Motivation

Methodology

模型构建

训练技巧

实验效果


前言

在前面的三次专栏中,我们已经熟悉了FGSM,Max-Softmax以及ODIN这三种方法,在这次专栏中,我们要记录的是一个对Max-Softmax架构进行优化的方法。文章依然延续了题目太长的特点。

Learning confidence for out-of-distribution detection in neural networks

论文链接:https://arxiv.org/pdf/1802.04865.pdf

Motivation

这篇文章从一个比较有意思的角度切入,借鉴了学与问的思想,并加入了奖惩机制。作者认为,传统的神经网络做OOD检测效果不好的原因在于:Softmax输出的得分并没有置信度或者是概率的含义,它仅仅是为了最小化与one-hot标签的交叉熵损失得到的结果而已。因此,在本文中,作者引出了一个新的分支,并且赋予了其“置信度”的含义,通过使用文中提出的奖惩机制的训练方法,作者得到了超过其他方法的一系列结果。

Methodology

将模型输出的预测标签p_i看作是一个学生的回答,将真实的标签y_i看作是标准答案。对于神经网络这个学生,他应该这样来学习:对于自己拿不准的输入,应该看一下答案;对于自己非常有把握的输入,应该独立判断而不借助于答案。为了保证平衡,看答案是会引入惩罚的,而我们期望的一个好学生的样子应该是:在学习过程中,不断地增加对输入的把握程度,也就是越来越不用去看答案。上面这个解释中的“把握程度”就是我们说的置信度,也就是网络有多大的概率判定输入样本是来自于ID数据的。这样,通过实际赋予新的分支“置信度”的含义,按照上述符合常理的方式训练,得到的输出就是表征当前样本来自ID的概率,从而可以用来计算AUROC和AUPR。下图展示了Learning Confidence的结构:

 可以看出,网络的两个分支共享底层卷积特征,其中一个分支用于预测类别,一个分支用于输出网络对当前样本的置信度。

模型构建

我们用p,c=f(x,\theta)来表示上图中网络结构,其中c代表的是置信度输出,p代表的是类别输出。其中,类别输出是经过Softmax映射的归一化形式,置信度输出是经过\sigma(\cdot)函数映射的形式。对于每一个样本,我们并不是使用输出p直接去和真实标签做交叉熵损失,而是对p进行如下的变换:

p'=c\cdot p+(1-c)\cdot y

也就是说,模型的输出标签是模型自身的预测结果p和真实结果y的一个线性组合,而组合的系数正是模型的置信度c。可以看出,当模型的置信度达到1,也就是对当前的样本有完全的把握时,有p'=p,这就与通常的分类网络一致了。文章中使用变换后的输出结果p'与真实标签y做交叉熵损失,形式如下:

L_t=-\sum_{i=1}^{M}y_i\log p'_i

在文章中,作者把这一设计看作是学生向老师或者是答案求教,但是不能允许这种情况无限制的发生,我们希望学生渐渐有自己判断的能力。于是,对于每一次求教,也就是较低的置信度c,会引入一个惩罚。惩罚项的设计如下:

L_c=-\log(c)

也就是说,我们希望网络的置信度越大越好。这样,通过加权和的形式,就得到了网络训练的整体损失函数:

L=L_t+\lambda L_c

训练技巧

这个损失函数并不是十分稳定的,因此在训练过程中需要动态调节加权和中,权重系数\lambda的大小。在文章中,作者提到:

  • 当训练过程中的惩罚损失L_c较高时,说明网络总是在求助于真实标签,说明求助的代价太小了。此时为了提升网络的自立能力,需要增加求助的代价,让网络少看答案,也就是要增加惩罚系数\lambda
  • 当训练过程中的惩罚损失L_c较低时,说明网络很少看真是标签,都是用自己的输出在计算,说明了看真实标签的惩罚代价太高了。此时为了鼓励网络看一下真实标签,需要减小对求助的惩罚,也就是要减小系数\lambda

实际上,作者是引入了一个损失阈值\beta来判断当前是否惩罚过重,这些超参数优化起来可能会比较麻烦。

实验效果

首先是在XOR异或数据集上做的测试。作者使用MLP在异或数据集分类中,得到了以下结果:

 从图片上可以看出,对于两类样本分布的区域,模型均输出了很高的置信度,代表它们都是ID数据,而在交界处,也就是噪声区域,模型给出的置信度很低,说明这些区域范围是OOD。这个实验表明了文章中提出的学习方式可以有效的辨别出ID数据与OOD数据,从而增强网络检测OOD的能力。

除此之外,作者也在其他数据集上做了通用的评测,结果如下:

可以看出,在多个网络和多个数据集上,文章中提出的Learning Confidence均获得了更高的AUROC和AUPR测试结果,验证了方法的有效性。 其他更详细的分析大家可以在文章的附录和实验部分看到。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答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"带来的负面影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值