文章目录

  • 1.背景介绍
  • 1.1 思维导图
  • 1.2 详解Gaussian-Process
  • 2.权重空间角度
  • 2.1 回顾贝叶斯回归
  • 2.2 核技巧引出
  • 2.3 核技巧分析
  • 2.4 小结
  • 3.权重空间到函数空间
  • 3.1 高斯过程定义
  • 3.2 回顾权重空间贝叶斯角度
  • 3.3 小结
  • 4.函数空间角度
  • 4.1 背景
  • 4.2 已知联合概率求解条件概率
  • 4.3 小结


1.背景介绍

高斯过程英文名为Gaussian-Process,这里得高斯指的是高斯分布,过程指的是随机过程,对于一维高斯分布来说,其概率密度函数为高斯回归过程python代码 高斯过程回归应用_连线,如果对于高维高斯分布来说,就对应于高斯网络;如果当维度趋近于正无穷时,那么就是我们所说得高斯过程。

  • 高斯过程定义(Gaussian-Process)
    高斯过程是定义在连续域上的无限多个高维随机变量所组成的随机过程。其中连续域一般指的是时间和空间上的连续

1.1 思维导图

高斯回归过程python代码 高斯过程回归应用_连线_02

1.2 详解Gaussian-Process

为了更好的说明高斯过程,我们用一个形象的例子去描述高斯过程,在此我们先定义如下数据

  • 定义一组随机变量 高斯回归过程python代码 高斯过程回归应用_思维导图_03
    高斯回归过程python代码 高斯过程回归应用_权重_04
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_05
  • 举例说明
    我们用小明的一生表示时间 t=[0,100],姑且他能活到100岁,则高斯回归过程python代码 高斯过程回归应用_权重_06,对于每一个时刻 高斯回归过程python代码 高斯过程回归应用_权重_07服从高斯分布(高斯回归过程python代码 高斯过程回归应用_思维导图_08),我们用 高斯回归过程python代码 高斯过程回归应用_权重_07 表示这个人在人生的第 t 时刻的表现,且用定量的[0,100]来表示此刻表现值。且这个表现值在 高斯回归过程python代码 高斯过程回归应用_权重_07 时刻也是服从高斯分布的。我们假定他的医生在 t = 0 时刻已经确定了,即在 t > 0 的每一个时刻,高斯回归过程python代码 高斯过程回归应用_思维导图_11都是固定值。
  • 整个高斯过程的样本生成
    为了描述小明的一生,我们需要在小明的人生的每一个时刻进行采样,这样得到的样本连线就是高斯过程的一个样本,假设有多个平行宇宙,那么我们可以分别在每个宇宙中采样得到样本连线来充当高斯过程的一个样本,即小明的每一个完整的人生就是高斯过程的一个样本,具体如下图红蓝线所示:
  • 小结
    对于单个的 高斯回归过程python代码 高斯过程回归应用_思维导图_03来说,它是服从高斯分布的,对于由高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_13组成的整个数据也是服从高斯分布的。
  • 高斯过程数学表达式
    高斯回归过程python代码 高斯过程回归应用_权重_14
    注:m(t)表示为mean-function;K(s,t)为covarience-function
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_15

2.权重空间角度

2.1 回顾贝叶斯回归

 贝叶斯回归分两个部分

  • inference 部分
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_16
    高斯回归过程python代码 高斯过程回归应用_权重_17
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_18
  • Prediction 部分
    高斯回归过程python代码 高斯过程回归应用_思维导图_19
    高斯回归过程python代码 高斯过程回归应用_连线_20
  • Model 数学模型
    高斯回归过程python代码 高斯过程回归应用_连线_21
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_22
  • noise-free
    高斯回归过程python代码 高斯过程回归应用_连线_23
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_24

注:在贝叶斯线性回归中,此时的 f(x) 与 X 之间是线性回归的,那如果我们发现数学模型model不是线性回归怎么办?我们是不是希望有一个非线性转换来将非线性关系转换成线性关系。我们联想到支持向量机SVM中的核技巧,核技巧就是一种将非线性问题转换成线性问题的方案,所以我们最终就演变成了核技巧的贝叶斯线性回归,也就是高斯过程的本质;具体描述如下:

