Out-of-Distribution Robustness in Deep Learning

举报
荷籽 发表于 2020/04/10 15:04:03 2020/04/10
【摘要】 判断样本是in-distribution还是out-of-distribution,特别是在高维空间下,目前的深度学习方法做的并不好,他们对自己的判断往往过度自信。深度生成模型因为能够建模训练样本分布而受到了热烈的追捧,但是基于likelihood作为in-distirbution的评价标准时,表现非常糟糕,完全不相同的样本likelihood特别高。本文总结了目前OOD算法的进展。

本文总结了SOTA的OOD检测论文(截止到2020/4/10):

目前SOTA的OOD检测算法分成两大类:

1,Deep generative model(包含基于flow的方法Glow,PixelCNN等)都是为了学习得到 p(x) 所以往往不需要label信息,之前的方法总用likelihood去作为评价out或in distribution,但是这种方式不合适,所以大家提出用likelihood ratio等方法来改善他们。

2,基于训练分类器的检测OOD的方法,包含熵或者deep ensemble的各种方法则依赖于x的label信息。

下面就介绍几篇最新进展:

  • A simple unified framework for detecting out-of distribution samples and adversarial attacks  NIPS 2018

  • Likelihood Ratios for Out-of-Distribution Detection NIPS 2019

  • Robust Out-of-distribution Detection in Neural Networks 2020 还没被接收

  • INPUT COMPLEXITY AND OUT-OF-DISTRIBUTION DETECTION WITH LIKELIHOOD-BASED GENERATIVE MODELS  ICLR 2020

  • Detecting out-of-distribution inputs to deep generative models using a test for typicality (E. Nalisnick, A. Matsukawa, Y. W. Teh, and B. Lakshminarayanan)

A simple unified framework for detecting out-of distribution samples and adversarial attacks  NIPS 2018


输入数据:多类分类的数据(有label),训练数据中都是in-distribution的 (实验评价指标 AUROC)

然后用一个验证集(同时包含in-d和OOD数据对)去调节超参数alpha

提供一种confidence score的计算方式,适用于任何训练好的softmax neural classifier

https://github.com/hungrayho/deep_Mahalanobis_detector

use the Mahalanobis distance based confidence score derived from a neural network

f是分类器 求出 class-condition 的高斯分布

然后计算confidence score M

只用f 就是整个分类器的output 是比较低维度的信息 ,所以本文用了feature ensemble的方法,这个方法考虑到每一个网络层 l 的输出特征在里面。每个层会有一个confidence score,然后alpha每层的权重是在validation上用逻辑回归计算出来的。下图是confidence score计算方法

但是在计算测试数据集的confidence score之前,它要做一个校准如下,增加了一个小扰动。这个做法貌似在好几个文章中都用到了。

Likelihood Ratios for Out-of-Distribution Detection NIPS 2019 

https://github.com/google-research/google-research/tree/master/genomics_ood

训练数据不需要label的信息,是基于Deep generative model 学 p(x) ,训练数据是in-distribution

然后用一个验证集(同时包含in-d和OOD)去调节超参数

训练时候不需要OOD数据

提供了一个 genomics dataset for ood detection

通过likelihood来判断ood已经被很多人吐槽过是非常不准确的 这个文章的作者也是提出一种likelihood ratios的方法来判断ood。作者觉得模型学习样本应该分为两个部分,一个是backgroud(无论是ood还是in distribution都有),一个是semantic的部分。

所以它觉得x的似然函数应该表示成这两部分的乘积

theta是在in-distribution上学习的模型 theta_0是学习所有样本的一个背景信息的模型 因为theta和theta_0在学习background部分的概率应该是差不多。所以得到如下:

用auto-regressive来建模这个似然函数则可以得到:

第一步训练一个background model,通过算法1 生成一些加入扰动的数据,然后生成background模型。第二步就是使用Liklihood ratio来判断OOD  但没看到semantic部分数据咋来,直接用raw data。前景和背景模型用的是同样一个,但是背景模型有两个参数l2正则化项系数和数据扰动比例mu需要在验证集(有in-d和OOD标签)上去调节。

Robust Out-of-distribution Detection in Neural Networks 2020 还没被接收

训练同时需要in-distribution和OOD数据集

https://github.com/jfc43/ robust-ood-detection 这里有本文以及其它一些ood detection算法

作者说他发现现在的OOD detection(calibrated softmax confidence score or the Mahalanobis

distance based confidence score)的方法,如果样本增加一点点小扰动,不改变语义信息情况下表现非常差。一方面作者提出了一个robust ood detection方法;另外一方面提出了一个算法来fool existing OOD detectors(通过加一个扰动生成对抗样本,而不改变语义信息)。这里就对比了上面NIPS2018的论文,说它就表现很差。

这是Deep Anomaly Detection with Outlier Exposure ICLR 2019 简称OE (需要OOD的数据)

https://github.com/hendrycks/outlier-exposure. 

本文好像做法上没有很特别,就是 OE + 对抗样本学习(需要OOD的数据)

也可以根据任务有很多种选择

F softmax的输出 OE是 Outlier Exposure 


INPUT COMPLEXITY AND OUT-OF-DISTRIBUTION DETECTION WITH LIKELIHOOD-BASED GENERATIVE MODELS  ICLR 2020

提出一种parameter-free的判断OOD的score,针对deep generative mode

这个只是计算一个score而且没有超参数,所以不需要用val调参,可以通过有label的val来调阈。也可以不用label的val来判断是否OOD 最后评价指标是AUROC。 

生成模型用likelihood去判断OOD效果不好,在这个文章中,作者说这个原因是输入的复杂度造成的这个问题。为了说明这个问题,他做了大量实验。并且使用对输入复杂度的估计来推导出一个OOD的score,这个score(parameter-free)也能被看作是一个likelihood ratio。

第一项是negative loglikelihood 第二项是复杂度的估计 S分数越高说明它越有可能是OOD的


训练:用一个自回归模型PixelCNN++(得到图像数据的似然函数);一个可逆模型Glow(多个双射映射推导出log likelihood)。任意选择一个就好 这俩在每个数据上表现略有差异。

复杂度估计是通过压缩输入x,通过多个压缩器C,对每一个输入都选择一个最合适的压缩器 实验发现FLIF总是最好的那个压缩器。


Detecting out-of-distribution inputs to deep generative models using a test for typicality. E. Nalisnick, A. Matsukawa, Y. W. Teh, and B. Lakshminarayanan. 

这个论文ICLR2020被拒了,出现在了ICLR2020上面这个论文的实验里面,实验结果里它的效果很差劲。

它意思是样本的density很大,但是不一定就是高概率出现的,如下:

它说到判断OOD不应该是判断likelihood的density,而是判断是不是属于typical set,而typical set往往不一定是density最大的,而是比如图一里的外圈深灰色部分。



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。