多标签学习:面试问题与推荐回答

yo3nglau

2026/03/31

Categories: Interview Tags: Deep Learning Multi-label Learning Classification

View English Version

基础知识

Q1 [基础] 什么是多标签图像分类?它与多类别分类和多任务分类有何不同?

Q: 请解释多标签图像分类的问题形式化,以及它与相关设定的区别。

A:多类别图像分类中,每张图像恰好属于 $L$ 个互斥类别中的一个。Softmax 输出强制要求概率分布之和为 1,单一交叉熵损失驱动模型趋向一个主导类别。典型例子包括 ImageNet 分类和数字识别。

多标签图像分类放宽了互斥约束:每张图像可以同时属于 $L$ 个类别的任意子集。典型例子是 MS-COCO,一张图像可同时包含"人"、“自行车"和"交通灯”。形式上,目标是学习 $f: \mathcal{X} \to \lbrace 0,1 \rbrace^L$,将每张图像映射为一个二值标签向量。在架构上,这意味着将 softmax 替换为 $L$ 个独立的 sigmoid 激活——每个输出 $\hat{p}_j = \sigma(z_j) \in (0,1)$ 独立估计标签 $j$ 存在的概率。

多任务分类是另一种设定:涉及多个异构任务(例如同时预测目标类别、边界框、深度和姿态),每个任务有各自的损失函数和输出头。各任务共享骨干网络,但输出具有语义上的差异。多标签分类是多任务的特殊情形——所有任务都是对同质标签集的二值预测,不仅共享骨干,还共享损失函数结构。


Q2 [基础] 多标签图像分类的标准 CNN + sigmoid + BCE 基线如何构建?

Q: 多标签图像分类的标准基线在实践中是什么样子?

A: 标准基线遵循简单的三段式结构:骨干网络 → 池化 → 分类头。卷积骨干网络(如 ResNet-50、ResNet-101)或视觉 Transformer(如 ViT-B/16)处理输入图像,生成特征图或词元序列。全局平均池化将空间维度压缩为单个向量 $f(x) \in \mathbb{R}^d$。全连接层将其投影为 $L$ 个 logit $z \in \mathbb{R}^L$,sigmoid 激活 $\hat{p}_j = \sigma(z_j)$ 产生每标签的概率。

训练最小化在所有标签-样本对上平均的二值交叉熵(BCE):

$$\mathcal{L}_\text{BCE} = -\frac{1}{NL} \sum_{i=1}^N \sum_{j=1}^L \left[ y_{ij} \log \hat{p}_{ij} + (1 - y_{ij}) \log(1 - \hat{p}_{ij}) \right]$$

推理时,阈值 $\tau$(默认 0.5)将概率转换为二值预测:$\hat{y}_j = \mathbf{1}[\hat{p}_j \geq \tau]$。

该基线本质上是Binary Relevance的神经网络实例化:每个标签对应一个独立的二值分类器,共享公共特征提取器。其简单性和可扩展性使之成为强劲且被广泛使用的起点。核心局限是 sigmoid 激活和 BCE 损失中内置的独立性假设——标签在给定图像的条件下被视为条件独立,忽略了共现结构。这一局限催生了显式捕获标签相关性的基于图和注意力的方法。


Q3 [基础] 什么是 Binary Relevance?为何对标签相关性建模很重要?

Q: 什么是 Binary Relevance 方法?忽略标签相关性会带来什么问题?

A: Binary Relevance(BR)是多标签学习中最简单的问题转换策略:将 $L$ 标签问题分解为 $L$ 个独立的二值分类问题,每个标签各一个。每个二值分类器 $f_j: \mathcal{X} \to \lbrace 0,1 \rbrace$ 独立训练和应用,预测时标签之间不共享任何信息。在深度学习时代,共享骨干网络配合 $L$ 个独立 sigmoid 输出和 BCE 损失即为 BR 的神经网络等价形式。

BR 在计算上具有吸引力:分类器可并行训练,方法可扩展到任意数量的标签,且不对标签分布作任何假设。若标签在给定图像时确实条件独立,BR 在统计上是最优的。

实践中,标签很少是独立的。在 MS-COCO 中,“自行车"和"人"的共现频率远高于随机水平;“雨伞"和"雨"在语义上相关;“叉子"和"餐桌"几乎总是同时出现。忽略这些相关性意味着模型错过了提升预测一致性的机会——它可能自信地预测"狗”,却遗漏了"牵引绳”,尽管后者强烈暗示了前者。实验表明,显式利用标签共现的模型(如 ML-GCN)在标准基准测试上持续优于 BR 基线,对于个体训练信号稀疏但与常见标签的共现具有信息量的尾部标签尤为明显。


