核心预备知识

  1. 能够区分频率学派和贝叶斯学派求解模型时的思想区别。
  2. 熟悉最基础的概率运算公式(本科内容)。
  3. 熟悉线性代数以及微积分的运算(本科内容)。
  4. 熟悉贝叶斯公式,并能理解后验以及先验所代表的物理含义。
  5. 了解核方法,核技巧的定义。
  6. 熟悉多维高斯分布的运算规则。

1.基于贝叶斯线性回归推导GPR

1.1 贝叶斯线性回归的基本模型

在理解GPR之前,我们先了解一个算法,叫做贝叶斯线性回归(Bayesian Linear Regression, BLR)。本质上,GPR就是将BLR进行了非线性化处理后得到的。因此,我们会对BLR进行详细的推导。如果你这部分能够自己推导出来,那也就相当于把GPR给推导出来了。
首先给出贝叶斯线性回归的基本公式:
GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习
其中GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_02GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_03GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_04GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_05是一个服从零均值,方差为GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_06的噪音变量,这个变量独立于任何随机变量。贝叶斯学派认为,上述公式中的参数GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_07也是服从一个分布的,因此,这里给这个参数设定一个先验分布以表示“我们认为这个参数大致应该在什么范围波动”。即GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_08

1.1.1 贝叶斯线性回归所属学派

在开始推导之前,我们简单的说一个基础概念,也就是目前机器学习或者说是数据挖掘算法的两种求解参数的思考模式。

  1. 基于贝叶斯学派的思考模式:我们需要解决的问题是——“在已有了部分数据的条件下,GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09的后验分布GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_10是怎样的。在我们求得后验分布后,再求导获得最优参数值。(如果是高斯分布,那就直接取均值作为一个最优的参数值即可)。”,这个方法的典型代表就是最大后验估计(MAP)。
  2. 基于频率学派的思考模式:我们需要解决的问题是——“在已有了部分数据的条件下,GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09应该取什么值才是最有可能使得还原后的GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_12与原始数据中的GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_13差距最小”,这个方法典型代表就是极大似然估计(MLE)。

而BLR则是属于第一种思考方式。因此BLR的目的是在给定数据后,推导出GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_07的后验分布——GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_15。这一步也叫inference步,也就是推导步骤。下面我们来详细的推导一下这一步。

1.1.2 BLR模型推导——Inference

我们假定现在有一个含GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_16个样本的数据集GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_17,其中GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_03GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_19GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_20。这时,已经明确了我们需要推导的目标是GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_21。此时,我们需要整理出现在已知的信息。
整理:

  1. 第一个已知知识
    根据BLR的定义以及噪音的定义,并根据基本的高斯概率求和法则,我们可以知道:GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_22。随后我们将GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_23中的数据带入进行联乘,就可以得到下式的具体表达式:
    GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_24
  2. 第二个已知知识
    根据贝叶斯学派的定义,认为参数W的先验是服从一个高斯分布的,即:
    GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_25

已知的信息就整理完毕了。那么如何利用这两点已知信息去求取GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_21的表达式就是接下来要推导的步骤。

  1. Inference步:
    首先依据概率运算法则以及贝叶斯公式将参数的后验概率进行改写,改写过程如下:
    GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_27
    GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_28
    通过改写,我们发现后验概率GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_10可以通过这样的公式GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_30进行推导。这个公式中,唯一不知道的表达就是GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_31。但是,需要指出的一点是,参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09是不会随着GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_33的变化而变化的,因此参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_33是独立的。所以就有GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_36。这样一来,整个式子都是由我们整理出的已知信息表达出来的。那么自然后验概率就可以直接计算得到。因此有:
    GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_37
    到这里,有一个难点需要理解,那就是是否需要计算上式的分母。答案是:可以不计算。
    原因就在于分母部分已经对GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09进行了积分。因此分母和参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09无关,在求导时分母部分可以直接略掉,因此,分母和参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09的极值点无关。那么现在就可以知道,其实上式可以转化为:
    GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_41
    需要明确的是,我们最终求取的目标只是分布GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_10的均值,其他都可以不用管,那么在高斯分布中,涉及均值的地方就只有GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_43指数部分。因此在计算GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_44的时候,我们可以将GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_45这部分剔除掉,只剩下GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_43的指数部分进行连加或者连减操作(这里已经说明得很详细了,大家可以下去自己推导,过程这里我就不展示了)。最终得到的结果就是:
    GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_47
    GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_48
    其中GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_49
    这时后验分布的均值就是我们需要求的参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09
    这时,我们已经实现了通过贝叶斯理论进行Inference,从而求得最好的参数的步骤。那么接下来就是考虑如何利用这个参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09对新来的数据进行预测了。

1.1.3 BLR模型推导——Prediction

