【深度之眼《机器学习》西瓜书训练营第十三期】支持向量机

支持向量机

  • 1. 支持向量机
    • 1.1. 间隔与支持向量
    • 1.2. 对偶问题
    • 1.3. 核函数
    • 1.4. 软间隔与正则化
    • 1.5. 支持向量回归
    • 1.3. 核函数
    • 1.4. 软间隔与正则化
    • 1.5. 支持向量回归
    • 1.6. 核方法

1. 支持向量机

1.1. 间隔与支持向量

给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\{(x_1,y_1),(x_2,y_2),\ldots,(x_m,y_m)\},y_i \in \{-1,+1\} D={ (x1,y1),(x2,y2),,(xm,ym)},yi{ 1,+1}
分类学习最基本的想法:基于训练集 D D D在样本空间中找到一个划分超平面(不是超曲面,数据是线性可分的),将不同类别的样本分开

超平面应该位于两类训练样本"正中间",对于局部扰动容忍最好,泛化能力最强
【深度之眼《机器学习》西瓜书训练营第十三期】支持向量机_第1张图片

在样本空间中,划分超平面可通过线性方程
w T x + b = 0 w ^Tx+b=0 wTx+b=0来描述,

  • w = ( w 1 ; w 2 ; … ; w d ) w=(w_1;w_2;\ldots;w_d) w=(w1;w2;;wd)为法向量,决定了超平面的方向
  • b b b为位移项,决定了超平面与原点之间的距离;
  • w w w b b b唯一决定超平面
  • 样本空间中认一点 x x x到超平面 ( w , b ) (w,b) (w,b)的距离为: r = ∣ w T x + b ∣ ∥ w ∥ r=\frac{\left|\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b\right|}{\|\boldsymbol{w}\|} r=wwTx+b