Q4 [进阶] 分类器链如何建模标签依赖?其失效模式是什么?

Q: 请描述分类器链方法,并解释它在何处、为何会失效。

A: 分类器链(Classifier Chains,CC,Read et al., 2009)通过将 $L$ 个标签按固定顺序 $y_1, y_2, \ldots, y_L$ 排列,在 Binary Relevance 基础上扩展:训练一条二值分类器链,其中每个分类器 $f_j$ 同时接收原始图像特征 $x$ 和所有前驱分类器的预测:

$$f_j\left(x, \hat{y}_1, \ldots, \hat{y}_{j-1}\right) \to \hat{y}_j$$

这对应于将联合标签分布分解为:

$$P(y_1, \ldots, y_L \mid x) = \prod_{j=1}^{L} P\left(y_j \mid x, y_1, \ldots, y_{j-1}\right)$$

相比 BR 的关键优势在于,下游分类器可以利用标签相关性:若 $\hat{y}_1 = 1$(检测到狗),分类器 $f_2$ 可利用该信号提升"牵引绳"的预测概率。理论上,在完美排序和完美前驱预测的情况下,CC 能恢复精确的联合分布。

第一个失效模式是顺序敏感性。链编码了由标签排序决定的有向依赖结构,但真实的依赖图是无向且未知的。排在前面的标签无法从排在后面的标签中获益,无论实际相关性如何。随机排序会丢失重要的依赖关系,而最优排序需要关于依赖结构的先验知识。

第二个失效模式是误差传播。推理时,$\hat{y}_1, \ldots, \hat{y}_{j-1}$ 是模型预测值而非真实标签。早期的错误预测会沿链级联放大。一次早期误分类可能使后续所有决策失效。分类器链集成(ECC)通过训练多条不同随机排序的链并以多数投票聚合来缓解两个失效模式,但代价是 $k$ 条链需要 $k \times L$ 个分类器。


Q5 [进阶] 标签共现图如何构建?会出现哪些质量问题?

Q: 如何从训练数据构建标签共现图?可能出现什么问题?

A: 标签共现图 $G = (V, E)$ 每个节点对应一个标签,边权重编码标签间的统计依赖关系。最常见的构建方式使用条件概率:对于标签 $i$ 和 $j$,从训练集计数中计算 $A_{ij} = P(y_j = 1 \mid y_i = 1)$:

$$A_{ij} = \frac{\text{count}(y_i = 1 \wedge y_j = 1)}{\text{count}(y_i = 1)}$$

这产生非对称矩阵(共现通常不对称)。为获得对称图,矩阵通常对称化为 $A_\text{sym} = (A + A^\top) / 2$,再对称归一化为 $\hat{A} = D^{-1/2} A_\text{sym} D^{-1/2}$ 用于 GCN。

实践中会出现若干质量问题。首先是数据集偏差导致的虚假相关:若数据集在特定语境下收集(例如 COCO 中大多数室外图像恰好也包含人),图编码的是这些收集偏差而非真实的语义关系。在此图上训练的 GCN 会学习在检测到室外场景时预测"人”,无论图像中是否真的有人。

其次是稀有标签的小样本噪声:正例很少的标签产生不可靠的条件概率估计,仅出现在 50 张图像中的标签会产生高方差统计量。

第三是密度与稀疏的权衡:低阈值边的稠密图引入了嘈杂的远程连接;过于稀疏的图遗漏了有用的相关性。ML-GCN 通过稀疏化阈值 $\tau$(低于 $\tau$ 的项归零)和重加权方案来解决这一问题,后者对接近 1.0 的极高条件概率降权,防止出现一个标签总是预测另一个的平凡捷径。


架构与建模

Q6 [基础] ML-GCN 如何使用图卷积网络学习标签感知分类器?

Q: ML-GCN 的核心思想是什么?它如何改进标准 sigmoid-BCE 基线?

A: ML-GCN(Multi-Label Graph Convolutional Network,Chen et al., CVPR 2019)将分类头重新定义为图条件输出,而非固定线性投影。核心洞见在于:每个标签的分类器(权重向量 $w_j \in \mathbb{R}^d$)应当受到频繁与其共现的标签分类器的影响。ML-GCN 通过在共现图上传播标签嵌入的 GCN 联合计算所有 $L$ 个分类器向量。

