机器学习40讲_34_32_从有限到无限高斯过程
你好,我是王天一。
今天我和你分享的主题是从有限到无限高斯过程。
在上一讲中,我基于高斯分布介绍了建模连续型分布的这个概率图模型,也就是高斯网络。
其中所用到的多元高斯分布呢是一元高斯分布,它的扩展和推广。
但是在多元高斯分布当中,变量的数目依然是有限的。
如果像复叠变换那样,将无数个服从高斯概率的随机变量给它叠加到一块儿。
这个在向量空间上形成的高斯分布就变成了函数空间上的高斯过程。
在概率论和统计学中,高斯过程是由出现在连续域上的无穷多个随机变量所组成的一个随机过程。
不管这个连续域是时间也好,还是空间也好,在上面定义的这个无穷维的向量呢,都可以看成是一个函数。
高斯过程的高斯性,指的是这无穷多个随机变量联合起来共同服从无穷维的高斯分布。
如果说从中取出有限个一部分的变量的话,那么这些变量的边际分布也会具有高斯的形式。
不妨假设YX啊,这是一个高斯过程。
那么从空间尺度上看,如果在定义域当中取出任意一些点x一、x二一直到XN.那么这些点的联合分布呢就是一个多元的高斯分布。
更重要的是什么呢?这样的性质对于定义域上的任何子集都成立。
也就是说我不管如何去抽这些点,也不管他到底抽起来多少个点,只要抽出一些点。
那么这些随机变量的高磁性都能够一致的保持。
这是从空间尺度上看。
反过来从时间尺度上看,我们即使每次都抽取相同的点啊,就是x一、x二到SN啊,这些点是固定不变的。
那么随机过程的特性依然决定了啊我在不同的这个抽取的过程当中,样本每次独立的实现也都会有所差异。
但是在统计意义上啊,同一个自变量x一也好,x二也好,x三也好,我对它多次抽取得到的结果呢,也是满足高斯分布的。
从数据生成的角度来看,高斯过程呢还可以通过线性回归更加直观的理解,给定一个线性关系,y等于WT乘以x.那么对于每一个可能出现的全值向量,w都会有一条直线啊,或者说一个超平面和它对应所有w对应的直线呢就会布满整个的二维空间。
线性回归的任务是什么呢?就是找到那一条和训练数据符合程度最高,或者说匹配度最高的那一条直线,找到最优的直线,意味着确定后验意义之下啊,最优的线性技术。
W所以这个过程呢归根到底还是一个参数化的过程啊,它最终会以这个w这一组参数体现出来。
如果要将上面的这个参数化的过程过渡为完全非参数化过程的话,就需要摆脱对于参数w的依赖。
最直接的方法是什么呢?我不去定义w的鲜验,而是直接在函数空间上定义输出YX的鲜验,也就是给出YX啊,它取不同形式的一个概率。
这样一来呢,直接对函数建模的这种非参数模型就摆脱了参数模型的局限性,从而呢具备了更强大的拟合能力。
而对于函数性建模,最简单的模型就是给连续的YX赋予高斯型的线艳分布。
那么建模出来的结果呢,也就是高速过程。
在高斯过程当中啊,每一个可能的YX都是从高斯过程里抽取的一个样本。
那有限维度的高斯分布可以用均值向量,还有斜方差矩阵。
这两个数字特征呢完全的刻画。
但是在无穷维的高斯过程当中,这两者就不是固定的取值了,而是以一个函数的形式出现。
均值函数呢取决于这个训练数据x它体现的是什么呢?体现的是样本出现的整体的位置。
从整体来说这个位置是在哪啊通过均值体现出来。
一般来说呢,这个整体的位置通常被设置为零啊,这样处理的原因在于什么呢?和均值所代表的绝对位置相比啊,表示不同的数据点之间关系的斜方差矩阵才是高斯过程的关键所在。
所以呢在处理均值函数的时候,一般来说可以放心大胆的把它设定为零。
要理解斜方差函数在高斯过程当中的作用,首先要明确高斯过程的一个主要特点,那就是它建模的对象不是自变量x和因变量y之间的关系,而是不同的因变量y和y撇之间的关系。
正是这种思想呢决定了高斯过程它非参数的一个特性。
那么如何定义这个页面亮度之间的关系呢?啊,我要衡量y和y撇之间的关系啊,怎么来表示呢?就是通过协方差函数体现出来的,假定这个训练数据集是XY啊,那么线性关系当中的这个权重系数是w那么点击文档你可以看到输出的斜方差函数的一个表达式上面的这个小方差函数呢,可以刻画已知数据的相关性。
那么未知函数FX在XI和XJ这两个点上的函数值,它是服从二元高斯分布的均值呢,可以不失通用性的设定为零。
那么协方差矩阵就是在上面求出来的函数当中啊,我取对应的行,还有对应的列形成的二乘二的方阵。
在这个表达式当中呢,如果我引入这个奇函数的扩展啊,用five x对输入的自变量x给它做一个特征映射的话,这时候协方差函数的元素就会变成核函数的形式。
如果你一时没想起来核函数到底是什么东西啊,那就复习一下前面支持向量机相关的内容。
当协方差取做镜像积函数的形式的时候啊,它有了一个新的名字叫平方指数。
所以呢高斯过程实际上它就是核技巧在概率模型当中的扩展。
它是把输出的斜方差表示成为输入的函数。
再通过这个定义出来的斜方差来描述数据点之间的关系。
在预测新样本的时候,高斯过程它给出来的不是对预测结果的一个单点的估计。
啊,我只是给你一个结果啊,等于一等于二或者等于三,而是完整的一个概率分布啊,等于一,可能性有多大等于二,可能性有多大等于三,可能性有多大。
这是一般的匹率主义的方法所不能避前面。
对于高斯过程的理解呢,都是从函数空间的角度出发。
换个角度的话,高斯过程呢也可以从参数空间的角度来认识。
这种理解方式是将高斯过程应用到线性回归的拟合当中,所以也被称为高斯过程回归。
这部分内容呢实际上就是将上面的分析调转方向,我先来定义特征映射啊,把数据在拷维空间当中表示出来,再在这个高维空间上应用贝叶斯的一个回归分析啊,就可以得到高速过程的结果。
高速过程回归的数学细节呢较为繁荣,在这里呢就不做展开了。
感兴趣的话啊,你可以参考这个cow rospperson和christopher williams的著作。
机器学习当中的高斯过程结论是什么呢?用高斯过程计算出来的预测分布,它也是一个高斯分布,他的均值呢是后验意义下的最优估计。
方差则表示了估计结果的可信范围。
这两个参数它都和高斯过程的协方差函数啊,也就是这个核函数有关。
使用不同的核函数呢得到的估计结果也是不会一样。
在这个高斯过程当中啊,我们之所以选择高斯分布做先验,一方面呢是因为它符合之前介绍过的最大熵定理。
当这个随机变量的斜方差矩阵给定的时候,高斯分布它的不确定性是最大的这就符合机器学习当中不做出多余假设的一个思想。
另外一方面,高斯分布它良好的数学特性,也让它适用于贝叶斯主义的方法,对于高斯分布进行边界化处理,得到的结果呢依然是高斯分布。
这对于会涉及到大量积分计算的贝叶斯方法来说啊,无疑是一个再好不过的消息。
那么作为一类非参数的局部化模器,高斯过程,它和其他的局部化模型又有什么区别和联系呢?不妨在这儿我们给它做个比较核回归,就是一种局部化的回归模型。
它利用的呢是核函数的平滑作用,用核函数对未知数据点附近的已知数据点的输出结果啊进行加权。
再将加权的结果呢作为未知数。
据点的输出啊,实际上就相当于把未知数据点看成若干个已知数据点的一个组合啊,这个组合的权重取决于恒函数。
这呢相当于将输入空间划分成为不同的局部区域,分成若干个小片儿啊,每一个局部每一个小片上拟合一个常数,CT零作为输出。
如果在核回归的基础上,我再深入一步,那就是局部加权回归。
局部加权回归呢,它也是把输入空间分成小片啊,只不过每个局部上拟合的目标不是一个常数,而是一个一阶的线性模型。
西塔零加上西塔一乘以x本质上讲呢核回归也好,局部加权也罢。
这些局部化的回归模型,实际上呢就是套上核函数外一的一个k近邻的方法,它和k近邻方法本质上是一样。
这里面的核函数呢并没有统计特性上的意义,只是作为一个加权系数来出现,所以呢被称为叫平滑河。
平滑河必须满足的就是规划的条件,也就是所有权重系数的积分等于一。
啊,满足这个概率的规划。
相比之下呢来源于斜方差函数的这个和完全满足正定的条件是根红苗正的。
这个莫斯尔和当然了,根据高斯过程的核函数,可以计算出对应的一个平滑系数,那么计算出来的结果呢被称为等价核。
既然说到核函数,就不能不提它最经典的应用,也就是支持向量机利用数学推导,可以得出在处理二、分类问题的时候,支持向量机和高斯过程的损失函数具有类似的形式。
区别在于说前者使用的是荷叶的损失函数,后者使用的呢是似然概率的负对数。
如果说我能把支持向量机里面的荷叶损失等价为某种形式的自然概率,那这两种方法就完全等效。
但是遗憾的是呢,这样的似然概率它并不存在。
需要说明的一点是,将高斯过程应用于二分类问题当中的时候,这个高斯分布的特性啊反倒会成为运算当中的一个掣轴。
常用的处理方法呢是对高斯过程进行拉普拉斯近似,具体做法是枪求解出来的预测分布的对数进行泰勒展开,将二阶项以上的高阶巷全部都给它去掉。
由于后验概率的方差通常比较小,那它的形状就是狭窄的尖峰形式。
所以这种近似呢并不会造成太大的误差啊,这说明连续分布的这个高斯分布啊也不适用于离散的这个情况。
最后一个用来和高速过程进行比较的模型,就是大名鼎鼎的神经网络。
通用b鉴定理证明了具有单隐藏层的神经网络,可以拟合任何非线性的函数。
Rapple neil在他的著作神经网络的贝叶斯学习当中,进一步证明了单隐层的神经网络会收敛到哪儿呢?收敛到所有参数都服从高斯先验这样的一个高斯过程。
换言之啊,高速过程和神经网络两者是可以相互取代的,但并不是所有人都认同这种观点。
信息论推理与学习算法的作者david mickie就表示,神经网络的作用在于发现数据当中潜在的特征与模式,而高斯过程呢只是简单的函数平滑。
如果两者真的等效,那岂不是意味着我们都高估了神经网络吗?这种现象啊被麦k称为连孩子带洗澡水一起倒丢了。
可是在十多年后的今天,再回首的话,麦凯所言好像一点毛病都没有。
在SK lann当中呢,高速过程被定义在gltian process模块模块中的类一部分,用来实现回归或者分类功能。
另一部分呢则定义了常用的核函数,将高斯或程应用在回归数据集和线性不可分的分类数据集之上。
点击文稿,你可以看到得到的结果。
这里面呢使用的荷安数就是最常见的高斯核。
在回归问题当中,高斯过程的回归器拟合出来的结果,实际上就是利用高斯函数对原函数进行一个差值的拟合。
其中的红色曲线呢是多次模拟得到的均值。
灰色阴影则表示,百分之九十五的置信区间在分类问题当中,高斯过程分类器计算出来的既可以是直接的输出类别啊,这就体现为图中的角色边界,也可以输出样本归属于类别的概率。
当然了,如果你调整核函数的形式和参数,那么得到的结果也会有所不同。
今天我和你分享了高斯过程的基本原理,包含着以下四个要点。
第一,高斯过程由无穷多个随机变量组成,它定义了函数的前验分布。
第二,函数空间上的高速过程是核技巧在概率模型中的应用。
第三,参数空间站的高速过程是高维空间当中进行的。
贝叶斯的回归分析。
第四,高斯过程可以通过等价和似然概率和高斯先验与其他的模型联系起来。
在高斯过程当中,一般的惯例是将均值函数设置为零。
那么如果均值函数是非零的函数,它对高斯过程的结果又会产生什么影响呢?你可以查阅相关资料,并在这里分享你的见解。