多标签分类概述

前言

本文介绍了多标签分类的基本概念和评估指标,总结了可用于提高多标签分类模型性能的多种方法:建模技巧、监督特征选择方法、无监督特征选择方法和上采样方法。

本文来自公众号CV技术指南的********技术总结系列********

关注公众号CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

什么是多标签分类?

众所周知,二元分类将给定的输入分为两类,1 或 0。多标签或多目标分类从给定的输入中同时预测多个二元目标。例如,我们的模型可以预测给定的图片是狗还是猫,以及它的皮毛是长还是短。

目标在多标签分类中是互斥的,这意味着一个输入可以属于多个类。

本文将总结一些可以提高多标签分类模型性能的常用方法。

评分指标

大多数用于二元分类的指标可以通过计算每列的指标,然后取分数的平均值来应用于多标签。我们可以使用的一个指标是对数损失或二元交叉熵。对于考虑类不平衡的更好度量,我们可以使用 ROC-AUC。

图片

ROC-AUC曲线

建模技巧

在我们开始对特征进行花哨的技巧之前,分享一些关于设计适合多标签分类情况的模型的技巧。

扫描二维码关注公众号,回复: 13167005 查看本文章

对于大多数非神经网络模型,唯一的选择是为每个目标训练一个分类器,然后结合预测。库 scikit-learn 提供了一个简单的包装类来执行此操作,即 OneVsRestClassifier。

尽管这将使分类器能够执行多标签任务,但这不是应该采用的方法。这有几个缺点。首先,训练时间会比较长,至于每个目标,我们都在训练一个新的模型。其次,模型无法学习不同标签之间的关系或标签相关性。

第二个问题可以通过执行两阶段训练来解决,我们将目标的预测与原始特征相结合作为第二阶段训练的输入数据。这样做的缺点是训练时间将大大增加,因为现在您必须训练两倍于以前的模型数量。

神经网络更适合这种情况。标签的数量是网络中输出神经元的数量。现在我们可以将任何二元分类损失应用于模型,模型将同时输出所有目标。这解决了非神经网络模型的两个问题,因为我们只需要训练一个模型,网络可以通过输出神经元学习不同的标签相关性。

图片

监督特征选择方法

在开始任何特征工程或选择之前,特征应该被规范化或标准化。使用 Quantile Transformer 将减少数据的偏度,使特征服从正态分布。另一种选择是标准化特征,这可以通过从数据中减去均值,然后除以标准差来完成。与 Quantile Transformer 相比,这完成了类似的工作,两者都旨在将数据转换为更鲁棒,但 Quantile Transformer 的计算成本更高。

在这种情况下使用监督特征选择方法有点棘手,因为大多数算法都是为单个目标设计的。为了解决这个问题,我们可以将多标签情况转换为多类问题。一种流行的方法是 LabelPowerset,其中将训练数据的每个唯一标签组合转换为一个类。scikit-multilearn 库为此提供了工具。

工具链接:

scikit.ml/api/skmulti…

图片

变换后,我们可以使用信息增益和chi2等方法来选择特征。虽然这种方法是可行的,但当我们有数百甚至数千种不同的独特标签组合时,事情就会变得棘手,这就是无监督特征选择方法可能更好的地方。

无监督特征选择方法

在无监督方法中,我们不需要考虑多标签情况的性质,因为无监督方法不依赖于标签。

这里有一些算法:

  • 主成分分析或其他类似的因子分析方法。这会从特征中删除冗余信息并为模型提取有用的见解。对此的一个重要说明是,确保在应用 PCA 之前先对数据进行标准化,因为这样每个特征对分析的贡献都是相同的。使用 PCA 的另一个技巧是,我们可以将这些减少的特征连接回原始数据,作为模型可以选择使用的额外信息,而不是采用算法提供的缩减特征。

  • 方差阈值。这是一种降低特征维度的简单而有效的方法。我们丢弃具有低方差或分布的特征。这可以通过找到更好的选择阈值来优化,一般使用0.5作为初始阈值。

  • 聚类。我们可以通过从输入数据创建集群来创建新特征,然后将相应的集群分配给输入数据的每一行作为新的特征列。

图片

KMeans Clustering

上采样方法

当我们的分类数据高度不平衡时使用上采样方法,然后我们为稀有类生成人工样本,以便模型专注于稀有类。为了在多标签情况下创建新样本,我们可以使用 MLSMOTE 或多标签合成少数过采样技术。

MLSMOTE项目地址:

github.com/niteshsukhw…

这是对原始 SMOTE 方法的修改。在这种情况下,在我们为少数类生成数据并分配相应的少数标签后,我们还通过计算每个标签在相邻数据点中出现的次数来生成与数据点相关联的其他标签,并取具有 超过一半的数据点计数的频率。

作者:Andy Wang

编译:CV技术指南

原文链接:

andy-wang.medium.com/bags-of-tri…

欢迎关注公众号 CV技术指南 ,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读。

在公众号中回复关键字 “技术总结”可获取公众号原创技术总结文章的汇总pdf。

​​

其它文章

增量学习深度神经网络

深度学习中的人体姿态估计概述

小目标检测常用方法总结

CV技术指南--精华文章汇总分类

归一化方法总结 | 欠拟合与过拟合技术总结

NMS总结 | 损失函数技术总结

注意力机制技术总结 | 特征金字塔技术总结

池化技术总结 | 数据增强方法总结

论文创新的常见思路总结 | GPU多卡并行训练总结

CNN结构演变总结(一)经典模型

CNN结构演变总结(二)轻量化模型

CNN结构演变总结(三)设计原则

CNN可视化技术总结(一)特征图可视化

CNN可视化技术总结(二)卷积核可视化

CNN可视化技术总结(三)类可视化

CNN可视化技术总结(四)可视化工具与项目

计算机视觉中的图像标注工具总结

各种 Optimizer 梯度下降优化算法回顾和总结

汇总 | 国内外经典开源数据集

Softmax 函数和它的误解

提高机器学习模型性能的常用策略

资源分享 | SAHI:超大图片中对小目标检测的切片辅助超推理库

计算机视觉中的图像标注工具总结

Batch Size对神经网络训练的影响

神经网络超参数的调参方法总结

使用 Ray 将 PyTorch 模型加载速度提高 340 倍

计算机视觉中的图像标注工具总结

2021年小目标检测最新研究综述

经典论文系列--胶囊网络:新的深度学习网络

计算机视觉专业术语总结(一)构建计算机视觉的知识体系

计算机视觉中的小样本学习综述

猜你喜欢

转载自juejin.im/post/7018162143459541028