Paper Reading: DBC-Forest: Deep forest with binning confidence screening

发布时间 2023-10-08 01:32:25作者: 乌漆WhiteMoon


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

论文概况 详细
标题 《DBC-Forest: Deep forest with binning confidence screening》
作者 Pengfei Ma,Youxi Wu, Yan Li, Lei Guo, Zhao Li
发表期刊 Neurocomputing
发表年份 2022
期刊等级 中科院 SCI 期刊分区(2022年12月最新升级版)2 区,CCF-C
论文代码 文中未公开

作者单位:

  • School of Artificial Intelligence, Hebei University of Technology, Tianjing, China
  • Hebei Key Laboratory of Big Data Computing, Tianjing, China
  • School of Economics and Management, Hebei University of Technology, Tianjing, China
  • State Key Laboratory of Reliability and Intelligence of Electrical Equipment, Hebei University of Technology, Tianjing, China
  • Alibaba-ZJU Joint Research Institute of Frontier Technologies, Zhejiang University, Hangzhou, China

研究动机

深度神经网络的缺点之一是有太多的超参数,它们都需要为不同的数据集手动设置,而且在某些应用中基于决策树的模型能取得比 DNN 更好的结果。针对 DNN 的问题,一种基于决策树的新型深度学习模型 gcForest 被提出,它利用了 DNN 的表示学习和模型内特征转换,同时它是一个不需要反向传播训练的不可微模型。实验结果表明,单元数量多、森林数量多的模型可以获得更好的精度,然而由于时间成本的限制,应用的实际效果并不理想。为了解决这些问题,一种名为 gcForestcs 的模型被提出,该模型具有可信度筛选机制。但是 gcForestcs 比原始模型更依赖于超参数的调整,这意味着当使用默认超参数时,它在许多数据集上的预测精度比原始模型差,其原因是在高置信度区域中存在一组精度较低的实例。

文章贡献

针对 gcForestcs 受高置信度但精度较低的实例影响的问题,本文提出了一种深度分箱置信度筛选森林算法。该算法采用基于置信度对实例进行分箱,这种方式可以检测到分区错误的实例,将更精确的实例传递到后续层次。实验结果表明,对于相同的训练超参数,DBC-Forest 模型比 gcForest 和 gcforests 具有更好的精度,且训练速度更快。

本文方法

gcForestcs 的置信度

置信度值由每个层次的 k 折交叉验证生成,为当前层次中某实例的输出类向量的最大值,用于在 gcForestcs 中将数据划分为两个子集。例如在三类分类问题中,每个级别都输出一个三维估计的类向量,如果估计的类向量是 (0.6,0.3,0.1) 则置信度是 0.6。如果某个级别有 n 个实例,则可以得到一组置信率 (M1,M2,……Mn)。第 i 个实例 Mi 的置信度 Pi 由如下公式表示,其中 Mixc 是Mi 的第 c 个类别的概率。

gcForestcs 将计算所有训练实例的置信度,并根据它们的值按降序对它们进行排序,由如下公式所示。

gcForestcs 中阈值的计算分为对实例进行排序和生成阈值两个步骤,通过对置信度 (P1,P2,…,Pn) 进行排序,可以得到实例 (A1,A2,…,An) 的排序。阈值 Gate 的产生需要计算区域实例的精度,区域是根据实例的置信度排名获得的,区域的上界是置信度最高的实例 A1,下界可取值于 A1~An。gcForestcs 计算区域的精度,并将其与目标精度 TA 进行比较,如以下公式所示。

其中 Lk 是实例集 (A1,A2,…,Ak) 的精度,如下公式所示。

如果 Lk 的精度不低于 TA,则以 Ak 的置信度 Pk 作为阈值,将所有实例划分为高置信度区域 Y 和低置信度区域 n 两个子集。计算阈值并处理实例划分的方法如下图所示。

分区错误的实例

gcforests 产生阈值的方法存在实例分区错误的问题,下图展示了一个例子,该例子中有 12 个实例。按照置信度按降序排序,其中实例 1、2、3、4、7 和 10 的预测是正确的,其他的都是错误的。假设目标精度 TA 为 70%,由于高置信度区域的准确率为 5/7=71.4%,gcForestcs 选择实例 7 的置信度作为阈值,但是这么做会导致实例 5、6 被错误地分配到高置信度区域。显然如果能够避免实例的错误分区,预测性能将得到提高。

DBC-Forest 模型

DBC-Forest 的总体框架与 gcForestcs 相同,它们的不同之处在于它们采用不同的策略来产生阈值,主要有五个步骤。
第一步和 gcforests 相同,对置信度进行排序得到 (A1,A2,…,An)。第二步是将实例 (A1,A2,…,An) 分入一组箱子 b1,b2,……,bk,该过程如下图所示。

其中置信度最高的实例 A1,A2,…,An/k 放到 b1中,接下来的 n/k 个放到 b2 中。以此类推,直到将最后 n/k 个置信度最低的实例放入 bk 中,该过程由如下公式描述。