具体而言,流程包含两条分支。图像分支运行 CNN 骨干网络(ResNet-101)生成全局特征向量 $f(x) \in \mathbb{R}^d$。标签分支将每个标签初始化为 $d_0$ 维词向量(来自标签名的 GloVe 嵌入),堆叠为 $X^{(0)} \in \mathbb{R}^{L \times d_0}$,并应用两层 GCN:

$$X^{(l+1)} = \text{ReLU}\left(\hat{A} X^{(l)} W^{(l)}\right)$$

GCN 输出 $W = X^{(2)} \in \mathbb{R}^{L \times d}$ 作为分类头。最终多标签分数为 $z = W \cdot f(x) \in \mathbb{R}^L$,以 BCE 训练。由于 $W$ 由 GCN 在共现图上传播产生,每个 $w_j$ 不仅编码标签 $j$ 自身的语义,还编码其图邻居的语义——频繁共现的标签共享判别信息。ML-GCN 发表时在 MS-COCO 上(使用 ResNet-101)实现了 83.0 mAP 的最优结果,确立了基于 GCN 的标签相关性建模为标准技术。


Q7 [基础] Q2L(Query2Label)如何将 Transformer 解码应用于多标签图像预测?

Q: Q2L 的设计是什么?为何它对多标签图像分类有效?

A: Query2Label(Q2L,Liu et al., NeurIPS 2021)将多标签分类视为集合预测问题,并使用受 DETR 启发的 Transformer 解码器架构求解。核心思想简洁:使用 $L$ 个可学习标签嵌入作为查询,通过交叉注意力解码器关注图像的空间特征词元。每个查询负责预测一个标签,其输出表示经过二值分类器(线性层 + sigmoid)。

解码器的交叉注意力机制允许每个标签查询选择性地关注与其标签最相关的图像区域。例如,对应"自行车"的查询会强烈关注车轮和车架区域,而"人"则关注躯体区域。标签共现被隐式建模:所有查询都关注相同的图像特征,因此共现标签的查询倾向于激活重叠的图像区域,无需显式共现图即可创造标签间一致性。

实践中,Q2L 使用 ViT 或 Swin Transformer 作为图像编码器,生成图像块词元序列。标签查询是随机初始化并端到端训练的可学习参数。标签查询之间的自注意力层(在完整的编解码器堆栈中)允许显式的标签间通信。Q2L 使用 TResNet-L 骨干 + CutMix + ASL 训练,在 MS-COCO 上实现了 91.3 mAP,大幅超越 ML-GCN,且无需手工构建共现图。


Q8 [进阶] ML-Decoder 如何将多标签分类扩展到大型标签空间?

Q: 相比 Q2L,ML-Decoder 解决了什么问题?其分组解码器设计如何工作?

A: Q2L 的交叉注意力解码器每层复杂度为 $O(L \cdot N)$,其中 $L$ 为标签数,$N$ 为图像词元数。对于 $L = 80$(MS-COCO),这是可行的。但对于 $L = 1{,}000$ 或 $L = 10{,}000$(常见于产品分类或网络规模标注),注意力计算代价过于昂贵,$L$ 个查询参数本身也消耗大量内存。

ML-Decoder(Ridnik et al., 2021)通过分组解码策略解决这一问题。ML-Decoder 不为每个标签设置一个查询,而是将 $L$ 个标签分为 $G$ 组($G \ll L$,例如对 $L = 80{,}000$ 取 $G = 111$)。每组内,单个共享查询向量通过交叉注意力关注图像词元,生成组表示。该组表示再通过轻量级的每标签 MLP 头拆分为 $L/G$ 个每标签表示。交叉注意力总复杂度从 $O(L \cdot N)$ 降至 $O(G \cdot N)$,使大型标签空间分类成为可能。

ML-Decoder 的关键设计选择是"查询即嵌入":组查询不随机初始化,而是从分配到每组的标签的平均词向量初始化,提供了加速收敛的语义先验。ML-Decoder 在 MS-COCO 上达到与 Q2L 相当的性能,同时在大型标签空间下推理速度约快 $10$ 倍,已成为生产规模多标签系统的首选分类头。


Q9 [进阶] CLIP 如何实现零样本和少样本多标签图像分类?

Q: CLIP 如何在没有多标签微调的情况下应用于多标签分类?

A: CLIP(Radford et al., 2021)通过在 4 亿图像-文本对上以对比目标训练,学习联合图像-文本嵌入空间:最大化对齐图像-文本对之间的余弦相似度,最小化不对齐对之间的相似度。结果是一个视觉概念与其文本描述在几何上接近的嵌入空间。

