9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

article/2025/9/25 18:35:06

2019-11-25 11:01:57

选自arXiv

机器之心编译参与:路雪、一鸣

近日,南大周志华等人首次提出使用深度森林方法解决多标签学习任务。该方法在 9 个基准数据集、6 个多标签度量指标上实现了最优性能。

在多标签学习中,每个实例都有多个标签,多标签学习的关键任务就是利用标签关联(label correlation)构建模型。深度神经网络方法通常将特征和标签信息共同嵌入到潜在空间,以充分利用标签关联。但是,这些方法的成功高度依赖对模型深度的精确选择。
深度森林是近期基于树模型集成的深度学习框架,该方法不依赖反向传播。最近,来自南京大学周志华团队的研究者发布了一篇论文,他们认为深度森林的优势非常适合解决多标签问题,并设计了多标签深度森林方法(Multi-Label Deep Forest,MLDF)。
论文链接:https://arxiv.org/abs/1911.06557
MLDF 使用了两种机制:度量感知特征重用(measure-aware feature reuse)和度量感知层增长(measure-aware layer growth)。度量感知特征重用机制根据置信度重用前一层中的优秀表征,度量感知层增长机制确保 MLDF 根据性能度量指标逐渐增加模型复杂度。
MLDF 可以同时处理两个难题:限制模型复杂度从而缓解过拟合问题;根据用户需求优化性能度量指标,因为多标签评估存在多个不同的度量指标。实验证明,该方法不仅在多个基准数据集、六个性能度量指标上击败了其他对比方法,还具备多标签学习中的标签关联发现和其他属性。
多标签学习该怎么解
在多标签学习中,每个示例同时与多个标签相关联,多标签学习的任务即为新实例预测关联标签集。多标签学习任务在现实世界中比比皆是,因此该研究领域也吸引了越来越多的注意力。
二元关联(Binary Relevance)方法将多标签学习问题转换为每个标签的独立二分类问题,这一直接方法在实践中广为应用。尽管它充分利用传统高性能单标签分类器,但是当标签空间很大时,该方法会带来极大的计算成本。
此外,此类方法忽视了一点:一个标签的信息可能有助于学习其他相关标签。这限制了模型的预测性能。因此,越来越多旨在探索和利用标签关联的多标签学习方法应运而生。
与传统的多标签方法不同,深度神经网络模型通常试图学习新的特征空间,并在其上部署一个多标签分类器。但是,深度神经网络通常需要巨量训练数据,因而不适合小规模数据集的情况。
周志华教授和冯霁博士意识到,深度学习的本质在于逐层处理、模型内特征变换和足够的模型复杂度,进而提出了深度森林。深度森林是基于决策树构建的深度集成模型,其训练过程不使用反向传播。集成了级联结构的深度森林能够做到类似于深度神经模型的表征学习,而深度森林的训练过程要简单得多,因为它具备较少的超参数。尽管深度森林在传统分类任务中很有用,但此前研究人员并未注意到将其应用于多标签学习的潜力。
用深度森林,解决多标签学习任务
深度森林的成功主要依赖于以集成方式进行逐层特征变换,而多标签学习的重点就是利用标签关联。受此启发,周志华团队提出了 MLDF 方法。简单来说,MLDF 方法使用不同的多标签树方法作为深度森林的构造块,通过逐层表征学习利用标签关联。
由于多标签学习的评估过程要比传统分类任务更加复杂,因此研究人员提出了大量性能度量指标 [Schapire and Singer, 2000]。研究人员还注意到,不同用户的需求不同,算法在不同度量指标上的性能往往不同 [Wu and Zhou, 2017]。
为了实现特定度量指标上的更好性能,周志华团队提出了两种机制:度量感知特征重用和度量感知层增长。前者受到置信度筛选(confidence screening)[Pang et al., 2018] 的启发,重新利用前一层中的优秀表征。后者则根据不同的性能度量指标控制模型复杂度。
这篇论文的主要贡献包括:

  • 首次提出将深度森林应用于多标签学习任务;
  • 实验证明,MLDF 方法在 9 个基准数据集、6 个多标签度量指标上实现了最优性能。


多标签深度森林(MLDF)
下图 1 展示了 MLDF 的框架。MLDF 的每一层集成了不同的多标签森林(上方的黑色森林和下方的蓝色森林)。

9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

 

