python高斯噪声怎么去除_高斯过程和高斯过程回归

python高斯噪声怎么去除_高斯过程和高斯过程回归_第1张图片

本文未经允许禁止转载,谢谢合作。

本文我们介绍高斯过程及其在机器学习中应用的一个例子——高斯过程回归。

高斯过程在语音合成中有广泛的应用,我计划在之后的文章中介绍一些应用,但本节我们重点讨论相关的基础知识。

本文的大部分内容来自Stanford CS229-gaussian_process,有兴趣的同学可以去看英文原版。

明天是元旦,因此也祝大家元旦快乐。

1. 多元高斯分布

1.1 定义

设随机变量

服从均值为μ,协方差矩阵是Σ的
多元高斯分布,如果:

11b3d4ddcac6b3c52e1c5f6a187c6e62.png

我们用

来表示。这里Σ是对称正定的n × n矩阵。

多元高斯变量在机器学习中非常常用,主要是因为它有下面两个特点:

① 可以用来建模噪声

② 在很多积分中,如果有高斯分布,则很多情况下可以得到简单的封闭形式的解。

1.2 性质

我们首先假设x被分成了两个部分

,μ和Σ也一样,满足下式:

454c8b23ef3cbc6135ee68cef090fe75.png

那么有下面的性质成立:

① Normalization

cc7a8f87537d8bbb9dc80cd42af6bafe.png

② Marginalization

的边缘分布:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第2张图片

也是多元高斯分布,满足:

7ad5e62edec52455e1584e7c939ee6c6.png

③ Conditioning

以高斯随机变量作为条件的分布还是高斯分布,比如:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第3张图片

满足:

da3c1fadfe09d83fa1434c4897ee5c5e.png

证明比较繁琐,这里略过,但这个结论对后面的讲解比较重要,大家需要重点关注一下。

④ Summation

相同维度的独立高斯随机变量的和仍然满足高斯分布:

0533b912baf4893bf1c5341e4a06620a.png

2. Bayesian Linear Regression

是训练集,分布未知。

回忆线性回归模型:

a6bb312ac40e3b0d7cc654e7fd6f0f06.png

这里

是独立同分布的噪声随机变量,服从
,很容易可以得到:

bb7d54775c942b64335b93dd911957b4.png

如果给定了

,那么上式可以等价地表示为:

f16b2ee23ea3f04ee72403249b814b48.png

我们定义下面的符号,用来简化符号:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第4张图片

当然,参数

一般是未知的。

为了处理参数,在贝叶斯线性回归中,我们一般会假设参数

服从一个先验分布,最典型的就是高斯分布:

59e737796ea3dd6676aca9adb84aebfb.png

使用贝叶斯规则,我们可以得到parameter posterior

c827b3a361d7395936367b0605d01908.png

在这种情况下,如果我们假设测试集中的点也满足和训练集一样的模型,那么贝叶斯回归的输出就不是一个固定的点,而是输出的分布:

7c1f6451d13fb2fda6aaa76d61dba766.png

我们称这个分布为posterior predictive distribution

当然,上面的式子看起来优雅,但是对于很多模型来说,实际计算时却是基本算不出来的,因为随着训练集或者参数维度的增加,复杂度就会飞速增长。因此一般情况下我们会避开直接计算,使用估计的方法来计算上式,比如最典型的MAP估计。

幸运的是,在贝叶斯回归中,上式是可以计算出来的,经过复杂的计算我们可以得到:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第5张图片

其中:

dd70efdb57fd15c5c2d69594394650ad.png

从上式中我们可以发现,任何测试点

的分布都服从某个高斯分布,从直觉上来说,这是因为我们假设参数
和噪声
都满足高斯分布。

与此相对照,回忆在最简单的线性回归中我们的做法,我们对参数

和偏移
都没有指定概率分布,而是根据训练集和某个指标(比如MSE)来直接得到参数。

“不确定性”就是两者之间最根本的区别。

python高斯噪声怎么去除_高斯过程和高斯过程回归_第6张图片

3. 高斯过程

高斯过程是多元高斯分布在无限实变量集上的扩展。不同于多元高斯分布,高斯过程甚至允许我们考虑随机函数(random function)的分布。

我们这里解释一下随机函数这个概念,一般来说我们理解的随机变量的“随机”都体现在其值上,但在这里,随机函数的“随机”则体现在它的映射规则上,然而,虽然映射是随机的,但一旦我们确定了映射,则函数的值就是确定的。

3.1 有限域上的随机函数概率分布

实任意有限集,我们考虑所有可能的
所组成的函数集合
,比如:

fe9eede2a1965d1bf94ef64ce0252e7f.png

因为

的定义域是有限的,因此我们可以用向量来表示这个函数:

a69ef74898f7a897c411b71e8514ed63.png

这种向量表示为我们将概率分配给某个函数提供了一种渠道,我们假设:

c324217502cf6ce57646a08d1fbbdb56.png

这样我们就可以得到

的pdf:

c7d2c9324483bdc64fc6d04a8ecb6cde.png

上面的例子是典型的有限定义域上随机函数的建模方法,那么无限域上怎么做呢?

3.2 无限域上的随机函数概率分布和高斯过程

所谓随机过程就是一个随机变量的集:

032c37287df27b2889e447f43cc4c79a.png

这里

是index set。

我们定义高斯过程是一个随机过程,满足随机变量集合的任意有限子集都服从多元高斯分布。

为了解释这个性质,我们定义均值函数(mean function)

和协方差函数

如果随机变量集

fb602fdaf5e11c312736ddf865703c7e.png

是从均值函数为

、协方差函数为
的高斯过程中取出的变量集,那么对于任意有限集合:

3794acf1fea3c70dc12e9cbc4b4f4ea1.png

它们相对应的随机变量f(xi)服从多元高斯分布:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第7张图片

记为:

d42b456f57b61b46a23fcb274373ca03.png

我们可以将均值函数和协方差函数理解为,对任意

,有:

eaa5271e8c4be0bdd2bbb91ede855fcb.png

给定定义之后,我们可能会问,什么样的

才是有效的呢?从均值和协方差的角度我们可以想象到,
可以是任何实函数,但是对于
,由于:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第8张图片

是一个多元高斯分布的协方差矩阵,因此

必须是半正定的。

看到这个条件,对SVM中核函数很熟悉的同学应该懂了,这个条件其实和合法核函数的条件(Mercer条件)是等价的,因此任何合法的核函数都可以作为协方差函数

你可能已经发现,在上一节中我们利用多元高斯分布解决了有限域上的随机函数的定义问题,既然高斯过程定义在无限域上,那么我们在上一节最后提出的问题也就迎刃而解。

3.3 平方指数核

考虑零均值高斯过程(今后为了简便,称高斯过程为GP):

a6187be29b7a90018de8a1db0c2c5043.png

作为对随机函数

的定义。这里我们令
,我们选择平方指数核(也就是SVM中的高斯核)作为核函数:

0c4d7fad0a229ca43a5a0dcb43469743.png

这里

这个随机函数

是什么样的呢?

首先,我们知道任意采样点的均值为0,那么函数肯定在0附近振荡。另外,由于我们使用的是平方指数核,当采样点越近,则协方差越接近1,反之当采样点距离远,则协方差接近0.

什么意思呢?协方差为1说明点和点之间的关联性高,因此函数在局部应该是平滑的,而协方差为0说明关联性低,则振荡幅度变大。另外,超参数τ实际上控制了函数整体的平滑程度,如下图所示:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第9张图片

4. Gauss Process Regression

GP提供了建模无限域上随机函数的方法,这一节我们介绍如何将随机函数的概率分布的概念应用到贝叶斯回归的框架上。

4.1 模型

为训练集,训练数据独立同分布,分布未知,我们定义高斯过程回归模型(Gaussian Process Regression,以下简称GPR)的表达式为:

187c5f2a189d6d4784478d23a9699ca7.png

其中

是独立同分布的噪声变量,服从

和贝叶斯线性回归一样,我们需要为函数

假设一个prior distribution,在GPR中,我们假设
服从均值为0的GP:

5422e777749b5919540626d6bf9c0172.png

现在设

是测试集,独立同分布且和
的分布相同。

定义:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第10张图片

我们的任务就是计算posterior predictive distribution

,虽然接下来会讲计算的方法,但是我们可以先猜测一下这个概率分布是什么,直觉告诉我们,既然
满足GP,噪声
也满足高斯分布,那么这个分布就一定是高斯分布。

4.2 预测

根据高斯过程的性质,有:

e3140e54d990c131cf25d8cdf2f2d0c6.png

其中:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第11张图片

同样的,对噪声也有类似的结论:

d6018f9ec6d662829a82b3f4073a0d3b.png

因为两个独立多元高斯变量的和还是多元高斯变量,因此有:

a19eaae53d1830886c0faf15c8ecd22a.png

我们回忆多元高斯分布的第三个性质(conditioning),可以看出,

满足多元高斯分布,

ed5082582f831243a6d9d91a18e0df68.png

利用这个性质有:

888162cac57bf50f55ed7c27b78ba0ea.png

这样我们就完成了预测,几个预测的例子如下图所示:

python高斯噪声怎么去除_高斯过程和高斯过程回归_第12张图片

5. 总结

GPR是一个非参数模型,它通过GP为模型赋予了更多不确定性,这也是它的优势所在;且虽然GP比较复杂,但是用于回归时却计算简单,非参数模型让它能够建模任意函数,核函数也让这个模型能利用数据的内在结构。

创作不易,求大家点赞收藏支持一下~

你可能感兴趣的:(python高斯噪声怎么去除,如何产生高斯带限白噪声数据)