©PaperWeekly 原创 · 作者|张一帆

学校|华南理工大学本科生
研究方向|CV,Causality
论文标题:
Energy-based Out-of-distribution Detection
论文链接:
https://arxiv.org/abs/2010.03759
代码链接:
https://github.com/wetliu/energy_ood
动机 & 相关工作
当机器学习模型看到与其训练数据不同的输入时,就会出现 out-of-distribution (OOD)uncertainty,因此模型很难对他们进行正确预测(也即在与训练数据分布差距较大的数据点上表现极差)。对于将 ML 应用于安全关键的应用(如罕见疾病鉴定)而言,确定输入是否超出了分布范围是一个基本问题。
OOD(Out-of-distribution)检测的传统方法之一是基于 softmax confidence。直觉上来看,对于 in distribution 的数据点,我们有高可信度给他们一个结果(就分类问题而言即将一张猫的图片分类为“猫”的概率很高),那么可信度低的就是 OOD inputs。但是因为 DNN 在样本空间的过拟合,经常会对OOD的样本(比如对抗样本)一个很高的可信度。
另一种检测方法是基于生成模型的,这类方法从生成建模的角度推导出似然分数 ,主要利用 Variational Autoencoder 的 reconstruction error 或者其他度量方式来判断一个样本是否属于 ID 或 OOD 样本。主要的假设是,Autoencoder 的隐含空间(latent space)能够学习出 ID 数据的明显特征 (silent vector),而对于 OOD 样本则不行,因此 OOD 样本会产生较高的  reconstruction error。这类方法的缺点在于生成模型难以优化而且不稳定,因为它需要对样本空间的归一化密度进行估计。
贡献
在本文中,作者使用 energy score 来检测 OOD 输入,ID 的数据 energy score 低,OOD 的数据 energy score 高。作者详尽证明了 energy score 优于基于 softmax 的得分和基于生成模型的方法。相比于基于 softmax 可信度得分的方法,energy score 不太受到 NN 在样本空间过拟合的影响。相比于基于生成模型的方法,energy score 又不需要进行显式的密度估计。
背景:基于能量的模型
基于能量的模型(EBM)的本质是构建一个函数 ,它将输入空间中的每个点 映射到一个称为能量的单个 non-probabilistic scalar。通过 Gibbs 分布我们可以将能量转化为概率密度:
分母被称为配分函数, 是温度参数。此时我们可以得到任意点的自由能 为:
我们可以轻易的联系分类模型与能量模型,考虑一个 类的 NN 分类器 将输入映射到 个对数值,通过 softmax 归一化得到属于某一类别的概率,分类分布如下:
这里的 的第 个值,而此时我们可以定义能量为 即负对数。同时我们可以得到关于 的自由能:
这里需要强调一下,这个能量已经与数据本身的标签无关了,可以看作是输出向量 的一种范数。
基于能量的OOD检测
我们知道 OOD detection 实际上就是一个二分类问题,判别模型的密度函数可以写作:
其中配分函数 是未知的归一化常数,是 intractable 的。幸运的是:
因为 是样本独立的,不影响总体能量得分分布,所以说 和数据点的负对数似然是线性对齐的,低能量意味着高似然,即更有可能是 ID 数据,反之更有可能是 OOD 数据。这涉及到一个阈值 ,比较 empirical,这里不多说。
此时我们可能会想到,这比 softmax 函数好在哪里呢?不妨写出 softmax 分类的形式:
当 的时候,这其实就是:
如果再进行一步化简我们可以得到:
后两项 并不是一个常数,相反对于一个 ID 的数据,其负对数似然期望是更小的,但是 这个分类置信度却是越大越好,二者冲突。这一定程度上解释了基于 softmax confidence 方法的问题。
那么能量模型如何进行训练呢——通过分配较低的能量给 ID 数据,和更高的能量给 OOD 数据,明确地创造一个能量差距。总体的损失函数如下:
其中 是分类模型的 softmax 输出,即标准的交叉熵分布加上一个能量约束项。
即用了两个平方的 hinge loss 来分别惩罚能量高于 和能量低于 的 ID/OOD 数据。这里也即该方法的另一个好处,可以利用没有标签的 OOD 数据帮助训练。一旦模型训练完成,我们就可以按照按照能量进行 OOD 检测。
实验结果
实验中有一点需要注意,作者采用了两个 setting:
  • No fine-tune: 使用 backbone 的输出,只是将 softmax confidence 换成能量得分。注意样本的能量我们定义为 ,其中 即 backbone 的第 维输出。
  • Fine-tune:使用上述的损失函数对 backbone 进行 fine-tune,然后使用 energy score 进行 OOD 检测。
实验统一使用 WideResNet 作为预训练分类模型,在六种 OOD 数据集上的表现如下,可以看到在不进行 fine-tune 的情况下基本碾压了基于 softmax confidence 的方法。有 fine-tune 的情况下,也比目前的 sota-OE 好很多。不过这里需要指出表格中标注的 应该指的是训练集,因为作者也提到了下表是“We use WideResNet to train on the in-distribution dataset CIFAR-10.”。
作者进一步比较了各种方法之间的差距,可以看到即使不使用 fine-tune,只是将 softmax confidence 换成 energy score 效果就已经很不错了,进行 fine-tune 之后更是惊为天人。
同样还有与生成模型的比较,metric 是 the area under the receiver operating characteristic curve(AUROC)——越高越好。
更多阅读
#投 稿 通 道#
 让你的论文被更多人看到 
如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。
总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 
PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学习心得技术干货。我们的目的只有一个,让知识真正流动起来。
📝 来稿标准:
• 稿件确系个人原创作品,来稿需注明作者个人信息(姓名+学校/工作单位+学历/职位+研究方向) 
• 如果文章并非首发,请在投稿时提醒并附上所有已发布链接 
• PaperWeekly 默认每篇文章都是首发,均会添加“原创”标志
📬 投稿邮箱:
• 投稿邮箱:[email protected] 
• 所有文章配图,请单独在附件中发送 
• 请留下即时联系方式(微信或手机),以便我们在编辑发布时和作者沟通
🔍
现在,在「知乎」也能找到我们了
进入知乎首页搜索「PaperWeekly」
点击「关注」订阅我们的专栏吧
关于PaperWeekly
PaperWeekly 是一个推荐、解读、讨论、报道人工智能前沿论文成果的学术平台。如果你研究或从事 AI 领域,欢迎在公众号后台点击「交流群」,小助手将把你带入 PaperWeekly 的交流群里。
继续阅读
阅读原文