支持向量机SVM(5)——核函数

支持向量机SVM——核函数

接前面所讲博客,我们知道了当数据理想线性可分的话我们可以用硬间隔的方式解决,即使出现了噪声,软间隔依旧能够处理,但是这些的前提都是数据是线性可分的,但是在现实任务中,原始样本空间可能并不是线性可分的,那么我们如何解决?
对于这样的问题,可以将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。例如如下这种情况,一个“异或”的例子:
支持向量机SVM(5)——核函数
首先回顾一下我们的优化问题:
{maxλ  (12i=1Nj=1NλiλjyiyjxiTxj+i=1Nλi)s.t.0λiCi=1Nλiyi=0 \begin{cases}max_{\lambda}\;(-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx^T_ix_j+\sum_{i=1}^N\lambda_i)\\ s.t. \quad 0\leq\lambda_i\leq C\\\qquad\sum_{i=1}^N\lambda_iy_i=0\end{cases}
ϕ(x)\phi(x)表示将x映射后的向量,于是我们的问题可以写成:
maxλ  (12i=1Nj=1Nλiλjyiyjϕ(xi)Tϕ(xj)+i=1Nλi)max_{\lambda}\;(-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_j\phi(x_i)^T\phi(x_j)+\sum_{i=1}^N\lambda_i)
因为xixjx_i,x_j映射后的样本空间维数可能很高,甚至可能是无穷维,因此直接计算ϕ(xi)Tϕ(xj)\phi(x_i)^T\phi(x_j)通常是困难的。为了解决这个问题,我们可以先设:
k(xi,xj)=ϕ(xi)Tϕ(xj)k(x_i,x_j)=\phi(x_i)^T\phi(x_j)
即我们希望把映射后的特征空间的内积ϕ(xi)Tϕ(xj)\phi(x_i)^T\phi(x_j)转换为在原始样本空间中通过函数k(xi,xj)k(x_i,x_j)来计算,相当于达到了降维计算的目的。并且k(xi,xj)k(x_i,x_j)也称为核函数(kernel function)。

常见的核函数如下:
支持向量机SVM(5)——核函数