支持向量机——机器学习(周志华)

支持向量机

间隔与支持向量

在这里插入图片描述

给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D = \{(\bm{x_1},y_1), (\bm{x_2},y_2),..., (\bm{x_m},y_m)\}, y_i \in \{-1, +1\} D={(x1,y1),(x2,y2),...,(xm,ym)},yi{1,+1},分类学习最基本得想法就是基于训练集D在样本空间中找到一个划分超平面,将不同得类别分开。这个超平面对于样本得局部扰动“容忍性最好”。

  • 划分超平面可以通过以下线性方程表示:
    ω T x + b = 0 \bm{\omega^Tx} + b = 0 ωTx+b=0

ω = ( ω 1 , ω 2 , . . . , ω d ) \bm{\omega} = (\omega_1,\omega_2,...,\omega_d) ω=(ω1,ω2,...,ωd)为法向量,决定了超平面得方向;b为位移项,决定了超平面与远点之间的距离

  • 样本空间任意衣点 x \bm{x} x到超平面的距离可写为:
    r = ∣ ω T x + b ∣ ∣ ∣ ω ∣ ∣ r = \frac{|\bm{\omega^Tx} + b|}{||\bm{\omega} ||} r=ωωTx+b

  • 假设超平面能将训练样本正确分类,即对于 ( x i , y i ) ∈ D (\bm{x_i},y_i)\in D (xi,yi)D,若 y i = + 1 y_i = +1 yi=+1,则有 ω T x i + b &gt; 0 \bm{\omega^Tx_i} + b &gt; 0 ωTxi+b>0;若 y i = − 1 y_i = -1 yi=1,则有 ω T x i + b &lt; 0 \bm{\omega^Tx_i} + b &lt; 0 ωTxi+b<0;令
    { ω T x i + b ≤ − 1 , y i = − 1 ; ω T x i + b ≥ + 1 , y i = + 1 ; \{_{\bm{\omega^Tx_i} + b \le -1, \quad y_i = -1;}^{\bm{\omega^Tx_i} + b \ge +1, \quad y_i = +1;} {ωTxi+b1,yi=1;ωTxi+b+1,yi=+1;

  • 距离超平面最近的这几个训练样本点使上式等号成立,他们被称为“支持向量”,两个异类支持向量到超平面的距离之和为"间隔":
    γ = 2 ∣ ∣ ω ∣ ∣ \gamma = \frac{2}{||\bm{\omega}||} γ=ω2
    在这里插入图片描述

  • 找到最大间隔,就是:
    max ⁡ ω , b γ = 2 ∣ ∣ ω ∣ ∣ s . t . y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m . \max \limits_{\bm{\omega},b} \quad \gamma = \frac{2}{||\bm{\omega}||} \\ s.t. \quad y_i(\bm{\omega^Tx_i} + b ) \ge 1, i=1,2,...,m. ω,bmaxγ=ω2s.t.yi(ωTxi+b)1,i=1,2,...,m.
    或者
    min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . y i ( ω T x i + b ) ≥ 1 , i = 1 , 2 , . . . , m . \min \limits_{\bm{\omega},b} \quad \frac{1}{2}||\bm{\omega}||^2 \\ s.t. \quad y_i(\bm{\omega^Tx_i} + b ) \ge 1, i=1,2,...,m. ω,bmin21ω2s.t.yi(ωTxi+b)1,i=1,2,...,m.
    这就是支持向量机(SVM)的基本型。

对偶问题

  • 对于上面的公式,使用拉格朗日乘子法可得到其“对偶问题”,对上式的每条约束添加拉格朗日乘子 α i ≥ 0 \alpha_i \ge 0 αi0,该问题的拉格朗日函数可写为:
    L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 m α i ( 1 − y i ( ω T x i + b ) ) L(\bm{\omega}, b,\bm{\alpha}) = \frac{1}{2} ||\bm{\omega}||^2 + \sum_{i=1}^m \alpha_i(1-y_i(\bm{\omega^Tx_i} + b)) L(ω,b,α)=21ω2+i=1mαi(1yi(ωTxi+b))
  • ω \bm{\omega} ω和b求偏导可得:
    ω = ∑ i = 1 m α i y i x i 0 = ∑ i = 1 m α i y i \bm{\omega} = \sum_{i=1}^{m}\alpha_iy_i\bm{x_i} \\ 0 = \sum_{i=1}^{m}\alpha_iy_i ω=i=1mαiyixi0=i=1mαiyi
  • 带入可得对偶问题:
    max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , m . \max \limits_{\bm{\alpha}} \quad \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\bm{x_i^Tx_j} \\ s.t. \quad \sum_{i=1}^{m}\alpha_iy_i = 0 \\ \alpha_i \ge 0, i = 1,2,...,m. αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxjs.t.i=1mαiyi=0αi0,i=1,2,...,m.
  • 解出 α \bm{\alpha} α,求出 ω 和 b \bm{\omega}和b ωb即可得到模型:
    f ( x ) = ω T x + b = ∑ i = 1 m α i y i x i T x + b f(\bm{x}) = \bm{\omega^Tx} + b = \sum_{i=1}^{m}\alpha_iy_i\bm{x_i^Tx} + b f(x)=ωTx+b=i=1mαiyixiTx+b
  • 上述过程需要满足KKT条件
    { a i ≥ 0 ; y i f ( x i ) − 1 ≥ 0 ; α ( y i f ( x i ) − 1 ) = 0 ; \begin{cases} a_i \ge 0; \\ y_if(\bm{x_i}) - 1 \ge 0; \\ \alpha(y_if(\bm{x_i}) - 1) = 0; \end{cases} ai0;yif(xi)10;α(yif(xi)1)=0;

对任意样本 ( x i , y i ) (\bm{x_i},y_i) (xi,yi)总有 α i = 0 或 者 y i f ( x i ) = 1 \alpha_i = 0 或者 y_if(\bm{x_i}) = 1 αi=0yif(xi)=1,若 α i = 0 \alpha_i = 0 αi=0,则该样本将不会在求和中出现,也就不会对 f ( x ) f(x) f(x)有任何影响,若 α &gt; 0 \alpha &gt; 0 α>0,则必有 y i f ( x i ) = 1 y_if(\bm{x_i}) = 1 yif(xi)=1,所对应的样本点位于最大间隔的边界上,是一个支持向量。这就是一个支持向量机的重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

如何求解问题呢?这是个二次规划问题,可使用二次规划算法来求解,然而问题的规模正比于训练样本数,这会在实际任务中造成很大的开销。于是可以使用SMO(Sequential Minimal Optimization)算法.

SMO(Sequential Minimal Optimization)算法的基本思路,先固定 α i \alpha_i αi以外所有参数,然后求 α i \alpha_i αi上的极值,由于存在约束 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_iy_i = 0 i=1mαiyi=0,若固定 α i \alpha_i αi之外的其他变量,则 α i \alpha_i αi可由其他变量导出,于是SMO每次选择两个变量 α i 和 α j \alpha_i和\alpha_j αiαj,并固定其他的变量,这样,在参数初始化后,SMO不断执行这个两个步骤。

  • 选取一对需要更新的变量 α i 和 α j \alpha_i和\alpha_j αiαj
  • 固定 α i 和 α j \alpha_i和\alpha_j αiαj以外的参数,求解获得更新后的 α i 和 α j \alpha_i和\alpha_j αiαj

SMO采用了一个启发式:使选取的两个变量对应样本之间的间隔变大,直观解释是,这样的两个变量有很大的区别,与两个相似的变量进行更新相比,对它们进行更新会带给目标函数值更大的变化。

  • SMO算法之所以高效,恰是由于固定其他参数后,仅优化两个参数的过程能做到非常高效,具体来说,仅考虑 α i 和 α j \alpha_i和\alpha_j αiαj时,约束条件可重写为:
    α i y i + α j y j = c \alpha_iy_i + \alpha_jy_j = c αiyi+αjyj=c

c = − ∑ k ≠ i , j α k y k c = -\sum \limits_{k\ne i,j}\alpha_ky_k c=k̸=i,jαkyk,用上式消去 α j \alpha_j αj,得到一个关于 α i \alpha_i αi的单变量二次规划问题,仅有的约束条件时 α i ≥ 0 \alpha_i \ge 0 αi0

  • 确定偏移项b,对于任意的支持向量 ( x s , y s ) 都 有 y s f ( x s ) = 1 (\bm{x_s}, y_s)都有y_sf(\bm{x_s}) = 1 (xs,ys)ysf(xs)=1:
    y s ( ∑ i ∈ S α i y i x i T x s + b ) = 1 y_s(\sum_{i\in S }\alpha_iy_i\bm{x_i^Tx_s} + b) = 1 ys(iSαiyixiTxs+b)=1
    b = 1 ∣ S ∣ ∑ s ∈ S ( 1 y s − ∑ i ∈ S α i y i x i T x s ) b = \frac{1}{|S|}\sum \limits_{s \in S} (\frac{1}{y_s} - \sum_{i\in S }\alpha_iy_i\bm{x_i^Tx_s} ) b=S1sS(ys1iSαiyixiTxs)

核函数

当遇到线性不可分的样本时,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分,令 ϕ ( x ) \phi(\bm{x}) ϕ(x)表示将x映射后的特征向量,则模型变为:
f ( x ) = ω T ϕ ( x ) + b \bm{f(x) = \omega^T\phi({x})} + b f(x)=ωTϕ(x)+b
min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 s . t . y i ( ω T ϕ ( x i ) + b ) ≥ 1 , i = 1 , 2 , . . . , m . \min \limits_{\bm{\omega},b} \quad \frac{1}{2}||\bm{\omega}||^2 \\ s.t. \quad y_i(\bm{\omega^T\phi({x_i})} + b ) \ge 1, i=1,2,...,m. ω,bmin21ω2s.t.yi(ωTϕ(xi)+b)1,i=1,2,...,m.

  • 其对偶问题
    max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j ϕ ( x i ) T ϕ ( x j ) s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , m . \max \limits_{\bm{\alpha}} \quad \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\bm{\phi({x_i})^T\phi({x_j})} \\ s.t. \quad \sum_{i=1}^{m}\alpha_iy_i = 0 \\ \alpha_i \ge 0, i = 1,2,...,m. αmaxi=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)s.t.i=1mαiyi=0αi0,i=1,2,...,m.
  • 求解涉及到计算 ϕ ( x i ) T ϕ ( x j ) \bm{\phi({x_i})^T\phi({x_j})} ϕ(xi)Tϕ(xj),样本映射到特征空间之后的内积,由于特征空间的维数可能很高,甚至是无穷维,因此直接计算时困难的,于是出现了核函数:
    k ( x i , y i ) = &lt; ϕ ( x i ) , ϕ ( x j ) &gt; = ϕ ( x i ) T ϕ ( x j ) k(\bm{x_i, y_i}) = &lt;\bm{\phi({x_i}),\phi({x_j})}&gt; = \bm{\phi({x_i})^T\phi({x_j})} k(xi,yi)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)

x i \bm{x_i} xi y i \bm{y_i} yi在特征空间的内积等于他们在原始样本空间中通过函数 k ( . , . ) k(.,.) k(.,.)计算的结果

  • 于是
    max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j k ( x i , x j ) s . t . ∑ i = 1 m α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , m . \max \limits_{\bm{\alpha}} \quad \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_jk(\bm{x_i, x_j}) \\ s.t. \quad \sum_{i=1}^{m}\alpha_iy_i = 0 \\ \alpha_i \ge 0, i = 1,2,...,m. αmaxi=1mαi21i=1mj=1mαiαjyiyjk(xi,xj)s.t.i=1mαiyi=0αi0,i=1,2,...,m.
  • 求解后得到
    f ( x ) = ω T ϕ ( x ) + b = ∑ i = 1 m α i y i ϕ ( x i ) T ϕ ( x j ) + b = ∑ i = 1 m α i y i k ( x i , x j ) + b \bm{f(x) = \omega^T\phi({x})} + b \\ = \sum_{i=1}^{m}\alpha_iy_i\bm{\phi({x_i})^T\phi({x_j})} + b \\ = \sum_{i=1}^{m}\alpha_iy_ik(\bm{x_i, x_j}) + b f(x)=ωTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(xj)+b=i=1mαiyik(xi,xj)+b

常用的核函数

名称表达式参数
线性核 k ( x i , x j ) k(\bm{x_i, x_j}) k(xi,xj)
多项式核 k ( x i , x j ) k(\bm{x_i, x_j}) k(xi,xj) d ≥ 1 d \ge 1 d1为多项式次数
高斯核 k ( x i , x j ) k(\bm{x_i, x_j}) k(xi,xj) σ &gt; 0 \sigma &gt; 0 σ>0为高斯核的带宽
拉普拉斯核 k ( x i , x j ) k(\bm{x_i, x_j}) k(xi,xj) σ &gt; 0 \sigma &gt; 0 σ>0
Sigmod核 k ( x i , x j ) k(\bm{x_i, x_j}) k(xi,xj) t a n h tanh tanh为双面正切函数, β &gt; 0 , θ &lt; 0 \beta &gt; 0, \theta &lt; 0 β>0,θ<0

此外也可以通过函数组合得到。

软间隔和正则化

现实任务中往往很难确定一个合适的核函数使得训练样本在特征空间中线性可分,即使找到了某个核函数使训练集在特征空间中线性可分,也很难断定线性可分的结果不是由于过拟合所造成的。缓解该问题的一个办法就是允许支持向量机在一些样本上出错,就是"软间隔"的概念,所有样本都必须划分正确,这成为"硬间隔"。

  • 软间隔允许某些样本不满足约束条件:
    y i ( ω T x i + b ) ≥ 1 y_i(\bm{\omega^T{x_i}} + b ) \ge 1 yi(ωTxi+b)1
  • 在最大化间隔的同时,不满足约束条件的样本应尽可能地少,优化目标可写:
    min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ℓ 0 / 1 ( y i ( ω T x i + b ) − 1 ) \min \limits_{\bm{\omega}, b} \quad \frac{1}{2} ||\bm{\omega}||^2 + C\sum_{i=1}^m \ell_{0/1}(y_i(\bm{\omega^Tx_i} + b)-1) ω,bmin21ω2+Ci=1m0/1(yi(ωTxi+b)1)

C C C是一个常数, ℓ 0 / 1 \ell_{0/1} 0/1是“0/1损失函数”
ℓ 0 / 1 ( z ) = { 1 , i f z &lt; 0 ; 0 , o t h e r w i s e \ell_{0/1}(z)= \begin{cases} 1, &amp; if \quad z &lt; 0; \\ 0, &amp; otherwise \end{cases} 0/1(z)={1,0,ifz<0;otherwise
C C C无穷大时,迫使上式所有样本均满足约束,等价于硬间隔,当 C C C取值有限时,允许一些样本不满足约束
ℓ 0 / 1 \ell_{0/1} 0/1非凸、非连续,数学性质不太好,经常会用一些函数代替 ℓ 0 / 1 \ell_{0/1} 0/1,称为“替代损失函数”。
下图给了三种替代损失函数:

  • hinge损失: ℓ h i n g e = m a x ( 0 , 1 − z ) \ell_{hinge} = max(0,1-z) hinge=max(0,1z)
  • 指数损失(exponential loss): ℓ e x p = e x p ( − z ) \ell_{exp} = exp(-z) exp=exp(z)
  • 对率损失(logistic loss): ℓ l o g = l o g ( 1 + e x p ( − z ) ) \ell_{log} = log(1 + exp(-z)) log=log(1+exp(z)) 在这里插入图片描述
  • 采用hinge损失,则变成:
    min ⁡ ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m m a x ( 0 , 1 − y i ( ω T x i + b ) ) \min \limits_{\bm{\omega}, b} \quad \frac{1}{2} ||\bm{\omega}||^2 + C\sum_{i=1}^m max(0, 1 - y_i(\bm{\omega^Tx_i} + b)) ω,bmin21ω2+Ci=1mmax(0,1yi(ωTxi+b))

  • 引入"松弛变量" ξ i ≥ 0 \xi_i \ge 0 ξi0,可重写为:
    min ⁡ ω , b , ξ i 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ( ω T x i + b ) ≥ 1 − ξ i ξ i ≥ 0 , i = 1 , 2 , . . . , m . \min \limits_{\bm{\omega}, b,\xi_i} \quad \frac{1}{2} ||\bm{\omega}||^2 + C\sum_{i=1}^m\xi_i \\ s.t. \quad y_i(\bm{\omega^T{x_i}} + b ) \ge 1 - \xi_i \\ \xi_i \ge 0, i = 1,2,...,m. ω,b,ξimin21ω2+Ci=1mξis.t.yi(ωTxi+b)1ξiξi0,i=1,2,...,m.

  • 拉格朗日函数为:
    L ( ω , b , α , ξ , μ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C ∑ i = 1 m ξ i + ∑ i = 1 m α i ( 1 − ξ i − y i ( ω T x i + b ) ) − ∑ i = 1 m μ i ξ i L(\bm{\omega}, b,\bm{\alpha, \xi, \mu}) = \frac{1}{2} ||\bm{\omega}||^2 + C\sum_{i=1}^m\xi_i \\+ \sum_{i=1}^{m}\alpha_i(1-\xi_i-y_i(\bm{\omega^T{x_i}} + b )) - \sum_{i=1}^{m}\mu_i\xi_i L(ω,b,α,ξ,μ)=21ω2+Ci=1mξi+i=1mαi(1ξiyi(ωTxi+b))i=1mμiξi

其中 α i ≥ 0 , μ i ≥ 0 \alpha_i \ge 0, \mu_i \ge 0 αi0,μi0是拉格朗日乘子。

  • ω , b , ξ i \bm{\omega}, b,\xi_i ω,b,ξi求偏导为0得:
    ω = ∑ i = 1 m α i y i x i , 0 = ∑ i = 1 m α i y i , C = α i + μ i . \bm{\omega} = \sum_{i=1}^{m} \alpha_i y_i \bm{x_i}, \\ 0 = \sum_{i=1}^{m} \alpha_i y_i, \\ C= \alpha_i + \mu_i. ω=i=1mαiyixi,0=i=1mαiyi,C=αi+μi.
  • 带入上式得对偶问题:
    max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j s . t . ∑ i = 1 m α i y i = 0 C ≥ α i ≥ 0 , i = 1 , 2 , . . . , m . \max \limits_{\bm{\alpha}} \quad \sum_{i=1}^{m}\alpha_i - \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\alpha_i\alpha_jy_iy_j\bm{x_i^Tx_j} \\ s.t. \quad \sum_{i=1}^{m}\alpha_iy_i = 0 \\ C \ge \alpha_i \ge 0, i = 1,2,...,m. αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxjs.t.i=1mαiyi=0Cαi0,i=1,2,...,m.
  • 对软间隔支持向量机,KKT条件得要求:
    { a i ≥ 0 , μ i ≥ 0 , y i f ( x i ) − 1 + ξ i ≥ 0 , α ( y i f ( x i ) − 1 + ξ i ) = 0 , ξ i ≥ 0 , μ i ξ i = 0. \begin{cases} a_i \ge 0,\\ \mu_i \ge0,\\ y_if(\bm{x_i}) - 1 + \xi_i\ge 0, \\ \alpha(y_if(\bm{x_i}) - 1 + \xi_i) = 0,\\ \xi_i \ge 0,\\ \mu_i\xi_i = 0. \end{cases} ai0,μi0,yif(xi)1+ξi0,α(yif(xi)1+ξi)=0,ξi0,μiξi=0.

对任意样本 ( x i , y i ) (\bm{x_i},y_i) (xi,yi)总有 α i = 0 或 者 y i f ( x i ) = 1 − ξ i \alpha_i = 0 或者 y_if(\bm{x_i}) = 1 - \xi_i αi=0yif(xi)=1ξi,若 α i = 0 \alpha_i = 0 αi=0,则该样本将不会在求和中出现,也就不会对 f ( x ) f(x) f(x)有任何影响,若 α &gt; 0 \alpha &gt; 0 α>0,则必有 y i f ( x i ) = 1 − ξ i y_if(\bm{x_i}) = 1 - \xi_i yif(xi)=1ξi,即样本是支持向量,若 α &lt; C \alpha &lt; C α<C,则 μ i &gt; 0 \mu_i &gt; 0 μi>0,进而 ξ i = 0 \xi_i = 0 ξi=0,该样本卡在最大间隔边界上,若 α = C \alpha = C α=C,则 μ i = 0 \mu_i = 0 μi=0,若此时 ξ i ≤ 1 \xi_i \le 1 ξi1则该样本落在最大间隔内部,若 ξ i &gt; 1 \xi_i &gt;1 ξi>1则样本被错误分类

支持向量回归

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值