关于验证核函数

我几天后要参加一个测试,关于一些科目我有一些问题。

我们先从核函数开始,基本上我理解一个核函数需要是正半定且对称的才能被认为是有效的。这足够了吗?例如以下核函数,kernel(x,y) = 2 * k1(x,y),其中k1是一个有效的核函数。这有效吗?我的问题是,如果在测试中给定一个核函数,我如何区分一个有效的核函数和一个无效的核函数?


回答:

要应用Mercer定理,需要满足三个条件:

  1. K是连续的
  2. K是对称的
  3. K是正半定的

如果你具备这三个属性,你就拥有一个有效的核函数。

例如以下核函数,kernel(x,y) = 2 * k1(x,y),其中k1是一个有效的核函数。这有效吗?

是的,很容易证明给定合适的核函数K1, K2:

  1. aK1,对于任何a>0
  2. K1 + K2

都是有效的核函数,因此对于任何a, b > 0,aK1 + bK2也是一个有效的核函数。

我的问题是,如果在测试中给定一个核函数,我如何区分一个有效的核函数和一个无效的核函数?

没有神奇的方法。对于通用函数来说,这个问题真的很难。因此,在测试中我期望要么是容易被证伪的非核函数(不具备典型点积的属性),要么是通过Mercer定理或通过构造证明有效的有效核函数。

特别是,证明某物是核函数的另一种方法是明确找到phi,因为根据定义,对于每个核函数K,存在phi使得

K(x,y) = <phi(x), phi(y)>

所以如果你能找到具有此属性的phi – 你就证明了K是一个核函数。

例如 – 让K是一个图核函数,定义为K(G1, G2) = G1和G2共享的顶点数量。很容易证明,如果我们取phi(G) = G中顶点的独热编码,那么

K(G1,G2) = <phi(G1), phi(G2)>

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注