Paper Reading: Improving Deep Forest by Screening


Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。

论文概况 详细
标题 《Improving Deep Forest by Screening》
作者 Ming Pang, Kai Ming Ting, Peng Zhao, Zhi-Hua Zhou
发表期刊 IEEE Transactions on Knowledge and Data Engineering
发表年份 2022
期刊等级 中科院 SCI 期刊分区(2022年12月最新升级版)2 区、CCF-A
论文代码 文中未公开

作者单位:

  • National Key Laboratory for Novel Software Technology, Nanjing University, Nanjing 210023, China.

研究动机

尽管更大的模型可能会提供更好的准确性,但 gcForest 没有尝试过(在每个森林中)有更多 RF 和 DT 的更大模型,这是因为 DF 受到高时间成本和内存需求的限制。造成这种限制的主要原因主要有两个方面:

  1. gcForest 通过级联的所有级别传递所有实例并使用所有特征进行学习,导致随着级别数量的增加,时间复杂度线性增加;
  2. 多粒度扫描通常将一个(原始)实例转换为数百甚至数千个新实例,这显著增加了训练实例的数量,并且还产生了高维输入。

文章贡献

深度森林具有较高的时间成本和内存需求,这限制了它在大规模数据集上的使用。本文在 DF 框架中引入了两种筛选机制。第一种是置信筛选,它将级联的每个级别的实例分类为易于预测和难预测的两个子集。如果实例很容易预测,则其最终预测将在当前级别生成,当实例很难预测时才需要进人下一个级别。第二,特征选择将级联的每个级别的原始特征分类为两个子集,一个用于当前级别的学习,另一个为以下级别保留。在每个级别上,只选择对提高预测性能的特征进行学习。特征筛选不仅提高了效率,还平衡了对增强特征和原始特征的关注。在多粒度扫描过程中,对生成的实例进行二次采样可以减少训练实例的数量和变换特征向量的维数。然而有监督的特征转换仍然需要很高的时间成本,此处用完全 RF 变换的无监督版本来代替有监督的多粒度扫描过程,这只具有线性时间复杂性。实验表明,本文方法实现了极好的预测性能,时间成本和内存需求降低了一到两个数量级。

本文方法

为了处理大量样本,本文提出了一种结合可变模型复杂度的置信度筛选机制,设计了一种特征筛选机制处理高维特征。对于多粒度扫描过程,提出了一种无监督的完全随机森林变换作为 gcForests 的替代方法。为了研究每个元素的影响,本文还使用 gcForestcs 和 gcForestfs 进行比较,其中 gcForestcs 具有置信度筛选机制,gcForestfs 具有特征筛选机制。

置信度筛选

只有当一个实例确定需要更高级联的学习时才会进入下一个级别否则就使用当前级别的模型进行预测。选择准则基于预测置信度,即一个实例估计的类向量的最大值。例如在一个3类分类问题中,一个实例的估计类向量为 [0.7,0.2,0.1],则其预测置信度为 0.7。如图所示,在每个级别上具有高预测置信度(Y)的实例直接使用当前级别的模型进行预测,只有预测置信度(N)低的实例才会被传递到下一个级联级别。gcForestcs 的级联森林结构有两个主要的区别,首先在每个级别上都有门来将实例分为易于预测的和难分的两个子集。其次随着级别的增加,将对难分实例使用更复杂的森林(例如,每个森林中有更多的树)。
image
具有置信度筛选的 DF 可以由三元组 (h, f, k) 定义,h 和的定义与原生版本一致,kT 作为筛选函数。如果用 f 预测 x,则筛选因子 kt(x)=1,否则筛选因子 kt(x)=0。
image
基于预测置信度和置信阈值 nt 定义 t 级的筛选因子 kt(·) 由如下公式给出,在 t 级如果一个实例的预测置信度大于阈值 nt,则在当前级产生其最终预测,否则它需要经过下一个级别。
image
具有置信筛选的 DF 由三元组 (h, f, k) 和最终预测函数 g 的定义如下:
image
关键问题是如何在每个级别设置置信阈值 nt,原则上可以定义一个优化框架,在最小化要传递到下一级别的实例的预期数量和最大化可以在下一级别纠正的实例的期望数量之间进行权衡。不幸的是,找到这样一个最佳方案相当困难。作为替代,本文根据交叉验证的错误率自动确定 t 级的预测置信阈值 nt。设超参数 a∈(0,1) 是 et 的分数。所有训练实例按照预测置信度降序排序,其中 ci 为 xi 的预测置信度。然后将 n 使用如下公式进行设置:
搜狗高速浏览器截图20260415204207
因为随着级别的增加,剩余的实例变得越来越难以预测,随着剩余实例数量的减少,线性增加每个森林中的树的数量。当最需要为难以预测的实例生成准确的模型时,模型的复杂性只会随着级别的增加而增加。
gcForestcs 从多粒度扫描中生成的转换实例集中随机采样,在每一层生成新的转换后的特征,并将最近三层的特征连接起来,对剩余的更少、更难的实例进行分类。
image
gcForestcs 的伪代码如下所示:
image

特征筛选

在级联结构中,级联的每一层都将原始特征与前一层的增强特征连接起来。gcForests 在每个级别上都使用特征选择,选择能提高级联性能的重要的特征来减少计算量。在级别 t{1,...T} 的预测函数 f 定义如下公式所示,其中 zt 是原始特征 x 的子集。
image
在每个层次上,特征选择的一种直接的。方法是根据森林的重要性排序,选择最重要的特征,称为 FS-rank。在每个级别上,FS-rank 重新计算特征的重要性,并选择重要性大于阈值的特征,其中 Ij 为特征 Xi 的重要性。
image
对于单个决策树 DTn,特征 Xi 的重要性由如下公式定义。其中 L 是树的内部节点数,在节点 l∈{1,2....L} 特征 Xvl 用于分裂该内部节点,u 为分裂所对应的纯度估计提升量。
image
对于森林,特征 Xj 的重要性简单地在树上平均,分类树用基尼指数来衡量,回归树用平方误差来衡量。
image
但 FS-rank 有两个问题:首先,确定阈值 t 需要很高的计算成本。对于 r 的每个候选值,需要删除重要性较小的特征,并改装分类器以评估其性能。其次,贪婪选择策略没有考虑特征的冗余性,选择冗余特征意味着丢弃重要性较小的信息特征可能会降低预测性能。本文同时考虑了特征冗余和非线性特征重要性,提出了种特征筛选方法 FSreg,如下公式所示。其中 max 是 {I1, I2,..., Id} 的最大值,入≥0。目标函数的目的是最小化平方损失与加权 L1 正则化。通过最小角度回归来解决这个优化问题,它的计算复杂度与单个最小二乘法相同。FS-reg 在所有解中选取 ||β||0 小于给定的选择规模预算的最优解。
image
每一级别自动选择具有非零系数的特征,FSreg 生成的类向量也可以用作增强特征。第一层的特征重要性通过分类树计算,学习目标是标签。在以下每一层中,特征重要性通过基于该层剩余样本的回归树计算,学习目标是上一层的残差。

完全随机森林转换

为了解决多粒度扫描开销很大的问题,将有监督的多粒度扫描过程替换为无监督的多粒度扫描,称为 CRF 变换。它将 CRF 与随机子空间的一种变体结合起来进行特征变换,具有线性的时间复杂度和低内存需求。因为 CRT 是通过随机选择个属性,然后在所选属性的最大值和最小值之间随机选择一个分割值来生成节点分区的。所以它的生长不需要标签,标签只用于标记叶节点进行分类。如下图所示滑动窗口扫描原始特征,每个实例 xi 可以生成 r 个新实例 {zli,z2i,...,zri}。基于这些新实例的数据集子抽样,构建了一个完全随机树。
image
在获得 u 个叶节点 {l1,2,....lu} 之后,使用变换函数 q(zj,Ik) 来获得每对实例 zj 和叶节点 Ik 的变换特征 Dj, keR。因此对于每个原始实例 x,可以获得实值矩阵 D∈Rrxu。本文使用叶节点 k 中实例的平均值,即 ck 来表示 k,变换函数 q(zj, lk)=||zj-ck||2。考虑到维度为 rxu 的变换特征向量可能太长,本文将变换后的实例 {z1,z2,...,zr} 分组为 rg 组 {g1,g2....grg},其中每个组包含 r/rg 连续的实例。因此可以得到更小的变换特征 D'∈Rrgxu,其中 Dik=∑||zi-ck||2。
下图为 gcForests 的总体程序:首先 gcForests 将特征筛选与置信筛选相结合,其中 FSreg 在每个级别选择特征子集。其次,为了处理特征关系无监督的 CRF 变换代替了有监督的多粒度扫描。
image

实验结果

本文的重点是 DF 的高效学习,目标是验证 gcForests 能够以更少的内存和时间成本实现与 gcForest 相当或更好的预测精度。它包含三个主要元素:置信度筛选、特征选择和 CRF 转换。为了分析每个元素的效果,本文基于置信度筛选和特征筛选设计 gcForestcs、gcForestfs 进行比较,实验分为有多粒度扫描和没有多粒度扫描两类。

数据集和实验设置

