学习笔记
多数情况下,机器学习的任务是求解输入输出单独或者共同符合的概率分布,或者拟合输入输出之间的数量关系。从数据的角度看,如果待求解的概率分布或者数量关系可以用一组 有限且固定数目的参数完全刻画,求出的模型就是参数模型(parametric model);反过 来,不满足这个条件的模型就是非参数模型(non-parametric model)。
注意:“非参数模型”不是“无参数模型”,恰恰相反,非参数模型意味着模型参 数的数目是不固定的,并且极有可能是无穷大,这决定了非参数模型不可能像参数模型那样用固定且有限数目的参数来完全刻画。
参数模型的优点在于只用少量参数就完整地描述出数据的概率特性,参数集中的每个参数都 具有明确的统计意义。举个例子来说:连续变量的正态分布N(u,p) 包含两个参数,分别代表着随机变量的均值和方差。这就是一个参数模型,从机器学习的角度来说此时算法的的任务就是求出这些决定概率特性的参数,只要参数确定 ,数据的统计分布也就确定,即使未知的数据无穷无尽,我们也可以通过几个简单的参数来确定它们的性质。
那我们又怎样来区分参数模型与非参数模型呢?可以通过下面这个实例来简单地体现:假定一个训练集中有 99 个数据,其均值为 100,方差为 1。那么对于第 100 个数据来说,它会以 99% 的概率小于哪一个数值呢?使用参数模型解决这个问题时,可以假设所有数据都来自于同一个正态分布 。利用训练数据构造关于正态分布均值和标准差的无偏估计量,可以得到相应的估计值 。如此就不难计算出,新数据会以 99% 的概率小于 102.365。可是对于非参数模型而言,它并不关心这些数据到底是来源于正态分布还是指数分布还是均 匀分布,只是做出所有数据来源于同一个分布这个最基础的假设。在这个假设之上,99 个 训练数据和 1 个测试数据是一视同仁的。如果把它们视为一个整体,那么在测试之前,所 有数据的最大值可能是其中的任何一个。正因如此,测试数据有 1% 的可能性比之前的 99 个都要好,也就是有 99% 的可能性小于训练数据中的最大值。
总结:非参数模型其实可以理解为一种局部模型,相比之下,参数模型具有全局的特性。因此参数模型与非参数模型的核心区别在于数据分布特征的整体性与局部性
从数据分布的角度看,不同的模型可以划分为参数模型和非参数模型两类。如果将这个划分标准套用到模型构造上的话,得到的结果就是数据模型(data model)和算法模型 (algorithm model)。相比于参数对数据分布的刻画,这种分类方式**更加侧重于模型对数据的拟合能力和预测能力。**数据模型和算法模型之间的矛盾就是模型的可解释性与精确性的矛盾。
数据模型最典型的方法就是线性回归,也就是将输出结果表示为输入特征的线性加权组合, 算法通过训练数据来学习权重系数。线性回归的含义明确而清晰的含义:输入数据每个单位 的变化对输出都会产生同步的影响,影响的程度取决于这个特征的权重系数。
从学习方法上看,上面提到的两种划分方式具有相同的本质。此外,还有另一种针对学习对象的划分方式,那就是生成模型和判别模型之分。简单地说,生成模型(generative model)学习的对象是输入x 和输出 y 的联合分布 ,判别模型学习的则是已知输入 x的条件下,输出 y 的条件分布p(y|x) 。两个分布可以通过贝叶斯定理建立联系。
生成模型和判别模型的区别可以这样来理解:假如我要判断一个外国友人说的是什么语言。如果用生成模型来解决的话,我就需要把这个老外可能说的所有语言都学 会,再根据他的话来判定语言的种类。但可能等我学完这些语言时,这个陌生人可能都说不出话 了。可是判别模型就简单多了,我只需要掌握不同语言的区别就足够了。即使不会西班牙语或者德语的任何一个单词,单凭语感也可以区分出这两种语言,这就是判别模型的优势。