我所理解的 SVM核函数的应用

我们通过乘数法得到了 我所理解的 SVM核函数的应用 ,现在我们把它们回带到 分界线我所理解的 SVM核函数的应用 :

我所理解的 SVM核函数的应用

如果我们已经求得 我所理解的 SVM核函数的应用和 我所理解的 SVM核函数的应用,那么我所理解的 SVM核函数的应用 可以写成仅依赖于 我所理解的 SVM核函数的应用 和 我所理解的 SVM核函数的应用 的矢量积形式,这一点非常关键。很多时候我们需要从数据中挖掘新的特征来进行训练,而不是简单粗暴地用原始数据,比如我从 我所理解的 SVM核函数的应用中挖掘出新的特征 我所理解的 SVM核函数的应用, 我们需要再一步一步重新推导 我所理解的 SVM核函数的应用 的表达式吗?只需要将我所理解的 SVM核函数的应用 换成 我所理解的 SVM核函数的应用即可,更一般的:

如果存在一种映射关系 我所理解的 SVM核函数的应用,将 我所理解的 SVM核函数的应用 映射到另一空间中,已知 我所理解的 SVM核函数的应用 ,那么新空间中的 我所理解的 SVM核函数的应用

整个过程非常的顺溜,我所理解的 SVM核函数的应用 可以将数据从低维空间映射到高维空间中,为分类提供了新的视角,如下图所示,一维空间中的数据点 X 和 O 互相交杂,在一维空间中我们无法找到一个分界点进行划分,但是通过 我所理解的 SVM核函数的应用 映射到二维空间后,很容易找到分界线将这些不同类型的点区分开来。我所理解的 SVM核函数的应用

映射函数 我所理解的 SVM核函数的应用 通常将低维的数据(我所理解的 SVM核函数的应用)映射到更高维的空间(我所理解的 SVM核函数的应用)中,使得线性区分变为了可能, 考虑到 我所理解的 SVM核函数的应用,这引起的一个问题就是计算量随着维数的增加快速增大,但是我们又知道矢量点积的结果是一个数,怎么来简化这个操作呢?

在这里引入核函数(Kernel Function) 我所理解的 SVM核函数的应用 ,此时 :

我所理解的 SVM核函数的应用

好像有点乱,让我们先来捋一捋:

我所理解的 SVM核函数的应用

映射函数 我所理解的 SVM核函数的应用 的作用是将低维空间的数据映射到高维空间中,核函数 我所理解的 SVM核函数的应用表示的是映射之后高维空间中两个矢量的点积。

通过映射函数,我们能从原始数据中(低维空间)抽象出所需的特征(高维空间),由低维空间向高维空间的转化很多时候非常的麻烦,有意思的是,无论是1维、10维、100维还是更高维的空间,其矢量点积的结果都是一个常数,那么有没有什么捷径,可以跳过维度转换的过程,通过相对简单的计算直接得到矢量积?答案就是核函数,还是举一个例子来说明吧:

令 我所理解的 SVM核函数的应用,我们定义 我所理解的 SVM核函数的应用 将原始数据从三维空间映射到九维空间中,让我们来计算我所理解的 SVM核函数的应用

$$

我所理解的 SVM核函数的应用

可以看出计算相当繁琐,嗯,我们来尝试找找对应的核函数:

我所理解的 SVM核函数的应用

通过上面的推导,我们发现虽然维度转化的过程较为繁琐复杂,但是矢量点积的结果确实相当简洁,这一次我们直接用核函数计算:

我所理解的 SVM核函数的应用

相比于从低维映射到高维空间再进行矢量积运算,核函数大大简化了计算的过程,使得向更高维转化变为了可能,我们不需要知道低维空间的数据是怎样映射到高维空间的,我们只需要知道结果是怎么计算出来的。

5. 介绍两种核函数

在支持向量机中常用的几种核函数是多项式型核(Polynomial Kernel)、径向基函数核(Radial basis function kernel,又叫高斯核,简称 RBF)以及逻辑核( Sigmoid Kernel)。

- 多项式型

我所理解的 SVM核函数的应用

如果 我所理解的 SVM核函数的应用 本身是 我所理解的 SVM核函数的应用 维空间的向量,多项式展开后可知该核函数对应的空间维度为 我所理解的 SVM核函数的应用 ,计算复杂度随着维数增加呈指数爆炸,但是用核函数进行计算的复杂度为 我所理解的 SVM核函数的应用 。

维数越高,偏差(bias)越低,方差(variance)越高,容易出现过拟合的情况,相反维数越低,偏差就会越大,但是方差会随之减小,一般不宜选择过高的维度,最适合的维度需要通过交叉验证(cross validation)等方法来确定,关于方差和偏差的分析,可以看看这篇博文