问题

高斯过程的kernel构成的矩阵为何叫协方差矩阵而不是相关系数矩阵?

回答
高斯过程的核函数(kernel)在计算过程中会生成一个矩阵,这个矩阵通常被称为协方差矩阵(covariance matrix),而不是相关系数矩阵(correlation coefficient matrix)。虽然两者都描述了变量之间的线性关系,但它们在数学定义和信息侧重点上有所不同。理解这一点需要深入到它们各自的数学定义以及它们在高斯过程中的作用。

让我们先来梳理一下这两个概念:

1. 协方方差(Covariance)

协方差衡量的是两个随机变量一起变化的程度。如果两个变量倾向于一起增加或减少,它们的协方差就是正的。如果一个变量增加时另一个倾向于减少,它们的协方差就是负的。数学上,两个随机变量 $X$ 和 $Y$ 的协方差定义为:

$Cov(X, Y) = E[(X E[X])(Y E[Y])]$

其中,$E[cdot]$ 表示期望值。

对于一组随机变量 $X_1, X_2, dots, X_n$,它们的协方差矩阵是一个 $n imes n$ 的矩阵,其中矩阵的第 $i$ 行第 $j$ 列的元素是 $Cov(X_i, X_j)$。

2. 相关系数(Correlation Coefficient)

相关系数是协方差的标准化版本。它衡量的是两个变量线性相关的强度和方向,并且其值总是在 1 和 1 之间。相关系数消除了变量尺度(scale)的影响,只关注它们的变化趋势是否一致。两个随机变量 $X$ 和 $Y$ 的皮尔逊相关系数(Pearson correlation coefficient)定义为:

$Corr(X, Y) = frac{Cov(X, Y)}{sqrt{Var(X)Var(Y)}} = frac{Cov(X, Y)}{sigma_X sigma_Y}$

其中,$Var(X) = Cov(X, X) = sigma_X^2$ 是 $X$ 的方差,$sigma_X$ 是 $X$ 的标准差。

对于一组随机变量 $X_1, X_2, dots, X_n$,它们的相关系数矩阵也是一个 $n imes n$ 的矩阵,其中矩阵的第 $i$ 行第 $j$ 列的元素是 $Corr(X_i, X_j)$。

高斯过程(Gaussian Process)的核心思想

高斯过程是一个随机过程,其中任何有限集合的随机变量的联合分布都是多元高斯分布。这意味着,如果我们取高斯过程在不同点 $x_1, x_2, dots, x_n$ 的函数值 $f(x_1), f(x_2), dots, f(x_n)$,那么这组函数值就服从一个多元高斯分布。

一个多元高斯分布由其均值向量(mean vector)和协方差矩阵(covariance matrix)完全确定。在高斯过程中,我们通常假设均值函数为零函数($m(x) = 0$),或者一个已知的、可以根据数据估计的函数。

核函数(Kernel)的作用

高斯过程的核函数 $k(x_i, x_j)$ 定义了在任意两个输入点 $x_i$ 和 $x_j$ 处的函数值 $f(x_i)$ 和 $f(x_j)$ 之间的协方差。 更具体地说,如果一个高斯过程的均值函数是 $m(x)$,那么:

$Cov(f(x_i), f(x_j)) = k(x_i, x_j)$

如果均值函数是零函数,即 $m(x) = 0$,那么:

$E[f(x_i)] = 0$
$E[f(x_j)] = 0$

此时,根据协方差的定义:

$Cov(f(x_i), f(x_j)) = E[(f(x_i) E[f(x_i)])(f(x_j) E[f(x_j)])]$
$= E[f(x_i)f(x_j)]$

因此,核函数 $k(x_i, x_j)$ 直接指定了函数值 $f(x_i)$ 和 $f(x_j)$ 的协方差。

核矩阵的构成

当我们考虑一组离散的输入点 $X = {x_1, x_2, dots, x_n}$ 时,对应的高斯过程函数值向量为 $f(X) = [f(x_1), f(x_2), dots, f(x_n)]^T$。这个向量服从一个多元高斯分布。

其均值向量为 $mathbf{m} = [m(x_1), m(x_2), dots, m(x_n)]^T$。
其协方差矩阵 $mathbf{K}$ 是一个 $n imes n$ 的矩阵,其中:

$mathbf{K}_{ij} = Cov(f(x_i), f(x_j)) = k(x_i, x_j)$

这个矩阵 $mathbf{K}$ 就是由核函数在所有输入点对上计算得到的核矩阵(kernel matrix),它直接表示了函数值之间的协方差关系。

为什么是协方差矩阵而不是相关系数矩阵?

1. 直接反映了函数值的尺度和方差信息: 核函数 $k(x_i, x_j)$ 本身就包含了函数值在不同点上的方差信息。例如,径向基函数(RBF)核 $k(x_i, x_j) = sigma_f^2 exp(frac{||x_i x_j||^2}{2l^2})$ 中的 $sigma_f^2$ 参数直接控制了函数值的整体方差。如果直接使用相关系数矩阵,我们就失去了这些关于函数值尺度(variance)的关键信息。高斯过程的预测是基于在新的测试点上与训练点之间的协方差来计算的,而这个计算过程是直接依赖于协方差的绝对值,而非仅仅是相关的强度。

