SVM——非线性SVM和核函数
非线性分类问题
分类问题最理想的状态是样本空间中都是线性可分的,我们可以清晰无误地把它们分隔成不同的类别,即线性可分SVM;如果实在不行,有少数样本不能被正确划分,但大多数是线性可分的,这就是线性SVM;当面对一个非线性分类时:
图中红色是正样本,蓝色是负样本,通过观察显然它们之间界限很分明,用绿圈就可以完全分开,但是在二维空间里没办法用线性函数表示这个绿圈,就是说在二维空间里线性不可分,所以线性可分SVM和线性SVM都不能用。
这样,我们想办法在更高纬的空间将它们变得线性可分。如,将上图中正负样本映射到三维空间中,并且依据不同的类别给它们赋予不一样的高度值——z轴取值:
这样在二维空间的样本在三维空间里分为两层,中间用一个超平面就可以完美分隔了。
非线性SVM
非线性SVM分隔超平面
对于在有限维度向量空间中不可分的样本,将其映射到更高维度的向量空间,再通过间隔最大化的方式,学习得到支持向量机,就是非线性SVM。样本映射到的这个更高位的空间叫特征空间。
注意:如果是理想状态,样本从原始空间映射到特征空间后直接就成为线性可分的,那么接下来的学习是可以通过硬间隔最大化的方式来学的。不过一般情况不算理想情况,所以还是按照软间隔最大化,在特征空间中学习SVM。
一个公式表示:非线性SVM=核技巧+线性SVM。
用向量x表示位于原始空间中的样本, ϕ ( x ) \phi(x) ϕ(x)表示x映射到特征空间之后的新向量,非线性SVM对应的分隔超平面为: f ( x ) = w ϕ ( x ) + b f(x)=w\phi(x)+b f(x)=wϕ(x)+b。
非线性SVM的对偶问题
非线性SVM的对偶问题变成了:
和线性SVM唯一的不同就是:之前的 x i x_i xi与 x j x_j xj的内积(点乘)变成了 ϕ ( x i ) \phi(x_i) ϕ(xi)和 ϕ ( x j ) \phi(x_j) ϕ(xj)的内积。
核函数
对于有限维的原始空间,一定存在更高维度的空间,使得前者中的样本映射到新空间后可分,但是新空间(特征空间)的维度也许很大,甚至是无限维的,这样的话,直接计算 ϕ ( x i ) \phi(x_i) ϕ(xi)· ϕ ( x j ) \phi(x_j) ϕ(xj)就很困难,为了避免计算这个内积,设置一个新函数: k ( x i , x j ) = ϕ ( x i ) ⋅ ϕ ( x j ) k(x_i,x_j)=\phi(x_i)·\phi(x_j) k(xi,xj)=ϕ(xi)⋅ϕ(xj)。
原始空间中的两个样本 x i x_i xi与 x j x_j xj经过 k ( ⋅ , ⋅ ) k(·,·) k(⋅,⋅)函数计算所得出的结果,是它们特定空间中映射成的新向量的内积。如此一来不用算 ϕ ( x i ) \phi(x_i) ϕ(xi)和 ϕ ( x j ) \phi(x_j) ϕ(xj)的内积,直接用 k ( ⋅ , ⋅ )