高斯回归过程python代码 高斯过程回归应用_思维导图_25


对于非线性转换来说,我们可以定义一个函数来表示从X 到 Z 通过函数进行转换,具体如下:

高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_26

那么我们可以定义高斯回归过程python代码 高斯过程回归应用_连线_27

高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_28

高斯回归过程python代码 高斯过程回归应用_思维导图_29

  • 数学模型model更新如下:
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_30
  • 可得更新后的inference如下:
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_31
    高斯回归过程python代码 高斯过程回归应用_思维导图_32

2.2 核技巧引出

对于上述公式,我们可得 高斯回归过程python代码 高斯过程回归应用_连线_33,现在我们遇到的问题是如何计算 A 和 高斯回归过程python代码 高斯过程回归应用_思维导图_34,现在我们引入一个新的公式如下:

  • Woodbury Formula 公式
    高斯回归过程python代码 高斯过程回归应用_权重_35
    现在我们需要通过配方法去凑核技巧函数:
  • 由 A 的定义可得:
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_36
  • 两边同时乘以高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_37可得如下:
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_38
  • 两边同时乘以 高斯回归过程python代码 高斯过程回归应用_权重_39可得:
    高斯回归过程python代码 高斯过程回归应用_连线_40
  • 高斯回归过程python代码 高斯过程回归应用_思维导图_41
    高斯回归过程python代码 高斯过程回归应用_连线_42
  • 整理上述公式可得如下:
    高斯回归过程python代码 高斯过程回归应用_权重_43
  • 两边左乘以 高斯回归过程python代码 高斯过程回归应用_权重_44,右乘 Y 可得如下:
    高斯回归过程python代码 高斯过程回归应用_连线_45
  • 对比公式14 可得
    高斯回归过程python代码 高斯过程回归应用_思维导图_46
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_37是来自于p(w)的,高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_48也为已知条件,所以期望可以求得,那么我们现在就剩下方差了。
    同理可以的方差如下:已知 A ,再求解 高斯回归过程python代码 高斯过程回归应用_权重_49,最后代入即可:
  • 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_50
    高斯回归过程python代码 高斯过程回归应用_思维导图_51
  • 我们令 高斯回归过程python代码 高斯过程回归应用_权重_52
    高斯回归过程python代码 高斯过程回归应用_连线_53
    高斯回归过程python代码 高斯过程回归应用_思维导图_54
  • 对于期望 高斯回归过程python代码 高斯过程回归应用_连线_55,方差 高斯回归过程python代码 高斯过程回归应用_连线_56,来说,我们整理出核函数相关项,如下:
    高斯回归过程python代码 高斯过程回归应用_权重_57
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_58
  • 注:我们定义过 高斯回归过程python代码 高斯过程回归应用_权重_59
    现在我们就有一个新的想法,是否有一个核函数作为以上相关项的通项,这样我们就避免求很多了。从而引出了我们需要用到的核技巧(Kernel-Trick)

2.3 核技巧分析

我们定义一个函数如下所示:
高斯回归过程python代码 高斯过程回归应用_连线_60
对于两个样本 x 和 x’ 来说,我们希望这个函数是满足核函数的相关性质,如果这个函数 K(x,x’)满足核函数,那么我们就很方便的处理上面的期望 高斯回归过程python代码 高斯过程回归应用_思维导图_61,方差 高斯回归过程python代码 高斯过程回归应用_权重_62.

  • 定义 高斯回归过程python代码 高斯过程回归应用_权重_63是一个正定的对称矩阵,从而满足如下公式:
    高斯回归过程python代码 高斯过程回归应用_思维导图_64
  • 将公式29进行整理可得:
    高斯回归过程python代码 高斯过程回归应用_连线_65
  • 定义 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_66,整理后可得如下:
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_67
    综上所述,我们可以用核技巧来处理非线性转换问题,而避免去求 高斯回归过程python代码 高斯过程回归应用_连线_68 函数。而是直接用函数 K(x,x’)来直接进行低维空间到高维空间的转换。这样就很神奇了,我们不需要管具体的内在函数 高斯回归过程python代码 高斯过程回归应用_连线_68