本文数据集的情况如下表所示。采用 acc 作为分类性能度量,Logloss也被用作衡量标准。如果对一个实例,有置信度筛选和没有置信度筛选的 DF 具有相同的预测标签,前者将其预测概率替换为后者的预测概率,这样 logloss 可以更好地衡量置信度筛选的影响。使用训练时间、测试时间和内存使用情况来评估效率。
image

参数设置方面,在所有实验中的所有算法都使用相同的级联结构。每一层由 v 个RF和 v 个 CRF 组成,有多粒度扫描时 v=4,没有时 v=1,每个森林的类向量经三次交叉验证生成。gcForest 的每个森林有 500 棵树,gcForestcs、gcForests 的第一级每个森林都有 w 棵树,并且树的数量随着后续级别实例数量的减少而线性增加,两种方法的 w=100。在没有多粒扫描的实验中 w=20,50,100 以考察它们对 gcForestcs 的影响。gcForestfs 的设置都与 gcForests 相同,但它不使用置信度筛选。若当前级别不能提高这些 DF 的前一级的准确性时,级联级别的数量停止增加。gcForestcs 根据式 (5)自动确定每个级别的预测置信阈值 n。若实验采用多粒度扫描,则超参数 a=1/20,否则根据第一级训练精度设置 a。如果 ε>90% 则 a=1/10,否则 a=1/3。 gcForests 将特征选择数量设置为 d/2,每层最多选择一半的原始特征。特征的重要性由额外的 RF 计算,每层有 100 棵树。通过 3 倍交叉验证产生类向量,其他设置与 gcForestcs 相同。多粒度扫描中,对于 d 个原始特征,gcForest 使用d/16、d/8、d/4 三种窗口大小,gcForestcs 和 gcForests 使用 d/16。对于 CRF 变换,CRF 的最大深度设置为 6,包含多于 1/4 的实例或少于 1/400 的叶节点被丢弃,因为它们不具有代表性。序列数据集的组大小设置为 3,图像数据集组大小设置为 4。通过使用 CRF 变换和多重训练扫描,gcForests 以进一步提高复杂图像数据集的预测性能。通过同时使用 CRF 变换和多粒度扫描(限制树深度以提高效率,gcForests 可以进一步提高对复杂图像数据集的预测性能。对于 gcForestcs 和 gcForests 来说,只使用一个窗口大小就能用更少的时间成本和内存需求实现较好的性能。

有多粒度扫描的实验

多粒度扫描实验使用了 sEMG、MNIST 和 CIFAR10,因为它们在原始特征之间具有空间或顺序关系,而其他数据集没有。结果显示 gcForests 通过减少一到两个数量级的内存和更快的运行时来提高预测精度。值得注意的是,在 sEMG 上 acc 提高了 6% 以上,运行时加速超过 500 倍。在 CIFAR10 数据集上,精度提高了 4% 以上,运行时加速提高了 20 倍以上。通过使用子抽样多粒度扫描 gcForestcs 还将内存使用降低了个数量级,然而监督特征转换仍然需要较高的时间成本。通过用 CRF 转换代替监督过程 gcForests 大大加快了深度森林的训练和测试,同时预测精度也得到了提高。如果 gcForest 在每层都采用子采样多粒度扫描来代替多粒度扫描,acc 会有很大的下降,例如在 sEMG 上达到 67.78%,比原来的 gcForest 和 gcForestcs 要低很多,该结果进步验证了置信度筛选的有效性。
image
结果验证了 3 个主要组件的8种组合的性能者有助于提高性能,实验分为有 CRF 和没有 CRF 的实验。CRF 的实验中所有方法都使用变换后的特征作为输入,没有 CRF 的实验中所有方法都使用原始特征作为输入。CRF 转换使 gcForest 和 gcForestcs 在 sEMG 和 CIFAR10 上使用监督程序实现了比原始 gcForest 和 gcForestcs 更好的 acc,在 MNIST 上准确率略有下降。结果表明 CRF 变换不仅提高了效率,还可以提高特征重表示的过程。
image

无多粒度扫描的实验

这部分对原始特征之间不具有空间或顺序关系的数据集进行了没有多粒度扫描的实验,对 DF 方法进行了比较,并在补充部分与其他经典方法进行了比较。由于不同的应用程序和不同的设备对运行时和内存使用有不同的要求,我们需要调整每个森林的树的数量来满足这些要求,拥有更多树的大型模型往往能提供更好的性能。实验结果显示,gcForestcs(100) 在五个数据集上都达到了与 gcForest 相当或更好的 acc 和 logloss,内存使用和运行时都大大减少。在 EPS20K、IMDB 和 EPSILON 上,运行时加速约为 6 倍,内容改善率约为 LETTER 和 ADULT 的 5 倍、验证了置信度筛选的有效性。与 gcForest 相比,gcForestfs 的效率有了很大的提高。特别是在高维数据集 EPS20K、IMDB 和 EPSILONE,gcForestfs 以较小数量级的时间成本获得了更好的预测性能,验证了特征筛选的有效性。通过结合置信度筛选和特征筛选,gcForests 进一步提高了预测性能,同时减少内存使用和时间成本。在 EPS20K 和 EPSILON 上,精度提高了约 3%,而测试时间加速了约 30 倍。gcForestcs 在这三个设置上有足够的准确性,最大差距约为 1%(EPS20K 除外),相比之下 gcForest 的精度差距很大。例如 gcForest(500)在 EPS20K、MNIST 和 EPSILON 上分别达到 83.17%、89.20% 和 86.45%, gcForest(20) 的准确率分别为 73.79%、88.21% 和 82.63%, 与 gcForestcs 的准确率差距要大得多。因此,当运行时和内存使用受到限制时,可变模型复杂性结合置信度筛选会比 gcForest 获得更健壮的性能。这些结果验证了变模型复杂性策略的有效性,也与理论分析相一致。
搜狗高速浏览器截图20260416004336

置信度筛选的影响

这部分的目标是研究置信度筛选的影响,举的样例是基于 IMDB 和 MNIST 的一次测试运行的结果,在其他数据集上的结果是相似的。如下图(a)所示,gcForestcs 在第一层分别筛选 64% 和 84% 的 IMDB 和 MNIST 测试实例,在最后一个级别中分别只有 28% 和 7% 通过了所有级别。相反所有测试实例都通过 gcForest 中的所有级别传递,导致了内存和运行时方面的开销。图(b)是 IMDB 上gcForestcs 和 gcForest 的每个级别上的测试准确生 gcForest 和 gcForestcs 都有 8 个级别。在第一层 gcForest 比 gcForestcs 稍微好点,因为 gcForest 使用更复杂的森林和更多的树。在第一层之后,gcForestcs 得到了更好的精度。
搜狗高速浏览器截图20260416005011
进一步论证置信度筛选对分类结果的影响,如下图 (a) 所示,筛选实例的数量随着级别的增加而增加。如果实例的预测具有较高的置信度,则会对其进行筛选,因此筛选实例的准确度约为 95% 远高于总体准确度(<90%)。gcForestcs 和 gcForest 对筛选实例的预测相同只有两个例外。剩余实例的结果如图 (b) 所示,蓝线描绘了在当前级别正确分类的剩余实例的数量,橙色线表示在下一级别正确分类的实例数量。当剩余实例从当前级传递到下一级时,其准确性会提高,在最后一级 gcForestcs 的正确分类实例数比 gcForest 多 80 个。结果表明置信度筛选鼓励每个级别的模型更好地关注难以预测的实例,从而直接导致更好的预测。
搜狗高速浏览器截图20260416005102

特征筛选的影响

这一部分分析了特征选择的影响,示例是基于 EPS20K 和 IMDB 的一次测试运行的结果,其他数据集的结果类似。在每个级别上,gcPorests 选择一个能够带来最大改进的特性子集。如图所示,在 EPSzoK(IMDB) 上,gcForests 在每个级别上筛选了大约 90%(70%) 的特性,而 gcForest 和 gcForestcs 使用了所有的特性。特征筛选为 DF 带来两个主要好处,首先由于使用的特征较少持征筛选提高了深林的 DF。其次特征选择强调了变换特征的重要性,特别是当原始特征向量比变换特征向量长得多时,如图所示通过使用更少的原始特征,它可以平衡原始特征和转换后的特征,这可以更好地利用级联结构并导致更好的预测。
搜狗高速浏览器截图20260416005417
可以采用不同的策略进行特征选择,在三个高维数据集上进行实验比较三种特征先择策略。分别是 FS、FSsparse 和 FS-reg。FS-reg 进行特征筛选它同时考虑了特征冗余和非线性寺征的重要性。如下表所示,具有 FS-reg 的 gcForests 实现了最佳的预测性能。
image

优点和创新点

个人认为,本文有如下一些优点和创新点可供参考学习:

  1. 通过将具有高预测置信度的实例直接重定向到最终级别进行预测,从而大大减少了需要处理的实例的数量。
  2. 筛选出许多非信息性特征,只有信息性特征用于每个级别的学习。
  3. 提出了一种无监督的特征变换过程来代替有监督的多粒度扫描过程。我随着森林深处层数的增加,模型复杂度从低到高变化。
posted @ 2026-04-16 00:56  乌漆WhiteMoon  阅读(9)  评论(0)    收藏  举报