OPEN-SET RECOGNITION WITH GRADIENT-BASED REPRESENTATIONS基于梯度表征的开放集识别

0.摘要:

用于图像分类任务的神经网络假定在推理过程中任何给定的图像都属于训练类别之一。这种封闭的假设在现实世界的应用中受到了挑战,因为模型可能会遇到未知类别的输入。开放集识别的目的是通过拒绝未知类别而正确分类已知类别来解决这个问题。在本文中,我们建议利用从已知分类器中获得的基于梯度的表征,只用已知类别的实例来训练一个未知的检测器。梯度对应于正确表示一个给定样本所需的模型更新的数量,我们利用它来了解模型用其学到的特征来描述输入的能力。我们的方法可以用于任何在已知类别上以监督方式训练的分类器,而不需要对未知样本的分布进行明确建模。我们表明,我们基于梯度的方法在开放集分类中比最先进的方法高出11.6%。

 

1.引言:

尽管深度神经网络在许多应用中取得了重大进展,但众所周知,当它们部署在真实世界的环境中时,很容易失败,因为它们经常遇到与训练条件不同的数据[1, 2]。它们在很大程度上依赖于隐含的封闭世界假设,即推理过程中的任何给定输入都属于训练数据中的一个或多个类别。受限于训练集所定义的已知数,神经网络将任何输入图像归入已知类别,即使给定的输入与训练数据有很大不同。此外,神经网络倾向于做出过于自信的预测,即使是不熟悉的输入[3, 4],使得区分未知数和已知数更具挑战性。神经网络的这些类型的行为在用于安全关键的应用时,如自动驾驶汽车和医疗诊断,会产生严重的后果。开放集识别通过消除封闭世界的假设来解决这个问题。相反,一个开放集分类器假设测试样本可能来自任何类别,甚至是在模型训练期间未知的类别。文献中的大多数方法可以分为两类:判别性模型和生成性模型。鉴别性建模方法[5, 6, 7, 8, 9]旨在学习已知样本的分布,以区分用于分类的已知类别,以及用于未知检测的已知和未知类别。生成建模方法[10, 11]试图合成未知类的样本以帮助区分已知类的样本。然而,几乎所有现有的方法都局限于学习的特征,这可能不足以捕捉未知类的测试样本的异常。在这项工作中,我们提出利用基于梯度的表征来进行开放集识别。作为我们以前工作的延伸[12],我们进一步验证了混杂标签的概念,以生成基于梯度的表征,来区分模型熟悉的输入和那些被认为是未知的输入。我们不是仅仅依靠从一个模型中学习到的特征,而是利用梯度来获得关于对其参数进行必要调整以正确表示给定输入的洞察力。我们的经验表明,所获得的表征可以在一个开放的识别环境中使用,在这个环境中,在训练期间没有未知类的样本可以用来捕捉已知和未知的区别。

2.相关工作:

开放集识别

  • 开放集识别(OSR)的目的是检测未知数,并对已知数进行正确分类。
  • Scheirer等人[5]提出了一种基于支持向量机的方法,在最初获得的已知类别的超平面上增加一个额外的超平面,以区分未知类别。
  • Bendale和Boult[6]提出用OpenMax层代替Softmax层来获得未知类的概率。
  • Ge等人[10]和Neal等人[11]提出利用生成网络来创建未知数的合成样本,并将其作为一个额外的类来训练开放集分类器。
  • Yoshihashi等人[7]利用从分层重构网络中获得的潜在表征进行稳健的未知数检测。
  • Oza和Patel[8]采用了具有新型训练和测试设置的类条件自动编码器。
  • Sun等人[9]提议学习条件高斯分布,用于已知分类和未知检测。

然而,几乎所有的现有方法都依赖于从已知事物中学习的特征来描述未知事物。

梯度

基于梯度的优化技术[13]一直是众多大规模机器学习应用的核心。除了最初作为搜索收敛解决方案的工具外,梯度还被用于各种目的,包括可视化[14, 15, 16]和对抗性攻击生成[3, 17]。梯度也被探索用来获得有效的表征[18, 19, 20, 21, 12],用于许多应用,包括图像质量和突出性估计,以及分布外/异常/新颖性检测。然而,基于梯度的表征的有效性还没有在开放集识别的应用中得到充分探索。

