查看原文
其他

只懂线性回归?来看看贝叶斯回归和高斯过程回归

作者丨Young Zicon@知乎,转自丨极市平台

来源丨https://zhuanlan.zhihu.com/p/350389546


目录

  • 一、线性回归

    • 1.1 最小二乘估计的矩阵推导
    • 1.2 最小二乘估计的概率视角
    • 1.3 正则化最小二乘估计的矩阵推导
    • 1.4 正则化最小二乘估计的概率视角
    • 1.5 总结
  • 二、贝叶斯线性回归

    • 2.1 inference
    • 2.2 prediction
  • 三、高斯过程回归

    • 3.1 高斯过程
    • 3.2 权重空间角度看高斯过程回归
    • 3.3 函数空间角度看高斯过程回归
    • 3.4 高斯过程回归的补充说明
  • 四、参考链接

注:本文仅做数学上的推导,具体python代码实现后续有空再补上。
先对数学符号作出如下的规定:
即 一行表示一个样本,一列表示一个特征。

一、线性回归

1.1 最小二乘估计的矩阵推导

设 ,则其最小二乘估计为:
,因此对 求导,有:
最小二乘估计的几何含义为把 投影到数据矩阵 张成的空间上:
的列的线性组合表示为 ,当 其恰好为 在 列空间上的投影时,有:

1.2 最小二乘估计的概率视角

先给出结论,即最小二乘估计等价于噪声服从正态分布的极大似然估计。
假设模型为 ,则有 ,即:
其对数似然函数为:
因此,
即损失函数为 ,与最小二乘估计相同。

1.3 正则化最小二乘估计的矩阵推导

正则化一般有L1正则和L2正则,这里仅以L2正则为例。
公式(1) 中,可能是不可逆的,什么情况会出现 不可逆呢?
正常情况下,样本数量 应该远大于特征数量 ;但当样本数量 不满足远大于特征数量 这个条件的时候, 可能是不可逆的。
直观上理解,当特征数量 很多的时候,很容易存在冗余的情况,因此 不可逆。
从现实意义上说,这种情况说明样本数量 太少,因此容易造成过拟合(即说过拟合在线代角度上体现为 不可逆),L2 正则化可以缓解过拟合,也就是说L2正则化可以使得 可逆。
那么为什么添加 L2 正则化可以使得 可逆呢,我们通过推导来看一下原因:
,因此对 求导,有:
在公式(3)中, 半正定矩阵 加上对角阵 之后变成了正定矩阵,一定是可逆的
因此,从线代角度上说,正则化可以保证 可逆;从现实意义上说,正则化可以防止过拟合。

1.4 正则化最小二乘估计的概率视角

仍然先给出结论,即正则化最小二乘估计等价于最大后验概率估计MAP,噪声服从高斯分布,
  • 当先验是高斯分布时,推导的结果是 L2 正则;
  • 当先验是拉普拉斯分布时,推导的结果是 L1 正则。
下面我们以先验为高斯分布来举例推导,由贝叶斯公式可得:
其中,似然部分即我们在1.1节中的推导结果,
而对于先验部分,我们假设 服从高斯分布,
因此,
若记 ,则损失函数为 ,与正则化最小二乘估计相同。
1.5 总结
最小二乘估计等价于极大似然估计MLE,且噪声服从高斯分布;
正则化最小二乘估计等价于极大后验概率估计MAP,且噪声服从高斯分布。
当 先验是高斯分布时,推导的结果是 L2 正则;当先验是拉普拉斯分布时,推导的结果是 L1 正则。

二、贝叶斯线性回归

线性回归的基本模型是 
  • 上面提到的线性回归,是从点估计的角度出发,将 都当作未知的常数,进而将问题转化为优化问题;
  • 这一节所提到的贝叶斯线性回归,将 都当作未知的随机变量。贝叶斯推断往往分为两步:inference 和 prediction,inference 阶段是基于贝叶斯公式,推导出参数 所服从的分布;prediction 阶段是基于推断出来的参数分布 ,对目标分布 进行预测。

2.1 inference

由贝叶斯公式有:
因此得到:
其中,似然部分为:
先验部分我们假设为:
由于高斯分布的自共轭性,我们假设后验分布 ,下面采用配方法求解 和 
配方法:对于一个普通的多维高斯分布 ,我们对其指数部分进行如下推导:
将似然部分和先验部分的分布代入后验分布,得到:
通过比对,我们很容易得到:
2.2 prediction
经过 inference,我们已经得到 ,下面我们进行预测:
  • 若不考虑噪声,即模型为 ,则由高斯分布的性质,有 
  • 若考虑噪声,即模型为 ,则由高斯分布的性质,有 

三、高斯过程回归

3.1 高斯过程

简单来说,高斯过程是定义在连续域(时间/空间)上的无限多个随机变量所组成的随机过程,其中每个随机变量都服从高斯分布,若干个随机变量的联合分布仍然是高斯分布。
高斯过程可以看作是多维高斯分布的推广,这里将“多维”推广到了“无限维”。因此我们已知,一个一元高斯分布由均值和方差唯一确定,一个多元高斯分布由均值向量和协方差矩阵唯一确定,从直觉上说,高斯过程也应由一个均值函数和协方差函数(也称为核函数)唯一确定。这里就不进行证明了。
下面举一个简单的例子:
如上图所示,如果我们把一个人的一生看作一个高斯过程,假设他能活到100岁,每个时刻都对应一个随机变量 ,该随机变量服从高斯分布,衡量了这个人在当前时刻的表现。若干个 的联合分布仍然是高斯分布。一个人过完了一生,相当于在每个时刻的随机变量 取了一个值,将这些值连起来,就构成了这个人的一生,也叫做该高斯过程的一个样本,如上面红色线、蓝色线所示。下面我们对照一下高斯过程的定义:
  • 定义在连续域(时间/空间)上的无限多个随机变量所组成的随机过程:[0,100]这个区间对应无数个时刻,每个时刻对应一个随机变量,因此“人生”这一随机过程由无限多个随机变量构成;
  • 每个随机变量都服从高斯分布:单独看每一个时刻,其对应的随机变量都服从高斯分布,如上图的绿色线所示;
  • 若干个随机变量的联合分布仍然是高斯分布的联合分布仍然是高斯分布。
