核技巧
非线性分类问题
非线性分类问题:通过非线性模型才能很好地进行分类的问题。
一般来说,原始样本空间无法用超平面将训练样本分开,但是可以用超曲面达到正确分类效果,就称这个问题非线性可分。
如左图所示,不可能用一个超平面将两类数据分开,怎么办呢?将低维数据映射到高维,使样本线性可分。
下面给个简单的例子:
如图在 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)坐标系下有两类数据:
- 红圈类,包括2个点: a ⃗ 1 = [ 0 , 2 ] T \vec{a}_1 = [0,2]^T a1=[0,2]T, a ⃗ 2 = [ 0 , − 1 ] T \vec{a}_2 = [0,-1]^T a2=[0,−1]T。
- 蓝星类,包括2个点: a ⃗ 3 = [ 2 , 0 ] T \vec{a}_3 = [2,0]^T a3=[2,0]T, a ⃗ 4 = [ − 1 , 0 ] T \vec{a}_4 = [-1,0]^T a4=[−1,0]T。
可以用一个椭圆将它们分开,椭圆非标准方程是
w 1 x 1 2 + w 2 x 1 x 2 + w 3 x 2 2 + w 4 x 1 + w 5 x 2 + b = 0 w_1 x_1^2 + w_2 x_1 x_2 + w_3 x_2^2 + w_4 x_1 + w_5 x_2 + b = 0 w1x12+w2x1x2+w3x22+w4x1+w5x2+b=0
w 1 , w 2 , w 3 , w 4 , w 5 w_1,w_2,w_3,w_4,w_5 w1,w2,w3,w4,w5是系数。
但是椭圆超平面不是线性超平面,无法用线性可分SVM的方法来解决这个问题。怎么办呢?
借助通过空间变换
{ z 1 = x 1 2 z 2 = x 1 x 2 z 3 = x 2 2 z 4 = x 1 z 5 = x 2 \left\{ \begin{aligned} z_1 &= x_1^2 \\ z_2 &= x_1 x_2 \\ z_3 &= x_2^2 \\ z_4 &= x_1 \\ z_5 &= x_2 \end{aligned} \right. ⎩⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎧z1z2z3z4z5=x12=x1x2=x22=x1=x2
将低维数据 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)映射成高维数据 ( z 1 , z 2 , z 3 , z 4 , z 5 ) (z_1,z_2,z_3,z_4,z_5) (z1,z2,z3,z4,z5),在高维空间中,原来的椭圆超平面变为线性超平面:
w 1 x 1 2 + w 2 x 1 x 2 + w 3 x 2 2 + w 4 x 1 + w 5 x 2 + b = 0 ⟹ w 1 z 1 + w 2 z 2 + w 3 z 3 + w 4 z 4 + w 5 z 5 + b = 0 \begin{aligned} &w_1 x_1^2 + w_2 x_1 x_2 + w_3 x_2^2 + w_4 x_1 + w_5 x_2 + b = 0 \\ \Longrightarrow &w_1 z_1 + w_2 z_2 + w_3 z_3 + w_4 z_4 + w_5 z_5 + b = 0 \end{aligned} ⟹w1x12+w2x1x2+w3x22+w4x1+w5x2+b=0w1z1+w2z2+w3z3+w4z4+w5z5+b=0
这样就能用线性可分SVM解决分类的问题。
用 ϕ ( x ) \phi(\mathbf{x}) ϕ(x)表示将 x \mathbf{x} x映射后的特征向量,对之前所有SVM的公式,只需要用 ϕ ( x ) \phi(\mathbf{x}) ϕ(x)替换掉 x \mathbf{x} x即可。
替换后的对偶问题为:
min α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ϕ ( x i ) T ϕ ( x j ) − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , i = 1 , 2 , ⋯ , N 0 ≤ α i ≤ C , i = 1 , 2 , ⋯ , N \begin{aligned} \min_{\boldsymbol{\alpha}} \frac{1}{2} \sum_{i=1}^N \sum_{j=1}^N \alpha_i \alpha_j y_i y_j &\phi(\mathbf{x}_i)^T \phi(\mathbf{x}_j) - \sum_{i=1}^N \alpha_i \\ s.t. \quad \sum_{i=1}^N \alpha_i y_i = 0,& \quad i=1, 2,\cdots,N \\ 0 \le \alpha_i \le C,& \quad i=1, 2,\cdots,N \\ \end{aligned}