对于零样本多标签分类,每个标签 $j$ 被转换为文本提示(如"a photo of a {label}")并由文本编码器嵌入为 $t_j \in \mathbb{R}^{d}$。查询图像由图像编码器嵌入为 $v \in \mathbb{R}^{d}$。每标签相关性分数计算为余弦相似度 $s_j = v^\top t_j / (\lVert v \rVert \lVert t_j \rVert)$,再应用阈值生成二值预测。无需任何多标签训练数据。

主要局限是阈值校准:CLIP 分数不是经过校准的概率,最优阈值因标签、数据集和提示模板而异。实践中,即使在零样本场景下也会使用少量标注的留出集来调整每标签阈值。对于少样本自适应,提示调优(CoCoOp、ProDA)在保持 CLIP 权重冻结的同时学习软提示词元,以少至每标签 1–16 个标注样本就能实现强劲性能。基于 CLIP 的方法在 MS-COCO 和 NUS-WIDE 上无需任何标准多标签训练即展示了竞争性的多标签 mAP,在标注数据稀缺或标签集频繁变化的场景下尤为具有吸引力。


Q10 [进阶] 自监督预训练(MAE、DINO)如何使多标签图像分类受益?

Q: 为何 MAE 和 DINO 预训练的 ViT 相比有监督 ImageNet 预训练能更好地迁移到多标签任务?

A: 有监督 ImageNet 预训练优化骨干网络以预测每张图像的单一主导类别标签,这驱使模型聚焦于最具判别性的区域——最可靠区分一个类别与所有其他类别的区域。对于"拉布拉多"图像,特征图在狗的头部和身体上强烈激活,很大程度上忽略了背景物体。这种单类偏差对分类无害,但对多标签任务有问题——所有共现对象都必须被定位和识别。

MAE(He et al., 2022)遮盖 $75\%$ 的图像块,训练 ViT 编码器仅从 $25\%$ 可见图像块通过轻量级解码器重建完整图像。为了重建被遮盖的区域,编码器必须构建整个可见场景的丰富上下文表示——它不能只聚焦于单个物体。这产生了编码多个共现对象、场景上下文和精细纹理的整体特征。实验表明,相同规模的 MAE 预训练 ViT-L/H 特征在 MS-COCO 上的多标签召回率显著高于有监督 ViT。

DINO(Caron et al., 2021)通过自蒸馏训练 ViT:训练学生网络在同一图像的不同增强视图上匹配动量更新的教师网络输出,全程无需标签。DINO 特征的一个显著涌现属性是 [CLS] 词元的自注意力图能够在无任何分割监督的情况下清晰地将前景对象从背景中分离出来。这些注意力图直接迁移到多标签定位,使 DINO 预训练模型通过简单线性探针即可实现强劲的多标签性能。微调策略:解冻最后 2–4 个 Transformer 块和分类头;冻结早期块可防止将整体表示过拟合到多标签训练集。


损失函数与训练

Q11 [基础] 为何多标签分类使用二值交叉熵作为损失函数?其核心局限是什么?

Q: BCE 用于多标签训练的理由是什么?它的不足在哪里?

A: 多标签分类在结构上是 $L$ 个共享特征提取器的独立二值分类问题。对于每个标签 $j$ 和样本 $i$,模型输出 $\hat{p}_{ij} = \sigma(z_{ij}) \in (0,1)$——标签 $j$ 存在的估计概率。若将这 $L$ 个二值变量视为在给定图像时条件独立,联合负对数似然可分解为每标签二值交叉熵之和:

$$\mathcal{L}_\text{BCE} = -\frac{1}{NL} \sum_{i=1}^N \sum_{j=1}^L \left[ y_{ij} \log \hat{p}_{ij} + (1 - y_{ij}) \log(1 - \hat{p}_{ij}) \right]$$

这与 softmax 交叉熵不同——后者在互斥类别上强制归一化概率分布。Sigmoid + BCE 不施加归一化约束,允许任意子集的输出同时为高——这正是多标签预测所要求的。BCE 实现简单、处处可微,且随 $L$ 和 $N$ 线性缩放。

核心局限是条件独立假设。现实中标签是相关的:“冲浪板"和"海洋"频繁共现;“领带"和"人"几乎总是同时出现。通过独立对待标签,BCE 浪费了标签共现模式中的潜在信息,可能产生不一致的预测(例如"冲浪板"预测为正,但"人"预测为负,尽管冲浪图像中几乎总有人)。这一局限催生了 Q6–Q7 中涵盖的图正则化损失、成对排序损失和结构化标签建模方法。


