首先,不得不说,你的很多直觉都是不正确的。
感觉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,而不是correlation?
从统计学上说,covariance和correlation本质是一个东西,只不过correlation是covariance一种“标准化”,使之在所谓的[-1, 1]之间。因而一定是先有covariance才有correlation的,对吧?
还是在统计学上,我们思考一下,什么是covariance?
covariance是 variance的一种推广,而什么是variance呢?
variance是一个随机变量的二阶中心距!作为推广,covariance是在刻画两个随机变量的时候,二者的二阶中心距!
而高斯过程作为一种特别的随机过程, 其自然也需要满足随机过程中所需要满足的内容,详细可以参考:
自然地,其实作为随机过程,其随机变量肯定是不止一个,哦,严格的说也可以是同一个随机变量在不同时刻的情况,而最最最关键的是,随机过程需要一个刻画点与点之间关系的量,而此时,这个covariance就是之前说到用来刻画两个随机变量(一个随机变量在两个时刻也可以看做是两个随机变量,只不过同分布而已)之间关系(距离中心的偏差)的量!因而covariance作为一个在两个随机变量的二阶中心距就自然而然的被经常性的使用在各种随机过程的描述中啦!
为了解答你的疑惑,其实下面还是说一说kernel。什么是kernel呢?
抛开机器学习那些内容,本质上,kernel就是个二元函数,一个从的二元函数。它的作用事实上就是去描述点和点之间的关系,这个关系在数学意义下可以被视作是广义的距离,既然是广义的距离,自然已经不在是简单的零和一可以说明的,而需要考虑实变函数)(测度论)和泛函分析啦,从一般的距离空间到巴拿赫空间,再到希尔伯特空间,由于希尔伯特空间具有良好的性质,这里的内容就省去一大波,总而言之,这里个希尔伯特空间中有内积,而这个内积才是真正刻画这里两个点关系的广义距离的一般性方法!
即 .
现在这里有可以看到,这个kernel是由内积定义的,因而需要满足内积的性质吧?内积的性质中最重要的一条就是非负吧!并且根据内积的定义,应该没有什么上界吧?
当然考虑更为复杂也在机器学习中各种feature space上更为有用的情况的话也可以将其视为
,
这里的 就是需要同学在各种有关kernel介绍中谈到的,从低维到高维的映射之所以可行的原因!这样的好处是这会让一些低维空间上不明显的feature在高维空间容易显示出来。严格的来说,这一切都可以用Mercer 给出的定理去解释,Mercer定理说,任何满足对称性和正定性的二元函数都能找到Hilbert space和函数使得.
更多的有关kernel的介绍,还可以参考:
最后一个问题, 为什么来自与希尔伯特空间内积诱导出来的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哦!
[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.