问题

Evidential deep learning里一般怎么估计多标签分类的Uncertainty?

回答
在多标签分类问题中,评估模型的不确定性是至关重要的,尤其是在深度学习的背景下。这不仅能帮助我们理解模型对预测的信心程度,还能指导我们在关键决策场景中如何使用这些预测。Evidential Deep Learning(EDL)提供了一种强大的框架来量化这种不确定性,其核心思想是将分类任务转化为一个证据收集过程,并利用概率的“不确定性”来表达模型的怀疑。

对于多标签分类,问题本身就比单标签分类要复杂一些。在多标签场景下,一个样本可以同时属于多个类别,或者不属于任何类别。这意味着模型不仅要判断一个类别是否相关,还要评估多个类别之间的相互作用以及每个类别相关性的强度。EDL 在此基础上,通过为每个类别学习一个概率质量函数(Probability Mass Function, PMF),来捕捉这种多样的不确定性。

下面我们详细展开讲解如何在多标签分类中使用 EDL 来估计不确定性。

1. EDL 的基本思想:从概率到证据

传统的深度学习模型通常输出每个类别的概率(通常通过 Softmax 激活函数)。这些概率表示了模型对每个类别“相信”的程度。然而,Softmax 概率有其局限性,例如它倾向于将不确定性分配到所有类别上,而未能清晰地隔离出“无信息”或“模型无力判断”的情况。

EDL 的核心在于学习一个狄利克雷分布(Dirichlet distribution)的参数,而不是直接输出概率。狄利克雷分布是一个关于概率分布的概率分布,它定义了一个概率单纯形上的概率质量。在这个框架下,我们不直接预测一个特定的概率向量 $(oldsymbol{p}_1, dots, oldsymbol{p}_K)$,而是预测一个向量 $oldsymbol{alpha} = (alpha_1, dots, alpha_K)$,其中 $alpha_k$ 表示模型收集到的关于类别 $k$ 的“证据强度”。

狄利克雷分布由其浓度参数(concentration parameters) $oldsymbol{alpha}$ 决定。在这里,$alpha_k > 0$。这个分布的期望值可以被看作是类别的概率:

$$ mathbb{E}[oldsymbol{p} | oldsymbol{alpha}] = left( frac{alpha_1}{sum_{i=1}^K alpha_i}, dots, frac{alpha_K}{sum_{i=1}^K alpha_i} ight) $$

其中 $sum_{i=1}^K alpha_i$ 是总证据强度。

2. 狄利克雷分布与不确定性量化

EDL 之所以能够量化不确定性,是因为狄利克雷分布的性质:

证据强度(Strength of Evidence): $sum_{i=1}^K alpha_i$ 表示模型对当前样本的整体信心。当总证据强度很高时,模型认为它有足够的信息来做出判断。反之,低的总证据强度表明模型对所有类别都缺乏明确的信心。
不确定性(Uncertainty): 狄利克雷分布的扩散程度反映了不确定性。如果 $oldsymbol{alpha}$ 的所有分量都很大且相对均匀,则分布更集中,不确定性较低。如果 $oldsymbol{alpha}$ 的某些分量很小,或者分布非常分散,则意味着模型在区分类别时存在较大的不确定性。
类别证据(Evidence for a Class): $alpha_k$ 的大小直接对应于模型对类别 $k$ 的证据强度。

EDL 通常会学习一个映射函数,将深度神经网络的最终特征向量 $mathbf{f}$ 映射到狄利克雷分布的参数 $oldsymbol{alpha}$。这个映射通常是一个全连接层,并使用一种特殊的激活函数,例如 Softplus 激活函数,以确保 $alpha_k > 0$。

$$ oldsymbol{alpha} = ext{Softplus}(mathbf{W}mathbf{f} + mathbf{b}) $$

其中 $mathbf{W}$ 是权重矩阵,$mathbf{b}$ 是偏置向量。

3. 适应多标签分类的 EDL 框架

在单标签分类中,我们通常学习一个 $oldsymbol{alpha}$ 向量,其长度等于类别的数量 $K$。然而,在多标签分类中,每个样本可以属于多个类别,这意味着我们不能简单地将一个狄利克雷分布应用于所有类别。EDL 在多标签设置下有几种常见的处理方式:

3.1. 基于独立类别的 EDL (Independent Class EDL)

这是最直观和常用的方法。在多标签分类中,我们假设每个类别的存在与否是独立的(至少在模型学习的层面)。因此,我们可以为每个类别独立地学习一个狄利克雷分布。

具体来说,如果我们的多标签问题有 $K$ 个类别,我们可以:

1. 为每个类别 $k$ 学习一个独立的 $alpha_k$ 值。这意味着神经网络的最后一层不再输出一个长度为 $K$ 的 $oldsymbol{alpha}$ 向量,而是输出 $K$ 个独立的 $oldsymbol{alpha}$ 值,每个值对应一个类别。
2. 每个 $alpha_k$ 都可以被视为一个独立的二元分类问题。对于每个类别 $k$,EDL 试图学习一个狄利克雷分布,该分布的期望代表了该类别在样本中出现的概率。
3. 证据和不确定性解读:
类别的证据强度 ($alpha_k$): $alpha_k$ 直接代表模型对类别 $k$ 的证据。
类别的不确定性: 对于每个类别 $k$,其不确定性可以用狄利克雷分布的方差来衡量。一个常用的度量是基数(cardinality),即 $sum_i alpha_i$。更精细的不确定性可以通过狄利克雷分布的散度(KullbackLeibler divergence)来度量,或者直接关注 $alpha_k$ 的值。
整体不确定性: 可以通过对所有类别的 $alpha_k$ 进行某种形式的聚合来得到整体不确定性。

训练目标:
在独立类别的 EDL 中,我们可以为每个类别 $k$ 定义一个损失函数,例如 Evidential CrossEntropy (ECE)。对于一个样本,其真实标签是 $mathbf{y} = (y_1, dots, y_K)$,其中 $y_k in {0, 1}$。

对于类别 $k$,我们可以将其视为一个二元分类问题。EDL 学习到的 $alpha_k$ 对应于一个伯努利分布的参数。在 EDL 的框架下,一个常见的损失函数是基于KL 散度的。目标是最小化模型预测的狄利克雷分布与一个“理想”狄利克雷分布之间的 KL 散度。对于二元分类,理想的狄利克雷分布参数是 $(1+y_k, 1+(1y_k))$,或者更简单地 $(y_k+1, (1y_k)+1)$。

更具体地说,可以使用 Type II Maximum Likelihood 或者 Variational Inference 的方法来推导损失函数。一种常见的损失函数形式(针对每个类别的独立二元问题)是:

$$ mathcal{L}_k(oldsymbol{alpha}_k, y_k) = ext{KL}( ext{Dir}(oldsymbol{alpha}_k) || ext{Dir}(oldsymbol{alpha}^_k)) $$

其中 $oldsymbol{alpha}^_k$ 是目标狄利克雷分布的参数。一种常用的选择是:

如果 $y_k = 1$, $oldsymbol{alpha}^_k = (1 + eta, 1)$。
如果 $y_k = 0$, $oldsymbol{alpha}^_k = (1, 1 + eta)$。
其中 $eta$ 是一个小的正数(例如 $eta=1$),用于避免 $alpha$ 为零。

通过将每个类别的损失相加,得到总损失:
$$ mathcal{L} = sum_{k=1}^K mathcal{L}_k(alpha_k, y_k) $$

不确定性指标:
在预测阶段,对于一个样本,我们得到一组 ${alpha_1, dots, alpha_K}$。

