分类和回归是监督机器学习处理的一些最重要的任务。过去已经针对这些任务提出了许多方法,例如前馈多层感知器、决策树、支持向量机和极限学习机方法。最近,一种称为子空间学习机/回归器 (SLM/SLR) 的新方法已应用于低到中等维度的数据,并且显示出优于其他类似方法的巨大优势。本技术报告描述了 SLM/SLR 并追溯了其卓越性能背后的原因。
长期以来,基于特征的分类和回归任务一直由基于深度学习(DL)的模型处理,如FF-MLP、DT、SVM和ELM。这类模型已被发现特别有效,但它们也存在缺乏可解释性、模型复杂度高和计算成本高等问题。它们都以不同的方式处理特征空间划分这一共同任务。
我们提出了一个新的面向分类的机器学习模型,名为子空间学习机(SLM)。它通过将输入的特征空间以分层的方式划分为多个判别子空间,在简单性和有效性之间找到一个平衡点。SLM完全不改变特征空间。SLM中的概率投影只是用于特征空间的划分,而不产生新的特征。每个树节点的分割都对应着通过权重和偏置学习的超平面分割。因此,两个半子空间都可以被保留下来。SLM以前馈和概率的方式学习分区参数,它是高效和透明的。
我们在下面的章节中解释SLM和其他流行的分类方法之间的区别。
设计一个实用的MLP解决方案有两种方法。
通过反向传播,在每层对参数进行微调。MLP的结构包括Tabu搜索(一种解决组合优化问题的元启发算法)和模拟退火。 在卷积神经网络(CNNs)的变体MLP中,卷积层在不同的空间位置共享神经元权重和偏置。全连接层与传统MLP中的保持一致。它也是转化器模型中的构建模块。
MLP层是逐层构建的。在一种优化方法中,新增加的隐藏层的参数没有反向传播。在一种使用CNN的方法中,卷积操作将输入特征空间变为输出特征空间,作为下一层的输入。之后,神经元中的非线性激活对输出特征空间进行分割。只选择二分之一的子空间来解决由级联卷积操作引起的符号混淆问题。
一个DT通过递归地一次选择最具判别力的特征,将一个空间划分为两个子空间。在DT中选择一个分区比较容易,因为它是在一个特征上进行的,但是它的判别能力很弱,所以它是一个弱分类器。对于高树深,可以使用多个DT来避免对训练数据的过度拟合。在这种情况下,它们中的每一个单独都是一个弱的分类器,但它们的集合产生了一个强的分类器;例如,随机森林(RF)分类器。
分类和回归树(CART)(以及类似的ID3)是经典的DT算法。它们是弱的分类器,但通过使用多个DT与自举聚合和其他提升方法可以获得更高的性能。它们仍然可能由于训练和测试数据的分割不好以及训练数据的过度拟合而失败。与它们相比,一棵SLM树(即SLM基线)可以利用通过概率投影获得的判别特征,并在一个节点上实现多次分割。SLM一般会产生更宽更浅的树。
一个RF由多个决策树组成,其预测性能取决于:1)单个树的强度;2)对它们的依赖性的衡量,应该是比较低的。RF训练在建立树的过程中只需要一部分训练样本和它们的特征。因此,它以每个DT的强度换取一般的集合性能,以实现更高的多样性。为了实现不相关的个体树,已经提出了几种设计,如下所示。
套袋法通过在训练集中随机选择并替换来建立每棵树。
随机分割选择在最佳分割中随机选择一个节点的分割。
选择一个随机的特征子集来生长每棵树。
RF使用分袋和特征随机性,在森林中创建不相关的树,它们的综合预测比单个树的预测更准确。相比之下,SLM森林构建过程使用所有训练样本和整个特征空间。它利用特征随机性来实现每个SLM树的多样性(在第3.1节中描述)。在构建SLM森林时,单个SLM树的有效多样性和强度仍然不受影响。所以,SLM森林在树的数量上实现了更好的预测性能和更快的收敛性。
SVM算法试图在N维空间中找到一个超平面(N=特征的数量)。最佳的超平面具有最大的余量或与所有类别的数据点的距离。支持向量是更接近超平面的数据点,影响超平面的位置和方向。它们被用来最大化余量。
它将一个高维空间随机投射到一个一维空间,以找到相关一维空间中的最佳分割点。随机投影学习模型的理论及其特性(如插值和通用近似)已被研究。ELM在实践中对于高特征维度来说并不高效,因为需要多次试验才能找到好的投影。它采用了随机权重来训练前馈神经网络。MLP可以通过添加具有随机生成权重的新层来建立ELM。然而,由于需要较长的训练时间和较大的搜索空间的模型大小,它在实践中是低效的。
SLM Baseline确实考虑到了效率问题,它通过概率投影建立一个通用的DT,通过利用大多数具有几个超参数的判别特征来减少搜索空间。我们使用 "概率投影 "而不是 "随机投影 "来强调它们的区别。
梯度提升是另一种弱学习器的集合方法。它建立了一连串的弱预测模型。每个新的模型都试图补偿之前模型中留下的预测残余。梯度提升决策树(GBDT)方法包括:1)标准梯度提升;2)XGBoost。它在泰勒级数中扩展了一个一般的损失函数,并定义了一个增益来进行比标准DT更有效的节点分割。
SLM Boost模仿了XGBoost的提升过程,但用SLM树代替了DT。与标准GBDT方法相比,SLM Boost实现了更快的收敛和更好的性能,因为SLM树的性能更强。