核函数基础一简单解释

首先给你两个向量 [公式] 。在一般的机器学习方法,比如 SVM 里面,这里一个向量是一个实体。比如一个向量代表一个人。每个向量有两个维度,身高和体重。比如可以有

[公式]

现在要求两个人的相似度,最简单的方法是计算它们的内积 [公式] 。这很简单,只要按照维度相乘求和就可以了。

[公式]

但是有的时候(比如 SVM 的数据线性不可分的时候),我们可能会想对数据做一些操作。我们可能认为体重的二次方,身高的二次方,或者身高体重的乘积是更重要的特征,我们把这个操作记为过程 [公式] ,比如可能有

[公式]

我们认为 [公式][公式] 更能表示一个人的特征。我们再计算两个人的相似度时,使用 [公式][公式] 的内积:

[公式]

在上面的操作中,我们总共要计算 11 次乘法,2 次加法

但是如果我们定义核函数

[公式]

那么有

[公式]

可以看到 [公式] 。但是这次我们只计算了 3 次乘法,1 次加法

所以其实核函数就是这么一回事:

当我们需要先对数据做转换,然后求内积的时候,这样的一系列操作往往成本过高(有时候根本不可能,因为我们可能想要升到无穷维)。

因此我们可以直接定义一个核函数 K 直接求出做转换后求内积的结果,从而降低运算量。



作者:SleepyBag
链接:https://www.zhihu.com/question/24627666/answer/1085861632
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原文地址:https://www.cnblogs.com/qiu-hua/p/12996665.html