2. 数学定义上的直接对应: 高斯过程的定义是基于联合高斯分布的,而联合高斯分布的性质完全由均值向量和协方差矩阵来刻画。核函数正是直接提供了定义这个协方差矩阵的机制。它规定了函数值在不同输入点之间的线性依赖关系,并且这种依赖关系被表达为协方差。

3. 预测的机制: 在高斯过程回归中,我们的目标是预测新的测试点 $x_$ 处的函数值 $f(x_)$。这通常通过条件概率分布来实现:
$f(x_) | X, y sim N(mu(x_), sigma^2(x_))$
其中,预测均值 $mu(x_)$ 和预测方差 $sigma^2(x_)$ 的计算公式如下(假设训练数据为 $(X, y)$,其中 $X = {x_1, dots, x_n}$,$y = {y_1, dots, y_n}$,且我们使用零均值):
$mathbf{k}_ = [k(x_, x_1), dots, k(x_, x_n)]^T$ (测试点与训练点之间的协方差向量)
$mathbf{K} = [k(x_i, x_j)]_{i,j=1}^n$ (训练点之间的协方差矩阵)
$mu(x_) = mathbf{k}_^T (mathbf{K} + sigma_n^2 mathbf{I})^{1} y$
$sigma^2(x_) = k(x_, x_) mathbf{k}_^T (mathbf{K} + sigma_n^2 mathbf{I})^{1} mathbf{k}_$

可以看到,预测的均值和方差都直接依赖于核矩阵 $mathbf{K}$(即训练点之间的协方差矩阵)以及测试点与训练点之间的协方差向量 $mathbf{k}_$。 $mathbf{K}$ 充当了数据点之间的“亲疏”程度的度量,这种度量是绝对的协方差值,而不是标准化的相关系数。

4. 泛化能力: 核函数的选择直接影响了高斯过程的泛化能力。例如,一个具有较大长度尺度(lengthscale)的 RBF 核会使函数值在相近点之间非常平滑,而一个较小的长度尺度则会允许更剧烈的变化。这种平滑度和变化幅度直接体现在协方差的绝对值上。如果只关注相关系数,我们就无法区分“两个变量变化幅度很大,但它们线性相关很强”和“两个变量变化幅度很小,但它们线性相关也很强”这两种情况,而对于高斯过程来说,这两种情况会产生完全不同的预测行为。

举个例子说明区别:

假设我们有两个输入点集 A 和 B。
在点集 A 上,函数值变化很大,例如从 $100$ 到 $200$。
在点集 B 上,函数值变化很小,例如从 $0.1$ 到 $0.2$。

如果我们计算相关系数矩阵,并且两个数据集上的函数值具有完全相同的线性关系模式(例如,点 $x_i$ 处的函数值总是点 $x_j$ 处函数值的两倍加上某个偏移量),那么它们的相关系数矩阵可能非常相似,甚至相同。

但是,它们的协方差矩阵会截然不同。数据集 A 的协方差矩阵的对角线元素(方差)会远大于数据集 B 的协方差矩阵的对角线元素。在进行高斯过程预测时,这种方差的绝对差异会极大地影响预测的分布。例如,在数据集 A 上,预测的函数值可能会在 $100$ 到 $200$ 的范围内波动,而在数据集 B 上,预测的函数值可能只会在 $0.1$ 到 $0.2$ 的范围内波动。

总结

简而言之,高斯过程的核函数直接定义了函数值之间的协方差。核函数生成的矩阵因此被称为协方差矩阵。这个矩阵不仅捕捉了函数值之间的线性依赖关系(如相关系数那样),更重要的是,它包含了关于函数值尺度和方差的关键信息,这些信息对于高斯过程进行有效的建模和准确预测至关重要。相关系数矩阵只描述了线性关系的强度和方向,而忽略了变量本身的尺度信息,因此不适合直接用于高斯过程的核心计算。

网友意见

user avatar

首先,不得不说,你的很多直觉都是不正确的。

感觉kernel描述的是两个点之间的相似性

的确,kernel是描述两个点之间的之间的关系的,仅仅是关系哦!并非直接就是其“相似性”。举个高斯过程的例子来说,比如Linear Kernel, 。或许你看到的只是Squared Exponential或者称之为高斯核的那种stationary kernel吧,即可以写成 ,这个的g是任意一个函数。或者更为特殊的isotropic kernel, 即可以写成 , h是任意函数。作为反例,不光是linear kernel,所有dot product kernel都可以作为你的反例哦,即 ,r是任意函数。


两个x值越接近,那么其所对应的y值越接近

如果你的x是指input,y是指output的话,就目前为止,你的kernel其实跟y还没有任何关系。。。你的这个表述让我直接联想到的是柯西收敛准则里面的内容,或者是微分方程里面关于初值敏感性的内容哈!