图 1:MLDF 框架图示。每一层集成了两种不同的森林(上方的黑色森林和下方的蓝色森林)。
从 layer_t 中,我们可以得到表征 H^t。度量感知特征重用机制将接收表征 H^t,并在不同指标性能的指引下,重新利用 layer_t−1 学得的表征 G^t−1 来更新表征 H_t。然后,将新的表征 G^t(蓝色)和原始输入特征(红色)级联在一起,输入到下一层。
在 MLDF 中,每一层都是森林的集成。为了提升该集成的性能,研究者考虑了不同的树增长方法,以鼓励多样性,这对集成方法的成功至关重要。
MLDF 用 RF-PCT [Kocev et al., 2013] 作为森林模块,并对森林应用两种不同的树节点生成方法:一种方法是 RF-PCT,它考虑每个特征的所有可能分割点;另一种方法是 ERF-PCT,它随机考虑一个分割点。当然,其他多标签树方法也可以嵌入每个层中,如 RFML-C4.5。
度量感知特征重用
PCT 的分割标准不与性能度量指标直接相关,当指标不同时,每一层生成的表征 H^t 是相同的。因此,研究者提出了度量感知特征重用机制,在不同度量指标的指引下改进表征。
度量感知特征重用的关键想法是:如果当前层的置信度低于训练中设定的阈值,则在当前层上部分地重用前一层中的优秀表征,从而提升度量指标性能。
算法 1 总结了度量感知特征重用的过程。由于基于标签的指标和基于实例的指标存在很大的差异,我们需要分别进行处理。具体来说,基于标签的指标在 H^t 的每一列上计算置信度,基于实例的指标基于每一行计算置信度。计算完成后,当置信度 α^t 低于阈值,则固定前一层的表征 G^t−1,并利用它更新 G^t。

9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

 


度量感知层增长
尽管度量感知特征重用能够在不同度量指标的指引下高效改进表征,但该机制无法影响层增长,不能降低训练过程中出现过拟合的风险。为了减少过拟合、控制模型复杂度,研究者提出了度量感知层增长机制。
MLDF 是逐层构建的。算法 3 总结了 MLDF 训练过程中度量感知层增长的步骤:

9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

 


实验
研究者在不同的多标签分类基准数据集上测试了 MLDF 的性能。其目标是验证 MLDF 方法可在不同度量指标上实现最优性能,前述两种度量感知机制是必需的。此外,研究者通过不同角度的详细实验证明了 MLDF 的优点。
研究者选择了 9 个来自不同应用领域、具备不同规模的多标签分类基准数据集。下表展示了这些数据集的基本信息:

9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

 

表 3:数据集描述:领域(Domain)、样本数(m)、特征数(d)和标签数(l)。
在这 9 个基准数据集上,MLDF 在所有评估度量指标上均取得优秀的结果:98.46% 的情况下性能位列第一,1.54% 的情况下位列第二。根据 6 个度量指标的对比结果,MLDF 夺得第一的比例分别是 100.00%、96.29%、96.29%、100.00%、98.15%、100.00%。总之,MLDF 在大量基准数据集、多个评估指标上取得了最优性能,超过其他公认方法,这验证了 MLDF 方法的有效性。

9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

 

9大数据集6大度量指标完胜,周志华等提出深度森林处理多标签学习

 

表 4:每个方法在 9 个数据集上的预测性能(均值 ± 标准差)。•(◦) 表示 MLDF 明显优于(逊于)其他对比方法,评估标准是成对 t 检验,显著性水平为 95%。↓ (↑) 表示值越小(大),性能越好。


http://chatgpt.dhexx.cn/article/sLDJnwB6.shtml

相关文章

深度森林DF21、deep forest、gcForest

文章目录 DF21的优势DF21的可以用来干什么对标算法[^1] DF21的优势 DF21是周志华团队于2021年2月1日推出的深度森林开源库,其优势在于超参少、训练效率高1。 DF21的可以用来干什么 DF21可以用来进行分类和回归2。 对标算法2 搜狐自媒体网文:周志华团…

如何评价周志华深度森林模型

这篇文章背后的思路实际上是这样的: DNN(或者说 MLP)其实就是堆起来的广义线性模型(比如 logistic,但也有其他激活函数)。它能够自动发现特征与标签之间的非线性关系,当决策边界非线性&#xf…

gcForest分布式深度森林及其在套现欺诈自动检测中的应用

分布式深度森林及其在套现欺诈自动检测中的应用 摘要 互联网企业每天面对处理大规模机器学习应用的请求,需要一个能够处理超大数据任务的分布式系统.深度森林是最近提出的一个利用树作为组件深度学习框架,在各种领域取得不错的结果.然而并没有在超大规模数据任务上测试.在这项…

【论文解读】关于深度森林的一点理解

2017年年初,南京大学周志华老师上传了一篇名为:Deep Forest:Towards An Alternative to Deep Neural Networks的论文,一石激起千层浪,各大媒体纷纷讨论着,这似乎意味着机器学习的天色要变,实则不…

随机森林算法的扩展-深度森林(deep forest)

深度学习最大的贡献,个人认为就是表征学习(representation learning),通过端到端的训练,发现更好的features,而后面用于分类(或其他任务)的输出function,往往也只是普通的…