3.基于梯度的表征的开放集识别

在这一节中,我们介绍了我们的基于梯度表示的开放集识别框架。我们解释了训练和测试相关分类器和未知检测器的设置,并验证了基于梯度的表征在开放集识别设置中的有效性。

3.1拟议的开放集识别框架

在我们之前的工作中[12],我们引入了一个框架,以获得基于梯度的表征,并将混杂标签用于异常样本检测。我们将混杂标签定义为与普通标签不同的标签,在此基础上训练模型。我们的直觉是,梯度对应于一个模型为正确表示一个给定样本所需的变化量。通过引入一个未曾见过的类标签到预先定义的表示空间的模型,如果模型熟悉给定的输入,梯度中捕捉到的所需模型更新将与将其相关特征映射到新的类别有关。然而,如果输入不在模型的范围内,更新将是必要的,用于特征提取和映射,导致更大的更新总量。开放集识别是我们之前工作的自然延伸,它利用从分类器中获得的梯度表征来训练一个未知数检测器,以拒绝未知数,同时按照分类器的原意对已知数进行分类。我们在图1中介绍了我们基于梯度表示的开放集识别框架。给定一个经过训练的分类网络f()和一个输入图像x,该网络产生一个输出f(x; )。在模型输出和混杂标签yc之间计算二元交叉熵损失,yc是一个长度为N的矢量,其中N是训练中的类的数量,n 2 f0;::;Cg n f1g。损失被反向传播以产生梯度RJ(; x; yc),基于梯度的表示方法是将模型中每个参数集的梯度大小连接起来,如下所示。

根据未知检测器d的决定,确定最终分类:如果是已知的,则保留原始分类器的预测(c 2 f0;N 1g);如果是未知的,则模型预测为N。 总的来说,最终预测有N+1种可能的选择。

 

3.1封闭集训练和开放集测试

所提出的开放集识别方法有两个阶段:封闭集训练和开放集测试。封闭集包括已知数,而开放集包括已知数和未知数。然后,封闭集训练阶段被分成两个阶段。"封闭集 "训练和 "开放集 "训练,我们随机选择一些已知类作为训练的 "未知数"。这个数据分割协议在图2中描述,我们在本节中用颜色协调来解释每个阶段的细节,以使其清晰明了。

封闭集训练 在训练任何用于开放集识别的网络时,无论是分类器还是未知数检测器,我们都无法获得任何未知数U的样本,而只有已知数K的样本,因此,已知数的训练样本Ktrain被分成两组。"已知者",KK,和 "未知者",KU。首先,"已知 "样本2 KK被用来训练一个 "封闭集 "分类器。然后,可以收集所有 "已知 "和 "未知 "样本2 KK [ KU = Ktrain]的基于梯度的表征,以训练和验证一个 "开放集 "的未知检测器。此外,我们用所有已知数2 Ktrain的训练样本训练一个封闭集分类器,以便在开放集测试阶段加以利用。

开放集测试 对于开放集识别框架的测试,我们现在利用前一阶段训练的封闭集分类器和 "开放集 "未知数检测器。 首先,我们将已知数和未知数的测试样本2 Ktest [ Utest输入封闭集分类器,收集模型预测和基于梯度的表示,如3.1节所述。然后,基于梯度的表征被传递给经过训练的 "开放集 "未知数检测器,以确定样本是属于已知数还是未知数。然后,根据检测器的预测,每个测试样本的封闭集分类器的分类被保留或替换为代表未知数的新类别标签。

3.3. 基于梯度的表征的有效性 在这一节中,我们展示了梯度在开放集识别环境中的有效性。我们主要创造了两个测试场景。1)未知数与已知数选自同一数据集;2)利用额外的数据集作为未知数。对于第一种情况,我们在CIFAR-10[22]数据集上采用了6个已知类和4个未知类的随机拆分,该数据集广泛用于评估开放集识别方法。在前6个类中,我们也将其分成4个已知类和2个未知类,以便进一步分析。对于第二种情况,我们使用ImageNet和LSUN(调整大小和裁剪)数据集作为未知数,这些数据集由[23]收集,也被传统地用于开放集识别。在每种情况下,用已知数的训练集训练ResNet-18分类器,在已知数和未知数的测试集上收集梯度大小的分布,在图3中对两个不同的模型参数集进行了可视化。每张图的已知数和未知数都在相应的标题中注明。很明显,在任何情况下,已知数的梯度都比未知数的小。然而,比较图3(a)和(b),当已知类和样本数量较多时,已知数和未知数之间的梯度大小有更明显的区别。当未知数来自不同的数据集时,如图3(c)所示,已知数和未知数的分布明显分开。为清晰起见,图3(c)中的未知数的梯度分布用红色圆圈标出。在所有情况下,梯度被证明是区分未知数和已知数的有效工具。

 

