论文地址
这篇文章是发表在ICLR2019上,主要做分布外检测(Out of Distribution Detection)。

目录

  • 分布外检测(ODD)
  • 评价方法
    • FPR[95/90]
    • AU-ROC
  • 本文方法
  • 实验结果 & 思考

分布外检测(ODD)

分布外检测主要目标是让网络能够识别样本来自训练域外的风险。比如我们训练了一个猫狗分类模型。但是当我们输入一张乌龟的图片的时候,如果我们的模型仍然“自信”地输出猫或者狗这个类别的的话,那么在现实中部署这个模型是不可靠的。因此我们需要模型具有识别出非训练域中样本的能力,即 Out of Distribution Detection 。 后文,我们统称分布内数据为 ID,分布外数据为 OOD。

评价方法

如何评价一个模型的OOD检测的能力呢?我们知道模型在输出类别的时候一般都也会输出一个score/confidence value。通过输入部分ID数据和OOD数据,观察其score的差异可以评估出模型分布外检测的鲁棒性。比如ID数据的score都比OOD数据的score高的话,说明模型区分的不错。量化的评价指标有FPR95/90和AUROC。

FPR[95/90]

一般文中都会使用这个指标来评价模型的 OOD检测能力。具体的计算形式如下。针对一个分类模型, 如果我们划定了分类的阈值(对二分类模型,通常我们设置为0.5),我们可以得到一个混淆矩阵

Truth\Prediction True False
True TP FN
False FP TN

从上表我们可以看出,TP (True Positive) 和 TN(True Negative) 是模型预测对的。FN(False Negative)和 FP(False Positive) 是预测错的。

FPR 是 False Positive Rate,顾名思义就是假样本中预测成真样本的比例, 所以其计算公式为 F P R = F P T N + F P FPR = \frac{FP}{TN+FP} FPR=TN+FPFP​。其实我们是希望这个值越小越好,越小越说明我们的模型能力越强。但是这个值也是受我们划定的分类阈值影响的。举个极端的例子,如果我们划定分类阈值为1.0,那么没有样本会被预测为阳性,那么 F P R = 0 FPR=0 FPR=0,但是这显然是不合理的。所以FPR后面跟的数字比如90,95是在真样本的召回率 R = T P T P + F N R=\frac{TP}{TP + FN} R=TP+FNTP​上作了限制,要求 R=90%/95%的情况下划定阈值。

放到OOD的任务里,我们认为ID是True,OOD是False。

AU-ROC

AUROC的全称是 Area Under ROC curve. 因此需要先解释 ROC curve. ROC curve 的横轴和纵轴分别是FPR和TPR,其中TPR 是 True Positive Rate 的缩写,顾名思义代表的是真样本中预测为真的比例, T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP​,其实就是真样本的召回率。

现在我们分析一下,TPR和FPR的关系。如果我们阈值设置的非常低,那么所有样本都会被预测为阳性样本,此时 TPR=FPR=1。如果阈值设置非常高,那么没有样本预测为阳性样本,TPR=FPR=0。因此TPR和FPR是正相关的。其绘制的图像趋势一般如下所示:

一般我们都希望曲线处于右上方,因为右上方在假阳率低的同时,真阳率比较高,是我们所以往的表现。而越靠近右上方,其与横轴围成的面积越大,也就是AUROC越大。

本文方法

本文的方法其实比较朴素,就是利用一些OOD的样本微调网络使其获得OOD的检测能力。下面是公式化的描述。
E ( x , y ) ∼ D i n [ L ( f ( x ) , y ) + λ E x ′ ∼ D o u t O E [ L O E ( f ( x ′ ) , f ( x ) , y ) ] ] \mathbb{E}_{(x,y) \sim \mathcal{D}_{in}} \left[ \mathcal{L}(f(x),y) + \lambda \mathbb{E}_{x' \sim \mathcal{D}_{out}^{\bold{OE}}}\left[ \mathcal{L}_{\bold{OE}} (f(x') , f(x), y)\right]\right] E(x,y)∼Din​​[L(f(x),y)+λEx′∼DoutOE​​[LOE​(f(x′),f(x),y)]]
前项主要是分类损失,后项是和OOD检测相关的损失。在后项的损失中,作者对 L O E \mathcal{L}_{\bold{OE}} LOE​的形式没有规定,但是目的是最大化ID样本和OOD样本之间的距离。

实验结果 & 思考