两个值越近,k(x1,x2)越接近1,这样看来k更类似于相关系数

额,这个错觉就是因为你把kernel理解为高斯核,还是那种前面不带magnitude或者variance的那种高斯核,即 。这纯粹就是因为isotropic的原因,让 成为一种特殊的情况;又因为exp的原因,使得这个kernel的值介于0和1之间。如果你试一下任意一个dot product的kernel就会立刻推翻这些所有的错觉哦!


Covariance or Correlation?

抛开这些错误,其实有个问题其实还是有意义的,就是为什么是covariance,而不是correlation?

从统计学上说,covariance和correlation本质是一个东西,只不过correlation是covariance一种“标准化”,使之在所谓的[-1, 1]之间。因而一定是先有covariance才有correlation的,对吧?

还是在统计学上,我们思考一下,什么是covariance?

covariance是 variance的一种推广,而什么是variance呢?

variance是一个随机变量的二阶中心距!作为推广,covariance是在刻画两个随机变量的时候,二者的二阶中心距

而高斯过程作为一种特别的随机过程, 其自然也需要满足随机过程中所需要满足的内容,详细可以参考:

自然地,其实作为随机过程,其随机变量肯定是不止一个,哦,严格的说也可以是同一个随机变量在不同时刻的情况,而最最最关键的是,随机过程需要一个刻画点与点之间关系的量,而此时,这个covariance就是之前说到用来刻画两个随机变量(一个随机变量在两个时刻也可以看做是两个随机变量,只不过同分布而已)之间关系(距离中心的偏差)的量!因而covariance作为一个在两个随机变量的二阶中心距就自然而然的被经常性的使用在各种随机过程的描述中啦!


什么是Kernel?

为了解答你的疑惑,其实下面还是说一说kernel。什么是kernel呢?

抛开机器学习那些内容,本质上,kernel就是个二元函数,一个从的二元函数。它的作用事实上就是去描述点和点之间的关系,这个关系在数学意义下可以被视作是广义的距离,既然是广义的距离,自然已经不在是简单的零和一可以说明的,而需要考虑实变函数)(测度论)和泛函分析啦,从一般的距离空间到巴拿赫空间,再到希尔伯特空间,由于希尔伯特空间具有良好的性质,这里的内容就省去一大波,总而言之,这里个希尔伯特空间中有内积,而这个内积才是真正刻画这里两个点关系的广义距离的一般性方法!

即 .

现在这里有可以看到,这个kernel是由内积定义的,因而需要满足内积的性质吧?内积的性质中最重要的一条就是非负吧!并且根据内积的定义,应该没有什么上界吧?

当然考虑更为复杂也在机器学习中各种feature space上更为有用的情况的话也可以将其视为

,

这里的 就是需要同学在各种有关kernel介绍中谈到的,从低维到高维的映射之所以可行的原因!这样的好处是这会让一些低维空间上不明显的feature在高维空间容易显示出来。严格的来说,这一切都可以用Mercer 给出的定理去解释,Mercer定理说,任何满足对称性和正定性的二元函数都能找到Hilbert space和函数使得.

更多的有关kernel的介绍,还可以参考:

为什么Kernel = Covariance?

最后一个问题, 为什么来自与希尔伯特空间内积诱导出来的kernel会跟这个统计学里面长出的covariance扯上关系呢?确切的话,应该是, kernel function = covariance function!

因为高斯过程的特殊性!

说到高斯过程的就不得不提及高斯分布,熟悉高斯分布的小伙伴应该清楚

确定一个高斯分布,只需要确定其mean与variance (如果是多维的话,则是covariance)。

同样的我们可以得到对于高斯过程,其实也有相应的内容[1]:

即高斯过程可以被mean function和covariance function所确定!

所以在我们提及高斯过程的时候,离不开的就是去讨论这个covariance function。而当我们去深究这个covariance function的时候,就会发现其定义是具有covariance form的function。这里的covariance form事实上用的就是之前提到的希尔伯特空间内积导出kernel的方式去构建的哦!这里面内容非常的复杂,其中涉及测度论,高斯测度,勒贝格测度,概率空间,希尔伯特空间等等,有兴趣的小伙伴可以深入看参考文献[2].

总而言之,一句话,

Kernel 从根本上说就是那个你统计学中熟悉的那个covariance,只不过两者都是函数哦!


最后的最后看了一眼问题, 说一下这个covariance matrix!在高斯过程中这个covariance matrix事实上就是covariance function在给定input的情况下代入所得到的的矩阵好!

其本质是covariance function也是kernel function哦!


Reference

[1] Chen, Zexun, Jun Fan, and Kuo Wang. "Remarks on multivariate Gaussian Process."arXiv preprint arXiv:2010.09830(2020).

[2] Rajput, Balram S., and Stamatis Cambanis. "Gaussian processes and Gaussian measures."The Annals of Mathematical Statistics(1972): 1944-1952.

类似的话题

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有