回顾我们之前的问题:
之前我们说到,假设我们了
那么就得到了这个分类面
这里我们可以看出,新的数据点只需与那些
先说一下直观理解吧(不一定正确,仅作直观理解),核函数就是把低维特征映射到高维,从而使得在低维情况下线性不可分的数据在高维情况下有可能能够找到那个分类面
特定情况下,如果我们需要,可以将一个一维特征加以变换成多维
比如说要拟合曲线的时候,我们可以用一个自变量的多次方程去拟合
比如在一个回归问题中,观察到
就可以用如下变换,将
如果有原来变量的内积,如
这里只是简单列举一个形式化表出的例子,没有直接关联原问题,但是这里可以理解,我们可以通过这个和函数,让SVM学习更高维度的特征
这里还产成了一个问题:是不是每一个核函数都能表出为类似
ϕ(x)Tϕ(z) 的形式呢?其实我初步的思考为,只有在原低维特征向量有做内积的运算时,我们这样构造和转化会方便
(好像有点废话,因为后面看到高斯核的时候在想是不是也能转化…不过是可以转化的,高斯核将低维特征转化成了无线维的特征)
Andrew 在课上讲了这样一句话:每当你在原问题中遇到
<x,z> ,也就是内积的形式时,你都可以把它转化成K(x,z) ,当你在做这个转化的时候,你就将低维特征映射到了高维。嗯,学到后面就清晰了,这个就是核函数有效性的问题
这里说明一个核函数减少计算复杂度的例子:
假设,
不要疑惑,这里的
ϕ(x) 并不是上文的,而是如下:
ifn=3:
ϕ(x)=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢x1x1x1x2...x3x3⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥
显然,
显然,
但是如果我们直接计算