Q12 [基础] 什么是 Focal Loss?它如何解决多标签设定中的类别不平衡问题?

Q: Focal Loss 如何工作?为何它对多标签图像分类有益?

A: Focal Loss 由 Lin et al.(2017)为单阶段目标检测引入,用于解决极端的前景-背景不平衡问题。同样的挑战在多标签分类中存在:对于每个训练样本,$L$ 个标签中大多数是负例(例如,一张 MS-COCO 图像有 3 个正标签和 77 个负标签)。在标准 BCE 下,简单负例——模型以高置信度正确预测为负的真实负例——贡献了总损失和梯度的大部分,淹没了来自难正例和难负例的信号。

Focal Loss 通过添加调制因子 $(1 - p_t)^\gamma$ 修改 BCE,其中 $p_t$ 是模型对正确标签的估计概率:

$$\mathcal{L}_\text{FL}(p_t) = -(1 - p_t)^\gamma \log p_t$$

$\gamma = 0$ 时退化为标准 BCE。对于简单样本(高 $p_t$),因子 $(1 - p_t)^\gamma$ 趋近于 0,降低其贡献。对于难样本(低 $p_t$),因子保持接近 1,保留其梯度。聚焦参数 $\gamma$(通常 $\gamma \in \lbrace 0.5, 1, 2 \rbrace$)控制对简单样本的降权力度。

在多标签设定中,Focal Loss 对每个标签独立应用,替换每个标签的 BCE 项。与普通 BCE 相比,它一致地提升了尾部标签的召回率,因为尾部标签的正例通常是 Focal Loss 保留的难样本,而主导 BCE 梯度的简单负例被抑制。然而,Focal Loss 对正例和负例对称地应用相同的 $\gamma$——这一局限由非对称损失(Q14)加以解决。


Q13 [基础] RandAugment、Mixup 和 CutMix 如何应用于多标签图像分类?

Q: 多标签图像分类中最有效的数据增强策略有哪些?它们如何与多标签目标交互?

A: 数据增强对训练多标签图像分类器至关重要,在使用缺少 CNN 归纳偏置的 ViT 骨干时尤为如此。三种最有影响力的策略是 RandAugment、Mixup 和 CutMix。

RandAugment(Cubuk et al., 2020)随机应用 $N$ 个增强操作(从包括旋转、颜色抖动、锐化、剪切、平移等的集合中选择),每个操作使用相同的强度 $M$。对于多标签分类,RandAugment 在图像层面应用,标签向量保持不变——增强图像与原始图像配对相同的真实标签。RandAugment 无需手动设计增强策略即可扩展有效训练分布。

Mixup 通过线性插值两张图像及其标签向量创建合成训练样本:$\tilde{x} = \lambda x_i + (1-\lambda)x_j$,$\tilde{y} = \lambda y_i + (1-\lambda)y_j$,其中 $\lambda \sim \text{Beta}(\alpha, \alpha)$。在多标签设定中,混合后的标签向量自然是软多标签目标——模型被训练预测两个标签集的混合,从而正则化输出概率并改善校准。

CutMix 用图像 $x_j$ 的对应区域替换图像 $x_i$ 的一个矩形区域。标签按粘贴区域的面积比例混合:$\tilde{y} = \lambda y_i + (1-\lambda) y_j$,其中 $\lambda$ 是来自 $x_i$ 的像素比例。CutMix 特别适合多标签分类,因为不同的物体确实可以出现在不同的空间区域——这种混合在语义上是合理的。DeiT 表明,结合 RandAugment + Mixup + CutMix + 重复增强可以仅在 ImageNet-1k 上有竞争力地训练 ViT 规模的模型;同样的组合是多标签 ViT 训练的标准做法。


Q14 [进阶] 什么是非对称损失?它解决了 Focal Loss 之外的什么具体问题?

Q: 非对称损失(ASL)如何改进多标签分类中的 Focal Loss?

A: 非对称损失(Asymmetric Loss,ASL,Ben-Baruch et al., ICCV 2021)识别了多标签训练中 BCE 和 Focal Loss 等对称损失未能利用的结构性不对称。在典型的多标签图像中(如 MS-COCO,$L=80$),每个样本约有 3 个正标签和 77 个负标签。负例远多于正例。更重要的是,两类样本具有根本不同的特性:大多数负例是简单的(模型以高置信度正确预测低概率),而许多正例是难的(尾部标签、被遮挡的物体)。

