在编程中,学习代码表示有各种应用程序,包括代码分类,代码搜索,注释生成,错误预测等。已经提出了在令牌,语法树,依赖图,代码导航路径或其变体组合方面的各种代码表示,但是,现有的vanilla学习技术具有鲁棒性的主要限制,即,型号很容易当输入以微妙的方式改变输入时,要进行错误的预测。为了增强稳健性,现有方法专注于识别对抗性样本,而不是在落在给定分布之外的有效样品上,我们将其称为分配(OOD)样本。识别出这样的ood样本是本文研究的新问题。为此,我们建议首先使用分发的样本进行in =分发数据集,使得当培训在一起时,它们将增强模型的鲁棒性。我们建议使用能量有界学习的目标函数来将更高的分数分配给分布式样本和较低的分数,以便将这种分布式样品纳入源的培训过程中代码模型。在检测和逆势样本检测方面,我们的评估结果表明,现有源代码模型的稳健性更加准确,在识别ood数据时,同时在同时对对抗性攻击更具抵抗力。此外,所提出的能量有限评分优于大幅的余量,包括Softmax置信度评分,Mahalanobis评分和Odin。
translated by 谷歌翻译
Determining whether inputs are out-of-distribution (OOD) is an essential building block for safely deploying machine learning models in the open world. However, previous methods relying on the softmax confidence score suffer from overconfident posterior distributions for OOD data. We propose a unified framework for OOD detection that uses an energy score. We show that energy scores better distinguish in-and out-of-distribution samples than the traditional approach using the softmax scores. Unlike softmax confidence scores, energy scores are theoretically aligned with the probability density of the inputs and are less susceptible to the overconfidence issue. Within this framework, energy can be flexibly used as a scoring function for any pre-trained neural classifier as well as a trainable cost function to shape the energy surface explicitly for OOD detection. On a CIFAR-10 pre-trained WideResNet, using the energy score reduces the average FPR (at TPR 95%) by 18.03% compared to the softmax confidence score. With energy-based training, our method outperforms the state-of-the-art on common benchmarks.
translated by 谷歌翻译
机器学习模型通常会遇到与训练分布不同的样本。无法识别分布(OOD)样本,因此将该样本分配给课堂标签会显着损害模​​型的可靠性。由于其对在开放世界中的安全部署模型的重要性,该问题引起了重大关注。由于对所有可能的未知分布进行建模的棘手性,检测OOD样品是具有挑战性的。迄今为止,一些研究领域解决了检测陌生样本的问题,包括异常检测,新颖性检测,一级学习,开放式识别识别和分布外检测。尽管有相似和共同的概念,但分别分布,开放式检测和异常检测已被独立研究。因此,这些研究途径尚未交叉授粉,创造了研究障碍。尽管某些调查打算概述这些方法,但它们似乎仅关注特定领域,而无需检查不同领域之间的关系。这项调查旨在在确定其共同点的同时,对各个领域的众多著名作品进行跨域和全面的审查。研究人员可以从不同领域的研究进展概述中受益,并协同发展未来的方法。此外,据我们所知,虽然进行异常检测或单级学习进行了调查,但没有关于分布外检测的全面或最新的调查,我们的调查可广泛涵盖。最后,有了统一的跨域视角,我们讨论并阐明了未来的研究线,打算将这些领域更加紧密地融为一体。
translated by 谷歌翻译
分布(OOD)检测对于确保机器学习系统的可靠性和安全性至关重要。例如,在自动驾驶中,我们希望驾驶系统在发现在训练时间中从未见过的异常​​场景或对象时,发出警报并将控件移交给人类,并且无法做出安全的决定。该术语《 OOD检测》于2017年首次出现,此后引起了研究界的越来越多的关注,从而导致了大量开发的方法,从基于分类到基于密度到基于距离的方法。同时,其他几个问题,包括异常检测(AD),新颖性检测(ND),开放式识别(OSR)和离群检测(OD)(OD),在动机和方法方面与OOD检测密切相关。尽管有共同的目标,但这些主题是孤立发展的,它们在定义和问题设定方面的细微差异通常会使读者和从业者感到困惑。在这项调查中,我们首先提出一个称为广义OOD检测的统一框架,该框架涵盖了上述五个问题,即AD,ND,OSR,OOD检测和OD。在我们的框架下,这五个问题可以看作是特殊情况或子任务,并且更容易区分。然后,我们通过总结了他们最近的技术发展来审查这五个领域中的每一个,特别关注OOD检测方法。我们以公开挑战和潜在的研究方向结束了这项调查。
translated by 谷歌翻译
检测分配(OOD)输入对于安全部署现实世界的深度学习模型至关重要。在评估良性分布和OOD样品时,检测OOD示例的现有方法很好。然而,在本文中,我们表明,当在分发的分布和OOD输入时,现有的检测机制可以极其脆弱,其具有最小的对抗扰动,这不会改变其语义。正式地,我们广泛地研究了对共同的检测方法的强大分布检测问题,并表明最先进的OOD探测器可以通过对分布和ood投入增加小扰动来容易地欺骗。为了抵消这些威胁,我们提出了一种称为芦荟的有效算法,它通过将模型暴露于对抗性inlier和异常值示例来执行鲁棒训练。我们的方法可以灵活地结合使用,并使现有方法稳健。在共同的基准数据集上,我们表明芦荟大大提高了最新的ood检测的稳健性,对CiFar-10和46.59%的CiFar-100改善了58.4%的Auroc改善。
translated by 谷歌翻译
在现实世界中的视觉应用中检测分布(OOD)样本(例如分类或对象检测)已成为当今深度学习系统部署的必要前提。已经提出了许多技术,其中已证明基于能量的OOD方法是有希望和令人印象深刻的性能。我们提出了基于语义驱动的能量方法,这是一种端到端的可训练系统,易于优化。我们将分布样品与能量评分和表示分数结合的外部分布样品区分开。我们通过最大程度地降低分布样品的能量来实现这一目标,并同时学习各自的类表征,这些类别更接近和最大化能量以供外分发样品,并将其从已知的类表征进一步推出。此外,我们提出了一种新颖的损失功能,我们称之为群集局灶性损失(CFL),事实证明这很简单,但在学习更好的班级群集中心表示方面非常有效。我们发现,我们的新方法可以增强异常检测,并在共同基准上获得基于能量的模型。与现有基于能量的方法相比,在CIFAR-10和CIFAR-100训练的WideSnet上,我们的模型分别将相对平均假正(以95%的真实正率为95%)降低67.2%和57.4%。此外,我们扩展了对象检测的框架并提高了性能。
translated by 谷歌翻译
在过去的几年中,深度学习(DL)一直在不断扩大其应用程序,并成为大型法规时代大规模源代码分析的推动力。由于意外的准确性降解,测试集与训练集不同的分布与训练集不同的分布与训练集不同。尽管最近在计算机视觉和自然语言过程等领域取得了分配转移基准测试的最新进展。对于源代码任务的分配转移分析和基准测试,进展有限,由于其数量和支持几乎所有工业部门的基础,都有很大的需求。为了填补这一空白,本文启动了提出代码,即用于源代码学习的分销基准数据集。具体而言,代码支持2种编程语言(即Java和Python)和5种代码分发偏移(即任务,程序员,时间戳记,代币和CST)。据我们所知,我们是第一个定义基于代码表示的分布变化的人。在实验中,我们首先评估现有分布探测器的有效性以及分配移位定义的合理性,然后测量流行代码学习模型(例如Codebert)对分类任务的模型概括。结果表明,1)仅基于SoftMax得分的OOD检测器在代码上表现良好,2)分配转移会导致所有代码分类模型中的准确性降解,3)基于表示的分布转移对模型的影响比其他模型具有更高的影响,并且4)预训练的模型对分布变化更具抵抗力。我们公开提供代码,从而实现了有关代码学习模型质量评估的后续研究。
translated by 谷歌翻译
检测到分布(OOD)数据是一项任务,它正在接受计算机视觉的深度学习领域越来越多的研究注意力。但是,通常在隔离任务上评估检测方法的性能,而不是考虑串联中的潜在下游任务。在这项工作中,我们检查了存在OOD数据(SCOD)的选择性分类。也就是说,检测OOD样本的动机是拒绝它们,以便降低它们对预测质量的影响。我们在此任务规范下表明,与仅在OOD检测时进行评估时,现有的事后方法的性能大不相同。这是因为如果ID数据被错误分类,将分布分配(ID)数据与OOD数据混合在一起的问题不再是一个问题。但是,正确和不正确的预测的ID数据中的汇合变得不受欢迎。我们还提出了一种新颖的SCOD,SoftMax信息保留(SIRC)的方法,该方法通过功能不足信息来增强基于软疗法的置信度得分,以便在不牺牲正确和错误的ID预测之间的分离的情况下,可以提高其识别OOD样品的能力。在各种成像网尺度数据集和卷积神经网络体系结构上进行的实验表明,SIRC能够始终如一地匹配或胜过SCOD的基线,而现有的OOD检测方法则无法做到。
translated by 谷歌翻译
检测到分布输入对于在现实世界中安全部署机器学习模型至关重要。然而,已知神经网络遭受过度自信的问题,在该问题中,它们对分布和分布的输入的信心异常高。在这项工作中,我们表明,可以通过在训练中实施恒定的向量规范来通过logit归一化(logitnorm)(logitnorm)来缓解此问题。我们的方法是通过分析的激励,即logit的规范在训练过程中不断增加,从而导致过度自信的产出。因此,LogitNorm背后的关键思想是将网络优化期间输出规范的影响解散。通过LogitNorm培训,神经网络在分布数据和分布数据之间产生高度可区分的置信度得分。广泛的实验证明了LogitNorm的优势,在公共基准上,平均FPR95最高为42.30%。
translated by 谷歌翻译
代码克隆是实现类似功能的代码段对。克隆检测是自动源代码理解的基本分支,在重构建议,窃检测和代码摘要中具有许多应用程序。克隆检测的一个特别有趣的案例是检测语义克隆,即具有相同功能但实现方面有显着差异的代码段。检测语义克隆的一种有希望的方法是对比度学习(CL),这是一种在计算机视觉中流行的机器学习范式,但尚未用于代码处理。我们的工作旨在评估最受欢迎的CL算法以及两个任务上的三个源代码表示形式。第一个任务是代码克隆检测,我们在包含104个算法的实现的POJ-104数据集上进行了评估。第二个任务是窃检测。为了评估此任务上的模型,我们介绍了CodeTransFormator,这是用于转换源代码的工具。我们使用它来创建一个基于竞争性编程解决方案模仿窃代码的数据集。我们为这两项任务培训了九个模型,并将其与现有的六种方法进行了比较,包括传统工具和现代培训的神经模型。我们评估的结果表明,提议的模型在每个任务中都具有多样性,但是基于图的模型的性能通常高于其他模型。在CL算法中,SIMCLR和SWAV带来更好的结果,而MoCo是最强大的方法。我们的代码和训练有素的模型可在https://doi.org/10.5281/zenodo.6360627,https://doi.org/10.5281/zenodo.5596345获得。
translated by 谷歌翻译
最近的工作通过从上下文重建令牌来了解源代码的上下文表示。对于诸如英语中汇总代码的下游语义理解任务,这些表示应该理想地捕获程序功能。但是,我们表明流行的基于重建的BERT模型对源代码编辑敏感,即使编辑保存语义。我们提出了僵局:一种学习代码功能的对比预训练任务,而不是形成。触发预先训练神经网络,以识别许多不等效的干扰者之间的程序的功能类似的变体。我们使用自动源到源编译器作为数据增强的形式来缩放可扩展这些变体。对比预训练将JavaScript摘要和打字类型推理准确性提高2%至13%。我们还提出了一个新的零拍摄JavaScript代码克隆检测数据集,显示施加均比更强大和语义有意义。就此而言,我们以39%的Auroc在普发的环境中以39%的AUROC倾斜,高达5%的自然代码。
translated by 谷歌翻译
It is important to detect anomalous inputs when deploying machine learning systems. The use of larger and more complex inputs in deep learning magnifies the difficulty of distinguishing between anomalous and in-distribution examples. At the same time, diverse image and text data are available in enormous quantities. We propose leveraging these data to improve deep anomaly detection by training anomaly detectors against an auxiliary dataset of outliers, an approach we call Outlier Exposure (OE). This enables anomaly detectors to generalize and detect unseen anomalies. In extensive experiments on natural language processing and small-and large-scale vision tasks, we find that Outlier Exposure significantly improves detection performance. We also observe that cutting-edge generative models trained on CIFAR-10 may assign higher likelihoods to SVHN images than to CIFAR-10 images; we use OE to mitigate this issue. We also analyze the flexibility and robustness of Outlier Exposure, and identify characteristics of the auxiliary dataset that improve performance.
translated by 谷歌翻译
深层神经网络(DNN)越来越多地用于软件工程和代码智能任务。这些是强大的工具,能够通过数百万参数从大型数据集中学习高度概括的模式。同时,它们的大容量可以使他们容易记住数据点。最近的工作表明,当训练数据集嘈杂,涉及许多模棱两可或可疑的样本时,记忆风险特别强烈表现出来,而记忆是唯一的追索权。本文的目的是评估和比较神经代码智能模型中的记忆和概括程度。它旨在提供有关记忆如何影响神经模型在代码智能系统中的学习行为的见解。为了观察模型中的记忆程度,我们为原始训练数据集增加了随机噪声,并使用各种指标来量化噪声对训练和测试各个方面的影响。我们根据Java,Python和Ruby Codebase评估了几种最先进的神经代码智能模型和基准。我们的结果突出了重要的风险:数百万可训练的参数允许神经网络记住任何包括嘈杂数据,并提供错误的概括感。我们观察到所有模型都表现出某些形式的记忆。在大多数代码智能任务中,这可能会很麻烦,因为它们依赖于相当容易发生噪声和重复性数据源,例如GitHub的代码。据我们所知,我们提供了第一个研究,以量化软件工程和代码智能系统领域的记忆效应。这项工作提高了人们的意识,并为训练神经模型的重要问题提供了新的见解,这些问题通常被软件工程研究人员忽略。
translated by 谷歌翻译
已知现代深度神经网络模型将错误地将分布式(OOD)测试数据分类为具有很高信心的分数(ID)培训课程之一。这可能会对关键安全应用产生灾难性的后果。一种流行的缓解策略是训练单独的分类器,该分类器可以在测试时间检测此类OOD样本。在大多数实际设置中,在火车时间尚不清楚OOD的示例,因此,一个关键问题是:如何使用合成OOD样品来增加ID数据以训练这样的OOD检测器?在本文中,我们为称为CNC的OOD数据增强提出了一种新颖的复合腐败技术。 CNC的主要优点之一是,除了培训集外,它不需要任何固定数据。此外,与当前的最新技术(SOTA)技术不同,CNC不需要在测试时间进行反向传播或结合,从而使我们的方法在推断时更快。我们与过去4年中主要会议的20种方法进行了广泛的比较,表明,在OOD检测准确性和推理时间方面,使用基于CNC的数据增强训练的模型都胜过SOTA。我们包括详细的事后分析,以研究我们方法成功的原因,并确定CNC样本的较高相对熵和多样性是可能的原因。我们还通过对二维数据集进行零件分解分析提供理论见解,以揭示(视觉和定量),我们的方法导致ID类别周围的边界更紧密,从而更好地检测了OOD样品。源代码链接:https://github.com/cnc-ood
translated by 谷歌翻译
Automated software debugging is a crucial task for improving the productivity of software developers. Many neural-based techniques have been proven effective for debugging-related tasks such as bug localization and program repair (or bug fixing). However, these techniques often focus only on either one of them or approach them in a stage-wise manner, ignoring the mutual benefits between them. In this work, we propose a novel unified \emph{Detect-Localize-Repair} framework based on a pretrained programming language model CodeT5 to seamlessly address these tasks, named CodeT5-DLR. Specifically, we propose three objectives to adapt the generic CodeT5 for debugging: a bug detection objective to determine whether a given code snippet is buggy or not, a bug localization objective to identify the buggy lines, and a program repair objective to translate the buggy code to its fixed version. We evaluate it on each of these tasks and their combined setting on two newly collected line-level debugging datasets in Java and Python. Extensive results show that our model significantly outperforms existing baselines from both NLP and software engineering domains.
translated by 谷歌翻译
在值得信赖的机器学习中,这是一个重要的问题,可以识别与分配任务无关的输入的分布(OOD)输入。近年来,已经提出了许多分布式检测方法。本文的目的是识别共同的目标以及确定不同OOD检测方法的隐式评分函数。我们专注于在培训期间使用替代OOD数据的方法,以学习在测试时概括为新的未见外部分布的OOD检测分数。我们表明,内部和(不同)外部分布之间的二元歧视等同于OOD检测问题的几种不同的公式。当与标准分类器以共同的方式接受培训时,该二进制判别器达到了类似于离群暴露的OOD检测性能。此外,我们表明,异常暴露所使用的置信损失具有隐式评分函数,在训练和测试外部分配相同的情况下,以非平凡的方式与理论上最佳评分功能有所不同,这又是类似于训练基于能量的OOD检测器或添加背景类时使用的一种。在实践中,当以完全相同的方式培训时,所有这些方法的性能类似。
translated by 谷歌翻译
深度神经网络对各种任务取得了出色的性能,但它们具有重要问题:即使对于完全未知的样本,也有过度自信的预测。已经提出了许多研究来成功过滤出这些未知的样本,但它们仅考虑狭窄和特定的任务,称为错误分类检测,开放式识别或分布外检测。在这项工作中,我们认为这些任务应该被视为根本存在相同的问题,因为理想的模型应该具有所有这些任务的检测能力。因此,我们介绍了未知的检测任务,以先前的单独任务的整合,用于严格检查深度神经网络对广谱的广泛未知样品的检测能力。为此,构建了不同尺度上的统一基准数据集,并且存在现有流行方法的未知检测能力进行比较。我们发现深度集合始终如一地优于检测未知的其他方法;但是,所有方法只针对特定类型的未知方式成功。可重复的代码和基准数据集可在https://github.com/daintlab/unknown-detection-benchmarks上获得。
translated by 谷歌翻译
我们考虑使用深度神经网络时检测到(分发外)输入数据的问题,并提出了一种简单但有效的方法来提高几种流行的ood检测方法对标签换档的鲁棒性。我们的作品是通过观察到的,即大多数现有的OOD检测算法考虑整个训练/测试数据,无论每个输入激活哪个类进入(级别差异)。通过广泛的实验,我们发现这种做法导致探测器,其性能敏感,易于标记换档。为了解决这个问题,我们提出了一种类别的阈值方案,可以适用于大多数现有的OOD检测算法,并且即使在测试分布的标签偏移存在下也可以保持相似的OOD检测性能。
translated by 谷歌翻译
分布(OOD)检测对于部署在野外的机器学习模型很重要。最近的方法使用辅助分离器数据将模型正规化以改进OOD检测。但是,这些方法是一个有力的分布假设,即辅助离群数据与分布(ID)数据完全可分离。在本文中,我们提出了一个利用野生混合数据的新型框架,该框架自然由ID和OOD样品组成。这样的野生数据很丰富,并且在将机器学习分类器部署在自然栖息地中时自由出现。我们的关键思想是制定一个约束的优化问题,并展示如何批准解决问题。我们的学习目标使OOD检测率最大化,但要受到ID数据的分类错误和ID示例的OOD错误率的限制。我们广泛评估了我们对常见的OOD检测任务的方法,并证明了卓越的性能。
translated by 谷歌翻译
在过去的几年中,关于分类,检测和分割问题的3D学习领域取得了重大进展。现有的绝大多数研究都集中在规范的封闭式条件上,忽略了现实世界的内在开放性。这限制了需要管理新颖和未知信号的自主系统的能力。在这种情况下,利用3D数据可以是有价值的资产,因为它传达了有关感应物体和场景几何形状的丰富信息。本文提供了关于开放式3D学习的首次广泛研究。我们介绍了一种新颖的测试床,其设置在类别语义转移方面的难度增加,并且涵盖了内域(合成之间)和跨域(合成对真实)场景。此外,我们研究了相关的分布情况,并开放了2D文献,以了解其最新方法是否以及如何在3D数据上有效。我们广泛的基准测试在同一连贯的图片中定位了几种算法,从而揭示了它们的优势和局限性。我们的分析结果可能是未来量身定制的开放式3D模型的可靠立足点。
translated by 谷歌翻译