【机器学习】支持向量机(下)

支持向量机(下)





八、支持向量机的求解实例


现假设有以下 3 个数据点,我们用这些数据来阐明支持向量机是如何求解分类决策函数的:

求解: 1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j x i T x j − ∑ i = 1 n λ i \frac12\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\text{x}_i^T\text{x}_j-\sum_{i=1}^n\lambda_i 21i=1nj=1nλiλjyiyjxiTxji=1nλi

约束: λ i ≥ 0 , ∑ i = 1 n λ i y i = λ 1 + λ 2 − λ 3 = 0 \lambda_i \geq 0, \hspace{2px} \sum_{i=1}^n\lambda_iy_i=\lambda_1+\lambda_2-\lambda_3=0 λi0,i=1nλiyi=λ1+λ2λ3=0

已知: x 1 = [ 3 , 3 ] T , x 2 = [ 4 , 3 ] T , x 3 = [ 1 , 1 ] T , y = { y 1 , y 2 , y 3 } = { 1 , 1 , − 1 } \text{x}_1=[3,3]^T, \hspace{2px} \text{x}_2=[4,3]^T , \hspace{2px} \text{x}_3=[1,1]^T, \hspace{2px} \text{y}=\{y_1,y_2,y_3\}=\{1,1,-1\} x1=[3,3]T,x2=[4,3]T,x3=[1,1]T,y={ y1,y2,y3}={ 1,1,1}



解:

x 1 = [ 3 , 3 ] T , x 2 = [ 4 , 3 ] T , x 3 = [ 1 , 1 ] T \text{x}_1=[3,3]^T, \hspace{2px} \text{x}_2=[4,3]^T , \hspace{2px} \text{x}_3=[1,1]^T x1=[3,3]T,x2=[4,3]T,x3=[1,1]T 带入 1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j x i T x j − ∑ i = 1 n λ i \frac12\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\text{x}_i^T\text{x}_j-\sum_{i=1}^n\lambda_i 21i=1nj=1nλiλjyiyjxiTxji=1nλi 有:

1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j x i T x j − ∑ i = 1 n λ i = 1 2 ( ( λ 1 λ 1 x 1 T x 1 + λ 1 λ 2 x 1 T x 2 − λ 1 λ 3 x 1 T x 3 ) + ( λ 2 λ 1 x 2 T x 1 + λ 2 λ 2 x 2 T x 2 − λ 2 λ 3 x 2 T x 3 ) + ( − λ 3 λ 1 x 3 T x 1 − λ 3 λ 2 x 3 T x 2 + λ 3 λ 3 x 3 T x 3 ) ) − λ 1 − λ 2 − λ 3 = 1 2 ( 18 λ 1 2 + 25 λ 2 2 + 2 λ 3 2 + 42 λ 1 λ 2 − 12 λ 1 λ 3 − 14 λ 2 λ 3 ) − λ 1 − λ 2 − λ 3 \begin{align*} &\frac12\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\text{x}_i^T\text{x}_j-\sum_{i=1}^n\lambda_i \\ &=\frac12\left( \left(\lambda_1\lambda_1\text{x}_1^T\text{x}_1+\lambda_1\lambda_2\text{x}_1^T\text{x}_2-\lambda_1\lambda_3\text{x}_1^T\text{x}_3\right) + \left(\lambda_2\lambda_1\text{x}_2^T\text{x}_1+\lambda_2\lambda_2\text{x}_2^T\text{x}_2-\lambda_2\lambda_3\text{x}_2^T\text{x}_3\right) +\left(-\lambda_3\lambda_1\text{x}_3^T\text{x}_1-\lambda_3\lambda_2\text{x}_3^T\text{x}_2+\lambda_3\lambda_3\text{x}_3^T\text{x}_3\right) \right) - \lambda_1- \lambda_2- \lambda_3 \\ &=\frac12 \left( 18\lambda_1^2+25\lambda_2^2+2\lambda_3^2+42\lambda_1\lambda_2-12\lambda_1\lambda_3-14\lambda_2\lambda_3 \right)- \lambda_1- \lambda_2- \lambda_3 \end{align*} 21i=1nj=1nλiλjyiyjxiTxji=1nλi=21((λ1λ1x1Tx1+λ1λ2x1Tx2λ1λ3x1Tx3)+(λ2λ1x2Tx1+λ2λ2x2Tx2λ2λ3x2Tx3)+(λ3λ1x3Tx1λ3λ2x3Tx2+λ3λ3x3Tx3))λ1λ2λ3=21(18λ12+25λ22+2λ32+42λ1λ212λ1λ314λ2λ3)λ1λ2λ3