Focal Loss 的单一 $\gamma$ 参数对正例和负例应用相同的降权方案。设置较高的 $\gamma$ 以抑制简单负例,同时也会降低简单正例的权重——但简单正例不是问题,应当保留。设置较低的 $\gamma$ 以保留正例,则无法抑制大量简单负例。

ASL 通过两项修改解决这一问题。首先是非对称聚焦:对正例应用 $\gamma^+ \approx 0$(不降权,保留所有正例梯度),对负例应用 $\gamma^- > \gamma^+$(积极抑制简单负例):

$$\mathcal{L}_\text{ASL} = -(1-p)^{\gamma^+} \log p \quad (y=1)$$$$\mathcal{L}_\text{ASL} = -p_m^{\gamma^-} \log(1-p_m) \quad (y=0)$$

其次是概率移位:将负例概率替换为 $p_m = \max(p - m, 0)$,其中 $m \geq 0$ 是移位边距。任何 $p < m$ 的负例预测贡献零损失——这些被丢弃为极其简单的样本。这相当于自动的在线难负例挖掘。典型超参数:$\gamma^+ = 0$,$\gamma^- = 4$,$m = 0.05$。ASL 在 MS-COCO 和 OpenImages 上比 BCE 和 Focal Loss 持续提升 $1$–$3$ mAP 点,已成为最先进多标签图像分类的事实标准损失函数。


Q15 [进阶] 当标注不完整时,如何训练多标签分类器?

Q: 多标签训练中处理缺失或部分标注的策略有哪些?

A: 实践中,多标签标注经常不完整。大规模数据集通常只对部分图像进行详尽标注,或通过众包标注,标注者遗漏了一些相关标签。若将所有未观测标签朴素地视为 BCE 中的负例,模型会收到错误的监督:真实正例被当作负例惩罚,系统性地抑制召回率。

最简单有效的策略是仅观测损失:仅对每个样本中显式标注过的标签计算 BCE,忽略其余(未观测的)标签。这需要为每个样本存储标注掩码 $m_{ij} \in \{0,1\}$,指示标签 $j$ 是否对样本 $i$ 进行了标注:

$$\mathcal{L}_\text{obs} = -\frac{1}{\sum m_{ij}} \sum_{i,j} m_{ij} \left[ y_{ij} \log \hat{p}_{ij} + (1-y_{ij}) \log(1-\hat{p}_{ij}) \right]$$

带迭代精化的伪标签利用模型自身的置信预测来填充缺失标注。经过初始训练阶段后,对未观测标签预测 $\hat{p}_{ij} > \tau_\text{high}$ 或 $\hat{p}_{ij} < \tau_\text{low}$ 的样本,在后续训练轮次中作为软伪标签处理。该过程迭代至收敛。

SARB(Semantic-Aware Representation Blending,Pu et al., 2022)通过混合相似训练图像的特征构建伪完整标签向量:对于标注不完整的图像 $x_i$,找到语义相似的图像 $x_j$,并将其观测到的标签迁移到 $x_i$ 的缺失位置。这利用了相似图像共享相似标签集的假设。

标签平滑对负标签权重施加小的减量 $\epsilon$:将未观测标签的 $y_{ij} = 0$ 替换为 $y_{ij} = \epsilon$。这减少了过度自信的惩罚,无需标注掩码,代价是梯度略微嘈杂。实践中,当标注掩码可用时,仅观测损失结合伪标签是最有原则的方法。


评估与实践考量

Q16 [基础] 多标签图像分类的关键评估指标有哪些?各在何时适用?

Q: 评估多标签分类器使用什么指标?每个指标衡量什么?

A: 多标签评估指标分为两类:分类指标(需要阈值将概率转换为二值预测)和排序指标(基于原始分数的排序)。

最常见的分类指标有:Hamming Loss($\text{HL} = \frac{1}{NL} \sum_{i,j} \mathbf{1}[\hat{y}_{ij} \neq y_{ij}]$),衡量错误标签预测的比例——但在标签空间稀疏时具有误导性,因为总预测"负例"也能接近零 HL;子集准确率,最严格的指标,要求完整标签集完全匹配;以及样本 F1 / 宏 F1 / 微 F1,在标签或样本层面平衡精确率和召回率(见 Q17)。

多标签图像分类中最主流的排序指标是 mAP(平均精度均值):对每个标签计算所有置信度阈值下精确率-召回率曲线的面积,再在所有 $L$ 个标签上平均。mAP 是 MS-COCO 和 PASCAL VOC 上的标准基准指标。它同时奖励正确的标签预测和将正例的置信分数置于负例之上,无需选择阈值。

