从「线性回归」到「强化学习」(一)

2019-06-18 14:42:57 浏览数 (1)

作者:微调@zhihu 编辑:统计学家

https://zhuanlan.zhihu.com/p/67584343

线性回归(linear regression)是最基础的机器学习、统计学习模型,一般出现在教材或者科普读物的前两章。今天要从线性回归为起点,串讲一些机器学习的概念。这篇文章更像是地图,只给出了地名,而非具体过程。但当你有了地图,按图索骥即可。所以本文的目标是把分散的概念联系起来,从最简单的线性回归说到...主动学习(可能也会包含一点强化学习)。

这篇文章我们会先从最简单线性回归入手,从一元推广到多元,再到使用核函数(kernel tricks)处理非线性数据。之后我们会简单讨论参数估计的一种方法,最大似然估计,并提供它与线性回归中以最小二乘法优化间的关系,并提供另一种解释。该系列的下一篇文章会介绍最大后验估计(MAP)以及一些简单的贝叶斯思想。在了解了贝叶斯视角后,我们会把MAP的思想带入线性回归,介绍贝叶斯线性回归(Bayesian linear regression)。从贝叶斯线性回归,我们会开始从把参数考虑为随机变量推广到把函数考虑为random function,并和这篇文章中提到的核函数(kernel tricks)结合起来,并介绍高斯过程(Gaussian Process)。在了解了高斯过程后,我们会把高斯过程运用于主动学习(active learning),分析勘探(exploration)和利用(exploitation)间的的取舍(trade-off),并完成这个系列。

1. 一元线性回归

一般来说,我们假设有

,其中X代表输入量/自变量,而y代表输出/因变量。我们一般希望从给定的n对X、y中学习到模型

,有时候也叫映射(用于将X变换到y上)。最简单的的模型假设就是认为X和y之间存在线性关系,在一维空间上就是

,w代表这条直线的斜率(机器学习中叫做权重),而b代表偏置(这条直线和y轴的交叉点)。显然,决定一条直线只需要2个点,那么两组X、y就可以确定w和b,就不赘述了。多说一句,人们一般用大写的X代表输入因为是矩阵(nxm),代表n条数据,每个数据有m个特征,而输出值y一般是向量(nx1),所以用小写。

2. 多元线性回归

在一维的基础上,我们稍加推广,就可以得到多维下的表达,比如

也就是X有m个特征,那么

有[1, 2, 0.5, 2]有四个特征,但其输出值依然对应标量

,那么找

的过程就是寻找一组权重

来重复上面的一维上的过程,维度上是m 1是因为把偏置b变成了

方便进行矩阵计算。相应的,我们一般会在向量

前面加一个1方便与权重w进行点乘(dot product),因为

会是我们希望得到的结果。不难看出,简单的线性回归其实就是分析

,注意此处的W和Y都是一组长度为n的向量,而X是一个nx(m 1)的矩阵。因为XY都是给定的,那么这个问题就会被转化为求解在给定损失函数L下,求解最优向量W的线性系统。在机器学习中,我们一般会定义一组损失函数L,并找到可以使L最小的W作为最优解。为啥不直接求解

呢?主要是计算稳定性的问题,绝对值不利于优化,直接求解往往也不一定有答案。这也是加惩罚因子的一个除了防止过拟合以外的好处,或许能使原始矩阵易于分解或者操作(比如本身矩阵不是正定的)。因此我们一边选择最小平方差(也叫最小二乘法),也就是另

最小。对w求微分并设为0就可以得知

,不再赘述。

3. 线性回归、特征空间与核函数

虽然我们把回归问题推广到了高维,但实用价值依然很低,因为我们的线性假设,也就是在

中每个

的次数都是1,不存在更高的次数,或者元素之间也只存在加减的关系,仅仅是线性组合。这种线性分类器最大的问题就是无法解决稍微复杂的数据,以二维空间为例,一条直线很难把把所有给定的x、y都拟合上去,对于y=x^2这种数据简单的线性分类器肯定是不行的。那么从这个角度出发,人们就在考虑丰富输入数据的组成,比如构建一个新的特征空间