而如果连续域是空间而不是时间,则随机变量不再沿着时间轴分布,每个时刻对应一个随机变量,而是布满整个空间,空间中的每一个点都对应一个随机变量。
最后,我们作一下总结:
  • 一个高斯过程由一个均值函数和协方差函数(也称为核函数)唯一确定。
  • 从时间域看高斯过程:时间轴上的每个时间点 对应一个随机变量 ,该随机变量服从高斯分布,若干个这样的随机变量的联合分布仍服从高斯分布,所有的这些随机变量的联合构成了高斯过程;
  • 从空间域看高斯过程:空间中的每个点 对应一个随机变量 ,该随机变量服从高斯分布,若干个这样的随机变量的联合分布仍服从高斯分布,所有的这些随机变量的联合构成了高斯过程;

  •  

3.2 权重空间角度看高斯过程

前面提到的贝叶斯线性回归的基本模型是:
但是上述模型解决不了非线性的回归问题,有一种解决方法就是将数据 投影到更高维的空间中,从而将非线性问题转化为线性问题,再采用贝叶斯线性回归的流程去解决。
我们定义从低维空间到高维空间的非线性转换为:。此时模型变成:
也就是说,我们将贝叶斯线性回归得到的结论中的 替换成 替换成 即可,因此有:
  • inference 阶段:
     
  • prediction 阶段(仅以无噪声的预测为例):
    我们通过 Woodbury Formula 计算出 ,并代入分布\(4\)得到:
    注意 ,因此上面公式中下划线的部分其实都是 的形式,而且由于 是正定矩阵,因此有 ,因此下划线的部分都可以写成 Kernel Function 的形式:
    也就是说,我们通过核方法的思想将低维空间中的非线性问题转化为高维空间中的线性问题,并通过核函数避免了上述复杂的转化,这就是 Kernel Trick + 贝叶斯线性回归 ,从权重空间的角度看,这其实就是高斯过程回归了(虽然明面上跟高斯过程没有什么明显的联系),在这个过程中,我们主要的研究对象是 ,因此这是高斯过程回归的权重空间视角。
首先我们简单看一下无噪声的贝叶斯线性回归模型:
我们对参数 的先验分布做出上述简单的假设,则我们可以很容易得到:
3.2节中我们已经提到,可以写成核函数 ,因此有:
如果我们把0看作特殊的函数的话,上面的式子其实和高斯过程的定义一模一样:
这给予我们一种启发:。也就是说,对于任意一个输入 ,把看作一个服从高斯分布的随机变量,若干个 的联合分布仍然是高斯分布。 在这种视角中,我们的研究对象不再是权重 ,而是整个函数 ,因此下面我们从函数空间的角度来推导高斯过程回归:
  • 我们假设模型为 ,且 ,则对于训练集 ,其服从高斯分布 ,因此 
  • 假设现在待预测的预测集为 ,则其服从高斯分布 
  • 由高斯分布的性质可知,的联合分布仍然是高斯分布:
     
在 机器学习中的高斯分布(https://zhuanlan.zhihu.com/p/338669671) 这一节中,我们提到了如何在已知联合概率分布的情况下求条件概率分布,直接代入求解,可得:
因为 ,因此:

至此,推导完成,发现发现与从权重空间视角看待高斯过程回归相比,从函数空间视角出发的推导更加简洁。

3.4 高斯过程回归的补充说明

  1. 高斯过程回归是一种非参数模型,没有训练模型参数的过程,一旦核函数确定,训练数据给定,则模型被唯一确定。但是核函数本身是有超参数的,通常通过最大化边缘对数似然来找到核函数超参数的最优值。
  2. 高斯过程回归的流程:
  • 确定数据点为一个高斯过程的采样点
  • 确定均值函数,通常选择零均值函数
  • 确定协方差函数/核函数
  • 根据后验概率确定预测点的表达式,如公式(5)所示
  • 最大化边缘对数似然求解最优超参数
  • 预测数据代入,得出结果
3. 不满足高斯分布的数据也可以用高斯过程去拟合。直观上说,因为每个数据点 其实是对应一个随机变量 ,而该随机变量恰好取到当前的值而已,由于只取了一次,所有当前取到的值的联合分布不一定满足高斯分布。
参考链接:
1 哔哩哔哩白板推导系列视频
2 快速入门高斯过程(https://zhuanlan.zhihu.com/p/331591492)
3 高斯过程 Gaussian Processes 原理、可视化及代码实现(https://zhuanlan.zhihu.com/p/75589452)
4 不满足正态分布的数据到底能不能用Gaussian process的方法呢(https://zhuanlan.zhihu.com/p/33754819)
5 机器学习中的高斯分布(https://zhuanlan.zhihu.com/p/338669671)
推荐阅读
数据可视化的 30 个小技巧
如何通俗的理解协方差、相关系数?
神经网络的5种常见求导,附详细的公式过程
用 Python 画如此漂亮的专业插图 ?简直 So easy!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存