Precision@$k$ 衡量预测的前 $k$ 个标签中真正相关标签的比例——适合系统必须恰好返回 $k$ 个标签的场景(如图像标注 API)。NDCG@$k$ 额外奖励正确标签在前 $k$ 个列表中出现得越靠前。对于大多数 MS-COCO 上的计算机视觉研究,mAP 是主要指标;对于推荐和检索系统,P@$k$ 和 NDCG@$k$ 与部署更相关。


Q17 [基础] 多标签评估中微平均和宏平均 F1 有何区别?

Q: 对于多标签图像分类器,何时应报告微 F1,何时报告宏 F1?

A: 两个指标都将每标签统计聚合为单一 F1 分数,但对标签的加权方式不同。

微 F1 在计算 F1 之前跨所有标签聚合所有真正例、假正例和假负例:

$$F1_\text{micro} = \frac{2 \sum_j \text{TP}_j}{2 \sum_j \text{TP}_j + \sum_j \text{FP}_j + \sum_j \text{FN}_j}$$

由于频繁标签贡献更多计数,微 F1 由头部类别主导。一个在"人”(MS-COCO 中最常见的标签)上召回率高,而在"牙刷”(稀有)上完全失败的模型,仍会报告高微 F1。

宏 F1 独立计算每个标签 $j$ 的 $F1_j$,然后等权平均:

$$F1_\text{macro} = \frac{1}{L} \sum_{j=1}^L F1_j$$

每个标签无论频率如何都等权贡献。模型必须在稀有尾部标签上表现良好才能获得高宏 F1——使其成为所有标签在业务上同等重要时的正确指标。

实践准则:对于标签重要性与频率成正比的系统(如社交媒体图像标注,常见标签驱动大多数查询),微 F1 有代表性。对于等重要性标签的系统(如医学图像标注,稀有病理与常见病理同样重要),宏 F1 不可或缺。多标签计算机视觉研究中的标准做法是与 mAP 一起同时报告两者,因为微宏差距揭示了模型处理稀有标签长尾的能力。


Q18 [进阶] 如何在多标签系统中选择和调整分类阈值?

Q: 将多标签分数转换为二值预测的主要策略有哪些?哪种最有效?

A: 多标签分数 $\hat{p}_j \in (0,1)$ 必须经过阈值化才能产生二值预测 $\hat{y}_j = \mathbf{1}[\hat{p}_j \geq \tau_j]$。$\tau_j$ 的选择显著影响精确率-召回率权衡以及下游 F1 / Hamming Loss。

固定全局阈值($\tau = 0.5$) 假设所有标签都经过良好校准且共享相同的最优操作点。实践中,不同标签有不同的基础率和分数分布——“人”(常见,高基础率)的 sigmoid 分数往往高于"牙刷"(稀有,低基础率),因此单一阈值对稀有标签同时偏高,对常见标签偏低。该方法仅作为快速基线可以接受。

每标签阈值调整 在留出验证集上为每个标签单独调整 $\tau_j$ 以最大化标签级 F1:

$$\tau_j^* = \arg\max_\tau F1_j(\tau) \text{ on validation set}$$

这是最可靠有效的策略,是竞争性多标签系统的标准做法。代价是 $L$ 个额外超参数——在实践中,通过步长为 0.05 在 $[0.05, 0.95]$ 上的网格搜索是可管理的。

训练后温度缩放 在验证集上拟合单一标量 $T$(温度)以最小化 NLL:logit 变为 $z_j / T$,使所有标签分数同时变得更极端或更平缓。这整体改善了校准,但无法纠正每标签的误校准。

实例级 top-$k$ 预测每张图像分数最高的 $k$ 个标签,其中 $k$ 设为数据集的平均标签基数。这不依赖阈值,在需要固定数量预测时很有用。

在基准测试设定中,每标签阈值调整比固定 $\tau = 0.5$ 持续提升 2–5 个 F1 点,是 MS-COCO 多标签基准的标准评估协议。


Q19 [进阶] 什么是极端多标签分类?哪些方法应对其挑战?

Q: 极端多标签分类与标准多标签学习有何不同?最先进的方法有哪些?

A: 极端多标签分类(Extreme Multi-Label Classification,XML)是指标签空间大小 $L$ 从数千到数百万的设定($L \in [10^3, 10^6]$),而每个样本只有少量相关标签(通常 5–10 个)。应用场景包括亚马逊产品分类($L \approx 670{,}000$)、维基百科文章标注($L \approx 500{,}000$)和广告关键词预测($L > 10^6$)。