在实验结果上,充分证明了该方法的效果,并且达到了SOTA。但是美中不足的是需要OOD的数据参与训练。这在真实场景下可能不太实用。
另外一个值得思考的是,其虽然使用了OOD的数据,但是使用的OOD的数据并没有涵盖所有的OOD数据集,那么为什么在面对不同的OOD样本时仍然具有较好的检测能力呢?是否因为网络学习到了ID中的语义和OOD中的语义差异呢?

【Paper Notes】Deep Anomaly Detection With Outlier Exposure相关推荐

  1. 【Donut论文】Unsupervised anomaly detection via variational auto-encoder for seasonal kpis...

    简述 本文提出的 Donut,基于 VAE(代表性的深层生成模型)的无监督异常检测算法,伴有理论解释,可以无标签或偶尔提供的标签下学习. 本文贡献 1,Donut 里的三项技术:改进的 ELBO,缺失 ...

  2. 【Paper Notes】DiffusionCLIP: Text-Guided Diffusion Models for Robust Image Manipulation

    论文链接 该论文发表在CVPR 2022上 目录 主要任务 方法介绍 DDPM/DDIM回顾 模型架构 Loss设计 Forward和Reverse过程 未知Domain之间的迁移 实验结果 参考文献 ...

  3. 【Paper Notes】 EPro-PnP

    EPro-PnP: Generalized End-to-End Probabilistic Perspective-n-Points for Monocular Object Pose Estima ...

  4. 【论文合集】Awesome Anomaly Detection

    github:GitHub - bitzhangcy/Deep-Learning-Based-Anomaly-Detection Anomaly Detection: The process of d ...

  5. 【论文阅读】Neural Transformation Learning for Deep Anomaly Detection Beyond Images 异常检测,可学习变换,时间序列,表格数据

    本博客系博主阅读论文之后根据自己理解所写,非逐字逐句翻译,预知详情,请参阅论文原文. 论文标题:Neural Transformation Learning for Deep Anomaly Dete ...

  6. 【Paper Reading】

    Levers are simple too, but they can move the world1. 文章目录 1 Categories Classification Compression Da ...

  7. 【论文翻译】Deep Residual Learning for Image Recognition

    [论文翻译]Deep Residual Learning for Image Recognition [论文题目]Deep Residual Learning for Image Recognitio ...

  8. 【深度学习】Deep Learning必备之必背十大网络结构

    深度学习网络结构: [深度学习]Deep Learning必备之必背十大网络结构 (从公众号转发过来发现图片不能引用,直接点上面链接吧) 昨天的文章介绍了在学习Deep Learning过程中必须背熟 ...

  9. 【读论文】Loop Closure Detection for Visual SLAM Systems Using Convolutional Neural Network

    [读论文]Loop Closure Detection for Visual SLAM Systems Using Convolutional Neural Network 发表于2017年,作者是南 ...

最新文章

  1. 修改 cmd 控制台默认代码页编码的几种方法【GBK、UTF-8】
  2. HttpReports 2.0 发布了 !!!
  3. 咨询的真相8:咨询业的“前世今生”
  4. java对象排序_Java™ 教程(对象排序)
  5. 这5个有趣的Python库带你花式编码!
  6. 配置SQL Server的命名管道和TCP/IP设置
  7. python中figure函数_Python figure参数及subplot子图绘制代码
  8. 在Python数据库连接池中如何创建请求连接的方案
  9. 李宏毅机器学习课程---1、机器学习介绍
  10. 线性规划的标准型与规范型 (Standard and Canonical Forms)
  11. 酒吧、ktv、夜店收银系统分析
  12. Android中的Apk的加固(加壳)原理解析和实现
  13. Python项目部署的三大神器
  14. java 将5mb以内图片压缩至200kb以下
  15. 使用nvs管理node版本
  16. ohmyzsh用在mysql_oh-my-zsh git 命令缩写 以及macbook使用感受
  17. 1.bboss-bboss启动无法加载ES参数问题跟踪
  18. 关于自己搭建的邮件被微软反垃圾邮件标记为垃圾邮件
  19. statement的意思和用法
  20. 蓝桥杯-递归-母牛生小母牛

热门文章

  1. 医院HIS系统运维工作见闻——引用
  2. Python 使用PyQt5进行界面程序开发
  3. 游戏创作者经济未来已来
  4. 万魔、南卡和漫步者哪个好?学生党蓝牙耳机推荐
  5. delphi XE同步对话框、异步对话框、平台特性对话框单元FMX.DialogService.pas
  6. ✠OpenGL-14-其他[重要]技术
  7. 一个用R语言进行聚类分析的例子
  8. vot 单目标跟踪学习笔记
  9. 提供“无码”应用程序开发工具包,Skuid获2400万美元融资
  10. Git在项目中40个常用命令详解