神经决策树(总述)
不同神经决策树传送门:
数据驱动的神经决策树
具有确定叶的神经决策树
没有类层次结构的神经决策树
文章目录
前言:为什么要结合神经网络与决策树?
神经网络和决策树都是流行的机器学习模型,而且分别是连接主义和符号主义的出色代表,但它们有着很大程度上相互排斥的优势和局限性。它们之间的区别主要在于所学知识的形式。通常,前者学习层次表示,得到了更好的性能,但由于黑盒特性难以解释。而后者学习层次聚类,可以实现快速和可解释的推理,但缺乏准确性和泛化性。为了结合两者的优点,人们提出了各种方法来显式或隐式地结合这两种模型
一、神经决策树是什么?
神经决策树是将神经网络以决策树形式进行构建的hybrid model,它一般可以同时满足两者的定义,所以是神经网络和决策树最显式的结合。除此之外,神经网络和决策树还可以通过其他方法隐式地结合。实际上,这两种模型在上个世纪90年代以前一直独立发展,之后人们才开始研究它们结合的方法,我们将过去35年的方法分为了三个领域:
1.合作派
即神经网络和决策树的相互合作,可以追溯到20世纪90年代初,主要包括使用决策树从训练过的神经网络中提取规则,以及利用神经网络作为辅助来改进决策树的设计。这些工作是NNs和DTs的隐式组合,因为它们没有将两个世界合并到一个混合模型中。由于深度神经网络DNN/当时尚未开发,利用决策树设计或近似具有少量隐藏层的感知机可能是有意义的。但是随着本世纪深度模型的快速发展,典型决策树有限的表达能力已经不再支持它们在DNN上完成相同的工作
2.被激励的神经网络
决策树启发了一些神经网络的设计,人们发现神经网络借鉴决策树的类层次结构或决策分支是有益的。在一些模型中,类层次结构以不同形式集成到神经网络里,可以应用到多粒度分类的任务或利用层次间的知识蒸馏来提高细粒度上的表现。另一方面,一些模型在其网络设计中采用决策分支,动态选择分支进行推理。这些工作也是神经网络和决策树的隐式组合,此外,他们的动机主要是提高神经网络的性能或计算效率,而很少关心模型的可解释性。
3.神经决策树
即我们主要介绍的内容,神经决策树是一种具有树状结构、路由函数和可微参数神经连接的混合模型,同时满足神经网络和决策树的定义。这种显式组合也出现在30年前,人们训练决策树来模拟神经网络的输入——输出模式。与之前介绍的一些工作不同,这些方法一直在蓬勃发展,因为DNN的性能可能经常达到瓶颈,但模型的可解释性还远不能令人满意。这些方法的进展可以反映在它们评估的benchmark上。在20世纪90年代,由于技术限制以及决策树对表格数据的偏好,这些方法只能简单地在低维数据集上进行评估,而最近的工作已经能够扩展到诸如CIFAR100、CUB、ImageNet等数据集。这些方法往往更易于解释,但是牺牲了部分模型性能。为了弥补这一点,近年来一些工作倾向于将样本的潜在表示输入到设计的决策树中,甚至能达到与先进的神经网络竞争结果。但我们认为这是因为它们迎合了决策树更喜欢表格数据的性质,因此它们将学习到的潜在表示作为“表格数据”提供给了树。然而这种技巧在一定程度上降低了可解释性,因为不再从原始输入空间进行解释。
二、神经决策树的分类
神经决策树的主要思想是通过每个内部节点中的可微分裂在树设计中利用神经网络,从而允许使用基于梯度下降的方法进行优化。这些模型要么使用神经网络作为构建元素来改进决策树的设计,要么本身是一个神经网络。我们根据这颗树是否实现了类层次结构来进行分类,即每个内部节点是否被隐式地分配了一个粗粒度分类任务。这是典型决策树固有的特性,它通过一系列连续的测试将输入空间进行递归划分,并根据样本在叶子的分布对叶子进行标签。这种“分而治之”策略和透明的推理机制对模型的可解释性做出了很大贡献,因为树中的每个节点都是有具体责任,可以与其他节点区分开来的。
对于实现了类层次结构的方法,我们进一步根据树的架构是否是由数据驱动进行分类,即叶子标签或对应的类分布是否是由落入其的样本分布决定。数据驱动方法通过树中每个节点上训练样本的行为和性能来执行局部优化,以此递归生长成树。而那些没有数据驱动架构的方法则是寻求学习确定的类概率分布作为叶子的固定标签,从而归纳出类层次结构。这些方法不采用递归的“分而治之”策略来构建类层次结构,而是由叶子隐式地学习出来。
另一方面,没有类层次结构的神经决策树对自己的约束十分有限,在叶子上执行任意预测(即,叶子节点是分类器,而不是确定的类或分布),这导致了节点不可区分、内部节点任务不明确、缺乏类层次结构和模型可解释性的降低
三种神经决策树如上图所示,因为图片还要用所以水印加得夸张一点
三、神经决策树通用的组成和推理模式
如上图所示,一个通用的神经决策树框架包含三个组件、三种推理模式
1.通用框架组成
学习者:
树的每一条边会分配一个学习者。学习者的任务是学习并转换来自父节点的样本,并将其传递给子节点。然而,学习者不是神经决策树中的必要模块。只有少数工作采用了非线性函数作为学习者进行表征学习,而大多数神经决策树仅使用恒等映射,特征在传递到后续模块时保持不变。
路由器:
树的每个内部节点都分配有一个路由器,路由器相当于执行传统决策树中的分裂函数,决定将数据发送给哪个或哪些子节点,从而对输入空间进行划分,路由器是神经决策树中的一个关键模块,它的处理方式和模型的推理机制可以直接联系起来。
预言家:
预言家是装在叶子的预测器,用于给出最终结果,它是神经决策树中最重要的模块。它的设计(专家或偏执狂)极大地影响了模型的性能和可解释性,并直接决定了模型是否实现了类层次结构。如果条件分布𝑝(𝑦|x)会根据输入示例x的不同而改变,那么叶子就是专家(分类器),叶子将失去表示具体类别或分布的能力。相反,如果𝑝(𝑦|x)是不变的(偏执狂),叶子将被赋予具体的意义,从而在树中诱导出类层次结构。
2.通用推理机制
具有软推理的模糊树(fuzzy tree):
在模糊树中,输入x根据路由器提供的概率决策(模糊成员关系)随机遍历神经决策树,直到到达叶子。在这种情况下,通过对所有叶子预言家的预测进行加权平均(根据各自到达叶子的概率)来计算类上的预测分布。
具有全局贪婪推理的模糊树:
该推理模式使用具有最大路径概率的叶的类分布作为预测,不允许每个叶子都对最终预测做出贡献,但是也计算了全局的概率
具有硬推理的脆树(crisp tree):
上面两种推理都采用的带有模糊隶属函数的模糊分割,允许样本根据概率遍历每个孩子。相反,脆树用硬推理来贪婪地遍历树,即在每个内部节点上选择概率最高的孩子节点。和传统决策树一样,这是一种“单路径推理”策略,具有最低的计算成本,并且更易于解释,但在一定程度上影响了准确性。
四、一般的训练流程
对于非数据驱动的神经决策树,通常具有预先确定的架构。为了允许使用反向传播并进行全局优化,这些模型在训练阶段被设计为具有软推理的模糊树。训练结束后,可以将软推理转换为更具解释性的模式(即另外两种推理模式),同时牺牲部分的准确性。这是因为软推理需要解释整个树,包括所有内部节点上的路由器,而其他模式只需要解释从根到叶的一条特定路径上的路由器及其的推理过程。而数据驱动的神经决策树需要从头开始生长。它用一定的准则逐步训练每个基于神经网络的内部节点,并用将样本分配给其子节点(可以使用脆分割或模糊分割)
总结和传送门
以上是对神经决策树的一个笼统介绍,对于不同的神经决策树,我们进行了进一步介绍,传送门:
数据驱动的神经决策树
具有确定叶的神经决策树
没有类层次结构的神经决策树