转自西瓜书《机器学习》
在前面的讨论中,我们假设训练样本是线性可分的,即存在一个划分超平面将训练样本正确分类。然而在现实生活中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。例如下图中的“异或”问题就不是线性可分的。
对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。例如在上图中,若将原始的二维空间映射到一个合适的三维空间,就能找到一个合适的划分超平面。幸运的是,如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使样本可分。
令表示将x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为
其中w和b是模型参数,则有
(1)
其对偶问题是
(2)
求解上式涉及到计算,这是样本映射到特征空间之后的内积。由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算通常是困难的。为了避开这个障碍,可以设想这样一个函数:
即在特征空间的内积等于他们在原始空间中通过函数k计算的结果。有了这样的函数,我们就不必直接去计算高维甚至无穷维特征空间中的内积,于是(2)式可重写为
(3)
求解后即可得到(求解过程请看支持向量机(SVM)——对偶问题,公式(7))
(4)
这里的函数就是“核函数”。式(4)显示出模型最优解可以通过训练样本的核函数展开,这一展式亦称为“支持向量展式”。
显然,若一直合适映射的具体形式,则可写出核函数。但在现实任务中,我们通常不知道是什么形式吗,那么合适的核函数是否一定存在呢?什么样的函数能够作为核函数呢?我们有下面的定理:
定理6.1表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。事实上,对于一个半正定核矩阵,总能找到一个与之对应的映射。换言之,任何一个核函数都隐式的定义了一个称为“再生核希尔伯特空间”的特征空间。
通过前面的讨论可知,我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要。需注意的是,在不知道特征映射的形式时,我们并不知道什么样的核函数是适合的,而核函数也仅是隐式地定义了这个特征空间。于是,“核函数选择”成为支持向量机的最大变数。若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,很可能导致性能不佳。
下表列出了常用的核函数。
此外,还可通过函数组合得到,例如:
(1)若k1和k2为核函数,则对于任意证书r1,r2,其线性组合也是核函数。
(2)若k1和k2是核函数,则核函数的直积也是核函数
(3)若k1为核函数,则对于任意函数g(x),也是核函数