【分布外检测】ODIN ICLR‘18

《Enhancing the reliability of out-of-distribution image detection in neural networks.》 ICLR’18

OOD经典baseline。

ODIN 的想法很简单,既然模型对ID 和 OOD 样本输出的 softmax 预测概率分布不同,那么可不可以让它们分布差异变得更大呢?这样便可以更容易的检测 OOD 样本。本文提出两种方法辅助:Temperature scaling和Input Preprocessing:

【分布外检测】ODIN ICLR‘18_第1张图片

相比于 baseline, 使用 Temperature scaling 和 Input Preprocessing 能有效地使得 ID 和 OOD 样本 softmax 分布概率差异变大。

Temperature Scaling

p i ( x ; T ) = exp ⁡ ( f i ( x ) / T ) ∑ j = 1 N exp ⁡ ( f j ( x ) / T ) p_{i}(\boldsymbol{x} ; T)=\frac{\exp \left(f_{i}(\boldsymbol{x}) / T\right)}{\sum_{j=1}^{N} \exp \left(f_{j}(\boldsymbol{x}) / T\right)} pi(x;T)=j=1Nexp(fj(x)/T)exp(fi(x)/T)

Softmax 的Temperature Scaling其实在很多地方都有应用,如Hinton的 Knowledge Distillation, 使用一个足够大的 T T T值,可以使得softmax的分数靠近 1 N \frac{1}{N} N1,作者也用数学方法证明了这能够有效的分离 ID 和 OOD 样本的softmax分布。

Input Preprocessing

x ~ = x − ε sign ⁡ ( − ∇ x log ⁡ p y ^ ( x ; T ) ) \tilde{\boldsymbol{x}}=\boldsymbol{x}-\varepsilon \operatorname{sign}\left(-\nabla_{\boldsymbol{x}} \log p_{\hat{y}}(\boldsymbol{x} ; T)\right) x~=xεsign(xlogpy^(x;T))

受对抗样本的启发。对抗样本目的是朝着真实标签相反的方向,对 x x x加一个小扰动;这里相反,朝着真实标签的方向对 x x x加一个小扰动,通过这样的操作可以使得得到的 x ~ \tilde{x} x~靠近它真实的类别,对应类别的 softmax 预测概率增加,这样所有的 ID 样本将更加靠近其真实的类别,进一步分离 ID 和 OOD 样本 softmax 的概率分布。

我不是很赞同这个做法,对训练集里的ID数据做扰动,那么在测试时遇到ID数据,但是这个数据没被扰动过,岂不是也会显得它偏离原有分布?

你可能感兴趣的:(论文解读,分布外检测,CV,概率论,机器学习,深度学习)