多标签学习与深度森林学习笔记

周志华老师团队Multi-Label Learning with Deep Forest (MLDF)报道很多,各大机器学习平台也都就这篇文章的亮点给出了分析。近日在准备组会报告时较为详细地拜读了一下,也由此简单了解了一下多标签学习的相关内容。 正如论文作者所述,MLDF的…

论文阅读:Deep forest/深度森林/gcForest

最近组会汇报了这篇文章,简单把思想梳理下来了,对了搜索深度森林的时候可能会看到Deep Forest: Towards an Alternative to Deep Neural Networks,这两篇文章的内容基本上是一致的,只在叙述方面有一些很小的不同。 下面是我做的p…

【冰糖Python】深度森林 DeepForest

此文为记录DeepForest的简单使用 原文《Deep Forest: Towards an Alternative to Deep Neural Networks》 “A key advantage of deep forest is its adaptive model complexity depending on the dataset. The default setting on hyper-parameters enables it to perform r…

使用深度森林(Deep Forest)进行分类-Python

一、什么是深度森林? 传统DNN的不足: 1、需要大量的数据集来训练; 2、DNN的模型太复杂; 3、DNN有着太多的超参数 gcForest的优势: 1、更容易训练; 2、性能更佳; 3、效率高且可扩展、支持…

深度森林浅析

深度森林 深度学习最大的贡献是表征学习(representation learning),通过端到端的训练,发现更好的features,而后面用于分类(或其他任务)的输出function,往往也只是普通的softmax&…

深度森林原理及实现

目录 背景 级联森林 多粒度扫描 代码 总结 背景 深度森林(Deep Forest)是周志华教授和冯霁博士在2017年2月28日发表的论文《Deep Forest: Towards An Alternative to Deep Neural Networks》中提出来的一种新的可以与深度神经网络相媲美的基于树的模型,其结构…

论文阅读:深度森林

论文地址:https://arxiv.org/pdf/1702.08835.pdf 相关代码:https://github.com/kingfengji/gcForest 深度森林是南大周志华老师前两年提出的一种基于随机森林的深度学习模型。 当前的深度学习模型大多基于深度学习神经网络(DNN)…

Deep Forest(gcforest)通俗易懂理解

DeepForest(gcforest)深度森林介绍 1.背景介绍 当前的深度学习模型主要建立在神经网络上,即可以通过反向传播训练的多层参数化可微分非线性模块,周志华老师希望探索深度学习模型的新模式,探索不可微模块构建深度模型的可能性。从而提出了一…

【深度学习】Deep Forest:gcForest算法理解

一、相关理论 本篇博文主要介绍南京大学周志华教授在2017年提出的一种深度森林结构——gcForest(多粒度级联森林)。近年来,深度神经网络在图像和声音处理领域取得了很大的进展。关于深度神经网络,我们可以把它简单的理解为多层非…

从深度学习到深度森林方法(Python)

作者 |泳鱼 来源 |算法进阶 一、深度森林的介绍 目前深度神经网络(DNN)做得好的几乎都是涉及图像视频(CV)、自然语言处理(NLP)等的任务,都是典型的数值建模任务(在表格数据tabular …

深度森林(gcforest)原理讲解以及代码实现

GcForest原理 gcforest采用Cascade结构,也就是多层级结构,每层由四个随机森林组成,两个随机森林和两个极端森林,每个极端森林包含1000(超参数)个完全随机树,每个森林都会对的数据进行训练,每个森林都输出结…

有关 -fPIC 选项的编译问题

嵌入式 Linux 上基于 makefile 的编译,执行编译出现如下错误: error: test/fake_blemgr_test.o: requires unsupported dynamic reloc R_ARM_REL32; recompile with -fPIC 这个问题涉及到生成位置无关代码的机制,在我这里的情况是&#xff0…

-fpic 与-fPIC的区别

-fpic 与-fPIC的区别 前言 在编译动态库的时候,我们应该需要使用-fpic 或-fPIC参数。如下所示: 然后,使用gcc或g 命令生成动态库 pic 与PIC的异同 相同点:都是为了在动态库中生成位置无关的代码。通过全局偏移表(GOT&…

在字符串中删除指定的特定字符

使用C语言,编写一个尽可能高效的函数,删除字符串中特定字符。 思路:要求尽可能高效,定义一个256的int数组,将需要删除的字符ASCII作为数组下标,要删除的置1,注意点:处理后的字符串要…

实现一个删除字符串中的指定字符的简单函数

做出此函数只需将函数分步运行 第一步&#xff1a;确定函数接口和定义变量 因为是要删除字符串中的指定函数&#xff0c;所以要定义出字符串以及字符&#xff0c;即str[]和c。函数接口为void delchar&#xff08;char*str&#xff0c;char c); #include<stdio.h> int …