支持向量机
- 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张图片](http://img.e-com-net.com/image/info8/399b71388c01495dac2ebc901e667f42.jpg)
在样本空间中,划分超平面可通过线性方程
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=∥w∥∣∣wTx+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+b⩽−1,yi=+1yi=−1
间隔:两个异类支持向量到超平面的距离
γ = 2 ∥ w ∥ \gamma=\frac{2}{\|\boldsymbol{w}\|} γ=∥w∥2
![【深度之眼《机器学习》西瓜书训练营第十三期】支持向量机_第2张图片](http://img.e-com-net.com/image/info8/9f46a530006342bf97aa6ef41c23ef69.jpg)
找到具有最大间隔的划分超平面,即找能满足联立方程式中约束的参数 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,bmax∥w∥2; s.t. yi(wTxi+b)⩾1,i=1,2,…,m
为了最大化间隔,仅需最大化 ∥ w ∥ − 1 \|\boldsymbol{w}\|^{-1} ∥w∥−1,等价于最小化 ∥ w ∥ 2 \|\boldsymbol{w}\|^2 ∥w∥2
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,bmin2∥w∥2; 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 αi⩾0,则该问题的拉格朗日函数可写为
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,α)=21∥w∥2+i=1∑mαi(1−yi(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=1∑mαiyixi=i=1∑mα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=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj; s.t. i=1∑mαiyi=0,αi⩾0,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=1∑mα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. ⎩⎨⎧αi⩾0yif(xi)−1⩾0α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. 核方法