(1) 序言 + 线性回归 Linear Regression (a) : 多项式拟合,线性基函数模型,最大似然参数估计 - PRML && CS229

——— 往者不可谏,来者犹可追。

序言:笔者是一名即将入学的 machine learning 相关专业 PhD candidate,在老师和师兄指引建议下计划以 Bishop 的 《Pattern Recognition and Machine Learning》为主,Stanford 吴恩达教授的 CS229 课程为辅,系统性地夯实 machine learning 基础知识。笔者在本科阶段只学过一门《模式识别》课程,课时较短仅仅初步了解了多层感知器,支持向量机,主成分分析等算法,并未涉猎过多数学推导,也让我意识到对这领域知识的掌握相当不经推敲。选择 Bishop 的《Pattern Recognition and Machine Learning》正基于此,此书与国内大部分教材排版大相径庭,以概率分布模型,线性回归分类等更加基础宏观的内容为主要章节,更像是一个自下而上的学习过程,牵涉到大量公式推导证明,内容多难度大加之全英文更令人望而却步,如果想从头开始逐章学习时间成本巨大极易浇灭满腔热情,初学者往往鲜克有终。因此参考著名的 CS229 课程作为部分学习主线,但主要内容还是依据本书,外加 Bengio 的深度学习圣经 《Deep Learning》相关精华部分作为扩充,三线并进,融会贯通,精益求精。第一期将跟随 CS229 梳理主线,后续再将跳过的部分查漏补缺。路漫漫其修远兮,吾将上下而求索,CS229 课程难而精简,本书内容却不厌其详,两者搭配使用能否相得益彰也未可知。

工欲善其事,必先利其器,相信很多有心从事科研的同学都曾因理论匮乏而陷入方法瓶颈,或因视野狭窄迟迟找不到研究方向。经济基础决定上层建筑,我们对某一学科基础的掌握程度往往代表了在该学科领域的素养和见识,并最终决定所能企及的上限成就。正如同武侠世界的内功修为,像身具少林正宗内功的乔峰,集三大高手内力于一身的虚竹,北冥神功吸取多名高手内功的段誉,九阴真经大成的郭靖,服食蛇胆的杨过,修炼九阳神功的张无忌,习练吸星大法的令狐冲,倚仗深厚的内力,学习任何武功都是信手拈来,任何平常的招式也可发挥巨大威力,飞花摘叶,皆可伤人,再配上降龙十八掌,生死符,六脉神剑,黯然销魂掌,乾坤大挪移,独孤九剑等绝世武学,足以号令天下,莫敢不从。笔者在之前的科研经历中也深陷因基础薄弱导致实验进度拖延的窘境,因此决定深入详细的学习一遍,并分享笔记心得,与同样正在从事 machine learning 科研的诸君共勉。运用之妙,存乎一心,笔者坚信经历此轮知识的充盈,必能在日后的科研工作中随心所欲,无往不利,学科修养也将更进一层,渐臻化境。君子有酒,酌言尝之,笔者将详细记录学习笔记与心得,也欢迎并期待与正在学习的小伙伴留言讨论。

线性回归 (Linear Regression)

在机器学习中,我们通常根据训练集中是否包含训练样本 (sample)(或输入向量 (input) )所对应的标签 (label)(或目标向量 (target) ),将任务划分为带有标签的有监督学习 (supervised learning) 和不带标签的无监督学习 (unsupervised learning)。在有监督学习中,我们又根据标签的类型,将任务划分标签为离散变量的分类 (classification) 问题和标签为连续变量的回归 (regression) 问题。回归问题的目标向量通常是价钱,温度等连续的物理量,广泛应用于股票及气温等模型预测。

线性回归模型的最简单形式是拟合输⼊变量的线性函数,其定义如下。对于给定的数据集 [公式]  [公式]是一组输入变量,[公式] 是对应的目标向量,对于 [公式] 都包含 [公式] 维特征的向量。线性回归 (linear regression) 就是利用一个线性方程

[公式]

通过 [公式] 中已知数据估计参数 [公式] ,拟合 [公式]  [公式] 之间的关系,从而对未知标签的输入变量 [公式] 进行预测。参数 [公式] 使得数据中可以存在任意固定的偏置,通常被称作偏置项 (bias)。仅使用线性函数对于精确的线性回归模型虽说难窥全豹,却也可见一斑,不失为一种简单实用的方法。

关于线性回归的举例可参考 CS229 第一章课程讲义中的房价预测问题,在此不作赘述。

1. 多项式曲线拟合 (Polynomial Curve Fitting)

在大部分实际应用中,目标变量很难与输入变量呈线性关系,仅使用上述线性方程 [公式] 就想完美拟合出输入与目标的关系难乎其难,因此我们试图使用更一般的多项式函数进行拟合,此处将上述线性回归函数简化为单变量函数 [公式] ,即认为原始输入变量 [公式] 只有一个维度的特征,其多项式回归函数形式为