假设超平面 ( w , b ) (w,b) (w,b)能将样本正确分类,即对于 ( x i , y i ) ∈ D (x_i,y_i)\in D (xi,yi)D,

  • y i = + 1 y_i=+1 yi=+1,则有 w T x i + b > 0 w^T x_i + b >0 wTxi+b>0
  • y i = − 1 y_i=-1 yi=1,则有 w T x i + b < 0 w^T x_i + b <0 wTxi+b<0
    { w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \left\{\begin{array}{ll} \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \geqslant+1, & y_{i}=+1 \\ \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b \leqslant-1, & y_{i}=-1 \end{array}\right. { wTxi+b+1,wTxi+b1,yi=+1yi=1

间隔:两个异类支持向量到超平面的距离
γ = 2 ∥ w ∥ \gamma=\frac{2}{\|\boldsymbol{w}\|} γ=w2
【深度之眼《机器学习》西瓜书训练营第十三期】支持向量机_第2张图片

找到具有最大间隔的划分超平面,即找能满足联立方程式中约束的参数 w w w b b b,使得 γ \gamma γ最大,即
max ⁡ w , b 2 ∥ w ∥ ;  s.t.  y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m \max _{\boldsymbol{w}, b} \frac{2}{\|\boldsymbol{w}\|};\text { s.t. } y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1, i=1,2, \ldots, m w,bmaxw2; s.t. yi(wTxi+b)1,i=1,2,,m

为了最大化间隔,仅需最大化 ∥ w ∥ − 1 \|\boldsymbol{w}\|^{-1} w1,等价于最小化 ∥ w ∥ 2 \|\boldsymbol{w}\|^2 w2
min ⁡ w , b ∥ w ∥ 2 2 ;  s.t.  y i ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m \min _{\boldsymbol{w}, b} \frac{\|\boldsymbol{w}\|^2}{2};\text { s.t. } y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right) \geqslant 1, i=1,2, \ldots, m w,bmin2w2; s.t. yi(wTxi+b)1,i=1,2,,m

间隔貌似仅与 w w w有关,但事实上 b b b通过约束隐式地影响着 w w w的取值,进而对间隔产生影响.

↑ ↑ \uparrow \uparrow 支持向量机(SVM)的基本型

1.2. 对偶问题

求解上式来得到大间隔划分超平面所对应的模型
f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b
其中 w w w b b b的模型参数,

  • 本身为一个凸二次规划问题,能直接用现成的优化计算包求解
  • 使用拉格朗日乘子法可得到其对偶问题
    对于上式的每条约束添加拉格朗日乘子 α i ⩾ 0 \alpha_{i} \geqslant 0 αi0,则该问题的拉格朗日函数可写为
    L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(\boldsymbol{w}, b, \boldsymbol{\alpha})=\frac{1}{2}\|\boldsymbol{w}\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}_{i}+b\right)\right) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))
    其中 α = ( α 1 ; α 2 ; … ; α m ) \alpha=(\alpha_1;\alpha_2;\ldots;\alpha_m) α=(α1;α2;;αm).令 L ( w , b , α ) L(\boldsymbol{w}, b, \boldsymbol{\alpha}) L(w,b,α) w w w b b b的偏导为0
    w = ∑ i = 1 m α i y i x i 0 = ∑ i = 1 m α i y i \begin{aligned} \boldsymbol{w} &=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i} \\ 0 &=\sum_{i=1}^{m} \alpha_{i} y_{i} \end{aligned} w0=i=1mαiyixi=i=1mαiyi
    带入 L ( w , b , α ) L(\boldsymbol{w}, b, \boldsymbol{\alpha}) L(w,b,α)中的 w w w b b b消去,得到对偶问题为
    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 _{\alpha} \sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i=1}^{m} \sum_{j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}_{j};\text { s.t. } \sum_{i=1}^{m} \alpha_{i} y_{i}=0, \alpha_{i} \geqslant 0, i=1,2, \ldots, m αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj; s.t. i=1mαiyi=0,αi0,i=1,2,,m
    解出 α \alpha α后,求出 w w w b b b即可得到模型
    f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + b \begin{aligned} f(\boldsymbol{x}) &=\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b \\ &=\sum_{i=1}^{m} \alpha_{i} y_{i} \boldsymbol{x}_{i}^{\mathrm{T}} \boldsymbol{x}+b \end{aligned} f(x)=wTx+b=i=1mαiyixiTx+b

上述过程需满足KKT条件,
{ α i ⩾ 0 y i f ( x i ) − 1 ⩾ 0 α i ( y i f ( x i ) − 1 ) = 0 \left\{\begin{array}{l} \alpha_{i} \geqslant 0 \\ y_{i} f\left(\boldsymbol{x}_{i}\right)-1 \geqslant 0 \\ \alpha_{i}\left(y_{i} f\left(\boldsymbol{x}_{i}\right)-1\right)=0 \end{array}\right. αi0yif(xi)10αi(yif(xi)1)=0

SMO算法

  • 基本思路:先固定 α i \alpha_i αi之外的所有参数,然后求 α i \alpha_i αi上的极值。由于存在约束 ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_i y_i=0 i=1mαiyi=0,若固定 α i \alpha_i αi之外的其他变量,则 α i \alpha_i αi可由其他变量导出
    SMO每次选择两个变量 α i \alpha_i αi α j \alpha_j αj,并固定其他参数,这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛
    • 选取一对需更新的变量 α i \alpha_i αi α j \alpha_j αj
    • 固定 α i \alpha_i αi α j \alpha_j αj意外的参数,求解对偶问题获得更新后的 α i \alpha_i αi α j \alpha_j αj

1.3. 核函数

1.4. 软间隔与正则化

1.5. 支持向量回归

得更新后的 α i \alpha_i αi α j \alpha_j αj

1.3. 核函数

1.4. 软间隔与正则化

1.5. 支持向量回归

1.6. 核方法

你可能感兴趣的:(西瓜书)