机器学习:核函数和核矩阵简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_35732969/article/details/81603520

核函数也就是一种函数,本质上跟其他常见的函数(如幂函数)是一样的。我们知道,幂函数有它的特点,形如y = x^{a}的函数才能称为幂函数。同样,核函数也有他的特点,只不过它的特点更复杂一点,满足以下要求的函数才能称为核函数(定理):

\chi为输入空间,\kappa (*,*)是定义在\chi \ast \chi上的对称函数,则\kappa是核函数当且仅当对于任意数据D = \{x_{1},x_{2},...,x_{m}\}核矩阵K总是半正定的:

K = \begin{bmatrix} \kappa (x_{1},x_{1}) & . & . & . & \kappa (x_{1},x_{m}) \\ . & . & . & . & .\\ . & . & . & . & .\\ . & . & . & . & .\\ \kappa (x_{m},x_{1}) & . & . & . & \kappa (x_{m},x_{m}) \end{bmatrix}.

上面的定理表明,只要一个对称函数对应的核矩阵半正定,它就能作为核函数。

常用的核函数有:

核函数的作用,就一句话:计算样本在高维空间的内积

假如出于某些原因,我们要将样本从原始空间映射到高维空间(如在低维空间样本线性不可分,需要映射到高维空间产生线性可分的样本)。假设映射为\phi\phi (x)表示x映射后的特征向量。假设在高维空间中,正好涉及到计算内积:。这时,就可以引入核函数(涉及选择什么核函数):

\kappa (x_{i},x_{j}) = \left \langle \phi (x_{i}),\phi (x_{j}) \right \rangle= \phi (x_{i})^{T}\phi (x_{j}).

上式将x_{i},x_{j}高维空间的内积转化到在原始空间计算。那为什么不直接在映射后的高维空间计算?原因有两点:

  1. 通常我们不知道映射\phi的具体形式;
  2. 映射后的空间维数可能非常高,甚至无限维,直接计算开销太大,十分困难.

这就是核函数的作用。

上面提到有5种常用的核函数,选择了不同的核函数,意味选择了不同的某种映射。因为我们不知道映射的具体形式,所以我们并不知道什么样的核函数合适。核函数的选择成为算法的“变数”。

核函数的选择有一些基本经验:例如对文本数据通常采用线性核,情况不明时可先尝试高斯核。线性核和高斯核也是最为常用的核函数。

参考资料:周志华《机器学习》

猜你喜欢

转载自blog.csdn.net/weixin_35732969/article/details/81603520