ODIN & GODIN
ODIN(Out-of-DIstribution detector for Neural networks)
Enhancing the reliability of out-of-distribution image detection in neural networks ICLR 2018
- 对softmax函数进行温度缩放(temperature scaling)和输入扰动(small controlled perturbations)
- 不需要重新训练新的网络
However, when deploying neural networks in real-world applications, there is often very little control over the testing data distribution. Recent works have shown that neural networks tend to make high confidence predictions even for completely unrecognizable or irrelevant inputs(对很能识别的或者完全无关的类输入也会产生高置信度。 这里给予的还是最基础的OOD方法,根据置信度判断)
使用的是后处理方法 #post-hoc
使用的trick
温度缩放
具体参考:Calibration of Modern Neural Networks
首先学习一下temperature scaling的作用,在这之前需要了解一下knowledge distillation and calibrated(知识蒸馏与校准)。论文提出temperature scaling可以区分ID和OOD的最大softmax分数。那么什么是模型校准呢?
通常模型的输出是一个对应最大softmax的索引,也就是输出预测类,但是如果我们希望模型可以输出预测的置信度(confidence)是多少,那么这个confidence就是calibrated的。譬如:进行一个分类任务,将模型预测判断为某一类A且confidence score为90%的所有样本统计在一起,总数为N;并对着N个样本进行真实类别统计,如果有90%的样本都为A类,则说明该模型是calibrated的
如上图所示,横纵坐标分别是confidence和acc,蓝色图代表的模型输出,灰色线代表calibration。那么该模型就是较自信的(输出的confidence大于实际acc)譬如在confidence为0.8的这些输出中,期望的是有80%的应该分类正确,但实际只有60%分类正确,那么也就是“网络过于自信了”,输出的置信度具体式子如下:
如果没有参数T,那么置信度就是softmax对应最大值
$T$ 的作用可以这样理解:
- 当 $T \to \infty$ 时,上式会趋于$\dfrac{1}{K}$,其中$K$表示类别数,也就是confidence score为1/K,那就是说模型完全的不确定是否判断正确(模型说”我是瞎猜的”)
- 当 $T \to 0$ 时,上式会趋于 $1$,代表置信度为1(模型说”我预测的就是对的”)
那么根据之前讲的 直接用argmax softmax作为置信度分数有些过于自信了,我们就可以设置参数T,调整他的置信度。注意的是,调整需要用valid set进行调整,训练后利用NLL调整参数T的值。论文中是直接给定T,经过实验和推导证明T越大,检测效果越好
好处
Temperature Scaling不会改变各个维度之间的相对顺序关系,这丛上面的两个示例也可以看出。这保证了Max-Softmax方法结合Temperature Scaling使用,性能只可能上升,而不可能下降,这是非常巧妙的一点。作者在文中对温度做了一系列消融实验,对比了不同温度的作用效果:
从上图左侧的四幅图中可以看出,在不同的温度设置下,OOD检测的性能均高于Max-Softmax(对英语温度为1的时候)。
输入扰动
除了对Softmax的输出进行处理之外,作者还提出了另外一种针对输入图像的处理方法,文中称作Input Preprocessing。这个方法是基于一个先验的:由于我们的分类网络是在ID数据上训练的,那么我们可以直观的认为,ID数据分布在得分峰值或者是峰值附近,而OOD数据则往往分布在远离得分峰值的区域。
在上图中,蓝色字体表示OOD数据,红色字体表示ID数据。竖直方向的坐标轴表示的是经过Softmax后输出的得分,也就是上文中提到的。因为卷积神经网络是在ID数据上训练的,它对于ID数据更加敏感,并且,ID数据在训练过程中会尽量聚集在得分峰值或者是峰值附近。与此不同的是,OOD数据往往分布在距离峰值较远的区域
论文里提到对输入增加一个小扰动,其motivation是利用对抗样本,强迫模型输出错误的结果以及对应真实类别的低softmax score。但是论文里是相反的,希望利用一种扰动,使得输出的softmax score可以更高,the perturbation can have stronger effect on the in distribution images than that on out-of-distribution images, making them more separable(扰动对分布图像的影响比对分布外图像的影响更大,使它们更容易分离)。
对抗样本的进一步想法可以看Out-of-distribution Detection系列专栏(一)_decoupling maxlogit for out-of-distribution detect-CSDN博客
实验
指标
- FPR@95
- Detection Error 即$P_e$衡量TPR为95%时的误分类概率。$P_e$的定义为$P_e = 0.5(1 - TPR) + 0.5 FPR$,其中我们假设正反例在测试集中出现的概率相等。
- AUROC
- AUPR
分布距离衡量
带高斯RBF核的最大平均离散度MMD
我们的方法与分布内和分布外数据集之间的MMD的表现。神经网络在CIFAR-100上进行训练。分布外数据集为1:LSUN (cop), 2: TinyImageNet (crop), 3: LSUN (resize), 4: is iSUN (resize), 5: TinyImageNet (resize)。
- 裁剪后的数据集与CIFAR-100之间的MMD距离往往更大。这可能是因为裁剪的图像只包含局部图像上下文,因此与CIFAR-100图像更不同,而调整大小的图像包含全局模式,因此与CIFAR-100中的图像相似。
- MMD距离与检测表现呈负相关。这表明检测任务变得更加困难,因为分布内和分布外的图像彼此更加相似
G-ODIN
CVPR2020:Generalized ODIN: Detecting Out-of-distribution Image without Learning from Out-of-distribution Data
ODIN有一个要求,即它需要OOD数据来调整其两个策略的超参数,这导致了一种担忧,即用一个分布外数据集调整的超参数可能无法推广到其他数据集
使用的是训练方法 #training
在概念上将差异类型分为非语义转移和语义转移
- 具有非语义偏移的数据从分布 $p_{out}(x, y)$ 中提取。具有这种偏移的示例来自相同的对象类,但以不同的形式呈现,例如卡通或素描图像。
- 在语义转移的情况下,数据是从${\bar{y}}∩{y} =∅$的分布$p_{out}(x,\bar{y})$中提取的
引入一个显式的二元域变量$d∈{d_{in}, d_{out}}$来表示这个决策,其中$d_{in}$表示输入是$x \sim p_{in}$,而$d_{out}$表示$x≁p_{in}$(或等价于$x \sim p_{out}$)
作者在classifier中使用变量 $d_{in}$ 联合class-domain概率和domain probability重写条件概率如公式2所示。
公式2也从某一侧面反映出为什么classifiers会趋向于overconfident。即,当有一个样本 $x \sim p_{out}$,我们希望分子小(e.g. 0.09),分母也小(e.g. 0.1),这造成预测概率还是很大(0.9);