Paper Reading: WCDForest: a weighted cascade deep forest model toward the classifcation tasks
Paper Reading 是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限,可能有理解不到位的地方。具体的细节还需要以原文的内容为准,博客中的图表若未另外说明则均来自原文。
论文概况 | 详细 |
---|---|
标题 | 《WCDForest: a weighted cascade deep forest model toward the classifcation tasks》 |
作者 | Jiande Huang, Ping Chen, Lijuan Lu, Yuhui Deng, Qiang Zou |
发表期刊 | Applied Intelligence |
发表年份 | 2023 |
期刊等级 | 中科院 SCI 期刊分区(2022年12月最新升级版)2 区,CCF-C |
论文代码 | https://github.com/dscLabJNU/WCDForest |
作者单位:
- Department of Computer Science, Jinan University, Guangzhou 510632, China
- School of Business Administration, South China University of Technology, Guangzhou 510640, China
- Department of Computer Science, Southwest University, Chongqing 400715, China
研究动机
DNN 复杂的模型结构需要大量的训练数据来保持其准确性,然而模型训练所需的数据并不总是足够的。这将使深度神经网络面临过拟合的挑战,难以在实践中获得预期的性能。与 DNN 类似,gcForest 具有多层结构,但每层包含不同种类的 RF 而不是神经元,通过逐层表示学习 gcForest 能得到优于 RF 的性能。与 DNN 相比 gcForest 的超参数更少,并且支持并行计算,在一些问题上 gcForset 可以作为 DNN 的替代品。但 gcForest 存在如下三个问题:
- 在多粒度扫描阶段使用滑动窗口获取特征子集,不能充分利用两端的特征,导致信息丢失;
- gcForest 认为各个森林的贡献是相等的,对于不同大小的扫描窗口也做同样的处理,这可能会削弱 gcForest 的最终分类能力;
- gcForest 的级联结构忽略了前一层产生的类概率向量,可能导致随着级联层数的增加,前一层学到的信息逐渐减弱。
文章贡献
针对 gcForest 存在的一些缺点,本文提出了一种 WCDForest 模型来提高小样本分类数据集的准确率。为了提高 WCDForest 的特征提取能力,提出了一种等量多粒度扫描模块,可以平等地扫描边缘特征。提出了类向量加权模块和特征增强模块,它们重新评估了 RF 在多粒度扫描和级联森林阶段的分类性能,最大限度地利用 RF 的特征信息。本文在 18 个公开数据集上进行了实验,实验表面提出的模型的分类性能优于基准模型,消融实验表明提出的模块对特征表征学习和准确率有积极的影响,且训练时间较少。
本文方法
本文的 WCDForest 模型主要分为两部分,多粒度扫描将根据原始特征生成增强特征,级联森林结合上层的增强向量进行训练。
等量多粒度扫描
假设输入特征向量的维数为 n,使用大小为 m 的滑动窗口从输入中提取特征子集,得到 (n−m+1) 个 m 维的特征子集。可知原始特征的第一个维度和最后一个维度只被扫描一次,第二个维度和倒数第二个维度被扫描两次,以此类推。此时只有第 m 个维度到第 (n−m+1) 个维度的特征可以被扫描多次,两端的特征被使用的次数并不多,因此本文采用等量多粒度扫描策略来替代原来的方案。
等量多粒度扫描的原理如下图所示,假设原始特征为 n 维,滑动窗口大小为 m,步长为 1。通过对原特征拼接生成一个 2n 维的新特征,然后对新特征进行 n 次扫描,得到 n 个 m 维的特征子集。使用这些特征子集来训练 RF 和完整 RF,每个森林输出一个具有 nk 维的类向量(样本有 k 个类)。接着通过连接两个森林的输出,得到一个有 2nk 个维度名的 class vector 的新特征向量。
类向量加权
原来的 gcForest 假设每个森林对类向量的贡献相同,但是每个森林的分类能力应该是不同的。当一个森林的分类能力很差时,即使正确的预测分数很高,也不能准确地代表它的真实分类能力。同时原始 gcForest 对不同的滑动窗口也是同等重视,这样也是不合理的。对于这个问题,本文根据不同森林的分类表现,对不同森林和滑动窗口赋予不同的权重。
森林权重
类向量表示 K-fold 交叉验证的验证结果,记为 C={c1,c2,…Ck},其中 k 是类别数。假设森林的数量为 p,可以得到准确率 S={s1,s2,…Sp},则该组中第 i 个森林的权重可按如下公式计算,每个森林的最终类向量是初始输出类向量乘以获得权系数后的相关权系数。
滑动窗口权重
在对森林赋予权重的基础上,进一步对不同大小滑动窗口生成的类向量赋不同的权值,在两个不同大小的扫描窗口下给出森林和扫描窗口权重的方法如下图所示。
这个步骤如下伪代码所示,可以用所有预测向量的标准差来评价当前滑动窗口的预测性能,较大的标准差意味着 RF 区分样本类别的能力较强。
特征增强
随着层数的增加,每个级联层只使用多粒度扫描阶段的特征向量和前一层的类向量,模型可能会出现一定程度的退化。针对这一问题,本文提出了一种基于平均加权类向量的特征增强策略,如下伪代码所示。森林权值和预测向量构建的增强特征是下一层训练的输入的一部分,同时重用之前的级联森林层的表示信息,在不额外消耗的情况下解决了原型模型的信息丢失问题。
实验结果
数据集和实验设置
实验使用了 UCI 中的 18 个数据集,基本信息如下表所示。本文采用基于混淆矩阵的四个指标进行评价,分别是 Accuracy、Precision、Recall 和 F1。对比算法有 7 个,分别是:DT、SVM、KNN、gcForest、MLP、ResNet、TabNet。
WCDForest 的超参数设置如下表所示,本文使用 3 种不同的滑动窗口,尺寸分别为:1/16、1/8 和 1/4。DT、SVM、KNN 基于 SKlearn 实现并使用默认超参数,ResNet、MLP 和 TabNet 训练 200 次并设置早停。
对比实验
对比实验结果如下图所示,可见对于大多数数据集 WCDForest 的结果更优。
详细的数据如下表所示,可见除了数据集 2、4、8、13 WCDForest 与最优模型之间的精度几乎相等,其他情况下 WCDForest 在所有评价指标中性能最佳。
运行时间比较
此处记录每种方法在 10 个数据集上的时间消耗,结果总结如下表所示,可见 WCDForest 的耗时第二短。WCDForest 通过牺牲一定的效率,如增加特征的扫描次数和扩展级联森林层数来获得高精度的性能,但 WCDForest 与 gcForest 在分类性能上存在显著差异。
消融实验
消融实验测试了等量多粒度扫描、特性增强、类向量加权模块,实验结果如下表所示。
等量多粒度扫描
此处从等量多粒度扫描模块中去掉等量扫描的部分,使用滑动窗口直接扫描输入特征。实验结果如下图所示,修改后模型的精度与 WCDForest 相比平均下降 1.30%,说明等扫描策略可以提高WCDForest 的性能。
特性增强
此处去掉特征增强模块,也就是级联森林只使用多粒度扫描模块和前一层的特征来训练下一层。实验结果如下图所示,可以观察到 WCDForest 的性能最好。
类向量加权
此处去掉类向量加权模块,对每个森林的分类能力进行评估。实验结果如下图所示,去除类向量加权模块后 WCDForest在多个数据集上的准确率显著下降,平均下降 3.8%,类向量加权模块在特征提取中起着重要作用。
优点和创新点
个人认为,本文有如下一些优点和创新点可供参考学习:
- 对于原始深度森林的类向量都等同的问题,本文提出了一种加权策略,能够凸显出更优的类向量;
- 原来的多粒度扫描的策略对顺序上中间的特征有倾向性,本文的改进能有效顾及到两边的特征;
- 本文的深度森林在后续的级联可以重用前面层次的特征,增加了表示的能力。