【Out-of-Distribution Detection】Evidential Deep Learning in NeurIPS 2018 个人理解

一、简介

题目: Evidential Deep Learning to Quantify Classification Uncertainty
会议: NeurIPS 2018
任务: 分布外检测(Out-of-Distribution Detection, OOD Detection),测试集中可能出现超出训练集样本分布的样本(可以是来自未知类的样本、被破坏的样本、异常样本等等),要求将这些样本隔离出来。
Idea:
使用主观逻辑(Subjective Logic)理论形式化DS证据理论(Dempster–Shafer Evidence Theory)中单子集的概念推导出样本属于各已知类(训练集中包含的类)的概率,并评估不确定性作为样本处于分布外或属于未知类的概率。核心思想是将分类器的概率输出视为一个狄利克雷分布(Dirichlet Distribution)并替换,之后引入两个损失分别负责保证预测结果准确性和提升被错误分类的样本的不确定性。
Note: OOD Detection开放集识别(Open Set Recognition, OSR)的任务目标类似,但通常OSR比OOD Detection更难一些。例如,如果训练类为数字1⃣️~5⃣️,OSR要拒绝的可能是测试集中的数字6⃣️、7⃣️,而OOD Detection要拒绝的可能是✈️、🚗。显然,相比✈️、🚗,数字6⃣️、7⃣️与1⃣️~5⃣️更加相似,也就更难被区分出来。

如图,转动数字1⃣️的图片进行分类概率预测。从左图可以看出,如果使用SoftMax训练分类器,即便将旋转后的1⃣️预测为2️⃣或5⃣️,其输出的最高概率值仍然很大。简单来说,就是SoftMax分类器即便面对一个完全陌生的样本也会给一个极高的置信分数(该现象被称为Over-Confidence),并且无法估计样本处于分布外或属于未知类的可能性。从右图可以看出,证据深度学习(Evidential Deep Learning)能够评估不确定性,当样本属于未知类时,不确定性会高于各已知类的预测概率,从而隔离该样本。

二、详情

1. 主观逻辑

主观逻辑将Dirichlet分布的参数与证据进行了关联。

首先,我们看一下Dirichlet分布:

其中, α = [ α i , ⋯   , α K ] \boldsymbol{\alpha}=[\alpha_i,\cdots,\alpha_K] α=[αi,,αK]是Dirichlet分布的参数, B ( α ) B(\boldsymbol{\alpha}) B(α)是一个 K K K维的多项式函数, S K \mathcal{S}_K SK是一个集合,满足如下条件:

可以看出这里的 p i p_i pi是范围0到1且和为1的,这与SoftMax输出的特性是一致的,再考虑到SoftMax不能评估不确定性并且Over-Confidence,作者将SoftMax的输出,即在各个类别上的概率预测,假设成是服从Dirichlet分布的。

然后,我们看一下证据。在DS证据理论中,Belief Mass指的是为一个假设分配的置信度。以三分类(类别为A、B、C)为例,单子集假设是指样本属于类别A、类别B、类别C,多子集假设则是指样本属于类别A或B、类别B或C、类别A或C、类别A或B或C(多子集假设就是说不知道具体是哪个类,只知道是该集合中的某一个)。显然,对于确定性的样本分类任务来说,我们只需要关注其中的单子集。Belief Mass则可以简单理解为某一假设成立的可能性。

假设训练集已知类有 K K K个,主观逻辑就是要给一个样本分配 K K K个Belief Mass作为样本属于各已知类的可能性估计,记为 b k b_k bk,和1个不确定性(Uncertainty Mass)作为样本处于分布外或属于未知类的可能性估计,记为 u u u { [ b 1 , ⋯   , b K ] , u } \{[b_1,\cdots,b_K],u\} {[b1,,bK],u}被称为主观观念(Subjective Opinion),它们是大于等于0且和为1的,即:

其中, b k ≥ 0 , k = 1 , ⋯   , K b_k\geq 0,k=1,\cdots,K bk0,k=1,,K u ≥ 0 u\geq 0 u0

可以看出,主观逻辑中的 b k b_k bk与Dirichlet分布中的 p i p_i pi都是在表达分配给某个已知类的预测概率。

在主观逻辑中,主观观念可以通过下式计算:

其中, e k e_k ek是证据(在该工作中,作者将SoftMax替换为ReLU后的分类器网络输出当作了证据 e k e_k ek,因为它是根据训练数据拟合而来的用于指导分类的度量,使用ReLU是为了让输出都大于等于0); S = ∑ k = 1 K ( e k + 1 ) S=\sum_{k=1}^K(e_k+1) S=k=1K(ek+1),用来将 e k e_k ek u u u缩放成和为1的形式。

进一步地,主观逻辑将证据 e k e_k ek与Dirichlet分布的参数 α k \alpha_k αk联系了起来,关系为 α k = e k + 1 \alpha_k=e_k+1 αk=ek+1。于是有 S = ∑ k = 1 K ( e k + 1 ) = ∑ k = 1 K α k S=\sum_{k=1}^K(e_k+1)=\sum_{k=1}^K\alpha_k S=k=1K(ek+1)=k=1Kαk S S S又可以被称作Dirichlet强度。给定一个主观观念,对于类别 k k k的期望概率可以通过下式计算:

于是,一个样本 x i \boldsymbol{x}_i xi输入分类器经最后一层网络以ReLU为激活即可输出证据 [ e i 1 , ⋯   , e i K ] [e_{i1},\cdots,e_{iK}] [ei1,,eiK],根据证据即可得到Dirichlet分布的参数 [ α i 1 , ⋯   , α i K ] [\alpha_{i1},\cdots,\alpha_{iK}] [αi1,,αiK],根据参数可以得到强度 S i S_i Si,根据证据和强度可以得到Belief Mass [ b i 1 , ⋯   , b i K ] [b_{i1},\cdots,b_{iK}] [bi1,,biK]和Uncertainty Mass u u u,根据参数和强度可以得到在 K K K个已知类上的期望概率 [ p ^ i 1 , ⋯   , p ^ i K ] = [ α i 1 / S i , ⋯   , α i K / S i ] [\hat{p}_{i1},\cdots,\hat{p}_{iK}]=[\alpha_{i1}/S_i,\cdots,\alpha_{iK}/S_i] [p^i1,,p^iK]=[αi1/Si,,αiK/Si]

2. 损失引入

通过上述操作,样本输入分类器即可得到概率预测和不确定性估计。但想要实现分类,分类器的参数仍需要优化,于是作者引入两个损失。

2.1 增加预测准确性

对于第 i i i个样本,我们已经假设概率预测 p i \textbf{p}_i pi服从Dirichlet分布 D ( p i ∣ α i ) D(\textbf{p}_i|\boldsymbol{\alpha}_i) D(piαi),所以 D ( p i ∣ α i ) D(\textbf{p}_i|\boldsymbol{\alpha}_i) D(piαi)应该是 Mult ( y i ∣ p i ) \text{Mult}(\textbf{y}_i|\textbf{p}_i) Mult(yipi)的先验,其中 y i \textbf{y}_i yi是第 i i i个样本One-Hot形式的真实标签。

我们希望预测概率 p i \textbf{p}_i pi能够接近 y i \textbf{y}_i yi从而达到正确预测,于是设定以下损失:

其中, ∥ y i − p i ∥ 2 2 \|\textbf{y}_i-\textbf{p}_i\|_2^2 yipi22用于使两者逼近, 1 B ( α i ) ∏ i = 1 K p i j α i j − 1 \frac{1}{B(\boldsymbol{\alpha}_i)}\prod_{i=1}^Kp_{ij}^{\alpha_{ij}-1} B(αi)1i=1Kpijαij1则是 D ( p i ∣ α i ) D(\textbf{p}_i|\boldsymbol{\alpha}_i) D(piαi)

经过推导,得到如下损失表示形式:

其中, y i j y_{ij} yij是真实One-Hot标签是已知的, p ^ i j \hat{p}_{ij} p^ij是期望概率可以根据参数和强度计算,参数和强度 S i S_i Si可通过证据计算,证据是网络最后一层经ReLU激活的输出也是已知的。

经过分析可以看出,前面一项可以使 p ^ i j \hat{p}_{ij} p^ij接近 y i j y_{ij} yij,本质上是使经 S i S_i Si归一化后的 e i j e_{ij} eij接近 y i j y_{ij} yij,所以能够实现保证预测准确性的目的。后一项可以实现降低预测不确定性的目的,与香农熵的作用相类似,直白的说,是让最大预测概率更接近1。

2.2 提升被错误分类的样本的不确定性

因为没有完美的模型,所以总会有被错误分类的样本,作者希望这些样本能够表达更高的不确定性。以三分类为例,考虑最极端的情况, [ b 1 , b 2 , b 3 ] = [ 0 , 0 , 0 ] [b_1,b_2,b_3]=[0,0,0] [b1,b2,b3]=[0,0,0],则 [ e 1 , e 2 , e 3 ] = [ 0 , 0 , 0 ] [e_1,e_2,e_3]=[0,0,0] [e1,e2,e3]=[0,0,0] [ α 1 , α 2 , α 3 ] = [ 1 , 1 , 1 ] [\alpha_1,\alpha_2,\alpha_3]=[1,1,1] [α1,α2,α3]=[1,1,1],不确定性最大 u = 1 u=1 u=1

于是,作者增加了如下KL散度损失:

其中, 1 \textbf{1} 1是全1的向量; α ~ i = y i + ( 1 − y i ) ⊙ α i \tilde{\boldsymbol{\alpha}}_i=\textbf{y}_i+(1-\textbf{y}_i)\odot\boldsymbol{\alpha}_i α~i=yi+(1yi)αi,当预测与真实标签 y i \textbf{y}_i yi一致时, α ~ i = 1 \tilde{\boldsymbol{\alpha}}_i=1 α~i=1,否则不为1。KL散度可以衡量两个分布的差异,因此预测正确时该损失为0,预测错误时大于0,从而达到将错误分类样本的不确定性增加的目的。

但是该项可能限制错分样本通过后期学习得到修正进而正确分类,所以作者为该损失设置了一个退火系数 λ t \lambda_t λt,降低其在学习初期的影响。所以综合损失如下:

其中, λ t = m i n ( 1 , t / 10 ) ∈ [ 0 , 1 ] \lambda_t=min(1,t/10)\in[0,1] λt=min(1,t/10)[0,1]是随 t t t 增加的,最高为1。

综上,有了预测过程和损失函数即可进行学习和预测。不确定性大的即为未知类,否则则为最大概率所对应的某个已知类。

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fulin_Gao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值