2.4 小结

  • 思维导图如下:

对于高斯过程回归GPR来说,如果我们从权重空间角度来看待这个问题,那么就相当于贝叶斯线性回归背景下的核技巧方法。贝叶斯线性回归加上核技巧中包含了非线性转换和内积公式。因为有了核技巧,那么我们就不需要直接求解 高斯回归过程python代码 高斯过程回归应用_连线_27

  • 权重空间角度:
    对于此角度来说,我们知道数学模型如下:
    高斯回归过程python代码 高斯过程回归应用_权重_71
    此时的研究对象是 W ,我们假设 W 为一个随机变量分布,我们需要求得在给定数据下的关于w的后验分布。
  • 函数空间角度
    对于函数空间角度来说,我们的研究对象变成了高斯回归过程python代码 高斯过程回归应用_思维导图_72为随机变量 ,满足如下条件:
    高斯回归过程python代码 高斯过程回归应用_权重_73
  • 相互关系
    Gaussian Process Regress is the extension of Bayesian-Linear-Regression with kernel trick;具体来说就是,当我们要用贝叶斯线性回归解决分类问题时,发现这个遇到的问题居然是非线性问题,那我们只好进行非线性转换,那怎么转换了?此时我们脑洞大开,能不能用之前在支持向量机中的核技巧的方式来找到一个核技巧函数,从而来一步到位的把非线性问题转换成线性问题,最后我们发现真的可以解决上述问题,以上就是权重空间角度在高斯过程回归的主要思路。

3.权重空间到函数空间

3.1 高斯过程定义

  • 高斯过程定义(Gaussian-Process)
    高斯过程是定义在连续域上的无限多个高维随机变量所组成的随机过程。其中连续域一般指的是时间和空间上的连续
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_74
  • 我们令 高斯回归过程python代码 高斯过程回归应用_连线_75,如果满足如下高斯分布
    高斯回归过程python代码 高斯过程回归应用_连线_76
  • 那么就符合高斯过程
    高斯回归过程python代码 高斯过程回归应用_连线_77
  • 高斯过程性质如下:
    高斯回归过程python代码 高斯过程回归应用_思维导图_78
    注: 高斯回归过程python代码 高斯过程回归应用_连线_79 : mean-function ; 高斯回归过程python代码 高斯过程回归应用_权重_80= covarience-function(核函数);详见高斯过程存在性定理

3.2 回顾权重空间贝叶斯角度

我们知道贝叶斯回归的数学模型如下:( 关注对象为 W )
高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_81
当我们用贝叶斯方法的时候,我们先给定一个先验 高斯回归过程python代码 高斯过程回归应用_权重_82 ,因为高斯回归过程python代码 高斯过程回归应用_连线_83,所以,我们可以求解关于 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_84的期望E(f(x))和协方差高斯回归过程python代码 高斯过程回归应用_权重_85

  • 关于f(x)的期望 E[f(x)]
    高斯回归过程python代码 高斯过程回归应用_权重_86
  • 关于f(x)的协方差高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_87
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_88
    高斯回归过程python代码 高斯过程回归应用_权重_89
  • 因为高斯回归过程python代码 高斯过程回归应用_思维导图_90
    高斯回归过程python代码 高斯过程回归应用_思维导图_91
  • 因为 高斯回归过程python代码 高斯过程回归应用_连线_92结果为一维的数,所以可得:高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_93
    高斯回归过程python代码 高斯过程回归应用_连线_94
  • 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_95
    高斯回归过程python代码 高斯过程回归应用_权重_96
    这个结果是不是很神奇,居然是我们在上面讲解的核技巧函数(Kernel-Trick)
  • 定义 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_66,整理后可得如下:
    高斯回归过程python代码 高斯过程回归应用_权重_98
  • 小结:
    我们惊奇的发现一个问题,当我们定义高斯回归过程python代码 高斯过程回归应用_思维导图_72为随机变量的时候,得到如下公式:
    高斯回归过程python代码 高斯过程回归应用_连线_100
    这个分布是不是就跟我们高斯过程的定义一摸一样,详见公式38。

