这篇文章有些像“learning loss”那篇一样,一股“end to end DL system solve everything”的味道。我需要一个confidence来评估一个样本是否为OOD数据,那我的神经网络模型就输出一个confidence指标来预测当前样本。
文章虽然没有发表在会议,但是被引量很高。
Motivation
作者用一个例子来引入设计模型的动机。假设学生在考试中要回答一系列问题获得分数,途中学生可以选择请求提示获得帮助,但是请求提示会受到小惩罚。那么这个时候学生应该在有信心的题目上独立回答,没信心的题目上请求帮助。
在考试结束,统计学生使用的提示数,可以估计他们对每个问题的置信度。那么将这种相同的策略应用于神经网络,也可以使其能学习置信度估计。
模型架构
在任何正常分类预测模型中加入一个“置信估计分支”,加在模型的倒数第二层之后,和“softmax分类模块”平行,两个分支都接受相同的输入。
p , c = f ( x , Θ ) p i , c ∈ [ 0 , 1 ] , ∑ i = 1 M p i = 1 p, c=f(x, \Theta) \quad p_{i}, c \in[0,1], \sum_{i=1}^{M} p_{i}=1 p,c=f(x,Θ)pi,c∈[0,1],i=1∑Mpi=1
以上 p p p代表分类概率,通过一个softmax函数获得; c c c代表置信度分数,通过一个sigmoid函数获得。
为了在训练过程中给模型“提示”,在原始softmax预测概率和真实标签 y y y之间通过插值来调整最终分类预测,其中插值的程度由网络的置信度来表示: