SVM 之非线性支持向量机

支持向量机是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。

模型包括以下几类:

1. 核函数

   支持向量机通过某非线性变换 $phi(x)$,将输入空间映射到高维特征空间。举一个例子:设输入空间是二维的,在该空间中取两个向量

$$v_{1} = (x_{1}, y_{1}) \
v_{2} = (x_{2}, y_{2})$$

   假如映射关系为

$$phi(x,y) = left ( x^{2}, sqrt{2}xy, y^{2} ight )$$

   函数的输入是二维的向量,输出是三维向量,也就是说这个函数完成了一个升维的操作。

$$left (x_{1},y_{1} ight ) ; overset{phi(x,y)}{ ightarrow} ; left ( x_{1}^{2}, sqrt{2}x_{1}y_{1}, y_{1}^{2} ight ) \
left (x_{2},y_{2} ight ) ; overset{phi(x,y)}{ ightarrow} ; left ( x_{2}^{2}, sqrt{2}x_{2}y_{2}, y_{2}^{2} ight )$$

   如果我们用神经网络来描述这个映射,网络结构可以长成下面这个样子:

       

   在这个网络中,输入层是 $2$ 维的,输出层是 $3$ 维的。神经网络也具有非线性拟合能力,其拟合能力显然高于非线性 $SVM$。

   但是一般情况下这个映射函数是非常复杂的,很难写出它的具体表达式,它们映射到的高维空间的维数也比上面举的例子(三维)高得多,

   甚至是无穷维的。于是引入核函数 $K(v_{1},v_{2})$,它是我们给定的,它的自变量是原始输入空间的向量规定核函数必须满足条件:

$$K(v_{1}, v_{2}) = left langle phi(v_{1}), phi(v_{2}) ight angle$$

   $phi(v_{1}), phi(v_{2})$ 是 $v_{1},v_{2}$ 映射到高维空间后对应的向量,即规定核函数等于向量映射到高维空间后的内积,这个等式隐含着一个从低维空间

   到高维空间的映射关系 $phi$,一般解不出来且满足条件的映射不唯一。

   对于最初的例子,给定核函数为 $K(v_{1},v_{2}) = left langle v_{1},v_{2} ight angle^{2}$,那么它满足如下等式

$$left langle v_{1},v_{2} ight angle^{2} = left langle phi(v_{1}), phi(v_{2}) ight angle \
Rightarrow x_{1}y_{1} + x_{2}y_{2} = left langle phi(v_{1}), phi(v_{2}) ight angle$$

   映射到三维空间的可能解有:

       1)$phi(x,y) = left ( x^{2}, sqrt{2}xy, y^{2} ight )$

       2)$phi(x,y) = frac{1}{sqrt{2}}left ( x^{2} - y^{2}, 2xy, x^{2} + y^{2} ight )$

2. 正定核

   这些核函数是如何找到的?亦或者给定一个函数,有什么方法可以判定其是否可作为核函数?按 $1$ 中讲的,对于一个核函数 $K(v_{1},v_{2})$,

   假如我们能找到一个映射 $phi(x)$,使得

$$K(v_{1}, v_{2}) = left langle phi(v_{1}), phi(v_{2}) ight angle$$

   但上面也说了,这个映射函数很不好找,那么还有没有其它的办法判断一个给定的函数能不能作为核函数?

   正定核的充要条件:

       1)函数 $K(v_{1},v_{2})$ 是对称函数,即 

$$K(v_{1},v_{2}) = K(v_{2},v_{1})$$

       2)对于输入空间中的任意 $m$ 个向量 $x_{i},i = 1,2,...,m$,其对应的 $Gram$ 矩阵是半正定的。$Gram$ 矩阵定义为

$$K = ig[ K(x_{i},x_{j}) ig]_{m imes m}$$

   给定的函数如果满足上面两个条件,那么它就可以作为核函数。这是另外一个判定核函数的方法。也就是说,我们按照这个充要条件构造

   出来的函数必定也是满足核函数基本要求的,即:

             $K(v_{1}, v_{2}) = left langle phi(v_{1}), phi(v_{2}) ight angle$ $Leftrightarrow$ $Gram$ 矩阵半正定且 $K$ 满足对称性

   下面我们将证明这个结论。

   1)先证明从左到右成立:假设已知了 $K(v_{1}, v_{2}) = left langle phi(v_{1}), phi(v_{2}) ight angle$,因为是求内积,所以对称性是显而易见的。那么我们怎么推导

      出 $Gram$ 矩阵半正定呢?根据半正定的定义,任选一个 $m$ 维非 $0$ 向量 $c$(这个向量和输入空间是没有关系的)有

$$c^{T}Kc = egin{bmatrix}
c^{(1)} & c^{(2)} & cdots & c^{(m)}
end{bmatrix}egin{bmatrix}
K_{11} & K_{12} & cdots & K_{1m} \
K_{21} & K_{22} & cdots & K_{2m} \
vdots & vdots & ddots & vdots \
K_{m1} & K_{m2} & cdots & K_{mm}
end{bmatrix}egin{bmatrix}
c^{(1)}  \
c^{(2)}  \
vdots   \
c^{(m)}
end{bmatrix} \
= sum_{i = 1}^{m}sum_{j = 1}^{m}c^{(i)}c^{(j)}K_{ij}
= sum_{i = 1}^{m}sum_{j = 1}^{m}c^{(i)}c^{(j)}phi(x_{i})^{T}phi(x_{j}) \
= sum_{i = 1}^{m}c^{(i)}phi(x_{i})^{T} sum_{j = 1}^{m}c^{(j)}phi(x_{j}) \
= left (sum_{i = 1}^{m}c^{(i)}phi(x_{i}) ight )^{T} left (sum_{j = 1}^{m}c^{(j)}phi(x_{j})  ight ) \
= left langle sum_{i = 1}^{m}c^{(i)}phi(x_{i}), sum_{j = 1}^{m}c^{(j)}phi(x_{j}) ight angle \
= left | sum_{i = 1}^{m}c^{(i)}phi(x_{i}) ight |^{2} geq 0$$

   2)证明从右往左成立:反推暂时不太会,将来补上。

3. 核技巧在支持向量机中的应用

   用线性分类方法求解非线性分类问题分为两步:首先使用一个变换将原空间的数据映射到新空间;然后再新空间里用线性分类学习方法从训练数据中学习

   分类模型。求解线性可分问题的目标函数为

$$L(alpha) = frac{1}{2}sum_{i=1}^{n}sum_{j=1}^{n}alpha_{i}alpha_{j}y_{i}y_{j}(x_{i}^{T}x_{j}) -sum_{i=1}^{n}alpha_{i}$$

   此时 $x_{i},x_{j}$ 都是经过映射后的高维空间中的向量,要在这个新的高维空间中求解出一个超平面,使样本点被正确分类。

   观察式子可知,$x_{i}^{T}x_{j}$ 就等于核函数,所以目标函数可以写成如下形式

$$L(alpha) = frac{1}{2}sum_{i=1}^{n}sum_{j=1}^{n}alpha_{i}alpha_{j}y_{i}y_{j}K(x_{i},x_{j}) -sum_{i=1}^{n}alpha_{i}$$

   所谓核技巧,就是指我们可以直接计算 $K(x_{i},x_{j})$(核函数 $K$ 是已知的,根据充要条件可以构造),而不需要真正的去找一个 $phi(x)$(通常是很难找的)。

   也就是说,我们并不关心低维到高维的映射 $phi$ 是什么样子的,我们只需要构造一个函数 $K$,使得该函数可以表示为映射后空间里数据的内积,这样就可以了。

   求解出来的超平面也是位于高维空间的。

原文地址:https://www.cnblogs.com/yanghh/p/13829687.html