导读
基于树的模型和神经网络其实并没有太多的不同。
神经网络通常被认为是机器学习的圣杯,无所不知,解决一切问题,主要是因为它们很复杂。另一方面,基于树的方法并没有被同样的敬畏和炒作,主要是因为它们看起来很简单。虽然它们看起来如此不同,但它们只是一枚硬币的两面。
基于树的方法通常比神经网络更好。任何Kaggler都知道XGBoost是到目前为止最受欢迎的最佳竞赛提交选择。本质上,基于树的方法和神经网络之所以属于同一类,是因为它们是通过逐条分解来解决问题的,而不是像支持向量机(SVM)或逻辑回归(Logistic Regression)那样,通过寻找一个复杂的边界来分离整个数据集。
很明显,基于树的方法沿着不同的特征逐步分割特征空间以优化信息增益。不太明显的是,神经网络在处理这一任务时也是类似的。每个神经元监视特征空间的特定部分(有各种重叠)。如果一个输入落到那个空间,某些神经元就会被激活。
神经网络采用概率的观点来进行逐块模型拟合,而树则采用确定性的观点。无论如何,它们的性能都依赖于模型的深度,因为它们的组件与特征空间的部分相关。
一个包含太多组件的模型 —— 树是节点,网络是神经元——会过拟合,而组件太少的模型根本无法给出有意义的预测。(两者都开始记忆数据点,而不是学习归纳。)
关于神经网络如何分割特征空间的更多直觉,请看一般性逼近定理。
尽管决策树有许多强大的变种,如随机森林、梯度提升、自适应提升和深度森林,但通常基于树的方法本质上是神经网络的简化版本。
- 基于树的方法通过垂直和水平分割逐条处理问题,以最小化熵(优化器和损失)。神经网络通过操纵激活函数的形状来逐步解决这个问题。
- 基于树的方法是确定性的,而不是概率性的。这导致了一些很好的简化,比如自动特性选择。
- 在决策树中被激活的条件节点类似于被激活的神经元(信息流)。
- 神经网络拟合参数对输入进行变换,直接或间接的激活后续的神经元。决策树显式地拟合参数来引导信息流。(这是确定性而非概率性的结果。)
当然,这是一个抽象的甚至是有争议的主张。建立这种联系有许多心理障碍。无论如何,这对于理解基于树的方法何时以及为什么比神经网络更好是很重要的。
表格数据,或以表形式出现的结构化数据,对于决策树来说是很自然的。大多数人都同意,神经网络对于表格数据回归和预测来说是多余的,所以我们做了一些简化。我们选择1和0,而不是概率,这是两种算法差异的主要根源。因此,树可以在不需要概率的细微差别的情况下成功,比如结构化数据。
例如,基于树的方法在MNIST数据集上执行得很好,因为每个数字都有几个可定义的特征。概率不是一个必要的计算。这根本不是一个非常复杂的问题,这就是为什么精心设计的集成树可以达到相同的水平,甚至比现代卷积神经网络更好。
通常,人们会倾向于说“树只是记住规则”,这是正确的。这与神经网络是一样的,它记忆更复杂的,基于概率的规则。神经网络不会对x>3这样的条件显式地给出真/假,而是将输入放大到一个很高的值,以产生一个s型的1的值或产生一些连续的表达式。
另一方面,由于神经网络非常复杂,有很多事情可以用它们来做。卷积层和递归层都是神经网络出色的变体,它们工作得很好,因为它们处理的数据通常需要细微的概率计算。
很少有图像可以用1和0来建模。决策树值不能处理有许多中间值的数据集(例如0.5),这就是为什么它在像素值几乎都是黑色或白色的MNIST上工作得很好。类似地,文本有太多的信息和太多的异常,只能用确定性术语来表示。
这也是神经网络主要用于这些领域的原因,也是神经网络研究在早期(21世纪初)由于无法获得大量图像和文本数据而停滞不前的原因。神经网络的其他常见用途仅限于大量预测,比如YouTube的视频推荐算法,其规模如此之大,必须涉及到概率。
去公司的任何一个数据科学团队看看,他们很可能使用的是基于树的模型,而不是神经网络。除非他们是在构建一个重量级的模型,比如在Zoom中模糊视频的背景,树的确定性本质使得日常的分类任务变得轻量级,使用与神经网络相同的一般方法。
在许多现实世界中,确定性建模比概率建模更自然,这也是有争议的。例如,用树来预测用户是否从电子商务网站购买商品的一个很好的选择,因为用户自然会遵循一个基于规则的决策过程。它可能看起来是这样的:
- 我以前在这个平台上有过愉快的经历吗?如果是,继续。
- 我现在需要这件物品吗?冬天我应该买太阳镜和泳裤吗?如果是,继续。
- 根据我的人口统计数据,这是一个我有兴趣购买的产品吗?如果是,继续。
- 这件东西太贵了吗?如果不是,继续。
- 其他顾客对这个产品的评价是否达到了一定的临界值,使我觉得可以放心地购买它?如果是,继续。
一般来说,人类遵循非常基于规则和结构化的决策制定过程。在这些情况下,概率建模是不必要的。
总之,
基于树的方法最好被认为是神经网络的缩小版本,用更简单的术语来接近特征分类、优化、信息流等。
基于树的方法和神经网络在使用上的主要区别在于数据的确定性(0/1)和概率结构。结构化(表格)数据始终用确定性模型可以更好地建模。
不要低估基于树的方法的能力。