3.3 小结

高斯回归过程python代码 高斯过程回归应用_权重_101时,我们发现高斯回归过程python代码 高斯过程回归应用_连线_102组成的一系列随机变量,可以看作是一个高斯过程。
高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_103
注:高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_84是一个函数,高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_84是一个服从高斯分布的随机变量

  • 对比:
    高斯回归过程python代码 高斯过程回归应用_连线_106
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_107
    是不是很神奇。
    如果是高斯过程回归,我们从权重空间角度来分析,我们关注的是参数 W,如果是从函数空间角度,我们关注的函数 高斯回归过程python代码 高斯过程回归应用_思维导图_72
  • 权重空间角度的预测问题 高斯回归过程python代码 高斯过程回归应用_连线_109
    高斯回归过程python代码 高斯过程回归应用_思维导图_110
  • 函数空间角度的预测问题 高斯回归过程python代码 高斯过程回归应用_连线_109
    高斯回归过程python代码 高斯过程回归应用_思维导图_112

4.函数空间角度

4.1 背景

对于函数空间角度来看,我们研究的是函数 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_84,使得满足如下:
高斯回归过程python代码 高斯过程回归应用_权重_114
高斯回归过程python代码 高斯过程回归应用_连线_115
为了方便后续的计算,我们定义如下数据:
高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_116
因为 f(x) 也服从高斯过程,则可得如下性质:
高斯回归过程python代码 高斯过程回归应用_思维导图_117
对于数学模型来说 :高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_118,由此可得如下:
高斯回归过程python代码 高斯过程回归应用_连线_119

  • 模型的目标
    那么我们对应于新的数据 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_120,我们的目的是要找到新的 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_121 ;
    高斯回归过程python代码 高斯过程回归应用_权重_122
  • 思路
    我们的思路是先找到 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_123的联合概率密度,在根据联合概率密度求解条件概率的方式直接求得结果;
  • 详细过程如下:
    我们定义一个由 Y 和 f(x) 组成的联合概率,具体如下:
    高斯回归过程python代码 高斯过程回归应用_权重_124
  • 注:我们令 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_125

我们来回忆一下以前讲过的根据联合概率密度求解条件概率的例子,详见链接14-高斯分布基础知识

4.2 已知联合概率求解条件概率

  • 已知条件:
    高斯回归过程python代码 高斯过程回归应用_思维导图_126
  • 结论:
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_127
    高斯回归过程python代码 高斯过程回归应用_权重_128
    高斯回归过程python代码 高斯过程回归应用_思维导图_129
  • GP结果分析
    我们要求的是高斯回归过程python代码 高斯过程回归应用_连线_130,因为 高斯回归过程python代码 高斯过程回归应用_思维导图_131所以 Y 里面就包含了 X,因为高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_132包含了 高斯回归过程python代码 高斯过程回归应用_权重_133 ,所以也可以忽略,即可得如下:
    高斯回归过程python代码 高斯过程回归应用_连线_134
    结果求解条件概率如下:
    高斯回归过程python代码 高斯过程回归应用_权重_135
    高斯回归过程python代码 高斯过程回归应用_思维导图_136
  • 整理后可得:
    高斯回归过程python代码 高斯过程回归应用_连线_137
  • 由模型可得 高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_138
    高斯回归过程python代码 高斯过程回归应用_思维导图_139
    高斯回归过程python代码 高斯过程回归应用_高斯回归过程python代码_140
    高斯回归过程python代码 高斯过程回归应用_权重_141

4.3 小结

对于高斯过程来说,不管是从权重空间角度还是从函数空间角度来看,最终得到的结果都是一样的,只不过当我们用函数空间角度来思考分析高斯过程时,整个过程是比较简单的。