用 17 讲的篇幅,我和你分享了目前机器学习中的大多数主流模型。可是除开了解了各自的原理,这些模型背后的共性规律在哪里,这些规律又将如何指导对于新模型的理解呢?这就是今天这篇总结的主题。

要想在纷繁复杂的模型万花筒中梳理出一条清晰的脉络,还是要回到最原始的出发点——线性回归。线性回归是所有机器学习模型的鼻祖,其原因不仅源于它悠久的历史,还在于它三个最基本的特点。

  • 线性(这不是废话么):除了常数之外最简单的函数关系。
  • 全局性:一组线性系数适用于整个输入空间。
  • 数据不变性:不对输入数据进行任何预处理。

这三个特点决定了线性回归简洁的数学形式、清晰的可解释性和受限的表达能力。要想从线性回归出发,得到更加复杂的模型,就要摆脱这三个基本假设的限制,从内部对模型加以改造。

线性是首当其冲的改造对象。要对复杂的客观世界进行建模,非线性是不可或缺的要素。但从线性到非线性的过渡并非一蹴而就,而是循序渐进地实现,其演进的过程大致遵循“属性非线性——参数非线性——全局非线性”的路线图。

首先是属性的非线性化,典型的处理手段就是基函数的扩展。基函数的引入本质上是对特征空间的重构。一般来说,所有基函数构成一组正交基,自变量和因变量之间的非线性关系就被限制在这组正交基展成的线性空间里。基函数的形式越复杂,模型刻画复杂关系的能力就会越强。从这个角度看,多项式模型和分段的样条模型都可以归入属性非线性化的范畴。

除了对作为自变量的属性进行非线性化处理之外,待估计的模型参数也可以非线性化。这里我用参数的非线性化来指代属性不变但参数改变的模型,但由于参数本身是常量而非变量,因此参数的非线性化是以自适应调整的方式体现的。这种演化的代表模型就是以感知器为代表的神经网络。而在神经网络中,激活函数的使用又可以看成是基函数扩展的一个实例。

如果在前两者的基础上,进一步对属性和参数实现全局的非线性化,得到的就是广义线性模型。广义线性模型的非线性化是通过非线性的链接函数实现的,将线性组合的整体作为非线性化的对象。这种处理方法从根本上改变了线性模型的结构,将线性模型的应用范围从回归推广到了分类。

处理完线性特性,接下来就轮到全局性了。一手遮天的全局特性限制了模型的灵活性,改进的方法在于将它改造成若干个局部模型的组合,其演进的过程可以描述为“结构化局部——非结构化局部——分布式表示”。

结构化局部模型的代表是核函数,虽然它原本的目的不在于此,却在事实上起到了局部化的作用。具有固定形式的核函数给每个样本都定义了归它管辖的一亩三分地,非样本点的取值则等于所有样本在这个点贡献的求和。如果说非线性化是重新定义了属性空间的话,那么局部化就是对属性空间进行了手术刀般精细的切割,它将线性回归拓展为核回归,还衍生出了基于距离的学习。

核函数是具有明确解析式的数学函数,这说明它还具备一定的结构特性。如果将局部的结构特性都不加保留地完全拆解,那就是以 kk