λ 1 + λ 2 − λ 3 = 0 \lambda_1+\lambda_2-\lambda_3=0 λ1+λ2λ3=0 带入上式消去 λ 3 \lambda_3 λ3 得到 4 λ 1 2 + 13 2 λ 2 2 + 10 λ 1 λ 2 − 2 λ 1 − 2 λ 2 4\lambda_1^2+\frac{13}{2}\lambda_2^2+10\lambda_1\lambda_2-2\lambda_1-2\lambda_2 4λ12+213λ22+10λ1λ22λ12λ2

则此时要优化的条件极值可改写为: m i n λ f ( λ 1 , λ 2 ) = 4 λ 1 2 + 13 2 λ 2 2 + 10 λ 1 λ 2 − 2 λ 1 − 2 λ 2 s . t . λ i ≥ 0 , i = 1 , 2 min_{\lambda} \hspace{2px} f(\lambda_1,\lambda_2)=4\lambda_1^2+\frac{13}{2}\lambda_2^2+10\lambda_1\lambda_2-2\lambda_1-2\lambda_2 \hspace{1em} s.t. \hspace{2px} \lambda_i \geq 0, i=1,2 minλf(λ1,λ2)=4λ12+213λ22+10λ1λ22λ12λ2s.t.λi0,i=1,2(这相当于消去了 ∑ i = 1 n λ i y i = 0 \sum_{i=1}^n\lambda_iy_i=0 i=1nλiyi=0)。

接下来就简单了,分别对 λ 1 , λ 2 \lambda_1, \lambda_2 λ1,λ2 求偏导并令该值为 0 可得到: λ 1 = 3 2 , λ 2 = − 1 \lambda_1=\frac32, \lambda_2=-1 λ1=23,λ2=1,此解中,由于存在 λ 2 = − 1 < 0 \lambda_2=-1<0 λ2=1<0(不满足约束条件),故舍去。

上面的情况说明,极值点只可能出现在各条件的边界处(即,在 λ 1 = 0 \lambda_1=0 λ1=0 λ 2 = 0 \lambda_2=0 λ2=0 处取得)。于是:

情况 1 :取 λ 1 = 0 \lambda_1=0 λ1=0,则 m i n λ f ( 0 , λ 2 ) = 13 2 λ 2 2 − 2 λ 2 min_{\lambda} \hspace{2px} f(0,\lambda_2)=\frac{13}{2}\lambda_2^2-2\lambda_2 minλf(0,λ2)=213λ222λ2, 令 ∂ f ∂ λ 2 = 13 λ 2 − 2 = 0 \frac{\partial f}{\partial \lambda_2}=13\lambda_2-2=0 λ2f=13λ22=0 得到 λ 2 = 2 13 \lambda_2=\frac{2}{13} λ2=132,则 λ 3 = λ 1 + λ 2 = 2 13 \lambda_3 = \lambda_1+\lambda_2=\frac{2}{13} λ3=λ1+λ2=132
情况 2 :取 λ 2 = 0 \lambda_2=0 λ2=0,则 m i n λ f ( λ 1 , 0 ) = 4 λ 1 2 − 2 λ 1 min_{\lambda} \hspace{2px} f(\lambda_1,0)=4\lambda_1^2-2\lambda_1 minλf(λ1,0)=4λ122λ1, 令 ∂ f ∂ λ 1 = 8 λ 2 − 2 = 0 \frac{\partial f}{\partial \lambda_1}=8\lambda_2-2=0 λ1f=8λ22=0 得到 λ 1 = 1 4 \lambda_1=\frac14 λ1=41,则 λ 3 = λ 1 + λ 2 = 1 4 \lambda_3 = \lambda_1+\lambda_2=\frac14 λ3=λ1+λ2=41

即分别在 ( 0 , 2 13 ) (0,\frac{2}{13}) (0,132) ( 1 4 , 0 ) (\frac14,0) (41,0) 处取得,比较两处的函数值:

f ( 0 , 2 13 ) = − 2 13 > − 1 4 = f ( 1 4 , 0 ) f\left(0,\frac{2}{13}\right)=-\frac{2}{13}>-\frac14=f\left(\frac14,0\right) f(0,132)=132>41=f(41,0)

即条件极值在 ( 1 4 , 0 ) (\frac14,0) (41,0) 处取得,此时:

λ 1 = 1 4 , λ 2 = 0 , λ 3 = λ 1 + λ 2 = 1 4 \lambda_1=\frac14, \lambda_2=0, \lambda_3=\lambda_1+\lambda_2=\frac14 λ1=41,λ2=0,λ3=λ1+λ2=41

λ = { λ 1 , λ 2 , λ 3 } \lambda=\{ \lambda_1, \lambda_2,\lambda_3 \} λ={ λ1,λ2,λ3} 回代求解 w ∗ , b ∗ w^*,b^* w,b