,这样就可以对x1和x2之间的关系进行建模,模型的复杂度更高了能表达的情况也更复杂了,变成了x1,x2和x1x2之间的线性组合。在这种情况下,模型依然是线性的,只需要相对应的扩大w的维度。而最优美的事情是,我们在线性情况下得到的

依然有效,只是需要把X替换为修正过的新的

但这种手动操作带来一种问题是我们怎么知道如何生成新的特征空间呢?为什么是x1x2而不是x1^2或者x1^2 x2^3呢?显然这样的组合是无穷多的,我们不可能有无穷多的资源去评估每一种可能性。在这种情况下,另一个广为人知的方法就是使用核函数K(X,X'),即选择合适的kernel,而无需实际去计算在被“投射后”原始输入所处的高维空间中的具体坐标,核函数K可以高校的计算出输入量在高维空间中的某种关系(比如相似度),且K的输入<,>形式需要满足是内积计算。不难看出,只要选用合适的核函数K,我们就可以使得原始版本的线性回归变得无比复杂。选择核函数也就是一个升维过程,也是人们在支持向量机里面说的那个核。本质上支持向量机就是一个线性模型 核函数的组合,目标是将在原始向量空间中线性不可分的问题,也就是线性模型解决的不了的问题投到高维空间上,使得可以找到一个超平面来满足线性模型的解。多说一句为什么机器学习里面要把模型写成矩阵和向量,主要是为了运算更加方便,计算机很擅长进行矩阵运算而非简单的嵌套循环。很多看起来很复杂的结论其实很容易用程序语言表达,稍后说到的高斯过程就是其中一例。

4. 最大似然估计(MLE)

MLE是一种统计上的参数估计方法。假设我们的模型

的参数

未知,但我们知道条件概率

,于是MLE就是一种方法寻找最优参数theta使得模型f在theta下出现D的可能性最大,最经典的案例就是评估硬币正面朝上朝下的案例,就不在此处赘述了。

我们一开始提到的线性回归问题也可以被理解为一组参数寻优问题,此处的参数就是w。我们可以把

,e(念作epsilon)代表的是期望为0,而方差为

的正态分布

。得到这个分布的原因是噪音e符合正态分布,而我们把

认为是确定性变量(deterministic variables),而非随机变量(random variables)。那么根据正态分布的性质,相当于在

的均值上加一个

,方差不变。

最大似然估计就是求解w的取值如何可以使得

最大。一般我们假设条件独立,然后求

在何时最大,取log主要是为了运算稳定性和方便性,把连乘变为连加。对上述公式稍加变换,就可以发现当

时似然最大。

不难看出,这个答案与上面第二节的最小方差作为损失函数得到的答案一致。这是巧合吗?也是也不是。第二节的最小方差可以被理解为最大似然中假设高斯噪音,而特定最大似然函数也可以被直接解读为损失函数。另一种解读是对于独立同分布的数据,最大似然其实是在最小化估计出来的参数

所决定的

与真实参数下

的KL散度。显然,当其为0时,得到最优参数。对于需要求职算法岗的同学来说,知道最小二乘法和最大似然之间的关系是必须的。

用最大似然求解后还可以进一步估计

,其实不算是估计,而只是在把w固定后求解再次使用最大似然不过是求

的偏微分,并令

对待其为常数。在这种情况下可得到

,其实也就是使用

时预测值的偏差的平方取平均。

5. 下节预告

在明白了最简单的基本概念后,我们会从最大似然出发,介绍最大后验估计(MAP)以及一些简单的贝叶斯思想。在了解了贝叶斯视角后,我们会把MAP的思想带入线性回归,介绍贝叶斯线性回归(Bayesian linear regression)。从贝叶斯线性回归,我们会开始从把参数考虑为随机变量推广到把函数考虑为random function,并和这篇文章中提到的核函数,或者说kernel tricks结合起来,介绍高斯过程(Gaussian Process)。在了解了高斯过程后,我们会把高斯过程运用于主动学习(active learning),分析勘探(exploration)和利用(exploitation)间的的取舍(trade-off),并完成这个系列。

重申,这一系列文章的目的是串联起看似关联没那么大的基本概念,提供一种思考地图。因为篇幅与时间限制,跳过了很多推导,建议感兴趣的读者根据关键词搜索,补充背景知识。

0 人点赞