类别 $k$ 的预测概率: $hat{p}_k = frac{alpha_k}{sum_i alpha_i}$。
类别 $k$ 的不确定性 (方差): $ ext{Var}(p_k | oldsymbol{alpha}) = frac{alpha_k (sum_{i e k} alpha_i)}{(sum_i alpha_i)^2 (sum_i alpha_i + 1)} = frac{alpha_k (sum_i alpha_i alpha_k)}{(sum_i alpha_i)^2 (sum_i alpha_i + 1)}$。
证据不足(Vacuity / Vacuous Evidences): 当 $sum_i alpha_i < K$ 时,表示模型整体证据不足。可以定义一个阈值来判断。
类别区分度(Discriminative Uncertainty): 可以通过计算所有类别概率的熵来衡量。$ ext{Entropy} = sum_{k=1}^K hat{p}_k log hat{p}_k$。
异常检测: EDL 还可以用于异常检测。一个样本如果具有非常高的总体不确定性(即 $sum alpha_i$ 较低),则可能是一个异常样本。

3.2. 基于联合狄利克雷分布的 EDL (Joint Dirichlet EDL)

这种方法更加复杂,它试图学习一个联合狄利克雷分布,来捕捉不同类别之间的依赖关系。然而,对于多标签分类,直接学习一个 $2^K1$ 维的联合狄利克雷分布(对应于所有非空子集)是不可行的,因为维度会随着类别数量呈指数级增长。

一种可能的近似方法是:

学习一个具有复杂结构的狄利克雷分布。例如,使用图模型来表示类别之间的关系,并在图结构上定义狄利克雷分布的参数。
通过高斯分布近似狄利克雷分布。将狄利克雷分布的参数 $oldsymbol{alpha}$ 映射到高斯分布的均值和方差,然后利用高斯分布的特性进行推理。

这种方法在理论上更准确,但实现起来非常困难,并且计算成本很高。在实际应用中,独立类别的 EDL 是更常见和可行的方法。

3.3. 结合注意力机制的 EDL

为了提升 EDL 在多标签分类中的表现,可以引入注意力机制。注意力机制可以帮助模型在处理一个样本时,更关注与当前类别相关的特征。

为每个类别学习一个独立的注意力权重。在模型的中间层,为每个类别应用一个注意力模块,学习一个与该类别最相关的特征子集。
将注意力权重融入狄利克雷参数的学习。注意力权重可以用来加权从特征提取器中获得的特征,然后再将加权的特征输入到映射到狄利克雷参数的网络中。

这可以通过以下方式实现:
1. 特征提取: 使用一个卷积神经网络 (CNN) 或 Transformer 提取图像或文本的特征 $mathbf{f}$。
2. 类别注意力: 对于每个类别 $k$,学习一个注意力得分 $a_{k,i}$,表示特征 $mathbf{f}_i$ 对类别 $k$ 的重要性。
3. 加权特征: 将特征 $mathbf{f}$ 与注意力权重结合,得到类别相关的特征表示 $mathbf{f}_k^{ ext{att}} = sum_i a_{k,i} mathbf{f}_i$。
4. 狄利克雷参数学习: $oldsymbol{alpha}_k = ext{Softplus}(mathbf{W}_k mathbf{f}_k^{ ext{att}} + mathbf{b}_k)$。

这种方法能够让模型更专注于特定类别的特征,从而更准确地估计每个类别的证据和不确定性。

4. 实际实现中的考量

网络结构: 可以使用一个共享的特征提取器(例如 ResNet, EfficientNet, BERT),然后为每个类别添加一个独立的 MLP (MultiLayer Perceptron) 来输出 $alpha_k$。
激活函数: Softplus 是一个不错的选择,因为它能保证 $alpha_k > 0$。
损失函数: 除了上面提到的基于 KL 散度的损失,还可以考虑其他形式的损失,例如基于 Brier Score 的变体,或者直接使用 Maximum Likelihood Estimation (MLE) 来优化狄利克雷分布的参数。
后处理:
阈值选择: 需要为模型的不确定性设置一个合理的阈值,例如,如果 $sum alpha_k < ext{threshold}$,则认为模型不确定,不进行预测或交由人类专家处理。
类别激活: 根据预测的概率 $hat{p}_k$ 和对应的 $alpha_k$ 来决定激活哪些类别。可以同时考虑概率和证据强度。