[公式]

其中 [公式] 是多项式的阶数 (order),多项式系数 [公式] 整体记作向量 [公式] 。多项式函数是一类典型的线性回归模型,其线性关系实际上是针对系数 [公式] 而并非 [公式] ,具备基本的线性特性

[公式]

其中 [公式] 为两组可能的参数向量

使用多项式函数进行曲线拟合不无道理,根据泰勒公式 (Taylor's Formula),对于任意连续函数 [公式] ,如果 [公式]  [公式] 处具有任意阶导数,其泰勒展开公式为

[公式]

正好可以简化为多项式函数的形式,尤其对于自变量只在小范围区间上定义的模型,多项式函数可以近乎完美的拟合曲线;但是多项式函数的⼀个局限在于它们是输⼊变量的全局函数,其形式也并不唯一,在输⼊空间一个区域引入新的训练数据往往可能影响所有其他区域的数据拟合结果。对此我们把输⼊空间切分成若⼲个区域,然后在每个区域⽤不同的多项式函数拟合,这种函数称做样条函数 (spline function)。

多项式函数系数的值可以通过调整函数拟合训练数据的⽅式确定,一般通过最小化误差函数 (error function) 实现。⼀个简单且应⽤⼴泛的误差函数是计算每个数据点 [公式] 的预测值 [公式] 与⽬标值 [公式] 之差的最小平⽅和 (least squares),其形式为

[公式]

其中 [公式] 也称作代价函数 (cost function),引入因⼦ [公式] 是为了简化一阶导数形式,在本文第三节将从概率的角度进一步解释。

2. 线性基函数模型 (Linear Basis Function Models)

由上文可知,当我们引入一些输⼊变量 [公式] 的幂函数进⾏线性组合时,对于很多非线性实际应用的拟合效果会更好,但是精确的样条函数区域划分却很困难。所以更一般地,我们尝试引入其他形式的非线性函数,仍假设输入向量 [公式] 具有 [公式] 维特征,然后引入一系列关于 [公式] 的非线性函数 [公式] ,这些非线性函数就是基函数 (basis function);特别地,对于偏置项 [公式] ,定义⼀个额外的虚“基函数” [公式] 。模型仍是关于参数 [公式] 的线性函数,此时线性回归函数形式为

[公式]

我们把下标 [公式] 的最⼤值记作 [公式] ,此时模型参数数量为 [公式] 。在机器学习应用中,我们对原始数据变量引入线性或非线性变换,本质上是对原始数据进行某种固定形式的预处理 (preprocess) 或者特征提取 (feature extraction)。如果原始变量由包含 [公式] 维特征的向量 [公式] 组成,那么提取特征则可⽤基函数 [公式] 来表示。

上文所讨论的多项式曲线拟合就是一个基函数为 [公式] 幂指数形式的线性模型。基函数有很多选择,如“⾼斯”基函数

[公式]

其中基函数在输⼊空间中的位置和大小分别由 [公式]  [公式] 决定。”高斯“基函数未必是⼀个概率表达式,特别地,归⼀化系数不重要,因为基函数还会与⼀个参数 [公式] 相乘。

此外还有 [公式] 基函数,定义为

[公式]

同样地,我们也可以使用 [公式] 函数,它和 [公式] 函数的关系为 [公式], 因此 [公式] 函数的⼀般的线性组合等价于 [公式] 函数的⼀般的线性组合。下图说明了基函数的不同选择情况。

图片来自Bishop PRML. Figure 3.1。改变不同的u,多项式基函数,高斯基函数,sigmoid 基函数变化情况。

基函数还可以选择傅⾥叶基函数,⽤正弦函数展开。每个基函数表⽰⼀个具体频率,在频域中是有限的但在空间域中⽆限延伸,相反,在时域有限的基函数在频域中是无限的。与标准傅里叶变换比较,小波在时域和频域都是局部的,对于时间序列中的连续的时间点,以及图像中的像素都有广泛的应用。

如果选择⼀个合适的基函数,我们可以建⽴输⼊向量到⽬标值之间的任意⾮线性映射,事实上,我们更加关注基函数向量 [公式] 的形式为 [公式] 的一般情形。然而,线性基函数模型有一些重要局限,由于我们假设对于任何观测数据基函数都是固定的,随着输⼊空间的维度 [公式] 迅速增长,基函数的数量呈指数级增长,带来维度灾难 (the curse of dimensionality)。

3. 最大似然参数估计 (Maximum Likelihood Parameters Estimation)

线性回归问题都可以通过最⼩化误差函数来解决,通常选择平方和作为误差函数,接下来就从概率论的角度解释为什么选择求最小平方 (least squares) 。我们仍以曲线拟合为例,已知含有 [公式] 个输入数据点 [公式]及对应的目标值 [公式] 组成的数据集,对新输入的变量 [公式] 的目标值 [公式] 做出预测。正如前文所讲,我们对该例中从 [公式]  [公式] 的真实映射关系并不知晓,只是人为的选取一些基函数构造模型来逼近真实映射,可以说是盲选的,所以大部分情况下对于新输入变量目标值 [公式] 的预测总会存在偏差,也就意味着 [公式] 的预测需要引入一定的不确定性 (uncertainty),于是我们使用关于目标预测的概率分布来表示这种不确定性,从而使预测结果更加可信。

我们通常会选择高斯分布 (Gaussian distribution) (或正态分布 (normal distribution))来建模,原因有二,其一,我们想要建模的很多分布的真实情况是比较接近高斯分布的。中心极限定理(central limit theorem)说明很多独立随机变量的和近似服从高斯分布,意味着在实际中,很多复杂系统都可以被成功地建模成高斯分布的噪声;其二,在具有相同方差的所有可能的概率分布中,高斯分布在实数上具有最大的不确定性。我们假定给定 [公式] 的值, 对应的 [公式] 值服从⾼斯分布,分布的均值为 [公式] ,此时有

[公式]

其中 [公式] 对应高斯分布方差的导数,很显然分布均值 [公式] 就是我们选取的拟合函数。更一般地解释,为了增加结果的不确定性,我们对 [公式] 的预测结果 [公式] 加了一个均值为0,方差为 [公式] 高斯噪声 [公式] ,使得 [公式] ,最终预测结果符合以上假设的概率分布。此处不同目标值的误差项 [公式] 是相互独立的。对于 [公式] 的⼀个新值,最优的预测由⽬标变量的条件均值给出,在目标值高斯分布的情况下,条件均值可以写为

[公式]

为了证明假设的概率分布适用于给定数据集上的所有数据,我们需要用训练数据 [公式],通过最⼤似然 (maximum likelihood) ⽅法,来决定参数 [公式]  [公式] 的值。所谓最大似然估计,就是寻找能够以较高概率产生观测数据的概率模型(或似然函数),通过最⼤化数据集的真实概率分布计算固定的参数,即认为参数 [公式]  [公式] 是定值而数据集是变量,与之相对应的最大后验估计 (maximum posterior) 则是在给定数据集的情况下最⼤化参数的概率分布,认为参数 [公式]  [公式] 是变量而数据集是定值,这个会在后续篇幅展开讨论。此时似然函数为

[公式]

为了最大化似然函数,我们会将一元变量 [公式] 的高斯分布的一般形式

[公式]

取对数然后替换之,得到对数似然函数

[公式]

⾸先考虑确定 [公式] 的最⼤似然解(记作 [公式] ),先省略与 [公式] 无关的公式后两项,同时注意到,使⽤⼀个正的常数系数来缩放对数似然函数并不会改变 [公式] 的位置, 因此我们可以⽤ [公式] 来代替系数 [公式] 。最后,我们不去最⼤化似然函数,⽽是等价地最⼩化负对数似然函数。于是我们看到,对于确定 [公式] 的问题来说,最⼤化似然函数等价于最⼩化第一节中的平⽅和误差函数。因此,在⾼斯噪声的假设下,平⽅和误差函数是最⼤化似然函数的⼀个⾃然结果。在确定了控制均值的参数向量 [公式] 之后,就可以求解 [公式] ,因为平方和误差函数的最小值为0,很容易确定最大化似然函数的 [公式] ,其形式为

[公式]

此时关于新输入的 [公式] ,我们代入参数确定的最大似然函数,得到关于 [公式] 的预测分布

[公式]

这时再考虑将参数 [公式] 看做服从某种概率分布的变量,同样地,为了最大化 [公式] 的不确定性,我们假设其服从以下高斯分布

[公式]

其中 [公式] 是分布方差, [公式] 是参数数量,选用0均值是因为我们通常在实际操作中将 [公式] 初始化为 [公式] 。如果再将 [公式] 看做给定数据集 [公式] 上的条件概率分布,可表示为 [公式] ,也称作 [公式] 的后验概率 (posterior distribution),与似然概率 [公式] 相同的是,我们总是将概率的条件项假设为定值。使⽤贝叶斯定理 (Bayes Theorem), [公式] 的后验概率正⽐于先验分布和似然函数的乘积。

[公式]

为了最大化后验概率分布确定 [公式] ,同样将高斯分布公式代入并取负对数,可得最大化后验概率就是最小化下式

[公式]

第二项 [公式] 也称作 [公式] 正则项 ([公式] regularization ),具有防止过拟合 (overfitting) 的作用,这些将在后续章节中详细讨论,下一篇文章将讲述误差函数 [公式] 的求解方式,我们只考虑最大似然项,即针对 [公式] 的最小平方和函数。