假设在给定原数据集GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_52的基础上,新来了一个输入样本GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_53,此时,我们需要求的就是这个样本所对应的GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_54的值(后续将GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_54简写为GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_56)。注意:如果不存在噪音GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_57,那么GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_56就等于GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_59,但是为了描述更具有泛化性,后续的推导会考虑噪音。上述要求就变成了一个问题,那就是——在给定训练样本GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_52以及输入样本GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_53的前提下(条件下),GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_56的最可能的值是多少?我们将其转化为数学描述就是:
GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_63
根据我们已知的模型形式,可以知道:
GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_64
GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_65
注意,因为我们后续是要求的GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_66的最可能的值,换句话说,也就是期望。因此根据贝叶斯学派的思路,这里的参数GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09是需要以随机变量的形式去理解的,不能理解为一个定值。
那么根据Inference步骤,我们知道了随机变量GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_07是服从GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_69分布的。
所以结合GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_70得知,GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_71是服从GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_72,(这里大家可以自己去推一下为什么会服从这个分布,推导很简单)。这时候就需要思考一个问题了,这样的GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_71在没有给定数据GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_52以及数据GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_53的情况下是无法计算的,所以,显然上述推导是在给定了GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_52以后才会推导出GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_07的分布,才会有上述的推导过程。因此,实际上就是:
GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_78
那么考虑噪音对方差的影响,就变成了:
GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_79

1.1.4 BLR推导小结

我们可以通过上面的推导看到,由于假设的模型关系是线性的,即GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_80, 所以BLR主要是解决的线性问题。那么如果将GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81考虑成经过非线性映射后的输入GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_82,模型结构是否会发生变化呢?这就是下一节要讲的基于权重空间去理解并推导GPR。

1.2. GPR:基于权重空间角度理解与推导

1.2.1 模型基本定义

与BLR一样,GPR的模型形式不变,但在输入空间GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81上进行了非线性变换,即将GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81转化为了GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_82
GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_86
可以看到,虽然仍然有一个线性变换参数GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_87,但是由于输入空间发生了变化,因此整个函数已经成为非线性的函数了,也就是说,GPR可以解决非线性的问题。
那么目前主要的任务就是将这个GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_82求解出来。那么怎么求解的呢?这部分其实就是GPR的精髓部分了。GPR不求出这个函数,而是只求得这个函数与自己的内积。为什么可以这样呢?接下来就是对这个方法的解释。

1.2.2 模型推导

首先,我们可以看到在整个模型中,除了作为输入的GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81发生了变化,其他任何参数都没有变。那么,这意味着什么呢?这意味着我们可以一步步的完全按照BLR的推导规则来求得GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_21,然后给出预测值,GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_91。如果你们自己推导了上述步骤,就会知道,最终的结果就只需要将GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81都换成GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_82就行了。如果没有推导,那么至少到目前你能知道,BLR中的任何一步对于代数GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81来说都是一种线性变换,根据线性变换的齐次性,也能知道只需要将结果中的GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_81变成GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_82即可。
在明确了这样的想法的情况下,模型推导过程将会和BLR一模一样,因此这里就直接给出结果:

  1. 参数GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_97的估计结果
    GPR中,给定了数据S后,GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_09的分布如下:
    GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_99
    其中
    GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_100
    GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_48
    其中GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_102
  2. GPR的预测结果
    GPR中,给定数据GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_23,来了新数据GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_104时对应的预测值GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_66如下:
    GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_106

那么此时问题就来了,在预测值公式GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_107中含有未知项GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_108,如何求取具体值呢?并且如何求取GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_109呢?

  1. 第一个问题,如何求取GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_110GPR 高斯过程回归分析 python 高斯过程回归模型_概率论_110是借助woodbury公式也就是:
    GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_112
    来求得。由于这部分全部都是代数求解工作,没有什么算法上的复杂思想,因此这里就不详细介绍了(个人不建议非数学专业的同学推导,因为此部分的推导过于复杂)。直接给出推导后最终预测均值的形式:
    GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_113
    含噪音的预测的方差:
    GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_114
  2. 第二个问题,就是如何求取GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_115呢?
    这个问题会通过“核技巧”来解决,这里不介绍核方法是什么东西了,直接给出定义:
    通过核方法,我们能找到一个核函数来求得两个非线性变换函数的内积。也就是
    GPR 高斯过程回归分析 python 高斯过程回归模型_线性代数_116
    那么这个时候就可以看上面的式子中,都存在GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_117这么一项,那么很自然的想法就是,将这一项拆分为GPR 高斯过程回归分析 python 高斯过程回归模型_大数据_118GPR 高斯过程回归分析 python 高斯过程回归模型_机器学习_119,很明显,这两项就是同一个非线性方程的内积。所以这部分就可以用一个核函数来代替。因此,我们无需具体求解出非线性映射GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_120的具体形式,依然可以求出我们需要的东西。
    经过这样转换后,具体的预测结果就被简化成了我们常见的形式,也就是:
    GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_121
    GPR 高斯过程回归分析 python 高斯过程回归模型_GPR 高斯过程回归分析 python_122

1.2.3 GPR小结

GPR的推导是基于BLR的,因此本质上, GPR是BLR方法进行非线性化后的版本,非线性化的过程借助了较多的数学推导以及核技巧,但总体思想不难。因此只要掌握了BLR的推导过程,GPR就自然而然的推导出来了。最后,对于核函数的选择则可以根据自己的需要进行选择。至于核函数中的参数,可以人工选择,也可以通过MLE方法进行优化,参数优化这部分较为简单,各位可以自己思考并推导如何优化这些参数。至此为止,基于权重空间的GPR推导就全部完成。

2. 声明

全文均是在参考部分书籍与文献的基础上进行的自主撰写与推导,如需转载请注明出处,部分思考如有不当之处也悉请各位指正。