5. EDL 在多标签分类中的优势

明确的不确定性表示: EDL 能区分“对某个类别有信心”和“对所有类别都不确定”的情况,这比单纯的概率输出来得更丰富。
鲁棒性: 通过学习证据,模型对噪声和对抗性攻击的鲁棒性可能会有所提高。
异常检测能力: 低总证据强度可以用来检测未见过的或异常的样本。
可解释性: $alpha_k$ 的值可以直观地解释为模型对类别 $k$ 的证据强度。

总结

在多标签分类中,Evidential Deep Learning 通过为每个类别学习一个狄利克雷分布的参数 $alpha_k$,来量化模型的不确定性。最常见的方法是独立类别的 EDL,将多标签问题分解为多个独立的二元分类问题,每个问题都学习一个狄利克雷分布。模型可以通过 $alpha_k$ 的值和总证据强度 $sum alpha_i$ 来评估对每个类别的信心和整体的不确定性。这种框架不仅提供了更丰富的不确定性度量,也为在实际应用中进行更可靠的决策提供了支持。

网友意见

user avatar

小白提供一篇相关的文献 [ICLR'21],希望能有所帮助:

这个工作的出发点是半监督学习中的 psedo-label 选择,该方法也适用 multi-label。文章的方法很简洁,其实就是拿模型在每个标签的预测结果的 uncertainty 和一个阈值进行比较。公式如下:

这个公式就是获取一个 indicator,表示第 i 个样本的第 c 个标签是否可信。公式中的两项可以看作分别对 positive 和 negative label 的选择。例如加号左边一项,文章认为当标签的预测置信度大于某个阈值,且该标签的 uncertainty 小于某个阈值时,那模型在这个标签上的预测结果时比较可靠的。

这里的 uncertainty 的计算直接使用了模型多次预测结果的 标准差。

所以,我的观点是 multi-label 中可以逐个标签计算 uncertainty,使用类似 mc-dropout 的方式即可得到模型在每个 label 上的 uncertainty,然后进行筛选。

该工作的 code 在这里可以找到:Github code

user avatar

很好的问题。

对Multi-Label Classification问题了解不多,不过要注意EDL里面是多分类模型的输出概率可以认为服从Dirichlet分布,而多标签分类的输出概率,并不满足这一分布,所以EDL是无法适用的。

类似于EDL的做法,可以看看早期的D-S证据理论在多标签分类领域的研究文献[1,2,3],还有近期基于Subjective Opinion的uncertainty estimation文章[4],看看如何借鉴EDL的做法,用Deep Learning方法估计uncertainty。

  1. Younes, Zoulficar, Fahed Abdallah, and Thierry Denœux. "An evidence-theoretic k-nearest neighbor rule for multi-label classification."International Conference on Scalable Uncertainty Management. Springer, Berlin, Heidelberg, 2009.
  2. Denœux, Thierry, Zoulficar Younes, and Fahed Abdallah. "Representing uncertainty on set-valued variables using belief functions."Artificial Intelligence174.7-8 (2010): 479-499.
  3. Kanj, Sawsan, Fahed Abdallah, and Thierry Denœux. "Evidential multi-label classification using the random k-label sets approach."Belief Functions: Theory and Applications. Springer, Berlin, Heidelberg, 2012. 21-28.
  4. A. Josang, J. Cho and F. Chen, "Uncertainty Characteristics of Subjective Opinions,"2018 21st International Conference on Information Fusion (FUSION), 2018, pp. 1998-2005, doi: 10.23919/ICIF.2018.8455454.

类似的话题

  • 回答
    在多标签分类问题中,评估模型的不确定性是至关重要的,尤其是在深度学习的背景下。这不仅能帮助我们理解模型对预测的信心程度,还能指导我们在关键决策场景中如何使用这些预测。Evidential Deep Learning(EDL)提供了一种强大的框架来量化这种不确定性,其核心思想是将分类任务转化为一个证据.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有