XML 面临标准多标签学习中不存在的挑战。可扩展性:$L = 10^6$、$d = 256$ 的稠密 $L \times d$ 分类头需要 256 GB 内存——不可行。尾部标签学习:大多数标签的正训练样本不足 10 个,可靠学习极为困难。评估:精确集合预测不可行;P@$k$ 和 NDCG@$k$($k \in \lbrace 1, 3, 5 \rbrace$)是通用指标。

代表性方法:基于树的方法(FastXML、Parabel、PECOS)将标签空间划分为分层二叉聚类树。推理时,模型仅遍历 $O(\log L)$ 个分支,对数百万标签实现亚毫秒预测。两阶段神经方法(AttentionXML、X-Transformer、LightXML)使用快速第一阶段检索模型(通常是浅层 TF-IDF 或轻量神经模型)生成约 200–500 个候选标签的候选列表,再用更昂贵的 Transformer 在候选列表内重排序。负例采样:对所有 $L$ 个负例训练每个样本不可行;难负例从检索阶段生成的候选列表中采样,实现高效训练。XML 基准测试(EUR-Lex-4K、Amazon-670K、Wiki-500K)是标准评估数据集。


Q20 [进阶] 在标注数据有限的情况下,如何构建强大的多标签图像分类器?

Q: 当标注数据有限时,训练多标签图像分类器的原则性方法是什么?

A: 数据有限时,最重要的决策依次是:骨干网络选择、损失函数,以及利用标签语义。

第一步——从自监督预训练骨干网络开始。 在低数据场景下,MAE 或 DINO 预训练的 ViT-B/16 显著优于有监督 ImageNet 预训练,因为自监督特征编码多个共现对象而非单一判别区域(Q10)。若零样本或跨模态迁移相关,使用 CLIP。冻结前 8–10 个 Transformer 块,仅微调最后 2 个块和分类头,以避免有限梯度信号破坏预训练表示。

第二步——使用非对称损失。 数据有限时,正负不平衡更为严峻(每个尾部标签的样本更少)。ASL 的概率移位和非对称聚焦将梯度集中在难的信息样本上,无需显式类别重加权即可改善尾部标签召回率(Q14)。

第三步——应用激进的数据增强。 同时使用 RandAugment + CutMix。CutMix 在有限数据场景下尤为有价值:它通过组合两张现有图像合成新的训练图像,在保留混合多标签目标语义合理性的同时将有效多样性翻倍(Q13)。

第四步——利用标签文本语义。 从标签名的 CLIP 文本嵌入(每个标签 $j$ 对应 $t_j \in \mathbb{R}^d$)初始化分类头,而非随机初始化。这为训练样本极少的标签提供了语义上有意义的先验,加速收敛并改善稀有标签的泛化。

第五步——处理不完整标注。 在有限数据场景下,标注往往是部分的。应用仅观测损失,避免对可能为正但未标注的样本进行惩罚;初始模型训练完成后,使用伪标签填充缺失标签(Q15)。

第六步——在小型验证集上调整每标签阈值。 即使只有 100–200 张验证图像,每标签阈值调整也能比默认 $\tau = 0.5$ 稳定提升 2–5 个 F1 点。


快速参考

# 难度 主题 章节
Q1 基础 多标签 vs 多类别 vs 多任务 基础知识
Q2 基础 CNN + sigmoid + BCE 基线 基础知识
Q3 基础 Binary Relevance 与标签相关性 基础知识
Q4 进阶 分类器链 基础知识
Q5 进阶 标签共现图 基础知识
Q6 基础 ML-GCN 架构与建模
Q7 基础 Q2L / Query2Label 架构与建模
Q8 进阶 ML-Decoder 架构与建模
Q9 进阶 CLIP 用于多标签 架构与建模
Q10 进阶 MAE / DINO 预训练 架构与建模
Q11 基础 二值交叉熵 损失函数与训练
Q12 基础 Focal Loss 损失函数与训练
Q13 基础 RandAugment、Mixup、CutMix 损失函数与训练
Q14 进阶 非对称损失(ASL) 损失函数与训练
Q15 进阶 缺失 / 部分标注 损失函数与训练
Q16 基础 评估指标概览 评估与实践考量
Q17 基础 微 F1 vs 宏 F1 评估与实践考量
Q18 进阶 阈值选择 评估与实践考量
Q19 进阶 极端多标签分类 评估与实践考量
Q20 进阶 有限数据下构建分类器 评估与实践考量

参考文献