第三步是计算每个 bin 的 n/k 个实例的精度,利用如下公式计算出每个 bin 的平均精度 Pbt(1≤t≤k),其中 p(Ai) 和 yi 分别是实例 Ai 的预测和标记。

第四步是根据 TA 生成阈值 Gate,将每个 bin 的精度与 TA 进行比较,找到精度低于 TA 的 bin。若 Pb(j+1)≤TA,则阈值 Gate 为实例 A(b×j/k) 的置信度。第五步是根据 Gate 得到最终结果,如果实例的置信度大于 Gate,DBC-Forest 将使用当前层次的预测作为最终结果 Fi,否则实例将进入下一层。第五步如下公式所示,其中 pre(Ai) 为 Ai 的预测值。

如下图所示是一个使用本文方法的例子,其中有 12 个样本并设置 TA=70%,当每个箱的大小为 2 时共有 6 个箱。可见 bin3 的精度为零小于 TA,因此选择 bin2 中样本 4 的置信度作为 DBC-Forest 中的阈值。DBC-Forest 相比 gcForestcs 可以准确地生成阈值,避免误分区实例。

实验结果

数据集和实验设置

数据集方面共使用了 10 个数据集,相关信息如下表所示。其中 MNIST、DIGITS、EMNIST、FASHION-MNIST 是需要多粒度扫描的高维数据集,ADULT、BANK、YEAST、LETTER、IMDB 是低维数据集不需要多粒度扫描,IRIS 是一个实例较少的数据集,用于在每个实例置信度为1时验证所提出模型的测试性能。评价指标方面使用 accuracy,验证方式为五折交叉验证。

对比算法共有 6 个,分别是 XGBoost、LightGBM、mgrForest、AWDF、gcForest、gcForestcs。超参数设置方面 gcForest、gcForestcs 和 DBC-Forest 使用了相同的超参数,每个层次都有一个随机森林和一个完全随机森林,两个森林中的决策树数量为 50。对于 gcForestcs 和 DBC-Forest,将 TA 设置为将错误率降低 1/2,并且在 DBC-Forest 中使用的 bin 大小为 100。对于多粒度扫描,三种窗口大小为 [d/4]、[d/6]、[d/8],决策树的数量为 30。

bin 大小的影响

使用从 10 到 140 不等的 bin 大小来验证 DBC-Forest 的性能,使用 FASHION-MNIST、BANK、LETTER 和 IMDB 数据集。实验结果如下图所示,可见模型性能随桶的大小而变化,但波动较小。

对比实验

对比实验的结果如下表所示,可见基于 gcforest 的模型在大多数数据集上实现了最佳性能,DBC-Forest 的分桶置信度筛选方法提高了模型的准确性。

进行 t 检验的结果如下表所示,可见在大多数数据集上 DBC-Forest 与其他模型有显著不同。

进一步的 Friedman 检验结果下图所示,可见 DBC-Forest 明显优于大多数模型。

阈值比较

为了显示 DBC-Forest 和 gcforests 模型阈值的差异,此处选择实例较多的 MNIST、BANK 以及实例较少的 IRIS 数据集进行实验。只展示了第一层次的比较,结果分别如以下三张图所示。可以看出 gcForestcs 对一些实例的筛选精度较低,DBC-Forest 的阈值更合理。在 IRIS 数据集上两个阈值是相同的,两个模型的训练误差都为 0,没有错分区的实例。

鲁棒性

鲁棒性主要是验证模型在不同的参数下总能取得优异的性能,主要比较 gcForest、gcforests、DBC-Forest 三种模型,下面三张表显示了使用和不使用多粒度扫描时默认参数和常规参数的比较。
可见 DBC-Forest 模型比 gcForest 和 gcforests 都具有更高的精度,且都具有更好的鲁棒性。分箱置信度筛选比 gcForestcs 用于阈值选择的方法更准确,并且实例筛选要求更高。三种模型在低维数据集上的精度差别不大,DBC-Forest 略好于其他模型。

置信度筛选的效果

此处比较了每个级别上的剩余实例和准确性,使用 MNIST、EMNIST、FASHION-MNIST、IMDB 进行实验,结果如下图所示。可见尽管 DBC-Forest 比 gcforests 保留了更多的实例,但在大多数数据集上 DBC-Forest 在每个级别上的精度都高于 gcforests。gcforests 的剩余实例曲线急剧下降,DBC-Forest 的剩余实例曲线平稳下降,这是因为 DBC-Forest 可以找到分区错误的实例。

训练时间

训练时间主要对比了 gcForest、gcforests 和 DBC-Forest,在 9 个数据集上的准确率和训练时间如下表所示。可见 DBC-Forest 所需的训练时间比 gcForest 和 gcForest 更短,但准确度相同或略高。

优点和创新点

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

  1. 针对 gcforests 在阈值未调整的情况下性能较差的问题,本文设计了一种自适应的方法,能准确在每个层次中确定阈值;
  2. 使用分桶的方式细化了对实例分析的粒度,能合理地利用桶的顺序确定分割点;
  3. 实验内容丰富,用了很多验证方法和图表,描述很清晰。