w ∗ = ∑ i = 1 n λ i y i x i = λ 1 y 1 x 1 + λ 2 y 2 x 2 + λ 3 y 3 x 3 = 1 4 × 1 × ( 3 , 3 ) + 0 × 1 × ( 3 , 4 ) + 1 4 × ( − 1 ) × ( 1 , 1 ) = ( 1 2 , 1 2 ) \begin{align*} w^*&= \sum_{i=1}^n\lambda_iy_i\text{x}_i \\ &=\lambda_1y_1\text{x}_1+\lambda_2y_2\text{x}_2+\lambda_3y_3\text{x}_3 \\ &=\frac14\times1\times(3,3)+0\times1\times(3,4)+\frac14\times(-1)\times(1,1) \\ &=\left(\frac12,\frac12\right) \end{align*} w=i=1nλiyixi=λ1y1x1+λ2y2x2+λ3y3x3=41×1×(3,3)+0×1×(3,4)+41×(1)×(1,1)=(21,21)

b ∗ = y j − ∑ i = 1 n λ i y i x i T x j = y 1 − ( λ 1 y 1 x 1 T x 1 + λ 2 y 2 x 2 T x 1 + λ 3 y 3 x 3 T x 1 ) = 1 − ( 1 4 × 1 × 18 + 0 × 1 × 21 + 1 4 × ( − 1 ) × 6 ) = − 2 \begin{align*} b^*&= y_j-\sum_{i=1}^n\lambda_iy_i\text{x}_i^T\text{x}_j \\ &=y_1-\left(\lambda_1y_1\text{x}_1^T\text{x}_1+\lambda_2y_2\text{x}_2^T\text{x}_1+\lambda_3y_3\text{x}_3^T\text{x}_1\right) \\ &=1-\left(\frac14\times1\times18+0\times1\times21+\frac14\times(-1)\times6\right) \\ &=-2 \end{align*} b=yji=1nλiyixiTxj=y1(λ1y1x1Tx1+λ2y2x2Tx1+λ3y3x3Tx1)=1(41×1×18+0×1×21+41×(1)×6)=2

进而得到决策边界为:

f ( x ) = s i g n ( w ∗ T x + b ∗ ) = s i g n ( 1 2 x 1 + 1 2 x 2 − 2 ) f(\text{x})=sign({w^*}^T\text{x}+b^*)=sign\left( \frac12x_1+\frac12x_2-2 \right) f(x)=sign(wTx+b)=sign(21x1+21x22)

从前面给出的图例不难看出,计算得到的决策方程与其是相对应的。

在前面的求解过程中,我们得到的 λ = { λ 1 , λ 2 , λ 3 } = { 1 4 , 0 , 1 4 } \lambda=\{\lambda_1,\lambda_2,\lambda_3\}=\left\{\frac14,0,\frac14\right\} λ={ λ1,λ2,λ3}={ 41,0,41}。观察该系数会发现, λ 2 = 0 \lambda_2=0 λ2=0 ,因此其对应的数据点 ( 4 , 3 ) (4,3) (4,3) 并未对决策边界方程的系数 w ∗ w^* w 产生任何影响。换言之,真正发挥作用的数据点是 λ i ≠ 0 \lambda_i \neq 0 λi=0 所对应的数据点。从这个角度来看,决策边界正是由少部分 λ i ≠ 0 \lambda_i \neq 0 λi=0 所对应的数据点(向量)所支持而得,因此称这些向量为 支持向量

在这里插入图片描述




九、核函数


1、核函数的引入

前面提到,支持向量机默认样本数据集是线性可分的,即存在一个超平面能将两个类别的数据完全分开。然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面。例如下图中,“异或” 问题就不是线性可分的:

在这里插入图片描述

对这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。例如上图中,若将原始二维空间映射到一个更合适的三维空间,就能找到一个更合适的划分超平面。幸运的是,如果原始空间是有限维,即属性的总量有限,则一定存在一个合适的高维特征空间使样本可分。

若令 Φ ( x ) \Phi(\text{x}) Φ(x) 表示将 x \text{x} x 映射后的特征向量,则在特征空间中划分超平面所对应的模型可表示为:

f ( x ) = w T Φ ( x ) + b f(\text{x})=w^T\Phi(\text{x})+b f(x)=wTΦ(x)+b

这时,便可将优化的目标方程写为:

m i n w , b 1 2 w 2 s . t . y i ( w T Φ ( x i ) + b ) ≥ 1 i = 1 , 2 , … , n \begin{align*} &min_{w,b} \hspace{2px} \frac12w^2 \\ &s.t. \hspace{0.6em} y_i\left(w^T\Phi(\text{x}_i)+b\right) \geq 1 \hspace{1em} i=1,2,…,n\\ \end{align*} minw,b21w2s.t.yi(wTΦ(xi)+b)1i=1,2,,n

其对应的对偶问题为:

m i n L ( λ ) = 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 ≥ 0 ∑ i = 1 n λ i y i = 0 \begin{align*} &min \hspace{4px} L(\lambda)=\frac12\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\Phi(\text{x}_i)^T\Phi(\text{x}_j)-\sum_{i=1}^n\lambda_i \\ &s.t. \hspace{1em} \lambda_i \geq 0 \\ &\hspace{2.5em} \sum_{i=1}^n\lambda_iy_i=0 \\ \end{align*} minL(λ)=21i=1nj=1nλiλjyiyjΦ(xi)TΦ(xj)i=1nλis.t.λi0i=1nλiyi=0

该式中 Φ ( x i ) T Φ ( x j ) \Phi(\text{x}_i)^T\Phi(\text{x}_j) Φ(xi)TΦ(xj) 是样本 x i \text{x}_i xi x j \text{x}_j xj 在经过高维映射后,再执行的内积运算。由于特征空间维数可能很高(甚至可能是无穷维),因此直接计 Φ ( x i ) T Φ ( x j ) \Phi(\text{x}_i)^T\Phi(\text{x}_j) Φ(xi)TΦ(xj) 是相当困难的。有没有一种方法可以避免这步计算而直接得到 Φ ( x i ) T Φ ( x j ) \Phi(\text{x}_i)^T\Phi(\text{x}_j) Φ(xi)TΦ(xj) 的结果呢?试想,如果存在一个函数:

κ ( x i , x j ) = Φ ( x i ) T Φ ( x j ) \kappa(\text{x}_i,\text{x}_j)=\Phi(\text{x}_i)^T\Phi(\text{x}_j) κ(xi,xj)=Φ(xi)TΦ(xj)

x i \text{x}_i xi x j \text{x}_j xj 在特征空间的内积等于它们在原始样本空间中通过函数 κ ( ⋅ , ⋅ ) \kappa(·,·) κ(⋅,⋅) 计算而得的结果,那我们就不必直接去计算高维甚至无穷维特
征空间中的内积,此时就能将对偶问题改写为:

m i n L ( λ ) = 1 2 ∑ i = 1 n ∑ j = 1 n λ i λ j y i y j κ ( x i , x j ) − ∑ i = 1 n λ i s . t . λ i ≥ 0 ∑ i = 1 n λ i y i = 0 \begin{align*} &min \hspace{4px} L(\lambda)=\frac12\sum_{i=1}^n\sum_{j=1}^n\lambda_i\lambda_jy_iy_j\kappa(\text{x}_i,\text{x}_j)-\sum_{i=1}^n\lambda_i \\ &s.t. \hspace{1em} \lambda_i \geq 0 \\ &\hspace{2.5em} \sum_{i=1}^n\lambda_iy_i=0 \\ \end{align*} minL(λ)=21i=1nj=1nλiλjyiyjκ(xi,xj)i=1nλis.t.λi0i=1nλiyi=0

解得其对应的决策方程为:

f ( x ) = s i g n ( w ∗ T Φ ( x ) + b ∗ ) = s i g n ( ∑ i = 1 n λ i y i Φ ( x i ) T Φ ( x ) + b ∗ ) = s i g n ( ∑ i = 1 n λ i y i κ ( x i , x j ) + b ∗ ) \begin{align*} f(\text{x})&=sign\left({w^*}^T\Phi(\text{x})+b^*\right) \\ &=sign\left(\sum_{i=1}^n\lambda_iy_i\Phi(\text{x}_i)^T\Phi(\text{x})+b^*\right) \\ &=sign\left(\sum_{i=1}^n\lambda_iy_i\kappa(\text{x}_i,\text{x}_j)+b^*\right) \\ \end{align*} f(x)=sign(wTΦ(x)+b)=sign(i=1nλiyiΦ(xi)TΦ(x)+b)=sign(i=1nλiyiκ(xi,xj)+b)

我们把这种转换思想称为 核技巧 κ ( ⋅ , ⋅ ) \kappa(·,·) κ(⋅,⋅) 称为核函数。但 κ ( ⋅ , ⋅ ) \kappa(·,·) κ(⋅,⋅) 真的存在么?怎样的函数又能被用作核函数呢?为此,众多数学家在几十年内前仆后继地开展了广泛研究,Schölkopf、Smola 在它们的论文中给出以下定义:设 χ \chi χ 为输入空间, κ ( ⋅ , ⋅ ) \kappa(·,·) κ(⋅,⋅) 是定义在 χ × χ \chi \times \chi χ×χ 上的对称函数,则 κ \kappa κ 是核函数当且仅当对于任意数据 D = { x 1 , x 2 , … , x n } D=\{\text{x}_1,\text{x}_2,…,\text{x}_n\} D={ x1,x2,,xn} ,核矩阵 K \Kappa K 总是半正定的:

K = [ κ ( x 1 , x 1 ) ⋯ κ ( x 1 , x n ) ⋮ ⋱ ⋮ κ ( x n , x 1 ) ⋯ κ ( x n , x n ) ] \Kappa= \begin{bmatrix} \kappa(\text{x}_1,\text{x}_1) & \cdots & \kappa(\text{x}_1,\text{x}_n) \\ \vdots & \ddots & \vdots \\ \kappa(\text{x}_n,\text{x}_1) & \cdots & \kappa(\text{x}_n,\text{x}_n) \end{bmatrix} K= κ(x1,x1)κ(xn,x1)κ(x1,xn)κ(xn,xn)