4.实验

在这一节中,我们利用基于梯度的表征,用混杂的标签来进行开放集识别。开放集识别方法的性能主要在两个方面进行评估:开放集识别和开放集分类。在利用单一数据集定义已知数和未知数时,开放集识别的重点是未知数的检测。另一方面,开放集分类侧重于分类的准确性,在这种情况下,模型对N+1个可能的选项进行预测,包括从不同于已知数的数据集中抽取的未知数。实验设置扩展了第3.3节中描述的场景,图3(a)和(b)涉及单一数据集中的开放集识别,而图3(b)和(c)涉及开放集分类。我们在相应的章节中描述了每个设置的细节。在实施过程中,没有预训练的ResNet-18被用作分类器,而2个全连接层的二元分类器被用作未知的检测器。

4.1. 开放集识别

对于开放集识别,我们采用广泛接受的设置,即随机选择一些类作为已知数,其余的作为未知数。在这种情况下,未知数的样本来自与已知数相同的数据集。如第3.3节关于图3(a)和(b)的描述,我们首先从CIFAR-10的10个总类中选择6个已知类K和4个未知类U。然后从Ktrain中,我们选择4个 "已知 "类KK和2个 "未知 "类KU。利用KK和KU,我们训练一个未知的检测器,并在2个Ktest[ Utest]上测试它。我们对5个不同的随机类拆分集进行重复,我们在表1中报告了未知检测器的性能。虽然我们的方法在很大程度上超过了2019年之前的现有方法,但最近的方法超过了我们的方法。这是由于为4个 "已知 "类和2个 "未知 "类训练的未知检测器的性能所致。如图3(a)所示,当 "已知 "和 "未知 "类的数量较少时,梯度大小分布之间的区别不太明显。采用上述4-2类划分的训练有素的未知检测器在其验证集上显示出低于90%的准确率,导致在对未知类进行评估时,判别结果更低。

 

4.2. 开放集分类

对于开放集分类,我们利用CIFAR-10数据集作为已知数,ImageNet和LSUN(调整大小和裁剪)作为未知数。具体来说,每个被用作未知数的数据集的测试集被添加到CIFAR-10的测试集中。每个数据集以及CIFAR-10的测试集都包含10,000个测试样本,使得已知与未知的比例为1:1。如第3.3节关于图3(b)和(c)的描述,我们使用CIFAR-10的训练集创建6-4类分割来训练一个未知的检测器。我们重复了5个不同的随机类分集,并在表2中报告了在已知和未知的组合测试集上的开放集分类准确性。在上一节的开放集识别实验中,我们注意到,当在4-2类拆分上训练的检测器在6-4类拆分的组合上进行评估时,二元分类器的输出达到最佳AUROC分数的阈值高于常规的0.5,平均超过0.9。基于这一观察,我们在开放集分类测试中把未知检测器的阈值固定为0.95。我们的方法与基于梯度的表征以很大的幅度超过了所有最近的方法。当未知数来自与分类器训练数据集不同的数据集时,未知数检测器显示出更好的性能,这与我们之前工作中的分布外检测设置类似[12]。基于梯度的表征的特殊分布外检测性能与本工作中的未知数检测器的性能相匹配。这些结果证明了梯度是一个有效的工具,可以在开放集识别环境中从未知数中捕获未知数。

5.结论

在本文中,我们利用从训练有素的分类器中获得的基于梯度的表征来检测未知数的样本,同时保留对那些被检测为已知数的样本的模型预测。我们的经验表明,在训练期间没有未知数样本的情况下,所获得的表征可以在开放集识别环境中使用,通过利用已知数的训练样本来捕捉已知数和未知数之间的区别。我们在开放集识别和分类上验证了我们的方法。 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值