该式表明,只要一个对称函数所对应的核矩阵半正定,它就能作为核函数使用。实际上,对于一个半正定核矩阵,总能找到一个与之对应的映射 Φ ( ⋅ ⋅ ) \Phi(··) Φ(⋅⋅) 。换言之,任何一个核函数都隐式地定义了一个称为 “再生核希尔伯特空间” 的特征空间。

通过前面的讨论可知,我们希望样本在特征空间内线性可分,因此特征空间的好坏对支持向量机的性能至关重要。需注意的是,在不知道特征映射的形式时,我们并不知道什么样的核函数是合适的,而核函数也仅是隐式地定义了这个特征空间。于是,“核函数选择” 成为了支持向量机的最大变数。若核函数选择不合适,则意味着将样本映射到了一个不合适的特征空间,就很可能导致性能不佳。

下面列出了几个常用的核函数:

在这里插入图片描述

此外,还可通过函数组合得到:

  • κ 1 , κ 2 \kappa_1,\kappa_2 κ1,κ2 为核函数,则对于任意正数 λ 1 , λ 2 \lambda_1,\lambda_2 λ1,λ2,其线性组合 λ 1 κ 1 + λ 2 κ 2 \lambda_1\kappa_1+\lambda_2\kappa_2 λ1κ1+λ2κ2 也是核函数。
  • κ 1 , κ 2 \kappa_1,\kappa_2 κ1,κ2 为核函数,则核函数的直积 κ 1 ⨂ κ 2 = κ 1 ( x , y ) κ 2 ( x , y ) \kappa_1\bigotimes\kappa_2=\kappa_1(\text{x},\text{y})\kappa_2(\text{x},\text{y}) κ1κ2=κ1(x,y)κ2(x,y) 也是核函数。
  • κ \kappa κ 为核函数,则对任意函数 g ( x ) g(\text{x}) g(x) κ ′ ( x , y ) = g ( x ) κ ( x , y ) g ( y ) \kappa^{'}(\text{x},\text{y})=g(\text{x})\kappa(\text{x},\text{y})g(\text{y}) κ(x,y)=g(x)κ(x,y)g(y) 也是核函数。

2、核函数的示例

下面通过一个实际的例子来阐述核函数的作用。

假设现在有两个数据, x = ( x 1 , x 2 , x 3 ) , y = ( y 1 , y 2 , y 3 ) \text{x}=(x_1,x_2,x_3),\text{y}=(y_1,y_2,y_3) x=(x1,x2,x3),y=(y1,y2,y3),此时,在三维空间已经无法对它们进行划分。那么,我们可以通过一个函数来将这个数据映射到更高维的空间。现假设将其映射至 m 2 = 9 m^2 = 9 m2=9 维空间( m m m 为原始数据维度),且定义映射函数为:

Φ ( x ) = ( x 1 x 1 , x 1 x 2 , x 1 x 3 , x 2 x 1 , x 2 x 2 , x 2 x 3 , x 3 x 1 , x 3 x 2 , x 3 x 3 ) \Phi(\text{x})=(x_1x_1,x_1x_2,x_1x_3,x_2x_1,x_2x_2,x_2x_3,x_3x_1,x_3x_2,x_3x_3) Φ(x)=(x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3)

前面解得,支持向量机的决策方程为 f ( x ) = s i g n ( ∑ i = 1 n λ i y i Φ ( x i ) T Φ ( x ) + b ∗ ) f(\text{x})=sign\left(\sum_{i=1}^n\lambda_iy_i\Phi(\text{x}_i)^T\Phi(\text{x})+b^*\right) f(x)=sign(i=1nλiyiΦ(xi)TΦ(x)+b),其中涉及内积运算。由于原始数据在经过映射后,其维度达到 9,则映射后的数据在计算内积 < Φ ( x ) , Φ ( y ) > \left<\Phi(\text{x}), \Phi(\text{y})\right> Φ(x),Φ(y) 时,需要花费 O ( m 2 ) O(m^2) O(m2) 的时间。下面我们手动计算下这个过程:

  1. x = ( 1 , 2 , 3 ) , y = ( 4 , 5 , 6 ) \text{x}=(1,2,3), \text{y}=(4,5,6) x=(1,2,3),y=(4,5,6),则 Φ ( x ) = ( 1 , 2 , 3 , 2 , 4 , 6 , 3 , 6 , 9 ) , Φ ( y ) = ( 16 , 20 , 24 , 20 , 25 , 36 , 24 , 30 , 36 ) \Phi(\text{x})=(1,2,3,2,4,6,3,6,9), \Phi(\text{y})=(16,20,24,20,25,36,24,30,36) Φ(x)=(1,2,3,2,4,6,3,6,9),Φ(y)=(16,20,24,20,25,36,24,30,36)
  2. 计算 < Φ ( x ) , Φ ( y ) > = 16 + 40 + 72 + 40 + 100 + 180 + 72 + 180 + 324 = 1024 \left<\Phi(\text{x}), \Phi(\text{y})\right>=16 + 40 + 72 + 40 + 100 + 180 + 72 + 180 + 324 = 1024 Φ(x),Φ(y)=16+40+72+40+100+180+72+180+324=1024

现在直接取核函数 κ ( x , y ) = ( < x , y > ) 2 \kappa(\text{x},\text{y})=\left(<\text{x},\text{y}>\right)^2 κ(x,y)=(<x,y>)2,并带入数据直接计算:

< Φ ( x ) , Φ ( y ) > = κ ( x , y ) = ( < x , y > ) 2 = ( ( 1 , 2 , 3 ) ⋅ ( 4 , 5 , 6 ) ) 2 = ( 4 + 10 + 18 ) 2 = 3 2 2 = 1024 <\Phi(\text{x}),\Phi(\text{y})>=\kappa(\text{x},\text{y})=\left(<\text{x},\text{y}>\right)^2=\left((1,2,3)·(4,5,6)\right)^2=\left(4+10+18\right)^2=32^2=1024 <Φ(x),Φ(y)>=κ(x,y)=(<x,y>)2=((1,2,3)(4,5,6))2=(4+10+18)2=322=1024

可以看出,两种方式计算出的结果完全相等,但利用核函数计算的复杂度为 O ( m ) O(m) O(m),而直接计算的复杂度却为 O ( m 2 ) O(m^2) O(m2) 。所以使用核
函数的优点就在于,可以在低维空间去完成高纬度(甚至无限维度)样本内积的计算(从而大大降低时间开销)。




十、软间隔


1、何为软间隔

前面提到,支持向量机默认样本数据集是线性可分的,即存在一个超平面能将两个类别的数据完全分开。然而,现实任务的样本很难找到合适的核函数来使得样本在特征空间中线性可分。退一步说,即使恰好找到了某个核函数能使得训练集在特征空间中线性可分,也很难断定这个貌似线性可分的结果不是由于过拟合所造成的。

解决该问题的一个可行思路是:允许出现一些错误,并且要使得间隔最大的同时,错误最小化。为此,引入“软间隔” (Sofft Margin) 的概念:

在这里插入图片描述

上图中,浅色样本表示出现的不满足约束的样本。具体来讲,前面介绍的支持向量机,是要求所有样本都必须强制满足约束条件(即:所有样本都必须划分正确),这称为 “硬间隔” (Hard Margin) ,而软间隔则是允许某些样本不满足约束:

y i ( w T x i + b ) ≥ 1 y_i(w^T\text{x}_i+b) \geq 1 yi(wTxi+b)1

当然,在最大化间隔的同时,不满足约束的样本应尽可能少。

如果不引入软间隔,可能会出现的情况:

在这里插入图片描述

2、引入软间隔后的目标方程

引入软间隔后,可改写优化的目标方程为:

m i n w , b 1 2 w 2 + C ∑ i = 1 n l 0 / 1 ( 1 − y i ( w T x i + b ) ) min_{w,b} \hspace{4px} \frac12w^2+C\sum_{i=1}^nl_{0/1}\left(1-y_i(w^T\text{x}_i+b)\right) minw,b21w2+Ci=1nl0/1(1yi(wTxi+b))

其中 C > 0 C>0 C>0 是个常数, l 0 / 1 l_{0/1} l0/10/1损失函数,其定义如下:

l 0 / 1 ( z ) = { 1 z < 0 0 z ≥ 0 l_{0/1}(z)= \left\{ \begin{aligned} &1 && z<0\\ &0 && z\geq0\\ \end{aligned} \right. l0/1(z)={ 10z<0z0

仔细观察新的目标函数,当 C C C 无穷大时,其相当于是放大了所有数据样本在分类时距划分超平面的距离,这就完全可采取硬间隔的方式进行求解。此时,该目标函数将退化为之前的目标函数;而当 C C C 取值有限时(特别是小于 1 时),该目标函数就表达着 “允许一些样本不满足约束” 的含义,故而符合软间隔的目的。

然而 l 0 / 1 l_{0/1} l0/1 是非凸、非连续函数,其数学性质不太好,这就给新的目标函数求解带来困难。于是,可以选择一些其他函数来替代 l 0 / 1 l_{0/1} l0/1 ,称为 “损失替代” (Surrogate Loss) 。替代损失函数一般具有较好的数学性质,如它们通常是凸的连续函数且是 l 0 / 1 l_{0/1} l0/1 的上界。下面是一些常用的替代函数:

  • hinge 损失: l h i n g e ( z ) = m a x ( 0 , 1 − z ) l_{hinge}(z)=max(0,1-z) lhinge(z)=max(0,1z)
  • 指数损失 (Exponential loss): l e x p ( z ) = e x p ( − z ) l_{exp}(z)=exp(-z) lexp(z)=exp(z)
  • 对数损失 (Logistic loss): l l o g ( z ) = l o g ( 1 + e x p ( − z ) ) l_{log}(z)=log(1+exp(-z)) llog(z)=log(1+exp(z))

图像如下:

在这里插入图片描述

若采用 hinge 损失的方式,则目标方程变为:

m i n w , b 1 2 w 2 + C ∑ i = 1 n m a x ( 0 , 1 − y i ( w T x i + b ) ) min_{w,b} \hspace{4px} \frac12w^2+C\sum_{i=1}^nmax\left(0,1-y_i(w^T\text{x}_i+b)\right) minw,b21w2+Ci=1nmax(0,1yi(wTxi+b))

注:不是将 l 0 / 1 l_{0/1} l0/1 换为 l h i n g e l_{hinge} lhinge,而是替换 l 0 / 1 l_{0/1} l0/1 m a x ( 0 , f ) max(0,f) max(0,f),其中 f f f 为约束条件。

上式中, C > 0 C>0 C>0 是惩罚系数,表示损失的权重。当 C C C 无穷大时,要使最终的损失最小就不得不使 m a x ( 0 , y i ( w T x i + b ) − 1 ) = 0 max(0,y_i(w^T\text{x}_i+b)-1)=0 max(0,yi(wTxi+b)1)=0,即迫使所有样本都分类正确;而当 C C C 为一定值时,表示允许一些样本分类错误。

此时若令 ∑ i = 1 n m a x ( 0 , y i ( w T x i + b ) − 1 ) = ∑ i = 1 n ξ i \sum_{i=1}^nmax(0,y_i(w^T\text{x}_i+b)-1)=\sum_{i=1}^n\xi_i i=1nmax(0,yi(wTxi+b)1)=i=1nξi ,则有以下两种情况:

  • y i ( w T x i + b ) ≥ 1 y_i(w^T\text{x}_i+b) \geq 1 yi(wTxi+b)1 时,即样本严格满足硬间隔中的约束(此时样本绝不会被分错),则 ξ i = 0 \xi_i=0 ξi=0
  • 反之,样本不满足硬间隔中的约束(此时样本会分错),则 ξ i = 1 − y i ( w T x i + b ) > 0 \xi_i=1-y_i(w^T\text{x}_i+b)>0 ξi=1yi(wTxi+b)>0

我们称 ξ i ≥ 0 \xi_i \geq 0 ξi0松弛变量 (Slack Variables),将该变量引入新的目标方程可得到:

m i n 1 2 w 2 + C ∑ i = 1 n ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 i = 1 , 2 , … , n \begin{align*} &min \hspace{4px} \frac12w^2+C\sum_{i=1}^n\xi_i \\ &s.t. \hspace{1em} y_i(w^T\text{x}_i+b) \geq 1-\xi_i \\ &\hspace{2.5em} \xi_i \geq 0 \hspace{1em} i=1,2,…,n \\ \end{align*} min21w2+Ci=1nξis.t.yi(wTxi+b)1ξiξi0i=1,2,,n

这便是 “软间隔支持向量机”。
在该式中,每个样本都有一个对应的松弛变量,以表征该样本不满足约束 y i ( w T x i + b ) ≥ 1 y_i(w^T\text{x}_i+b) \geq 1 yi(wTxi+b)1 的程度。容易看出,这仍然是一个二次规划问题。因此,可采取和前面一样的方式找到其对偶问题,然后再通过对此对偶问题进行求解以达到对 “软间隔支持向量机” 进行求解的目的,在此就不再赘述。




十一、正则化


现在我们来思考,可否选择一些其他函数来替代 l 0 / 1 l_{0/1} l0/1 ?答案当然是可以的。例如,当采用对数损失 l l o g ( z ) = l o g ( 1 + e x p ( − 1 ) ) l_{log}(z)=log(1+exp(-1)) llog(z)=log(1+exp(1)) 时(称
此时的模型为对率回归模型),其输出就含有了自然概率的意义,即在给出预测标记的同时也给出了概率,而支持向量机的输出不具有概率意义,欲得到概率输出需进行特殊处理。此外,对率回归能直接用于多分类任务,支持向量机为此则需进行推广。另一方面,从上图可看出,hinge 损失有一块 “平坦” 的零区域,这使得支持向量机的解具有稀疏性,而对率损失是光滑的单调递减函数,不能导出类似支持向量的概念,因此对率回归的解依赖于更多的训练样本,其预测开销更大。

再者,我们还可以将损失函数换成别的替代损失函数以得到其他学习模型,这些模型的性质与所用的替代函数直接相关,但它们具有一个共性:优化目标中的第一项用来描述划分超平面的 “间隔” 大小,另一项 ∑ i = 1 n l ( f ( x i ) , y i ) \sum_{i=1}^nl\left(f(\text{x}_i),y_i\right) i=1nl(f(xi),yi) 用来表述训练集上的误差,此时可将目标函数写为更一般的形式:

m i n w , b Ω ( f ) + C ∑ i = 1 n l ( f ( x i ) , y i ) min_{w,b} \hspace{4px} \Omega(f)+C\sum_{i=1}^nl\left(f(\text{x}_i),y_i\right) minw,bΩ(f)+Ci=1nl(f(xi),yi)

其中, Ω ( f ) \Omega(f) Ω(f) 称为 结构风险(Structural Risk),用于描述模型 f f f 的某些性质;第二项 ∑ i = 1 n l ( f ( x i ) , y i ) \sum_{i=1}^nl\left(f(\text{x}_i),y_i\right) i=1nl(f(xi),yi) 称为 经验风险(Empirical Risk),用于描述模型与训练数据的契合程度; C C C 用于对二者进行折中。从经验风险最小化的角度来看, Ω ( f ) \Omega(f) Ω(f) 表述了我们希望获得具有何种性质的模型(例如希望获得复杂度较小的模型),这为引入领域知识和用户意图提供了途径;另一方面,该信息有助于削减假设空间,从而降低了最小化训练误差的过拟合风险。从这个角度来说,上式被称为为 正则化(Regularization) 问题, Ω ( f ) \Omega(f) Ω(f) 称为正则化项, C C C 则称为正则化常数。 L p L_p Lp 范数(Norm)是常用的正则化项目,其中 L 2 L_2 L2 范数 ∣ ∣ w ∣ ∣ 2 ||w||_2 ∣∣w2 倾向于 w w w 的分量取值尽量均衡,即非零分量个数尽量稠密;而 L 0 L_0 L0 范数 ∣ ∣ w ∣ ∣ 0 ||w||_0 ∣∣w0 L 1 L_1 L1 范数 ∣ ∣ w ∣ ∣ 1 ||w||_1 ∣∣w1 范数则倾向于 w w w 的分量尽量稀疏,即非零分量个数尽量少。




十二、关于支持向量机的分类


最后对支持向量机按其处理数据集的不同进行分类:

  • 线性可分支持向量机

    线性可分支持向量机处理的是严格线性可分的数据集。即,其学习的优化问题为:

    m i n w , b 1 2 w 2 s . t . 1 − y i ( w T x i + b ) ≤ 0 i = 1 , 2 , … , n \begin{align*} &min_{w,b} \hspace{4px} \frac12w^2\\ &s.t. \hspace{1em} 1-y_i(w^T\text{x}_i+b) \leq 0 \hspace{1em} i=1,2,…,n \\ \end{align*} minw,b21w2s.t.1yi(wTxi+b)0i=1,2,,n

    其划分超平面为 w ∗ ⋅ x + b ∗ = 0 w^*·\text{x}+b^*=0 wx+b=0,对应决策函数为 f ( x ) = s i g n ( w ∗ T x + b ∗ ) f(\text{x})=sign\left( {w^*}^T\text{x}+b^* \right) f(x)=sign(wTx+b)(其中 w ∗ , b ∗ w^*,b^* w,b 表示最终解得的最优解)。

  • 线性支持向量机

    线性支持向量机处理的是线性不可分的数据集。其处理方式是在线性可分支持向量机的基础上加上松弛变量。其学习的优化问题为:

    m i n w , b 1 2 w 2 + C ∑ i = 1 n ξ i s . t . y i ( w T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 i = 1 , 2 , … , n \begin{align*} &min_{w,b} \hspace{4px} \frac12w^2+C\sum_{i=1}^n\xi_i \\ &s.t. \hspace{1em} y_i(w^T\text{x}_i+b) \geq 1-\xi_i \\ &\hspace{2.5em} \xi_i \geq 0 \hspace{1em} i=1,2,…,n \\ \end{align*} minw,b21w2+Ci=1nξis.t.yi(wTxi+b)1ξiξi0i=1,2,,n

  • 非线性支持向量机

    非线性支持向量机就是在线性支持向量机中引入核函数,使其分类决策函数变为: f ( x ) = s i g n ( w ∗ T Φ ( x ) + b ∗ ) f(\text{x})=sign\left( {w^*}^T\Phi(\text{x})+b^* \right) f(x)=sign(wTΦ(x)+b)




十三、数据标准化的影响


在这里插入图片描述

如果不对数据标准化,可能会导致支持向量间隔非常小(如一些极端的离群点),从而对最终的分类效果产生影响。




【机器学习】支持向量机(上)


END


猜你喜欢

转载自blog.csdn.net/the_ZED/article/details/131540939